import org.springframework.context.annotation.Configuration;
import java.time.Clock;
+import java.util.Optional;
import java.util.Properties;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ApplicationConfiguration
{
@Bean
- public AdderRecordHandler sumRecordHandler()
+ public ApplicationRecordHandler recordHandler(
+ AdderResults adderResults,
+ ApplicationProperties properties)
+ {
+ return new ApplicationRecordHandler(
+ adderResults,
+ Optional.ofNullable(properties.getThrottle()),
+ properties.getClientId());
+ }
+
+ @Bean
+ public AdderResults adderResults()
{
- return new AdderRecordHandler();
+ return new AdderResults();
}
@Bean
- public AdderRebalanceListener sumRebalanceListener(
- AdderRecordHandler adderRecordHandler,
- PartitionStatisticsRepository repository,
+ public ApplicationRebalanceListener rebalanceListener(
+ ApplicationRecordHandler recordHandler,
+ AdderResults adderResults,
+ StateRepository stateRepository,
Consumer<String, String> consumer,
ApplicationProperties properties)
{
- return new AdderRebalanceListener(
- adderRecordHandler,
- repository,
+ return new ApplicationRebalanceListener(
+ recordHandler,
+ adderResults,
+ stateRepository,
properties.getClientId(),
properties.getTopic(),
Clock.systemDefaultZone(),
public EndlessConsumer<String, String> endlessConsumer(
KafkaConsumer<String, String> kafkaConsumer,
ExecutorService executor,
- AdderRebalanceListener adderRebalanceListener,
- AdderRecordHandler adderRecordHandler,
+ ApplicationRebalanceListener rebalanceListener,
+ ApplicationRecordHandler recordHandler,
ApplicationProperties properties)
{
return
properties.getClientId(),
properties.getTopic(),
kafkaConsumer,
- adderRebalanceListener,
- adderRecordHandler);
+ rebalanceListener,
+ recordHandler);
}
@Bean