1414import org .springframework .boot .autoconfigure .condition .ConditionalOnClass ;
1515import org .springframework .boot .autoconfigure .condition .ConditionalOnMissingBean ;
1616import org .springframework .boot .autoconfigure .condition .ConditionalOnMissingClass ;
17+ import org .springframework .boot .autoconfigure .condition .ConditionalOnProperty ;
1718import org .springframework .boot .autoconfigure .flyway .FlywayProperties ;
1819import org .springframework .boot .autoconfigure .jdbc .DataSourceProperties ;
1920import org .springframework .boot .context .properties .EnableConfigurationProperties ;
4748
4849@ Configuration
4950@ AutoConfigureAfter (name ="org.zalando.tracer.spring.TracerAutoConfiguration" )
50- @ EnableScheduling
5151@ EnableConfigurationProperties ({ DataSourceProperties .class , FlywayProperties .class })
5252@ Slf4j
5353public class NakadiProducerAutoConfiguration {
5454
55+ @ ConditionalOnProperty (name ="nakadi-producer.submission-enabled" , havingValue = "true" , matchIfMissing = true )
5556 @ ConditionalOnMissingBean ({NakadiPublishingClient .class , NakadiClient .class })
5657 @ Configuration
5758 @ Import (FahrscheinWithTokensNakadiClientConfiguration .StupsTokenConfiguration .class )
5859 static class FahrscheinWithTokensNakadiClientConfiguration {
5960
6061 @ Bean
61- public NakadiPublishingClient nakadiProducerPublishingClient (AccessTokenProvider accessTokenProvider ,
62- @ Value ("${nakadi-producer.nakadi-base-uri}" ) URI nakadiBaseUri , RequestFactory requestFactory ) {
62+ public NakadiPublishingClient nakadiProducerPublishingClient (
63+ AccessTokenProvider accessTokenProvider ,
64+ @ Value ("${nakadi-producer.nakadi-base-uri}" ) URI nakadiBaseUri ,
65+ RequestFactory requestFactory ) {
6366 return new FahrscheinNakadiPublishingClient (NakadiClient .builder (nakadiBaseUri , requestFactory )
6467 .withAccessTokenProvider (accessTokenProvider ::getAccessToken ).build ());
6568 }
6669
6770 @ ConditionalOnClass (name = "org.zalando.stups.tokens.Tokens" )
71+ @ ConditionalOnProperty (name ="nakadi-producer.submission-enabled" , havingValue = "true" , matchIfMissing = true )
6872 @ ConditionalOnMissingBean ({NakadiPublishingClient .class , NakadiClient .class })
6973 @ Configuration
7074 static class StupsTokenConfiguration {
@@ -75,16 +79,16 @@ public StupsTokenComponent accessTokenProvider(
7579 @ Value ("${nakadi-producer.access-token-scopes:uid}" ) String [] accessTokenScopes ) {
7680 return new StupsTokenComponent (accessTokenUri , Arrays .asList (accessTokenScopes ));
7781 }
78-
7982 }
83+
8084 @ Bean
8185 @ ConditionalOnMissingBean
82- RequestFactory requestFactory (@ Value ("${nakadi-producer.encoding:GZIP}" ) ContentEncoding encoding ){
86+ RequestFactory requestFactory (@ Value ("${nakadi-producer.encoding:GZIP}" ) ContentEncoding encoding ) {
8387 return new SimpleRequestFactory (encoding );
8488 }
85-
8689 }
8790
91+ @ ConditionalOnProperty (name ="nakadi-producer.submission-enabled" , havingValue = "true" , matchIfMissing = true )
8892 @ ConditionalOnMissingBean (NakadiPublishingClient .class )
8993 @ ConditionalOnBean (NakadiClient .class )
9094 @ Configuration
@@ -150,27 +154,34 @@ public EventLogRepository eventLogRepository(NamedParameterJdbcTemplate namedPar
150154 return new EventLogRepositoryImpl (namedParameterJdbcTemplate , lockSize );
151155 }
152156
153- @ Bean
154- public EventTransmitter eventTransmitter ( EventTransmissionService eventTransmissionService ) {
155- return new EventTransmitter ( eventTransmissionService );
156- }
157+ @ ConditionalOnProperty ( name = "nakadi-producer.submission-enabled" , havingValue = "true" , matchIfMissing = true )
158+ @ EnableScheduling
159+ @ Configuration
160+ static class TransmissionConfiguration {
157161
158- @ Bean
159- public EventTransmissionScheduler eventTransmissionScheduler (EventTransmitter eventTransmitter ,
160- @ Value ("${nakadi-producer.scheduled-transmission-enabled:true}" ) boolean scheduledTransmissionEnabled ) {
161- return new EventTransmissionScheduler (eventTransmitter , scheduledTransmissionEnabled );
162- }
162+ @ Bean
163+ public EventTransmitter eventTransmitter (EventTransmissionService eventTransmissionService ) {
164+ return new EventTransmitter (eventTransmissionService );
165+ }
166+
167+ @ Bean
168+ public EventTransmissionScheduler eventTransmissionScheduler (
169+ EventTransmitter eventTransmitter ,
170+ @ Value ("${nakadi-producer.scheduled-transmission-enabled:true}" ) boolean scheduledTransmissionEnabled ) {
171+ return new EventTransmissionScheduler (eventTransmitter , scheduledTransmissionEnabled );
172+ }
163173
164- @ Bean
165- public EventTransmissionService eventTransmissionService (
166- EventLogRepository eventLogRepository ,
167- NakadiPublishingClient nakadiPublishingClient ,
168- ObjectMapper objectMapper ,
169- @ Value ("${nakadi-producer.lock-duration:600}" ) int lockDuration ,
170- @ Value ("${nakadi-producer.lock-duration-buffer:60}" ) int lockDurationBuffer ) {
171- return new EventTransmissionService (
172- eventLogRepository , nakadiPublishingClient , objectMapper , lockDuration , lockDurationBuffer );
173- }
174+ @ Bean
175+ public EventTransmissionService eventTransmissionService (
176+ EventLogRepository eventLogRepository ,
177+ NakadiPublishingClient nakadiPublishingClient ,
178+ ObjectMapper objectMapper ,
179+ @ Value ("${nakadi-producer.lock-duration:600}" ) int lockDuration ,
180+ @ Value ("${nakadi-producer.lock-duration-buffer:60}" ) int lockDurationBuffer ) {
181+ return new EventTransmissionService (
182+ eventLogRepository , nakadiPublishingClient , objectMapper , lockDuration , lockDurationBuffer );
183+ }
184+ }
174185
175186 @ Bean
176187 public FlywayMigrator flywayMigrator () {
0 commit comments