All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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