
io.mstream.trader.commons.config.ConfigModule Maven / Gradle / Ivy
package io.mstream.trader.commons.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.inject.AbstractModule;
import com.google.inject.Scopes;
import org.apache.curator.framework.CuratorFramework;
public class ConfigModule extends AbstractModule {
private final String zkConnectionString;
private final String appName;
private final String version;
public ConfigModule(
String zkConnectionString,
String appName,
String version
) {
this.zkConnectionString = zkConnectionString;
this.appName = appName;
this.version = version;
}
@Override
protected void configure() {
bind(String.class)
.annotatedWith(ApplicationName.class)
.toInstance(appName);
bind(String.class)
.annotatedWith(Version.class)
.toInstance(version);
bind(CuratorFramework.class)
.toProvider(CuratorFrameworkProvider.class)
.in(Scopes.SINGLETON);
bind(ObjectMapper.class)
.toInstance(new ObjectMapper());
bind(String.class)
.annotatedWith(ConnectionString.class)
.toInstance(zkConnectionString);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy