|
42 | 42 | import org.springframework.util.Assert;
|
43 | 43 |
|
44 | 44 | /**
|
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. |
47 | 47 | *
|
48 | 48 | * @author Oliver Drotbohm
|
49 | 49 | */
|
50 | 50 | @AutoConfiguration
|
51 | 51 | class SpringModulithRuntimeAutoConfiguration {
|
52 | 52 |
|
53 | 53 | private static final Logger LOGGER = LoggerFactory.getLogger(SpringModulithRuntimeAutoConfiguration.class);
|
54 |
| - private final AsyncTaskExecutor executor = new SimpleAsyncTaskExecutor(); |
| 54 | + private static final AsyncTaskExecutor EXECUTOR = new SimpleAsyncTaskExecutor(); |
55 | 55 |
|
56 | 56 | @Bean
|
57 | 57 | @Role(BeanDefinition.ROLE_INFRASTRUCTURE)
|
58 | 58 | @ConditionalOnMissingBean(ApplicationRuntime.class)
|
59 |
| - SpringBootApplicationRuntime modulithsApplicationRuntime(ApplicationContext context) { |
| 59 | + static SpringBootApplicationRuntime modulithsApplicationRuntime(ApplicationContext context) { |
60 | 60 | return new SpringBootApplicationRuntime(context);
|
61 | 61 | }
|
62 | 62 |
|
63 | 63 | @Bean
|
64 | 64 | @Role(BeanDefinition.ROLE_INFRASTRUCTURE)
|
65 | 65 | @ConditionalOnMissingBean
|
66 |
| - ApplicationModulesRuntime modulesRuntime(ApplicationRuntime runtime) { |
| 66 | + static ApplicationModulesRuntime modulesRuntime(ApplicationRuntime runtime) { |
67 | 67 |
|
68 | 68 | var mainClass = runtime.getMainApplicationClass();
|
69 |
| - var modules = executor |
| 69 | + var modules = EXECUTOR |
70 | 70 | .submit(() -> ApplicationModulesBootstrap.initializeApplicationModules(mainClass));
|
71 | 71 |
|
72 | 72 | return new ApplicationModulesRuntime(toSupplier(modules), runtime);
|
73 | 73 | }
|
74 | 74 |
|
75 | 75 | @Bean
|
76 |
| - ApplicationListener<ApplicationStartedEvent> applicationModuleInitializingListener(ListableBeanFactory beanFactory) { |
| 76 | + @Role(BeanDefinition.ROLE_INFRASTRUCTURE) |
| 77 | + static ApplicationListener<ApplicationStartedEvent> applicationModuleInitializingListener( |
| 78 | + ListableBeanFactory beanFactory) { |
77 | 79 |
|
78 | 80 | return event -> {
|
79 | 81 |
|
|
0 commit comments