package org.rakam.aws.kinesis; import com.google.auto.service.AutoService; import com.google.inject.Binder; import com.google.inject.Scopes; import io.airlift.configuration.Config; import io.airlift.log.Logger; import org.rakam.aws.AWSConfig; import org.rakam.util.ConditionalModule; import org.rakam.plugin.EventStore; import org.rakam.plugin.RakamModule; import static io.airlift.configuration.ConfigBinder.configBinder; @AutoService(RakamModule.class) @ConditionalModule(config="event.store", value="kinesis") public class AWSKinesisModule extends RakamModule { @Override protected void setup(Binder binder) { configBinder(binder).bindConfig(AWSConfig.class); configBinder(binder).bindConfig(PrestoStreamConfig.class); binder.bind(EventStore.class).to(AWSKinesisEventStore.class).in(Scopes.SINGLETON); } @Override public String name() { return "AWS Kinesis event store module"; } @Override public String description() { return "Puts your events directly to AWS Kinesis streams."; } public static class PrestoStreamConfig { private int port; @Config("presto.streaming.port") public void setPort(int port) { this.port = port; } public int getPort() { return port; } } }