in curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkImpl.java [124:193]
public CuratorFrameworkImpl(CuratorFrameworkFactory.Builder builder) {
ZookeeperFactory localZookeeperFactory =
makeZookeeperFactory(builder.getZookeeperFactory(), builder.getZkClientConfig());
this.client = new CuratorZookeeperClient(
localZookeeperFactory,
builder.getEnsembleProvider(),
builder.getSessionTimeoutMs(),
builder.getConnectionTimeoutMs(),
builder.getWaitForShutdownTimeoutMs(),
new Watcher() {
@Override
public void process(WatchedEvent watchedEvent) {
CuratorEvent event = new CuratorEventImpl(
CuratorFrameworkImpl.this,
CuratorEventType.WATCHED,
watchedEvent.getState().getIntValue(),
unfixForNamespace(watchedEvent.getPath()),
null,
null,
null,
null,
null,
watchedEvent,
null,
null);
processEvent(event);
}
},
builder.getRetryPolicy(),
builder.canBeReadOnly());
internalConnectionHandler = new StandardInternalConnectionHandler();
listeners = StandardListenerManager.standard();
unhandledErrorListeners = StandardListenerManager.standard();
backgroundOperations = new DelayQueue<OperationAndData<?>>();
forcedSleepOperations = new LinkedBlockingQueue<>();
namespace = new NamespaceImpl(this, builder.getNamespace());
threadFactory = getThreadFactory(builder);
maxCloseWaitMs = builder.getMaxCloseWaitMs();
connectionStateManager = new ConnectionStateManager(
this,
builder.getThreadFactory(),
builder.getSessionTimeoutMs(),
builder.getSimulatedSessionExpirationPercent(),
builder.getConnectionStateListenerManagerFactory());
compressionProvider = builder.getCompressionProvider();
compressionEnabled = builder.compressionEnabled();
aclProvider = builder.getAclProvider();
state = new AtomicReference<CuratorFrameworkState>(CuratorFrameworkState.LATENT);
useContainerParentsIfAvailable = builder.useContainerParentsIfAvailable();
connectionStateErrorPolicy =
Preconditions.checkNotNull(builder.getConnectionStateErrorPolicy(), "errorPolicy cannot be null");
schemaSet = Preconditions.checkNotNull(builder.getSchemaSet(), "schemaSet cannot be null");
byte[] builderDefaultData = builder.getDefaultData();
defaultData = (builderDefaultData != null)
? Arrays.copyOf(builderDefaultData, builderDefaultData.length)
: new byte[0];
authInfos = buildAuths(builder);
failedDeleteManager = new FailedDeleteManager(this);
failedRemoveWatcherManager = new FailedRemoveWatchManager(this);
namespaceFacadeCache = new NamespaceFacadeCache(this);
ensembleTracker =
builder.withEnsembleTracker() ? new EnsembleTracker(this, builder.getEnsembleProvider()) : null;
runSafeService = makeRunSafeService(builder);
zookeeperCompatibility = builder.getZookeeperCompatibility();
}