package org.rakam.kafka.collection; import com.google.auto.service.AutoService; import com.google.inject.Binder; import com.google.inject.name.Names; import org.rakam.util.ConditionalModule; import org.rakam.plugin.EventStore; import org.rakam.plugin.stream.EventStream; import org.rakam.plugin.RakamModule; import static io.airlift.configuration.ConfigurationModule.bindConfig; @AutoService(RakamModule.class) @ConditionalModule(config="event.store", value="kafka") public class KafkaCollectorModule extends RakamModule { @Override protected void setup(Binder binder) { bindConfig(binder) .annotatedWith(Names.named("event.store.kafka")) .prefixedWith("event.store.kafka") .to(KafkaConfig.class); binder.bind(EventStore.class).to(KafkaEventStore.class); binder.bind(EventStream.class).to(KafkaStream.class); } @Override public String name() { return "Kafka Event Collector"; } @Override public String description() { return "Sends events to Apache Kafka"; } }