@Configuration
@ConditionalOnClass(name="org.springframework.boot.SpringApplication")
@ConditionalOnExpression(value="!\'${flamingock.management-mode:APPLICATION_RUNNER}\'.toUpperCase().equals(\'UNMANAGED\')")
@EnableConfigurationProperties(value=SpringbootProperties.class)
public class FlamingockAutoConfiguration
extends java.lang.Object
The configuration behavior is controlled by the flamingock.management-mode property:
APPLICATION_RUNNER (default) - Spring creates the builder and executes it as an ApplicationRunnerINITIALIZING_BEAN - Spring creates the builder and executes it as an InitializingBeanDEFERRED - Spring creates the builder; the application controls executionUNMANAGED - No beans are created; the application manages everythingWhen flamingock.cli.mode=true, the runner executes and then calls System.exit()
with the appropriate exit code (0 for success, 1 for failure).
The builder bean is always created (unless UNMANAGED) and can be overridden by providing
your own AbstractChangeRunnerBuilder bean.
| Constructor and Description |
|---|
FlamingockAutoConfiguration() |
| Modifier and Type | Method and Description |
|---|---|
org.springframework.boot.ApplicationRunner |
applicationRunner(io.flamingock.internal.core.builder.AbstractChangeRunnerBuilder<?,?> builder)
Creates an ApplicationRunner that builds and executes Flamingock at application startup.
|
org.springframework.boot.ApplicationRunner |
cliApplicationRunner(io.flamingock.internal.core.builder.AbstractChangeRunnerBuilder<?,?> builder)
Creates an ApplicationRunner for CLI mode that builds and executes Flamingock,
then calls System.exit() with the appropriate exit code.
|
io.flamingock.internal.core.builder.AbstractChangeRunnerBuilder<?,?> |
flamingockBuilder(SpringbootProperties configurationProperties,
org.springframework.context.ApplicationContext springContext,
org.springframework.context.ApplicationEventPublisher applicationEventPublisher,
io.flamingock.internal.core.external.store.CommunityAuditStore auditStore,
java.util.List<io.flamingock.api.external.TargetSystem> targetSystems)
Creates the Flamingock builder bean.
|
org.springframework.beans.factory.InitializingBean |
initializingBeanRunner(io.flamingock.internal.core.builder.AbstractChangeRunnerBuilder<?,?> builder)
Creates an InitializingBean that builds and executes Flamingock during bean initialization.
|
@Bean(value="flamingock-builder") @ConditionalOnMissingBean(value=io.flamingock.internal.core.builder.AbstractChangeRunnerBuilder.class) public io.flamingock.internal.core.builder.AbstractChangeRunnerBuilder<?,?> flamingockBuilder(SpringbootProperties configurationProperties, org.springframework.context.ApplicationContext springContext, org.springframework.context.ApplicationEventPublisher applicationEventPublisher, @Autowired(required=false) io.flamingock.internal.core.external.store.CommunityAuditStore auditStore, java.util.List<io.flamingock.api.external.TargetSystem> targetSystems)
@Bean(value="flamingock-runner")
@ConditionalOnProperty(name="flamingock.cli.mode",
havingValue="true")
public org.springframework.boot.ApplicationRunner cliApplicationRunner(io.flamingock.internal.core.builder.AbstractChangeRunnerBuilder<?,?> builder)
@Bean(value="flamingock-runner")
@ConditionalOnProperty(name="flamingock.cli.mode",
havingValue="false",
matchIfMissing=true)
@ConditionalOnExpression(value="\'${flamingock.management-mode:APPLICATION_RUNNER}\'.toUpperCase().equals(\'APPLICATION_RUNNER\')")
public org.springframework.boot.ApplicationRunner applicationRunner(io.flamingock.internal.core.builder.AbstractChangeRunnerBuilder<?,?> builder)
@Bean(value="flamingock-runner")
@ConditionalOnProperty(name="flamingock.cli.mode",
havingValue="false",
matchIfMissing=true)
@ConditionalOnExpression(value="\'${flamingock.management-mode:APPLICATION_RUNNER}\'.toUpperCase().equals(\'INITIALIZING_BEAN\')")
public org.springframework.beans.factory.InitializingBean initializingBeanRunner(io.flamingock.internal.core.builder.AbstractChangeRunnerBuilder<?,?> builder)