Conditional activation markers for enabling components based on infrastructure availability.
Add this dependency to your build.gradle:
dependencies {
implementation 'io.seqera:lib-activator:1.0.0'
}Use activator interfaces to conditionally enable beans based on infrastructure requirements:
// Redis activator interface
public interface RedisActivator {
}
// Component that requires Redis
@Singleton
@Requires(beans = RedisActivator.class)
public class RedisStreamProcessor implements StreamProcessor {
// Redis-dependent implementation
}
// Conditional Redis activation based on environment
@Singleton
@Requires(env = "redis")
public class RedisActivationCondition implements RedisActivator {
}
// Configuration-based activation
@Singleton
@Requires(property = "redis.uri")
public class RedisConfigActivation implements RedisActivator {
}This pattern allows components to be automatically activated only when their required infrastructure is available, preventing startup failures and enabling flexible deployment configurations.
./gradlew :lib-activator:test