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

io.mstream.trader.commons.config.CuratorFrameworkProvider Maven / Gradle / Ivy

package io.mstream.trader.commons.config;


import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;

import javax.inject.Inject;
import javax.inject.Provider;

import static java.lang.String.format;

public class CuratorFrameworkProvider implements Provider {

    private final String connectionString;
    private final String applicationName;
    private final Version applicationVersion;

    @Inject
    public CuratorFrameworkProvider(
            @ConnectionString String connectionString,
            @ApplicationName String applicationName,
            @Application Version applicationVersion) {
        this.connectionString = connectionString;
        this.applicationName = applicationName;
        this.applicationVersion = applicationVersion;
    }

    @Override
    public CuratorFramework get() {

        CuratorFramework curator =
                CuratorFrameworkFactory.builder()
                        .connectString(connectionString)
                        .retryPolicy(new ExponentialBackoffRetry(1000, 3))
                        .namespace(
                                format(
                                        "config/%s/%s",
                                        applicationName,
                                        applicationVersion
                                )
                        )
                        .build();
        curator.start();
        return curator;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy