
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 String applicationVersion;
@Inject
public CuratorFrameworkProvider(
@ConnectionString String connectionString,
@ApplicationName String applicationName,
@Version String 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