Skip to content

Commit d665161

Browse files
committed
GH-252 - Avoid premature initialization of SpringModulithRuntimeAutoConfiguration.
Bean declarations are now entirely static.
1 parent 04187a1 commit d665161

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

spring-modulith-runtime/src/main/java/org/springframework/modulith/runtime/autoconfigure/SpringModulithRuntimeAutoConfiguration.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,38 +42,40 @@
4242
import org.springframework.util.Assert;
4343

4444
/**
45-
* Auto-configuration to register a {@link SpringBootApplicationRuntime} and {@link ApplicationModulesRuntime} as Spring
46-
* Bean.
45+
* Auto-configuration to register a {@link SpringBootApplicationRuntime}, a {@link ApplicationModulesRuntime} and an
46+
* {@link ApplicationListener} to invoke all {@link ApplicationModuleInitializer}s as Spring Bean.
4747
*
4848
* @author Oliver Drotbohm
4949
*/
5050
@AutoConfiguration
5151
class SpringModulithRuntimeAutoConfiguration {
5252

5353
private static final Logger LOGGER = LoggerFactory.getLogger(SpringModulithRuntimeAutoConfiguration.class);
54-
private final AsyncTaskExecutor executor = new SimpleAsyncTaskExecutor();
54+
private static final AsyncTaskExecutor EXECUTOR = new SimpleAsyncTaskExecutor();
5555

5656
@Bean
5757
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
5858
@ConditionalOnMissingBean(ApplicationRuntime.class)
59-
SpringBootApplicationRuntime modulithsApplicationRuntime(ApplicationContext context) {
59+
static SpringBootApplicationRuntime modulithsApplicationRuntime(ApplicationContext context) {
6060
return new SpringBootApplicationRuntime(context);
6161
}
6262

6363
@Bean
6464
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
6565
@ConditionalOnMissingBean
66-
ApplicationModulesRuntime modulesRuntime(ApplicationRuntime runtime) {
66+
static ApplicationModulesRuntime modulesRuntime(ApplicationRuntime runtime) {
6767

6868
var mainClass = runtime.getMainApplicationClass();
69-
var modules = executor
69+
var modules = EXECUTOR
7070
.submit(() -> ApplicationModulesBootstrap.initializeApplicationModules(mainClass));
7171

7272
return new ApplicationModulesRuntime(toSupplier(modules), runtime);
7373
}
7474

7575
@Bean
76-
ApplicationListener<ApplicationStartedEvent> applicationModuleInitializingListener(ListableBeanFactory beanFactory) {
76+
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
77+
static ApplicationListener<ApplicationStartedEvent> applicationModuleInitializingListener(
78+
ListableBeanFactory beanFactory) {
7779

7880
return event -> {
7981

0 commit comments

Comments
 (0)