Compare commits

...

4 Commits
0.0.0 ... main

Author SHA1 Message Date
Kilian Schüttler
2137f4f073 Merge branch 'hotfix' into 'main'
hotfix NPE

See merge request fforesight/lifecycle-commons!1
2024-08-27 14:41:10 +02:00
Kilian Schuettler
826014d618 hotfix NPE 2024-08-27 14:39:20 +02:00
Andrei Isvoran
8b1e76b526 Small refactor + update README.md 2024-07-10 17:50:14 +03:00
Andrei Isvoran
4733e53789 Add LifecycleMonitor annotation 2024-07-04 16:59:47 +03:00
3 changed files with 13 additions and 3 deletions

View File

@ -20,6 +20,7 @@ The code will scan all requests from methods that are inside the specified packa
```
@Around("@annotation(org.springframework.amqp.rabbit.annotation.RabbitListener) || "
+ "@annotation(com.knecon.fforesight.lifecyclecommons.LifecycleMonitor) || "
+ "@annotation(org.springframework.web.bind.annotation.GetMapping) || "
+ "@annotation(org.springframework.web.bind.annotation.PostMapping) || "
+ "@annotation(org.springframework.web.bind.annotation.PutMapping) || "
@ -34,5 +35,6 @@ So any method that has one of the annotations present there, if it's being execu
executing it will decrement the ongoing tasks. If at any point a shutdown is initiated and the amount of ongoing tasks is not 0, the termination process will wait until all ongoing
tasks are completed. It will also not allow new tasks to be started, throwing back an exception.
If you want to monitor and keep track of other methods you can add annotations in the `@Around` part. You can even create a custom annotation and add it here, then whenever you
annotate a method with that annotations it will keep track of its tasks in event of a shutdown.
If you want to monitor and keep track of other methods you can add annotations in the `@Around` part.
The `LifecycleMonitor` annotation is provided with the library, all methods that are annotated with this annotations will be monitored during a shutdown to make sure it finishes execution.

View File

@ -30,7 +30,7 @@ public class LifecycleAspect {
public Object checkLifecycle(ProceedingJoinPoint joinPoint) throws Throwable {
String targetClassName = joinPoint.getTarget().getClass().getPackageName();
if (!targetClassName.startsWith(lifecycleProperties.getBasePackage())) {
if (targetClassName == null || lifecycleProperties.getBasePackage() == null || !targetClassName.startsWith(lifecycleProperties.getBasePackage())) {
return joinPoint.proceed();
}

View File

@ -6,10 +6,18 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import lombok.extern.slf4j.Slf4j;
@Configuration
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
@EnableConfigurationProperties(LifecycleProperties.class)
@ComponentScan(basePackageClasses = {LifecycleManager.class, LifecycleAspect.class})
@Slf4j
public class LifecycleAutoconfiguration {
public LifecycleAutoconfiguration() {
log.info("Initializing LifecycleAutoConfiguration");
}
}