This is an automated email from the ASF dual-hosted git repository.
tison pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/curator.git
The following commit(s) were added to refs/heads/master by this push:
new f0646f93c CURATOR-718: Refactor CuratorFramework inheritance hierarchy
by composing functionalities (#517)
f0646f93c is described below
commit f0646f93c54a14546afcd2ff7ebca78546154fe9
Author: Kezhu Wang <[email protected]>
AuthorDate: Mon Feb 17 09:03:32 2025 +0800
CURATOR-718: Refactor CuratorFramework inheritance hierarchy by composing
functionalities (#517)
* CURATOR-718: Refactor CuratorFramework inheritance hierarchy by composing
functionalities
Currently, the `CuratorFrameworkImpl` hierarchy is neither simple nor
composable.
Ideally, there should be only one instance of `CuratorFrameworkImpl`.
Additional functionalities should be added by intercepting methods on purpose,
but not by cloning through `CuratorFrameworkImpl(CuratorFrameworkImpl parent)`.
We could take CURATOR-626 and CURATOR-710 as lessons to know how brittle
the current hierarchy.
* fixup! CURATOR-718: Refactor CuratorFramework inheritance hierarchy by
composing functionalities
Notable changes to the last review:
1. Rename `InternalCuratorFramework` to `CuratorFrameworkBase`.
2. Make `DelegatingCuratorFramework` `abstract` and package `private`.
3. Move `start`/`close` from `DelegatingCuratorFramework` to subclasses.
---
.../framework/imps/AddWatchBuilderImpl.java | 6 +-
.../curator/framework/imps/BackgroundSyncImpl.java | 4 +-
.../curator/framework/imps/Backgrounding.java | 8 +-
.../curator/framework/imps/CreateBuilderImpl.java | 14 +-
.../curator/framework/imps/CuratorEventImpl.java | 2 +-
.../framework/imps/CuratorFrameworkBase.java | 263 +++++++++++++++++++++
.../framework/imps/CuratorFrameworkImpl.java | 249 +------------------
.../imps/CuratorMultiTransactionImpl.java | 6 +-
.../framework/imps/CuratorTempFrameworkImpl.java | 6 +-
.../framework/imps/CuratorTransactionImpl.java | 10 +-
.../framework/imps/DelegatingCuratorFramework.java | 206 ++++++++++++++++
.../curator/framework/imps/DeleteBuilderImpl.java | 6 +-
.../curator/framework/imps/ExistsBuilderImpl.java | 6 +-
.../FindAndDeleteProtectedNodeInBackground.java | 4 +-
...espaceWatchedEvent.java => FrameworkUtils.java} | 29 ++-
.../curator/framework/imps/GetACLBuilderImpl.java | 6 +-
.../framework/imps/GetChildrenBuilderImpl.java | 6 +-
.../framework/imps/GetConfigBuilderImpl.java | 8 +-
.../curator/framework/imps/GetDataBuilderImpl.java | 6 +-
.../curator/framework/imps/NamespaceFacade.java | 86 +------
.../framework/imps/NamespaceWatchedEvent.java | 2 +-
.../curator/framework/imps/NamespaceWatcher.java | 6 +-
.../curator/framework/imps/ProtectedMode.java | 4 +-
.../framework/imps/ReconfigBuilderImpl.java | 6 +-
.../framework/imps/RemoveWatchesBuilderImpl.java | 8 +-
.../curator/framework/imps/SetACLBuilderImpl.java | 6 +-
.../curator/framework/imps/SetDataBuilderImpl.java | 8 +-
.../curator/framework/imps/SyncBuilderImpl.java | 6 +-
.../framework/imps/TempGetDataBuilderImpl.java | 4 +-
.../curator/framework/imps/TransactionOpImpl.java | 4 +-
.../framework/imps/WatcherRemovalFacade.java | 127 +---------
.../framework/imps/WatcherRemovalManager.java | 4 +-
.../curator/framework/imps/WatchesBuilderImpl.java | 4 +-
.../apache/curator/framework/imps/Watching.java | 10 +-
.../curator/framework/imps/TestCleanState.java | 2 +-
.../framework/imps/TestFailedDeleteManager.java | 4 +-
.../curator/framework/imps/TestFramework.java | 2 +-
.../framework/imps/TestNamespaceFacade.java | 3 +-
.../framework/imps/TestReconfiguration.java | 2 +-
.../curator/framework/imps/TestWatchesBuilder.java | 16 +-
.../recipes/leader/TestLeaderSelectorEdges.java | 7 +-
.../x/async/details/AsyncCreateBuilderImpl.java | 6 +-
.../x/async/details/AsyncCuratorFrameworkImpl.java | 12 +-
.../x/async/details/AsyncDeleteBuilderImpl.java | 6 +-
.../x/async/details/AsyncExistsBuilderImpl.java | 6 +-
.../async/details/AsyncGetChildrenBuilderImpl.java | 6 +-
.../x/async/details/AsyncGetConfigBuilderImpl.java | 6 +-
.../x/async/details/AsyncGetDataBuilderImpl.java | 6 +-
.../x/async/details/AsyncReconfigBuilderImpl.java | 6 +-
.../details/AsyncRemoveWatchesBuilderImpl.java | 6 +-
.../x/async/details/AsyncSetACLBuilderImpl.java | 6 +-
.../x/async/details/AsyncSetDataBuilderImpl.java | 6 +-
.../x/async/details/AsyncTransactionOpImpl.java | 6 +-
.../x/async/details/AsyncWatchBuilderImpl.java | 6 +-
54 files changed, 663 insertions(+), 587 deletions(-)
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/AddWatchBuilderImpl.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/AddWatchBuilderImpl.java
index 923edbc76..740572a82 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/AddWatchBuilderImpl.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/AddWatchBuilderImpl.java
@@ -34,18 +34,18 @@ import org.apache.zookeeper.AddWatchMode;
import org.apache.zookeeper.Watcher;
public class AddWatchBuilderImpl implements AddWatchBuilder, Pathable<Void>,
BackgroundOperation<String> {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private Watching watching;
private Backgrounding backgrounding = new Backgrounding();
private AddWatchMode mode = AddWatchMode.PERSISTENT_RECURSIVE;
- AddWatchBuilderImpl(CuratorFrameworkImpl client) {
+ AddWatchBuilderImpl(CuratorFrameworkBase client) {
this.client = client;
watching = new Watching(client, true);
}
public AddWatchBuilderImpl(
- CuratorFrameworkImpl client, Watching watching, Backgrounding
backgrounding, AddWatchMode mode) {
+ CuratorFrameworkBase client, Watching watching, Backgrounding
backgrounding, AddWatchMode mode) {
this.client = client;
this.watching = watching;
this.backgrounding = backgrounding;
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/BackgroundSyncImpl.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/BackgroundSyncImpl.java
index 797855116..e3f83c3df 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/BackgroundSyncImpl.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/BackgroundSyncImpl.java
@@ -24,10 +24,10 @@ import org.apache.curator.framework.api.CuratorEventType;
import org.apache.zookeeper.AsyncCallback;
class BackgroundSyncImpl implements BackgroundOperation<String> {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private final Object context;
- BackgroundSyncImpl(CuratorFrameworkImpl client, Object context) {
+ BackgroundSyncImpl(CuratorFrameworkBase client, Object context) {
this.client = client;
this.context = context;
}
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/Backgrounding.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/Backgrounding.java
index 60d253c25..6f74a9f14 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/Backgrounding.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/Backgrounding.java
@@ -62,11 +62,11 @@ public class Backgrounding {
errorListener = null;
}
- Backgrounding(CuratorFrameworkImpl client, BackgroundCallback callback,
Object context, Executor executor) {
+ Backgrounding(CuratorFrameworkBase client, BackgroundCallback callback,
Object context, Executor executor) {
this(wrapCallback(client, callback, executor), context);
}
- Backgrounding(CuratorFrameworkImpl client, BackgroundCallback callback,
Executor executor) {
+ Backgrounding(CuratorFrameworkBase client, BackgroundCallback callback,
Executor executor) {
this(wrapCallback(client, callback, executor));
}
@@ -119,7 +119,7 @@ public class Backgrounding {
}
private static BackgroundCallback wrapCallback(
- final CuratorFrameworkImpl client, final BackgroundCallback
callback, final Executor executor) {
+ final CuratorFrameworkBase client, final BackgroundCallback
callback, final Executor executor) {
return new BackgroundCallback() {
@Override
public void processResult(CuratorFramework dummy, final
CuratorEvent event) throws Exception {
@@ -131,7 +131,7 @@ public class Backgrounding {
} catch (Exception e) {
ThreadUtils.checkInterrupted(e);
if (e instanceof KeeperException) {
-
client.validateConnection(client.codeToState(((KeeperException) e).code()));
+
client.validateConnection(FrameworkUtils.codeToState(((KeeperException)
e).code()));
}
client.logError("Background operation result
handling threw exception", e);
}
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/CreateBuilderImpl.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/CreateBuilderImpl.java
index b76ce98f4..cc6a09a60 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/CreateBuilderImpl.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/CreateBuilderImpl.java
@@ -70,7 +70,7 @@ public class CreateBuilderImpl
BackgroundOperation<PathAndBytes>,
ErrorListenerPathAndBytesable<String> {
private final Logger log = LoggerFactory.getLogger(getClass());
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private final ProtectedMode protectedMode = new ProtectedMode();
private CreateMode createMode;
private Backgrounding backgrounding;
@@ -93,7 +93,7 @@ public class CreateBuilderImpl
@VisibleForTesting
boolean failNextIdempotentCheckForTesting = false;
- CreateBuilderImpl(CuratorFrameworkImpl client) {
+ CreateBuilderImpl(CuratorFrameworkBase client) {
this.client = client;
createMode = CreateMode.PERSISTENT;
backgrounding = new Backgrounding();
@@ -107,7 +107,7 @@ public class CreateBuilderImpl
}
public CreateBuilderImpl(
- CuratorFrameworkImpl client,
+ CuratorFrameworkBase client,
CreateMode createMode,
Backgrounding backgrounding,
boolean createParentsIfNeeded,
@@ -737,7 +737,7 @@ public class CreateBuilderImpl
}
static <T> void backgroundCreateParentsThenNode(
- final CuratorFrameworkImpl client,
+ final CuratorFrameworkBase client,
final OperationAndData<T> mainOperationAndData,
final String path,
final InternalACLProvider aclProvider,
@@ -766,7 +766,7 @@ public class CreateBuilderImpl
}
private void backgroundSetData(
- final CuratorFrameworkImpl client,
+ final CuratorFrameworkBase client,
final OperationAndData<PathAndBytes> mainOperationAndData,
final String path,
final Backgrounding backgrounding) {
@@ -801,7 +801,7 @@ public class CreateBuilderImpl
}
private void backgroundCheckIdempotent(
- final CuratorFrameworkImpl client,
+ final CuratorFrameworkBase client,
final OperationAndData<PathAndBytes> mainOperationAndData,
final String path,
final Backgrounding backgrounding) {
@@ -844,7 +844,7 @@ public class CreateBuilderImpl
}
private static <T> void sendBackgroundResponse(
- CuratorFrameworkImpl client,
+ CuratorFrameworkBase client,
int rc,
String path,
Object ctx,
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorEventImpl.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorEventImpl.java
index e492e46a0..8cee4bdb7 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorEventImpl.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorEventImpl.java
@@ -114,7 +114,7 @@ class CuratorEventImpl implements CuratorEvent {
}
CuratorEventImpl(
- CuratorFrameworkImpl client,
+ CuratorFrameworkBase client,
CuratorEventType type,
int resultCode,
String path,
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkBase.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkBase.java
new file mode 100644
index 000000000..1b6c461b2
--- /dev/null
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkBase.java
@@ -0,0 +1,263 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.curator.framework.imps;
+
+import com.google.common.base.Preconditions;
+import org.apache.curator.framework.CuratorFramework;
+import org.apache.curator.framework.WatcherRemoveCuratorFramework;
+import org.apache.curator.framework.api.ACLProvider;
+import org.apache.curator.framework.api.CompressionProvider;
+import org.apache.curator.framework.api.CreateBuilder;
+import org.apache.curator.framework.api.CuratorClosedException;
+import org.apache.curator.framework.api.CuratorEvent;
+import org.apache.curator.framework.api.DeleteBuilder;
+import org.apache.curator.framework.api.ExistsBuilder;
+import org.apache.curator.framework.api.GetACLBuilder;
+import org.apache.curator.framework.api.GetChildrenBuilder;
+import org.apache.curator.framework.api.GetConfigBuilder;
+import org.apache.curator.framework.api.GetDataBuilder;
+import org.apache.curator.framework.api.ReconfigBuilder;
+import org.apache.curator.framework.api.RemoveWatchesBuilder;
+import org.apache.curator.framework.api.SetACLBuilder;
+import org.apache.curator.framework.api.SetDataBuilder;
+import org.apache.curator.framework.api.SyncBuilder;
+import org.apache.curator.framework.api.WatchesBuilder;
+import org.apache.curator.framework.api.transaction.CuratorMultiTransaction;
+import org.apache.curator.framework.api.transaction.CuratorTransaction;
+import org.apache.curator.framework.api.transaction.TransactionOp;
+import org.apache.curator.utils.EnsurePath;
+import org.apache.curator.utils.ZKPaths;
+import org.apache.zookeeper.Watcher;
+import org.apache.zookeeper.ZooKeeper;
+
+/**
+ * This is the base class of all {@link CuratorFramework}s, it is public for
private usages (a.k.a. impls/details package).
+ *
+ * <p>Most internal codes should use {@link CuratorFrameworkBase} instead of
{@link CuratorFrameworkImpl}, so
+ * functionalities could be added additively by overriding methods in {@link
DelegatingCuratorFramework}.
+ *
+ * <p>An instance of {@link CuratorFramework} MUST BE an instance of {@link
CuratorFrameworkBase}.
+ */
+public abstract class CuratorFrameworkBase implements CuratorFramework {
+ abstract NamespaceImpl getNamespaceImpl();
+
+ @Override
+ public final CuratorFramework nonNamespaceView() {
+ return usingNamespace(null);
+ }
+
+ @Override
+ public final String getNamespace() {
+ NamespaceImpl namespace = getNamespaceImpl();
+ String str = namespace.getNamespace();
+ return (str != null) ? str : "";
+ }
+
+ @Deprecated
+ @Override
+ public EnsurePath newNamespaceAwareEnsurePath(String path) {
+ NamespaceImpl namespace = getNamespaceImpl();
+ return namespace.newNamespaceAwareEnsurePath(path);
+ }
+
+ final String unfixForNamespace(String path) {
+ NamespaceImpl namespace = getNamespaceImpl();
+ return namespace.unfixForNamespace(path);
+ }
+
+ final String fixForNamespace(String path) {
+ NamespaceImpl namespace = getNamespaceImpl();
+ return namespace.fixForNamespace(path, false);
+ }
+
+ abstract void validateConnection(Watcher.Event.KeeperState state);
+
+ final String fixForNamespace(String path, boolean isSequential) {
+ NamespaceImpl namespace = getNamespaceImpl();
+ return namespace.fixForNamespace(path, isSequential);
+ }
+
+ protected final void checkState() {
+ CuratorFrameworkState state = getState();
+ switch (state) {
+ case STARTED:
+ return;
+ case STOPPED:
+ throw new CuratorClosedException();
+ default:
+ String msg = String.format("Expected state [%s] was [%s]",
CuratorFrameworkState.STARTED, state);
+ throw new IllegalStateException(msg);
+ }
+ }
+
+ final ZooKeeper getZooKeeper() throws Exception {
+ return getZookeeperClient().getZooKeeper();
+ }
+
+ protected final void internalSync(CuratorFrameworkBase impl, String path,
Object context) {
+ BackgroundOperation<String> operation = new BackgroundSyncImpl(impl,
context);
+ processBackgroundOperation(new OperationAndData(operation, path, null,
null, context, null), null);
+ }
+
+ abstract byte[] getDefaultData();
+
+ abstract CompressionProvider getCompressionProvider();
+
+ abstract ACLProvider getAclProvider();
+
+ abstract boolean useContainerParentsIfAvailable();
+
+ abstract EnsembleTracker getEnsembleTracker();
+
+ abstract NamespaceFacadeCache getNamespaceFacadeCache();
+
+ @Override
+ public CreateBuilder create() {
+ checkState();
+ return new CreateBuilderImpl(this);
+ }
+
+ @Override
+ public DeleteBuilder delete() {
+ checkState();
+ return new DeleteBuilderImpl(this);
+ }
+
+ @Override
+ public ExistsBuilder checkExists() {
+ checkState();
+ return new ExistsBuilderImpl(this);
+ }
+
+ @Override
+ public GetDataBuilder getData() {
+ checkState();
+ return new GetDataBuilderImpl(this);
+ }
+
+ @Override
+ public SetDataBuilder setData() {
+ checkState();
+ return new SetDataBuilderImpl(this);
+ }
+
+ @Override
+ public GetChildrenBuilder getChildren() {
+ checkState();
+ return new GetChildrenBuilderImpl(this);
+ }
+
+ @Override
+ public GetACLBuilder getACL() {
+ checkState();
+ return new GetACLBuilderImpl(this);
+ }
+
+ @Override
+ public SetACLBuilder setACL() {
+ checkState();
+ return new SetACLBuilderImpl(this);
+ }
+
+ @Override
+ public ReconfigBuilder reconfig() {
+ checkState();
+ return new ReconfigBuilderImpl(this);
+ }
+
+ @Override
+ public GetConfigBuilder getConfig() {
+ checkState();
+ return new GetConfigBuilderImpl(this);
+ }
+
+ @Override
+ public CuratorTransaction inTransaction() {
+ checkState();
+ return new CuratorTransactionImpl(this);
+ }
+
+ @Override
+ public CuratorMultiTransaction transaction() {
+ checkState();
+ return new CuratorMultiTransactionImpl(this);
+ }
+
+ @Override
+ public TransactionOp transactionOp() {
+ checkState();
+ return new TransactionOpImpl(this);
+ }
+
+ @Override
+ public void sync(String path, Object context) {
+ checkState();
+
+ path = fixForNamespace(path);
+
+ internalSync(this, path, context);
+ }
+
+ @Override
+ public SyncBuilder sync() {
+ checkState();
+ return new SyncBuilderImpl(this);
+ }
+
+ @Override
+ public final RemoveWatchesBuilder watches() {
+ checkState();
+ return new RemoveWatchesBuilderImpl(this);
+ }
+
+ @Override
+ public final WatchesBuilder watchers() {
+ Preconditions.checkState(
+ getZookeeperCompatibility().hasPersistentWatchers(),
+ "watchers() is not supported in the ZooKeeper library and/or
server being used. Use watches() instead.");
+ checkState();
+ return new WatchesBuilderImpl(this);
+ }
+
+ @Override
+ public final void createContainers(String path) throws Exception {
+
checkExists().creatingParentContainersIfNeeded().forPath(ZKPaths.makePath(path,
"foo"));
+ }
+
+ @Override
+ public final WatcherRemoveCuratorFramework
newWatcherRemoveCuratorFramework() {
+ return new WatcherRemovalFacade(this);
+ }
+
+ WatcherRemovalManager getWatcherRemovalManager() {
+ return null;
+ }
+
+ abstract FailedDeleteManager getFailedDeleteManager();
+
+ abstract FailedRemoveWatchManager getFailedRemoveWatcherManager();
+
+ abstract void logError(String reason, Throwable e);
+
+ abstract <DATA_TYPE> void processBackgroundOperation(
+ OperationAndData<DATA_TYPE> operationAndData, CuratorEvent event);
+
+ abstract <DATA_TYPE> boolean queueOperation(OperationAndData<DATA_TYPE>
operationAndData);
+}
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkImpl.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkImpl.java
index 89f846f4a..0f1680f3e 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkImpl.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkImpl.java
@@ -47,30 +47,12 @@ import org.apache.curator.drivers.OperationTrace;
import org.apache.curator.framework.AuthInfo;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
-import org.apache.curator.framework.WatcherRemoveCuratorFramework;
import org.apache.curator.framework.api.ACLProvider;
import org.apache.curator.framework.api.CompressionProvider;
-import org.apache.curator.framework.api.CreateBuilder;
-import org.apache.curator.framework.api.CuratorClosedException;
import org.apache.curator.framework.api.CuratorEvent;
import org.apache.curator.framework.api.CuratorEventType;
import org.apache.curator.framework.api.CuratorListener;
-import org.apache.curator.framework.api.DeleteBuilder;
-import org.apache.curator.framework.api.ExistsBuilder;
-import org.apache.curator.framework.api.GetACLBuilder;
-import org.apache.curator.framework.api.GetChildrenBuilder;
-import org.apache.curator.framework.api.GetConfigBuilder;
-import org.apache.curator.framework.api.GetDataBuilder;
-import org.apache.curator.framework.api.ReconfigBuilder;
-import org.apache.curator.framework.api.RemoveWatchesBuilder;
-import org.apache.curator.framework.api.SetACLBuilder;
-import org.apache.curator.framework.api.SetDataBuilder;
-import org.apache.curator.framework.api.SyncBuilder;
import org.apache.curator.framework.api.UnhandledErrorListener;
-import org.apache.curator.framework.api.WatchesBuilder;
-import org.apache.curator.framework.api.transaction.CuratorMultiTransaction;
-import org.apache.curator.framework.api.transaction.CuratorTransaction;
-import org.apache.curator.framework.api.transaction.TransactionOp;
import org.apache.curator.framework.listen.Listenable;
import org.apache.curator.framework.listen.StandardListenerManager;
import org.apache.curator.framework.schema.SchemaSet;
@@ -81,7 +63,6 @@ import
org.apache.curator.framework.state.ConnectionStateManager;
import org.apache.curator.utils.DebugUtils;
import org.apache.curator.utils.EnsurePath;
import org.apache.curator.utils.ThreadUtils;
-import org.apache.curator.utils.ZKPaths;
import org.apache.curator.utils.ZookeeperCompatibility;
import org.apache.curator.utils.ZookeeperFactory;
import org.apache.zookeeper.KeeperException;
@@ -93,7 +74,7 @@ import
org.apache.zookeeper.server.quorum.flexible.QuorumVerifier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class CuratorFrameworkImpl implements CuratorFramework {
+public final class CuratorFrameworkImpl extends CuratorFrameworkBase {
private final Logger log = LoggerFactory.getLogger(getClass());
private final CuratorZookeeperClient client;
private final StandardListenerManager<CuratorListener> listeners;
@@ -235,11 +216,6 @@ public class CuratorFrameworkImpl implements
CuratorFramework {
return CompletableFuture.runAsync(runnable, runSafeService);
}
- @Override
- public WatcherRemoveCuratorFramework newWatcherRemoveCuratorFramework() {
- return new WatcherRemovalFacade(this);
- }
-
@Override
public QuorumVerifier getCurrentConfig() {
return (ensembleTracker != null) ? ensembleTracker.getCurrentConfig()
: null;
@@ -273,39 +249,6 @@ public class CuratorFrameworkImpl implements
CuratorFramework {
return threadFactory;
}
- protected CuratorFrameworkImpl(CuratorFrameworkImpl parent) {
- client = parent.client;
- listeners = parent.listeners;
- unhandledErrorListeners = parent.unhandledErrorListeners;
- threadFactory = parent.threadFactory;
- maxCloseWaitMs = parent.maxCloseWaitMs;
- backgroundOperations = parent.backgroundOperations;
- forcedSleepOperations = parent.forcedSleepOperations;
- connectionStateManager = parent.connectionStateManager;
- defaultData = parent.defaultData;
- failedDeleteManager = parent.failedDeleteManager;
- failedRemoveWatcherManager = parent.failedRemoveWatcherManager;
- compressionProvider = parent.compressionProvider;
- compressionEnabled = parent.compressionEnabled;
- aclProvider = parent.aclProvider;
- namespaceFacadeCache = parent.namespaceFacadeCache;
- namespace = parent.namespace;
- state = parent.state;
- authInfos = parent.authInfos;
- useContainerParentsIfAvailable = parent.useContainerParentsIfAvailable;
- connectionStateErrorPolicy = parent.connectionStateErrorPolicy;
- internalConnectionHandler = parent.internalConnectionHandler;
- schemaSet = parent.schemaSet;
- ensembleTracker = parent.ensembleTracker;
- runSafeService = parent.runSafeService;
- zookeeperCompatibility = parent.zookeeperCompatibility;
- }
-
- @Override
- public void createContainers(String path) throws Exception {
-
checkExists().creatingParentContainersIfNeeded().forPath(ZKPaths.makePath(path,
"foo"));
- }
-
@Override
public void clearWatcherReferences(Watcher watcher) {
// NOP
@@ -452,29 +395,8 @@ public class CuratorFrameworkImpl implements
CuratorFramework {
}
}
- @Override
- @Deprecated
- public CuratorFramework nonNamespaceView() {
- return usingNamespace(null);
- }
-
- @Override
- public String getNamespace() {
- String str = namespace.getNamespace();
- return (str != null) ? str : "";
- }
-
- private void checkState() {
- CuratorFrameworkState state = getState();
- switch (state) {
- case STARTED:
- return;
- case STOPPED:
- throw new CuratorClosedException();
- default:
- String msg = String.format("Expected state [%s] was [%s]",
CuratorFrameworkState.STARTED, state);
- throw new IllegalStateException(msg);
- }
+ NamespaceImpl getNamespaceImpl() {
+ return namespace;
}
@Override
@@ -483,84 +405,6 @@ public class CuratorFrameworkImpl implements
CuratorFramework {
return namespaceFacadeCache.get(newNamespace);
}
- @Override
- public CreateBuilder create() {
- checkState();
- return new CreateBuilderImpl(this);
- }
-
- @Override
- public DeleteBuilder delete() {
- checkState();
- return new DeleteBuilderImpl(this);
- }
-
- @Override
- public ExistsBuilder checkExists() {
- checkState();
- return new ExistsBuilderImpl(this);
- }
-
- @Override
- public GetDataBuilder getData() {
- checkState();
- return new GetDataBuilderImpl(this);
- }
-
- @Override
- public SetDataBuilder setData() {
- checkState();
- return new SetDataBuilderImpl(this);
- }
-
- @Override
- public GetChildrenBuilder getChildren() {
- checkState();
- return new GetChildrenBuilderImpl(this);
- }
-
- @Override
- public GetACLBuilder getACL() {
- checkState();
- return new GetACLBuilderImpl(this);
- }
-
- @Override
- public SetACLBuilder setACL() {
- checkState();
- return new SetACLBuilderImpl(this);
- }
-
- @Override
- public ReconfigBuilder reconfig() {
- checkState();
- return new ReconfigBuilderImpl(this);
- }
-
- @Override
- public GetConfigBuilder getConfig() {
- checkState();
- return new GetConfigBuilderImpl(this);
- }
-
- @Override
- public CuratorTransaction inTransaction() {
- checkState();
- return new CuratorTransactionImpl(this);
- }
-
- @Override
- public CuratorMultiTransaction transaction() {
- checkState();
- return new CuratorMultiTransactionImpl(this);
- }
-
- @Override
- public TransactionOp transactionOp() {
- checkState();
- return new TransactionOpImpl(this);
- }
-
@Override
public Listenable<ConnectionStateListener> getConnectionStateListenable() {
return connectionStateManager.getListenable();
@@ -576,41 +420,6 @@ public class CuratorFrameworkImpl implements
CuratorFramework {
return unhandledErrorListeners;
}
- @Override
- public void sync(String path, Object context) {
- checkState();
-
- path = fixForNamespace(path);
-
- internalSync(this, path, context);
- }
-
- @Override
- public SyncBuilder sync() {
- checkState();
- return new SyncBuilderImpl(this);
- }
-
- @Override
- public RemoveWatchesBuilder watches() {
- checkState();
- return new RemoveWatchesBuilderImpl(this);
- }
-
- @Override
- public WatchesBuilder watchers() {
- Preconditions.checkState(
- zookeeperCompatibility.hasPersistentWatchers(),
- "watchers() is not supported in the ZooKeeper library and/or
server being used. Use watches() instead.");
- checkState();
- return new WatchesBuilderImpl(this);
- }
-
- protected void internalSync(CuratorFrameworkImpl impl, String path, Object
context) {
- BackgroundOperation<String> operation = new BackgroundSyncImpl(impl,
context);
- performBackgroundOperation(new OperationAndData<String>(operation,
path, null, null, context, null));
- }
-
@Override
public CuratorZookeeperClient getZookeeperClient() {
return client;
@@ -640,10 +449,12 @@ public class CuratorFrameworkImpl implements
CuratorFramework {
return aclProvider;
}
+ @Override
FailedDeleteManager getFailedDeleteManager() {
return failedDeleteManager;
}
+ @Override
FailedRemoveWatchManager getFailedRemoveWatcherManager() {
return failedRemoveWatcherManager;
}
@@ -652,14 +463,12 @@ public class CuratorFrameworkImpl implements
CuratorFramework {
return client.newRetryLoop();
}
- ZooKeeper getZooKeeper() throws Exception {
- return client.getZooKeeper();
- }
-
+ @Override
CompressionProvider getCompressionProvider() {
return compressionProvider;
}
+ @Override
boolean useContainerParentsIfAvailable() {
return useContainerParentsIfAvailable;
}
@@ -796,6 +605,7 @@ public class CuratorFrameworkImpl implements
CuratorFramework {
return false;
}
+ @Override
void logError(String reason, final Throwable e) {
if ((reason == null) || (reason.length() == 0)) {
reason = "n/a";
@@ -821,18 +631,6 @@ public class CuratorFrameworkImpl implements
CuratorFramework {
}
}
- String unfixForNamespace(String path) {
- return namespace.unfixForNamespace(path);
- }
-
- String fixForNamespace(String path) {
- return namespace.fixForNamespace(path, false);
- }
-
- String fixForNamespace(String path, boolean isSequential) {
- return namespace.fixForNamespace(path, isSequential);
- }
-
byte[] getDefaultData() {
return defaultData;
}
@@ -866,34 +664,6 @@ public class CuratorFrameworkImpl implements
CuratorFramework {
}
}
- Watcher.Event.KeeperState codeToState(KeeperException.Code code) {
- switch (code) {
- case AUTHFAILED:
- case NOAUTH: {
- return Watcher.Event.KeeperState.AuthFailed;
- }
-
- case CONNECTIONLOSS:
- case OPERATIONTIMEOUT: {
- return Watcher.Event.KeeperState.Disconnected;
- }
-
- case SESSIONEXPIRED: {
- return Watcher.Event.KeeperState.Expired;
- }
-
- case OK:
- case SESSIONMOVED: {
- return Watcher.Event.KeeperState.SyncConnected;
- }
- }
- return Watcher.Event.KeeperState.fromInt(-1);
- }
-
- WatcherRemovalManager getWatcherRemovalManager() {
- return null;
- }
-
boolean setToSuspended() {
return connectionStateManager.setToSuspended();
}
@@ -902,6 +672,7 @@ public class CuratorFrameworkImpl implements
CuratorFramework {
connectionStateManager.addStateChange(newConnectionState);
}
+ @Override
EnsembleTracker getEnsembleTracker() {
return ensembleTracker;
}
@@ -959,7 +730,7 @@ public class CuratorFrameworkImpl implements
CuratorFramework {
}
}
- validateConnection(codeToState(code));
+ validateConnection(FrameworkUtils.codeToState(code));
logError("Background operation retry gave up", e);
}
return doRetry;
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorMultiTransactionImpl.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorMultiTransactionImpl.java
index 9e0bd2265..30e1d7b51 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorMultiTransactionImpl.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorMultiTransactionImpl.java
@@ -50,14 +50,14 @@ public class CuratorMultiTransactionImpl
CuratorMultiTransactionMain,
BackgroundOperation<CuratorMultiTransactionRecord>,
ErrorListenerMultiTransactionMain {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private Backgrounding backgrounding = new Backgrounding();
- public CuratorMultiTransactionImpl(CuratorFrameworkImpl client) {
+ public CuratorMultiTransactionImpl(CuratorFrameworkBase client) {
this.client = client;
}
- public CuratorMultiTransactionImpl(CuratorFrameworkImpl client,
Backgrounding backgrounding) {
+ public CuratorMultiTransactionImpl(CuratorFrameworkBase client,
Backgrounding backgrounding) {
this.client = client;
this.backgrounding = backgrounding;
}
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorTempFrameworkImpl.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorTempFrameworkImpl.java
index fff6a4024..6c1a36041 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorTempFrameworkImpl.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorTempFrameworkImpl.java
@@ -36,7 +36,7 @@ public class CuratorTempFrameworkImpl implements
CuratorTempFramework {
private final long inactiveThresholdMs;
// guarded by sync
- private CuratorFrameworkImpl client;
+ private CuratorFrameworkBase client;
// guarded by sync
private ScheduledExecutorService cleanup;
@@ -67,7 +67,7 @@ public class CuratorTempFrameworkImpl implements
CuratorTempFramework {
}
@VisibleForTesting
- synchronized CuratorFrameworkImpl getClient() {
+ synchronized CuratorFrameworkBase getClient() {
return client;
}
@@ -83,7 +83,7 @@ public class CuratorTempFrameworkImpl implements
CuratorTempFramework {
private synchronized void openConnectionIfNeeded() throws Exception {
if (client == null) {
- client = (CuratorFrameworkImpl) factory.build(); // cast is safe -
we control both sides of this
+ client = (CuratorFrameworkBase) factory.build(); // cast is safe -
we control both sides of this
client.start();
}
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorTransactionImpl.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorTransactionImpl.java
index 19a4f2175..cdc4e1a1e 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorTransactionImpl.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorTransactionImpl.java
@@ -35,12 +35,12 @@ import org.apache.zookeeper.data.Stat;
@SuppressWarnings("deprecation")
class CuratorTransactionImpl implements CuratorTransaction,
CuratorTransactionBridge, CuratorTransactionFinal {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private final CuratorMultiTransactionRecord transaction;
private boolean isCommitted = false;
- CuratorTransactionImpl(CuratorFrameworkImpl client) {
+ CuratorTransactionImpl(CuratorFrameworkBase client) {
this.client = client;
transaction = new CuratorMultiTransactionRecord();
}
@@ -83,7 +83,7 @@ class CuratorTransactionImpl implements CuratorTransaction,
CuratorTransactionBr
}
static <T> TransactionCheckBuilder<T> makeTransactionCheckBuilder(
- final CuratorFrameworkImpl client, final T context, final
CuratorMultiTransactionRecord transaction) {
+ final CuratorFrameworkBase client, final T context, final
CuratorMultiTransactionRecord transaction) {
return new TransactionCheckBuilder<T>() {
private int version = -1;
@@ -125,7 +125,7 @@ class CuratorTransactionImpl implements CuratorTransaction,
CuratorTransactionBr
}
static List<CuratorTransactionResult> wrapResults(
- CuratorFrameworkImpl client, List<OpResult> resultList,
CuratorMultiTransactionRecord transaction) {
+ CuratorFrameworkBase client, List<OpResult> resultList,
CuratorMultiTransactionRecord transaction) {
ImmutableList.Builder<CuratorTransactionResult> builder =
ImmutableList.builder();
for (int i = 0; i < resultList.size(); ++i) {
OpResult opResult = resultList.get(i);
@@ -138,7 +138,7 @@ class CuratorTransactionImpl implements CuratorTransaction,
CuratorTransactionBr
}
static CuratorTransactionResult makeCuratorResult(
- CuratorFrameworkImpl client, OpResult opResult, TypeAndPath
metadata) {
+ CuratorFrameworkBase client, OpResult opResult, TypeAndPath
metadata) {
String resultPath = null;
Stat resultStat = null;
int error = 0;
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/DelegatingCuratorFramework.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/DelegatingCuratorFramework.java
new file mode 100644
index 000000000..5850242bf
--- /dev/null
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/DelegatingCuratorFramework.java
@@ -0,0 +1,206 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.curator.framework.imps;
+
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.TimeUnit;
+import org.apache.curator.CuratorZookeeperClient;
+import org.apache.curator.framework.CuratorFramework;
+import org.apache.curator.framework.api.ACLProvider;
+import org.apache.curator.framework.api.CompressionProvider;
+import org.apache.curator.framework.api.CuratorEvent;
+import org.apache.curator.framework.api.CuratorListener;
+import org.apache.curator.framework.api.UnhandledErrorListener;
+import org.apache.curator.framework.listen.Listenable;
+import org.apache.curator.framework.schema.SchemaSet;
+import org.apache.curator.framework.state.ConnectionStateErrorPolicy;
+import org.apache.curator.framework.state.ConnectionStateListener;
+import org.apache.curator.utils.ZookeeperCompatibility;
+import org.apache.zookeeper.Watcher;
+import org.apache.zookeeper.server.quorum.flexible.QuorumVerifier;
+
+/**
+ * Delegates methods to shadowed {@link CuratorFrameworkBase} so subclasses
can override only methods that need
+ * additional cares.
+ */
+abstract class DelegatingCuratorFramework extends CuratorFrameworkBase {
+ protected final CuratorFrameworkBase client;
+
+ public DelegatingCuratorFramework(CuratorFrameworkBase client) {
+ this.client = client;
+ }
+
+ @Override
+ public CuratorFrameworkState getState() {
+ return client.getState();
+ }
+
+ @Override
+ @Deprecated
+ public boolean isStarted() {
+ return client.isStarted();
+ }
+
+ @Override
+ public Listenable<ConnectionStateListener> getConnectionStateListenable() {
+ return client.getConnectionStateListenable();
+ }
+
+ @Override
+ public Listenable<CuratorListener> getCuratorListenable() {
+ return client.getCuratorListenable();
+ }
+
+ @Override
+ public Listenable<UnhandledErrorListener> getUnhandledErrorListenable() {
+ return client.getUnhandledErrorListenable();
+ }
+
+ @Override
+ public CuratorFramework usingNamespace(String newNamespace) {
+ return client.usingNamespace(newNamespace);
+ }
+
+ @Override
+ public CuratorZookeeperClient getZookeeperClient() {
+ return client.getZookeeperClient();
+ }
+
+ @Override
+ public ZookeeperCompatibility getZookeeperCompatibility() {
+ return client.getZookeeperCompatibility();
+ }
+
+ @Override
+ @Deprecated
+ public void clearWatcherReferences(Watcher watcher) {
+ client.clearWatcherReferences(watcher);
+ }
+
+ @Override
+ public boolean blockUntilConnected(int maxWaitTime, TimeUnit units) throws
InterruptedException {
+ return client.blockUntilConnected(maxWaitTime, units);
+ }
+
+ @Override
+ public void blockUntilConnected() throws InterruptedException {
+ client.blockUntilConnected();
+ }
+
+ @Override
+ public ConnectionStateErrorPolicy getConnectionStateErrorPolicy() {
+ return client.getConnectionStateErrorPolicy();
+ }
+
+ @Override
+ public QuorumVerifier getCurrentConfig() {
+ return client.getCurrentConfig();
+ }
+
+ @Override
+ public SchemaSet getSchemaSet() {
+ return client.getSchemaSet();
+ }
+
+ @Override
+ public CompletableFuture<Void> postSafeNotify(Object monitorHolder) {
+ return client.postSafeNotify(monitorHolder);
+ }
+
+ @Override
+ public CompletableFuture<Void> runSafe(Runnable runnable) {
+ return client.runSafe(runnable);
+ }
+
+ @Override
+ NamespaceImpl getNamespaceImpl() {
+ return client.getNamespaceImpl();
+ }
+
+ @Override
+ void validateConnection(Watcher.Event.KeeperState state) {
+ client.validateConnection(state);
+ }
+
+ @Override
+ WatcherRemovalManager getWatcherRemovalManager() {
+ return client.getWatcherRemovalManager();
+ }
+
+ @Override
+ FailedDeleteManager getFailedDeleteManager() {
+ return client.getFailedDeleteManager();
+ }
+
+ @Override
+ FailedRemoveWatchManager getFailedRemoveWatcherManager() {
+ return client.getFailedRemoveWatcherManager();
+ }
+
+ @Override
+ public void logError(String reason, Throwable e) {
+ client.logError(reason, e);
+ }
+
+ @Override
+ byte[] getDefaultData() {
+ return client.getDefaultData();
+ }
+
+ @Override
+ CompressionProvider getCompressionProvider() {
+ return client.getCompressionProvider();
+ }
+
+ @Override
+ public boolean compressionEnabled() {
+ return client.compressionEnabled();
+ }
+
+ @Override
+ ACLProvider getAclProvider() {
+ return client.getAclProvider();
+ }
+
+ @Override
+ boolean useContainerParentsIfAvailable() {
+ return client.useContainerParentsIfAvailable();
+ }
+
+ @Override
+ EnsembleTracker getEnsembleTracker() {
+ return client.getEnsembleTracker();
+ }
+
+ @Override
+ NamespaceFacadeCache getNamespaceFacadeCache() {
+ return client.getNamespaceFacadeCache();
+ }
+
+ @Override
+ <DATA_TYPE> void processBackgroundOperation(OperationAndData<DATA_TYPE>
operationAndData, CuratorEvent event) {
+ client.processBackgroundOperation(operationAndData, event);
+ }
+
+ @Override
+ <DATA_TYPE> boolean queueOperation(OperationAndData<DATA_TYPE>
operationAndData) {
+ return client.queueOperation(operationAndData);
+ }
+}
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/DeleteBuilderImpl.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/DeleteBuilderImpl.java
index 958879f55..8f17fab13 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/DeleteBuilderImpl.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/DeleteBuilderImpl.java
@@ -34,7 +34,7 @@ import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.Op;
public class DeleteBuilderImpl implements DeleteBuilder,
BackgroundOperation<String>, ErrorListenerPathable<Void> {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private int version;
private Backgrounding backgrounding;
private boolean deletingChildrenIfNeeded;
@@ -47,7 +47,7 @@ public class DeleteBuilderImpl implements DeleteBuilder,
BackgroundOperation<Str
@VisibleForTesting
boolean failBeforeNextDeleteForTesting = false;
- DeleteBuilderImpl(CuratorFrameworkImpl client) {
+ DeleteBuilderImpl(CuratorFrameworkBase client) {
this.client = client;
version = -1;
backgrounding = new Backgrounding();
@@ -57,7 +57,7 @@ public class DeleteBuilderImpl implements DeleteBuilder,
BackgroundOperation<Str
}
public DeleteBuilderImpl(
- CuratorFrameworkImpl client,
+ CuratorFrameworkBase client,
int version,
Backgrounding backgrounding,
boolean deletingChildrenIfNeeded,
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/ExistsBuilderImpl.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/ExistsBuilderImpl.java
index 68494c488..3df1c4ddf 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/ExistsBuilderImpl.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/ExistsBuilderImpl.java
@@ -34,19 +34,19 @@ import org.apache.zookeeper.data.Stat;
public class ExistsBuilderImpl
implements ExistsBuilder, BackgroundOperation<String>,
ErrorListenerPathable<Stat>, ACLableExistBuilderMain {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private Backgrounding backgrounding;
private Watching watching;
private boolean createParentsIfNeeded;
private boolean createParentContainersIfNeeded;
private ACLing acling;
- ExistsBuilderImpl(CuratorFrameworkImpl client) {
+ ExistsBuilderImpl(CuratorFrameworkBase client) {
this(client, new Backgrounding(), null, false, false);
}
public ExistsBuilderImpl(
- CuratorFrameworkImpl client,
+ CuratorFrameworkBase client,
Backgrounding backgrounding,
Watcher watcher,
boolean createParentsIfNeeded,
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/FindAndDeleteProtectedNodeInBackground.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/FindAndDeleteProtectedNodeInBackground.java
index 36814db36..e3dd3dbbc 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/FindAndDeleteProtectedNodeInBackground.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/FindAndDeleteProtectedNodeInBackground.java
@@ -34,12 +34,12 @@ import org.slf4j.LoggerFactory;
class FindAndDeleteProtectedNodeInBackground implements
BackgroundOperation<Void> {
private final Logger log = LoggerFactory.getLogger(getClass());
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private final String namespaceAdjustedParentPath;
private final String protectedId;
FindAndDeleteProtectedNodeInBackground(
- CuratorFrameworkImpl client, String namespaceAdjustedParentPath,
String protectedId) {
+ CuratorFrameworkBase client, String namespaceAdjustedParentPath,
String protectedId) {
this.client = client;
this.namespaceAdjustedParentPath = namespaceAdjustedParentPath;
this.protectedId = protectedId;
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceWatchedEvent.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/FrameworkUtils.java
similarity index 52%
copy from
curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceWatchedEvent.java
copy to
curator-framework/src/main/java/org/apache/curator/framework/imps/FrameworkUtils.java
index 4bff03f35..7b079a49a 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceWatchedEvent.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/FrameworkUtils.java
@@ -19,10 +19,31 @@
package org.apache.curator.framework.imps;
-import org.apache.zookeeper.WatchedEvent;
+import org.apache.zookeeper.KeeperException;
+import org.apache.zookeeper.Watcher;
-class NamespaceWatchedEvent extends WatchedEvent {
- NamespaceWatchedEvent(CuratorFrameworkImpl client, WatchedEvent event) {
- super(event.getType(), event.getState(),
client.unfixForNamespace(event.getPath()));
+class FrameworkUtils {
+ static Watcher.Event.KeeperState codeToState(KeeperException.Code code) {
+ switch (code) {
+ case AUTHFAILED:
+ case NOAUTH: {
+ return Watcher.Event.KeeperState.AuthFailed;
+ }
+
+ case CONNECTIONLOSS:
+ case OPERATIONTIMEOUT: {
+ return Watcher.Event.KeeperState.Disconnected;
+ }
+
+ case SESSIONEXPIRED: {
+ return Watcher.Event.KeeperState.Expired;
+ }
+
+ case OK:
+ case SESSIONMOVED: {
+ return Watcher.Event.KeeperState.SyncConnected;
+ }
+ }
+ return Watcher.Event.KeeperState.fromInt(-1);
}
}
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/GetACLBuilderImpl.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/GetACLBuilderImpl.java
index 2b83ace80..9978e1368 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/GetACLBuilderImpl.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/GetACLBuilderImpl.java
@@ -35,18 +35,18 @@ import org.apache.zookeeper.data.ACL;
import org.apache.zookeeper.data.Stat;
public class GetACLBuilderImpl implements GetACLBuilder,
BackgroundOperation<String>, ErrorListenerPathable<List<ACL>> {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private Backgrounding backgrounding;
private Stat responseStat;
- GetACLBuilderImpl(CuratorFrameworkImpl client) {
+ GetACLBuilderImpl(CuratorFrameworkBase client) {
this.client = client;
backgrounding = new Backgrounding();
responseStat = new Stat();
}
- public GetACLBuilderImpl(CuratorFrameworkImpl client, Backgrounding
backgrounding, Stat responseStat) {
+ public GetACLBuilderImpl(CuratorFrameworkBase client, Backgrounding
backgrounding, Stat responseStat) {
this.client = client;
this.backgrounding = backgrounding;
this.responseStat = responseStat;
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/GetChildrenBuilderImpl.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/GetChildrenBuilderImpl.java
index ddf975cab..c8ed80bc6 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/GetChildrenBuilderImpl.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/GetChildrenBuilderImpl.java
@@ -41,12 +41,12 @@ import org.apache.zookeeper.data.Stat;
public class GetChildrenBuilderImpl
implements GetChildrenBuilder, BackgroundOperation<String>,
ErrorListenerPathable<List<String>> {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private Watching watching;
private Backgrounding backgrounding;
private Stat responseStat;
- GetChildrenBuilderImpl(CuratorFrameworkImpl client) {
+ GetChildrenBuilderImpl(CuratorFrameworkBase client) {
this.client = client;
watching = new Watching(client);
backgrounding = new Backgrounding();
@@ -54,7 +54,7 @@ public class GetChildrenBuilderImpl
}
public GetChildrenBuilderImpl(
- CuratorFrameworkImpl client, Watcher watcher, Backgrounding
backgrounding, Stat responseStat) {
+ CuratorFrameworkBase client, Watcher watcher, Backgrounding
backgrounding, Stat responseStat) {
this.client = client;
this.watching = new Watching(client, watcher);
this.backgrounding = backgrounding;
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/GetConfigBuilderImpl.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/GetConfigBuilderImpl.java
index af215cbad..a299eb189 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/GetConfigBuilderImpl.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/GetConfigBuilderImpl.java
@@ -32,18 +32,18 @@ import org.apache.zookeeper.data.Stat;
public class GetConfigBuilderImpl
implements GetConfigBuilder, BackgroundOperation<Void>,
ErrorListenerEnsembleable<byte[]> {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private Backgrounding backgrounding;
private Watching watching;
private Stat stat;
- public GetConfigBuilderImpl(CuratorFrameworkImpl client) {
+ public GetConfigBuilderImpl(CuratorFrameworkBase client) {
this(client, new Backgrounding(), null, null);
}
- public GetConfigBuilderImpl(CuratorFrameworkImpl client, Backgrounding
backgrounding, Watcher watcher, Stat stat) {
- this.client = (CuratorFrameworkImpl) client.usingNamespace(null);
+ public GetConfigBuilderImpl(CuratorFrameworkBase client, Backgrounding
backgrounding, Watcher watcher, Stat stat) {
+ this.client = (CuratorFrameworkBase) client.usingNamespace(null);
this.backgrounding = backgrounding;
this.watching = new Watching(this.client, watcher);
this.stat = stat;
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/GetDataBuilderImpl.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/GetDataBuilderImpl.java
index df6d15cbd..0ad9718b0 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/GetDataBuilderImpl.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/GetDataBuilderImpl.java
@@ -35,13 +35,13 @@ import org.slf4j.LoggerFactory;
public class GetDataBuilderImpl implements GetDataBuilder,
BackgroundOperation<String>, ErrorListenerPathable<byte[]> {
private final Logger log = LoggerFactory.getLogger(getClass());
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private Stat responseStat;
private Watching watching;
private Backgrounding backgrounding;
private boolean decompress;
- GetDataBuilderImpl(CuratorFrameworkImpl client) {
+ GetDataBuilderImpl(CuratorFrameworkBase client) {
this.client = client;
responseStat = null;
watching = new Watching(client);
@@ -50,7 +50,7 @@ public class GetDataBuilderImpl implements GetDataBuilder,
BackgroundOperation<S
}
public GetDataBuilderImpl(
- CuratorFrameworkImpl client,
+ CuratorFrameworkBase client,
Stat responseStat,
Watcher watcher,
Backgrounding backgrounding,
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceFacade.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceFacade.java
index 1887a86b7..62af8d2fb 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceFacade.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceFacade.java
@@ -19,43 +19,18 @@
package org.apache.curator.framework.imps;
-import org.apache.curator.CuratorZookeeperClient;
-import org.apache.curator.RetryLoop;
-import org.apache.curator.framework.CuratorFramework;
-import org.apache.curator.framework.api.CuratorEvent;
import org.apache.curator.framework.api.CuratorListener;
-import org.apache.curator.framework.api.UnhandledErrorListener;
import org.apache.curator.framework.listen.Listenable;
-import org.apache.curator.framework.state.ConnectionStateListener;
-import org.apache.curator.utils.EnsurePath;
-import org.apache.zookeeper.ZooKeeper;
-class NamespaceFacade extends CuratorFrameworkImpl {
- private final CuratorFrameworkImpl client;
+class NamespaceFacade extends DelegatingCuratorFramework {
private final NamespaceImpl namespace;
private final FailedDeleteManager failedDeleteManager = new
FailedDeleteManager(this);
NamespaceFacade(CuratorFrameworkImpl client, String namespace) {
super(client);
- this.client = client;
this.namespace = new NamespaceImpl(client, namespace);
}
- @Override
- public CuratorFramework nonNamespaceView() {
- return usingNamespace(null);
- }
-
- @Override
- public CuratorFramework usingNamespace(String newNamespace) {
- return client.getNamespaceFacadeCache().get(newNamespace);
- }
-
- @Override
- public String getNamespace() {
- return namespace.getNamespace();
- }
-
@Override
public void start() {
throw new UnsupportedOperationException();
@@ -67,8 +42,8 @@ class NamespaceFacade extends CuratorFrameworkImpl {
}
@Override
- public Listenable<ConnectionStateListener> getConnectionStateListenable() {
- return client.getConnectionStateListenable();
+ NamespaceImpl getNamespaceImpl() {
+ return namespace;
}
@Override
@@ -77,61 +52,6 @@ class NamespaceFacade extends CuratorFrameworkImpl {
"getCuratorListenable() is only available from a
non-namespaced CuratorFramework instance");
}
- @Override
- public Listenable<UnhandledErrorListener> getUnhandledErrorListenable() {
- return client.getUnhandledErrorListenable();
- }
-
- @Override
- public void sync(String path, Object context) {
- internalSync(this, path, context);
- }
-
- @Override
- public CuratorZookeeperClient getZookeeperClient() {
- return client.getZookeeperClient();
- }
-
- @Override
- RetryLoop newRetryLoop() {
- return client.newRetryLoop();
- }
-
- @Override
- ZooKeeper getZooKeeper() throws Exception {
- return client.getZooKeeper();
- }
-
- @Override
- <DATA_TYPE> void processBackgroundOperation(OperationAndData<DATA_TYPE>
operationAndData, CuratorEvent event) {
- client.processBackgroundOperation(operationAndData, event);
- }
-
- @Override
- void logError(String reason, Throwable e) {
- client.logError(reason, e);
- }
-
- @Override
- String unfixForNamespace(String path) {
- return namespace.unfixForNamespace(path);
- }
-
- @Override
- String fixForNamespace(String path) {
- return namespace.fixForNamespace(path, false);
- }
-
- @Override
- String fixForNamespace(String path, boolean isSequential) {
- return namespace.fixForNamespace(path, isSequential);
- }
-
- @Override
- public EnsurePath newNamespaceAwareEnsurePath(String path) {
- return namespace.newNamespaceAwareEnsurePath(path);
- }
-
@Override
FailedDeleteManager getFailedDeleteManager() {
return failedDeleteManager;
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceWatchedEvent.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceWatchedEvent.java
index 4bff03f35..724e49d07 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceWatchedEvent.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceWatchedEvent.java
@@ -22,7 +22,7 @@ package org.apache.curator.framework.imps;
import org.apache.zookeeper.WatchedEvent;
class NamespaceWatchedEvent extends WatchedEvent {
- NamespaceWatchedEvent(CuratorFrameworkImpl client, WatchedEvent event) {
+ NamespaceWatchedEvent(CuratorFrameworkBase client, WatchedEvent event) {
super(event.getType(), event.getState(),
client.unfixForNamespace(event.getPath()));
}
}
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceWatcher.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceWatcher.java
index c3f0d8e29..76520a4ef 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceWatcher.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceWatcher.java
@@ -28,19 +28,19 @@ import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
class NamespaceWatcher implements Watcher, Closeable {
- private volatile CuratorFrameworkImpl client;
+ private volatile CuratorFrameworkBase client;
private volatile Watcher actualWatcher;
private final String unfixedPath;
private volatile CuratorWatcher curatorWatcher;
- NamespaceWatcher(CuratorFrameworkImpl client, Watcher actualWatcher,
String unfixedPath) {
+ NamespaceWatcher(CuratorFrameworkBase client, Watcher actualWatcher,
String unfixedPath) {
this.client = client;
this.actualWatcher = actualWatcher;
this.unfixedPath = Preconditions.checkNotNull(unfixedPath,
"unfixedPath cannot be null");
this.curatorWatcher = null;
}
- NamespaceWatcher(CuratorFrameworkImpl client, CuratorWatcher
curatorWatcher, String unfixedPath) {
+ NamespaceWatcher(CuratorFrameworkBase client, CuratorWatcher
curatorWatcher, String unfixedPath) {
this.client = client;
this.actualWatcher = null;
this.curatorWatcher = curatorWatcher;
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/ProtectedMode.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/ProtectedMode.java
index 08a006bfa..8a7c27e7e 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/ProtectedMode.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/ProtectedMode.java
@@ -67,7 +67,7 @@ class ProtectedMode {
* @param createMode create mode in use
* @throws Exception errors
*/
- void checkSetSessionId(CuratorFrameworkImpl client, CreateMode createMode)
throws Exception {
+ void checkSetSessionId(CuratorFrameworkBase client, CreateMode createMode)
throws Exception {
if (doProtected() && (sessionId == 0) && createMode.isEphemeral()) {
sessionId = client.getZooKeeper().getSessionId();
}
@@ -82,7 +82,7 @@ class ProtectedMode {
* @return either the found node or null - client should always use the
returned value
* @throws Exception errors
*/
- String validateFoundNode(CuratorFrameworkImpl client, CreateMode
createMode, String foundNode) throws Exception {
+ String validateFoundNode(CuratorFrameworkBase client, CreateMode
createMode, String foundNode) throws Exception {
if (doProtected() && createMode.isEphemeral()) {
long clientSessionId = client.getZooKeeper().getSessionId();
if (this.sessionId != clientSessionId) {
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/ReconfigBuilderImpl.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/ReconfigBuilderImpl.java
index aed240c4d..577cde5e7 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/ReconfigBuilderImpl.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/ReconfigBuilderImpl.java
@@ -34,7 +34,7 @@ import org.apache.zookeeper.server.DataTree;
public class ReconfigBuilderImpl
implements ReconfigBuilder, BackgroundOperation<Void>,
ErrorListenerReconfigBuilderMain {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private Backgrounding backgrounding = new Backgrounding();
private Stat responseStat;
@@ -43,12 +43,12 @@ public class ReconfigBuilderImpl
private List<String> joining;
private List<String> leaving;
- public ReconfigBuilderImpl(CuratorFrameworkImpl client) {
+ public ReconfigBuilderImpl(CuratorFrameworkBase client) {
this.client = client;
}
public ReconfigBuilderImpl(
- CuratorFrameworkImpl client,
+ CuratorFrameworkBase client,
Backgrounding backgrounding,
Stat responseStat,
long fromConfig,
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/RemoveWatchesBuilderImpl.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/RemoveWatchesBuilderImpl.java
index e0c7de85e..f346a2c3a 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/RemoveWatchesBuilderImpl.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/RemoveWatchesBuilderImpl.java
@@ -37,7 +37,7 @@ public class RemoveWatchesBuilderImpl
RemoveWatchesLocal,
BackgroundOperation<String>,
ErrorListenerPathable<Void> {
- private CuratorFrameworkImpl client;
+ private CuratorFrameworkBase client;
private Watcher watcher;
private CuratorWatcher curatorWatcher;
private WatcherType watcherType;
@@ -46,7 +46,7 @@ public class RemoveWatchesBuilderImpl
private boolean quietly;
private Backgrounding backgrounding;
- public RemoveWatchesBuilderImpl(CuratorFrameworkImpl client) {
+ public RemoveWatchesBuilderImpl(CuratorFrameworkBase client) {
this.client = client;
this.watcher = null;
this.curatorWatcher = null;
@@ -58,7 +58,7 @@ public class RemoveWatchesBuilderImpl
}
public RemoveWatchesBuilderImpl(
- CuratorFrameworkImpl client,
+ CuratorFrameworkBase client,
Watcher watcher,
CuratorWatcher curatorWatcher,
WatcherType watcherType,
@@ -191,7 +191,7 @@ public class RemoveWatchesBuilderImpl
return null;
}
- protected CuratorFrameworkImpl getClient() {
+ protected CuratorFrameworkBase getClient() {
return client;
}
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/SetACLBuilderImpl.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/SetACLBuilderImpl.java
index a3e9e3677..0142de2c0 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/SetACLBuilderImpl.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/SetACLBuilderImpl.java
@@ -35,20 +35,20 @@ import org.apache.zookeeper.data.Stat;
public class SetACLBuilderImpl
implements SetACLBuilder, BackgroundPathable<Stat>,
BackgroundOperation<String>, ErrorListenerPathable<Stat> {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private ACLing acling;
private Backgrounding backgrounding;
private int version;
- SetACLBuilderImpl(CuratorFrameworkImpl client) {
+ SetACLBuilderImpl(CuratorFrameworkBase client) {
this.client = client;
backgrounding = new Backgrounding();
acling = new ACLing(client.getAclProvider());
version = -1;
}
- public SetACLBuilderImpl(CuratorFrameworkImpl client, Backgrounding
backgrounding, List<ACL> aclList, int version) {
+ public SetACLBuilderImpl(CuratorFrameworkBase client, Backgrounding
backgrounding, List<ACL> aclList, int version) {
this.client = client;
this.acling = new ACLing(client.getAclProvider(), aclList);
this.version = version;
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/SetDataBuilderImpl.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/SetDataBuilderImpl.java
index 98b21e33a..38b011ceb 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/SetDataBuilderImpl.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/SetDataBuilderImpl.java
@@ -35,7 +35,7 @@ import org.apache.zookeeper.data.Stat;
public class SetDataBuilderImpl
implements SetDataBuilder, BackgroundOperation<PathAndBytes>,
ErrorListenerPathAndBytesable<Stat> {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private Backgrounding backgrounding;
private int version;
private boolean compress;
@@ -50,14 +50,14 @@ public class SetDataBuilderImpl
@VisibleForTesting
boolean failNextIdempotentCheckForTesting = false;
- SetDataBuilderImpl(CuratorFrameworkImpl client) {
+ SetDataBuilderImpl(CuratorFrameworkBase client) {
this.client = client;
backgrounding = new Backgrounding();
version = -1;
compress = client.compressionEnabled();
}
- public SetDataBuilderImpl(CuratorFrameworkImpl client, Backgrounding
backgrounding, int version, boolean compress) {
+ public SetDataBuilderImpl(CuratorFrameworkBase client, Backgrounding
backgrounding, int version, boolean compress) {
this.client = client;
this.backgrounding = backgrounding;
this.version = version;
@@ -220,7 +220,7 @@ public class SetDataBuilderImpl
}
private void backgroundCheckIdempotent(
- final CuratorFrameworkImpl client,
+ final CuratorFrameworkBase client,
final OperationAndData<PathAndBytes> mainOperationAndData,
final String path,
final Backgrounding backgrounding) {
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/SyncBuilderImpl.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/SyncBuilderImpl.java
index d3c3a3a5e..92059229b 100755
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/SyncBuilderImpl.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/SyncBuilderImpl.java
@@ -31,15 +31,15 @@ import
org.apache.curator.framework.api.UnhandledErrorListener;
import org.apache.zookeeper.AsyncCallback;
public class SyncBuilderImpl implements SyncBuilder,
BackgroundOperation<String>, ErrorListenerPathable<Void> {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private Backgrounding backgrounding = new Backgrounding();
- public SyncBuilderImpl(CuratorFrameworkImpl client) {
+ public SyncBuilderImpl(CuratorFrameworkBase client) {
// To change body of created methods use File | Settings | File
Templates.
this.client = client;
}
- public SyncBuilderImpl(CuratorFrameworkImpl client, Backgrounding
backgrounding) {
+ public SyncBuilderImpl(CuratorFrameworkBase client, Backgrounding
backgrounding) {
this.client = client;
this.backgrounding = backgrounding;
}
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/TempGetDataBuilderImpl.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/TempGetDataBuilderImpl.java
index fabf255dd..92cc79985 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/TempGetDataBuilderImpl.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/TempGetDataBuilderImpl.java
@@ -28,11 +28,11 @@ import org.apache.curator.framework.api.TempGetDataBuilder;
import org.apache.zookeeper.data.Stat;
class TempGetDataBuilderImpl implements TempGetDataBuilder {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private Stat responseStat;
private boolean decompress;
- TempGetDataBuilderImpl(CuratorFrameworkImpl client) {
+ TempGetDataBuilderImpl(CuratorFrameworkBase client) {
this.client = client;
responseStat = null;
decompress = client.compressionEnabled();
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/TransactionOpImpl.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/TransactionOpImpl.java
index 41f7949c8..42ca0834b 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/TransactionOpImpl.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/TransactionOpImpl.java
@@ -27,9 +27,9 @@ import
org.apache.curator.framework.api.transaction.TransactionOp;
import org.apache.curator.framework.api.transaction.TransactionSetDataBuilder;
public class TransactionOpImpl implements TransactionOp {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
- public TransactionOpImpl(CuratorFrameworkImpl client) {
+ public TransactionOpImpl(CuratorFrameworkBase client) {
this.client = client;
}
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/WatcherRemovalFacade.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/WatcherRemovalFacade.java
index 01e96f5e3..b10099a36 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/WatcherRemovalFacade.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/WatcherRemovalFacade.java
@@ -19,45 +19,34 @@
package org.apache.curator.framework.imps;
-import org.apache.curator.CuratorZookeeperClient;
-import org.apache.curator.RetryLoop;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.WatcherRemoveCuratorFramework;
-import org.apache.curator.framework.api.CuratorEvent;
-import org.apache.curator.framework.api.CuratorListener;
-import org.apache.curator.framework.api.UnhandledErrorListener;
-import org.apache.curator.framework.listen.Listenable;
-import org.apache.curator.framework.state.ConnectionStateListener;
-import org.apache.curator.utils.EnsurePath;
-import org.apache.zookeeper.ZooKeeper;
-import org.apache.zookeeper.server.quorum.flexible.QuorumVerifier;
-class WatcherRemovalFacade extends CuratorFrameworkImpl implements
WatcherRemoveCuratorFramework {
- private final CuratorFrameworkImpl client;
+class WatcherRemovalFacade extends DelegatingCuratorFramework implements
WatcherRemoveCuratorFramework {
private final WatcherRemovalManager removalManager;
- WatcherRemovalFacade(CuratorFrameworkImpl client) {
- this(client, new WatcherRemovalManager(client));
+ WatcherRemovalFacade(CuratorFrameworkBase client) {
+ super(client);
+ removalManager = new WatcherRemovalManager(client);
}
- private WatcherRemovalFacade(CuratorFrameworkImpl client,
WatcherRemovalManager removalManager) {
+ private WatcherRemovalFacade(CuratorFrameworkBase client,
WatcherRemovalManager removalManager) {
super(client);
- this.client = client;
this.removalManager = removalManager;
}
@Override
- public WatcherRemoveCuratorFramework newWatcherRemoveCuratorFramework() {
- return client.newWatcherRemoveCuratorFramework();
+ public void start() {
+ throw new UnsupportedOperationException();
}
- WatcherRemovalManager getRemovalManager() {
- return removalManager;
+ @Override
+ public void close() {
+ throw new UnsupportedOperationException();
}
- @Override
- public QuorumVerifier getCurrentConfig() {
- return client.getCurrentConfig();
+ WatcherRemovalManager getRemovalManager() {
+ return removalManager;
}
@Override
@@ -70,99 +59,9 @@ class WatcherRemovalFacade extends CuratorFrameworkImpl
implements WatcherRemove
return removalManager;
}
- @Override
- public CuratorFramework nonNamespaceView() {
- return client.nonNamespaceView();
- }
-
@Override
public CuratorFramework usingNamespace(String newNamespace) {
- final CuratorFrameworkImpl newClient = (CuratorFrameworkImpl)
client.usingNamespace(newNamespace);
+ final CuratorFrameworkBase newClient = (CuratorFrameworkBase)
client.usingNamespace(newNamespace);
return new WatcherRemovalFacade(newClient, removalManager);
}
-
- @Override
- public String getNamespace() {
- return client.getNamespace();
- }
-
- @Override
- public void start() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void close() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Listenable<ConnectionStateListener> getConnectionStateListenable() {
- return client.getConnectionStateListenable();
- }
-
- @Override
- public Listenable<CuratorListener> getCuratorListenable() {
- return client.getCuratorListenable();
- }
-
- @Override
- public Listenable<UnhandledErrorListener> getUnhandledErrorListenable() {
- return client.getUnhandledErrorListenable();
- }
-
- @Override
- public void sync(String path, Object context) {
- client.sync(path, context);
- }
-
- @Override
- public CuratorZookeeperClient getZookeeperClient() {
- return client.getZookeeperClient();
- }
-
- @Override
- RetryLoop newRetryLoop() {
- return client.newRetryLoop();
- }
-
- @Override
- ZooKeeper getZooKeeper() throws Exception {
- return client.getZooKeeper();
- }
-
- @Override
- <DATA_TYPE> void processBackgroundOperation(OperationAndData<DATA_TYPE>
operationAndData, CuratorEvent event) {
- client.processBackgroundOperation(operationAndData, event);
- }
-
- @Override
- void logError(String reason, Throwable e) {
- client.logError(reason, e);
- }
-
- @Override
- String unfixForNamespace(String path) {
- return client.unfixForNamespace(path);
- }
-
- @Override
- String fixForNamespace(String path) {
- return client.fixForNamespace(path);
- }
-
- @Override
- String fixForNamespace(String path, boolean isSequential) {
- return client.fixForNamespace(path, isSequential);
- }
-
- @Override
- public EnsurePath newNamespaceAwareEnsurePath(String path) {
- return client.newNamespaceAwareEnsurePath(path);
- }
-
- @Override
- FailedDeleteManager getFailedDeleteManager() {
- return client.getFailedDeleteManager();
- }
}
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/WatcherRemovalManager.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/WatcherRemovalManager.java
index f8b4a3984..847e4e7de 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/WatcherRemovalManager.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/WatcherRemovalManager.java
@@ -31,10 +31,10 @@ import org.slf4j.LoggerFactory;
public class WatcherRemovalManager {
private final Logger log = LoggerFactory.getLogger(getClass());
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private final Set<NamespaceWatcher> entries = Sets.newConcurrentHashSet();
- WatcherRemovalManager(CuratorFrameworkImpl client) {
+ WatcherRemovalManager(CuratorFrameworkBase client) {
this.client = client;
}
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/WatchesBuilderImpl.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/WatchesBuilderImpl.java
index cb63dc8b3..5cf1a0e99 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/WatchesBuilderImpl.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/WatchesBuilderImpl.java
@@ -26,12 +26,12 @@ import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.Watcher.WatcherType;
public class WatchesBuilderImpl extends RemoveWatchesBuilderImpl implements
WatchesBuilder {
- public WatchesBuilderImpl(CuratorFrameworkImpl client) {
+ public WatchesBuilderImpl(CuratorFrameworkBase client) {
super(client);
}
public WatchesBuilderImpl(
- CuratorFrameworkImpl client,
+ CuratorFrameworkBase client,
Watcher watcher,
CuratorWatcher curatorWatcher,
WatcherType watcherType,
diff --git
a/curator-framework/src/main/java/org/apache/curator/framework/imps/Watching.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/Watching.java
index b381f4136..f0d3ec19c 100644
---
a/curator-framework/src/main/java/org/apache/curator/framework/imps/Watching.java
+++
b/curator-framework/src/main/java/org/apache/curator/framework/imps/Watching.java
@@ -27,31 +27,31 @@ public class Watching {
private final Watcher watcher;
private final CuratorWatcher curatorWatcher;
private final boolean watched;
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private NamespaceWatcher namespaceWatcher;
- public Watching(CuratorFrameworkImpl client, boolean watched) {
+ public Watching(CuratorFrameworkBase client, boolean watched) {
this.client = client;
this.watcher = null;
this.curatorWatcher = null;
this.watched = watched;
}
- public Watching(CuratorFrameworkImpl client, Watcher watcher) {
+ public Watching(CuratorFrameworkBase client, Watcher watcher) {
this.client = client;
this.watcher = watcher;
this.curatorWatcher = null;
this.watched = false;
}
- public Watching(CuratorFrameworkImpl client, CuratorWatcher watcher) {
+ public Watching(CuratorFrameworkBase client, CuratorWatcher watcher) {
this.client = client;
this.watcher = null;
this.curatorWatcher = watcher;
this.watched = false;
}
- public Watching(CuratorFrameworkImpl client) {
+ public Watching(CuratorFrameworkBase client) {
this.client = client;
watcher = null;
watched = false;
diff --git
a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestCleanState.java
b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestCleanState.java
index 2678b0bbf..acb1519f5 100644
---
a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestCleanState.java
+++
b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestCleanState.java
@@ -37,7 +37,7 @@ public class TestCleanState {
try {
Timing2 timing = new Timing2();
- CuratorFrameworkImpl internalClient = (CuratorFrameworkImpl)
client;
+ CuratorFrameworkBase internalClient = (CuratorFrameworkBase)
client;
EnsembleTracker ensembleTracker =
internalClient.getEnsembleTracker();
if (ensembleTracker != null) {
Awaitility.await().until(() ->
!ensembleTracker.hasOutstanding());
diff --git
a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestFailedDeleteManager.java
b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestFailedDeleteManager.java
index fdafbabcd..e8ae04fa0 100644
---
a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestFailedDeleteManager.java
+++
b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestFailedDeleteManager.java
@@ -250,7 +250,7 @@ public class TestFailedDeleteManager extends
BaseClassForTests {
final AtomicBoolean pathAdded = new AtomicBoolean(false);
- ((CuratorFrameworkImpl) client).getFailedDeleteManager().debugListener
=
+ ((CuratorFrameworkBase) client).getFailedDeleteManager().debugListener
=
new
FailedOperationManager.FailedOperationManagerListener<String>() {
@Override
@@ -277,7 +277,7 @@ public class TestFailedDeleteManager extends
BaseClassForTests {
final AtomicBoolean pathAdded = new AtomicBoolean(false);
- ((CuratorFrameworkImpl) client).getFailedDeleteManager().debugListener
=
+ ((CuratorFrameworkBase) client).getFailedDeleteManager().debugListener
=
new
FailedOperationManager.FailedOperationManagerListener<String>() {
@Override
diff --git
a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestFramework.java
b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestFramework.java
index 3973e5aae..6ffd03406 100644
---
a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestFramework.java
+++
b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestFramework.java
@@ -745,7 +745,7 @@ public class TestFramework extends BaseClassForTests {
client.start();
- CuratorFrameworkImpl nullNamespace = (CuratorFrameworkImpl)
client.usingNamespace(null);
+ CuratorFrameworkBase nullNamespace = (CuratorFrameworkBase)
client.usingNamespace(null);
assertNotNull(nullNamespace.getEnsembleTracker());
assertNotNull(nullNamespace.getNamespaceFacadeCache());
diff --git
a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestNamespaceFacade.java
b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestNamespaceFacade.java
index 131c62cce..4ddc3f710 100644
---
a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestNamespaceFacade.java
+++
b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestNamespaceFacade.java
@@ -217,9 +217,8 @@ public class TestNamespaceFacade extends BaseClassForTests {
.retryPolicy(new RetryOneTime(1))
.connectString("foo")
.build();
- CuratorFrameworkImpl clientImpl = (CuratorFrameworkImpl) client;
- assertEquals(clientImpl.unfixForNamespace("/foo/bar"), "/foo/bar");
+ assertEquals(((CuratorFrameworkBase)
client).unfixForNamespace("/foo/bar"), "/foo/bar");
CloseableUtils.closeQuietly(client);
}
diff --git
a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestReconfiguration.java
b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestReconfiguration.java
index c279749b1..11a17421d 100644
---
a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestReconfiguration.java
+++
b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestReconfiguration.java
@@ -213,7 +213,7 @@ public class TestReconfiguration extends CuratorTestBase {
public void testAddWithoutEnsembleTracker() throws Exception {
final String initialClusterCS = cluster.getConnectString();
try (CuratorFramework client = newClient(cluster.getConnectString(),
false)) {
- assertEquals(((CuratorFrameworkImpl) client).getEnsembleTracker(),
null);
+ assertEquals(((CuratorFrameworkBase) client).getEnsembleTracker(),
null);
client.start();
QuorumVerifier oldConfig =
toQuorumVerifier(client.getConfig().forEnsemble());
diff --git
a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestWatchesBuilder.java
b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestWatchesBuilder.java
index 3dd57ae47..d639ef23e 100644
---
a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestWatchesBuilder.java
+++
b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestWatchesBuilder.java
@@ -126,7 +126,7 @@ public class TestWatchesBuilder extends CuratorTestBase {
@Test
public void testRemoveCuratorWatch() throws Exception {
Timing timing = new Timing();
- CuratorFrameworkImpl client = (CuratorFrameworkImpl)
CuratorFrameworkFactory.builder()
+ CuratorFramework client = CuratorFrameworkFactory.builder()
.connectString(server.getConnectString())
.retryPolicy(new RetryOneTime(1))
.build();
@@ -159,7 +159,7 @@ public class TestWatchesBuilder extends CuratorTestBase {
@Test
public void testRemoveWatch() throws Exception {
Timing timing = new Timing();
- CuratorFrameworkImpl client = (CuratorFrameworkImpl)
CuratorFrameworkFactory.builder()
+ CuratorFramework client = CuratorFrameworkFactory.builder()
.connectString(server.getConnectString())
.retryPolicy(new RetryOneTime(1))
.build();
@@ -184,7 +184,7 @@ public class TestWatchesBuilder extends CuratorTestBase {
@Test
public void testRemoveWatchInBackgroundWithCallback() throws Exception {
Timing timing = new Timing();
- CuratorFrameworkImpl client = (CuratorFrameworkImpl)
CuratorFrameworkFactory.builder()
+ CuratorFramework client = CuratorFrameworkFactory.builder()
.connectString(server.getConnectString())
.retryPolicy(new RetryOneTime(1))
.build();
@@ -225,7 +225,7 @@ public class TestWatchesBuilder extends CuratorTestBase {
@Test
public void testRemoveWatchInBackgroundWithNoCallback() throws Exception {
Timing timing = new Timing();
- CuratorFrameworkImpl client = (CuratorFrameworkImpl)
CuratorFrameworkFactory.builder()
+ CuratorFramework client = CuratorFrameworkFactory.builder()
.connectString(server.getConnectString())
.retryPolicy(new RetryOneTime(1))
.build();
@@ -250,7 +250,7 @@ public class TestWatchesBuilder extends CuratorTestBase {
@Test
public void testRemoveAllWatches() throws Exception {
Timing timing = new Timing();
- CuratorFrameworkImpl client = (CuratorFrameworkImpl)
CuratorFrameworkFactory.builder()
+ CuratorFramework client = CuratorFrameworkFactory.builder()
.connectString(server.getConnectString())
.retryPolicy(new RetryOneTime(1))
.build();
@@ -335,7 +335,7 @@ public class TestWatchesBuilder extends CuratorTestBase {
@Test
public void testRemoveLocalWatch() throws Exception {
Timing timing = new Timing();
- CuratorFrameworkImpl client = (CuratorFrameworkImpl)
CuratorFrameworkFactory.builder()
+ CuratorFramework client = CuratorFrameworkFactory.builder()
.connectString(server.getConnectString())
.retryPolicy(new RetryOneTime(1))
.build();
@@ -368,7 +368,7 @@ public class TestWatchesBuilder extends CuratorTestBase {
@Test
public void testRemoveLocalWatchInBackground() throws Exception {
Timing timing = new Timing();
- CuratorFrameworkImpl client = (CuratorFrameworkImpl)
CuratorFrameworkFactory.builder()
+ CuratorFramework client = CuratorFrameworkFactory.builder()
.connectString(server.getConnectString())
.retryPolicy(new RetryOneTime(1))
.build();
@@ -510,7 +510,7 @@ public class TestWatchesBuilder extends CuratorTestBase {
final CountDownLatch guaranteeAddedLatch = new CountDownLatch(1);
- ((CuratorFrameworkImpl)
client).getFailedRemoveWatcherManager().debugListener =
+ ((CuratorFrameworkBase)
client).getFailedRemoveWatcherManager().debugListener =
new FailedOperationManager.FailedOperationManagerListener<
FailedRemoveWatchManager.FailedRemoveWatchDetails>() {
diff --git
a/curator-recipes/src/test/java/org/apache/curator/framework/recipes/leader/TestLeaderSelectorEdges.java
b/curator-recipes/src/test/java/org/apache/curator/framework/recipes/leader/TestLeaderSelectorEdges.java
index 6e8fcbbba..955827909 100644
---
a/curator-recipes/src/test/java/org/apache/curator/framework/recipes/leader/TestLeaderSelectorEdges.java
+++
b/curator-recipes/src/test/java/org/apache/curator/framework/recipes/leader/TestLeaderSelectorEdges.java
@@ -21,7 +21,6 @@ package org.apache.curator.framework.recipes.leader;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.fail;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import org.apache.curator.framework.CuratorFramework;
@@ -98,15 +97,13 @@ public class TestLeaderSelectorEdges extends
BaseClassForTests {
} finally {
try {
leaderSelector1.close();
- } catch (IllegalStateException e) {
- fail(e.getMessage());
+ } catch (IllegalStateException ignored) {
}
try {
if (leaderSelector2 != null) {
leaderSelector2.close();
}
- } catch (IllegalStateException e) {
- fail(e.getMessage());
+ } catch (IllegalStateException ignored) {
}
client.close();
}
diff --git
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncCreateBuilderImpl.java
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncCreateBuilderImpl.java
index 6f9a6c045..705de5975 100644
---
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncCreateBuilderImpl.java
+++
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncCreateBuilderImpl.java
@@ -26,7 +26,7 @@ import java.util.List;
import java.util.Objects;
import java.util.Set;
import org.apache.curator.framework.imps.CreateBuilderImpl;
-import org.apache.curator.framework.imps.CuratorFrameworkImpl;
+import org.apache.curator.framework.imps.CuratorFrameworkBase;
import org.apache.curator.x.async.AsyncStage;
import org.apache.curator.x.async.api.AsyncCreateBuilder;
import org.apache.curator.x.async.api.AsyncPathAndBytesable;
@@ -36,7 +36,7 @@ import org.apache.zookeeper.data.ACL;
import org.apache.zookeeper.data.Stat;
class AsyncCreateBuilderImpl implements AsyncCreateBuilder {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private final Filters filters;
private CreateMode createMode = CreateMode.PERSISTENT;
private List<ACL> aclList = null;
@@ -45,7 +45,7 @@ class AsyncCreateBuilderImpl implements AsyncCreateBuilder {
private long ttl = -1;
private int setDataVersion = -1;
- AsyncCreateBuilderImpl(CuratorFrameworkImpl client, Filters filters) {
+ AsyncCreateBuilderImpl(CuratorFrameworkBase client, Filters filters) {
this.client = client;
this.filters = filters;
}
diff --git
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncCuratorFrameworkImpl.java
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncCuratorFrameworkImpl.java
index ee2941e4d..1016b789a 100644
---
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncCuratorFrameworkImpl.java
+++
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncCuratorFrameworkImpl.java
@@ -28,7 +28,7 @@ import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.api.CuratorEvent;
import org.apache.curator.framework.api.UnhandledErrorListener;
import org.apache.curator.framework.api.transaction.CuratorTransactionResult;
-import org.apache.curator.framework.imps.CuratorFrameworkImpl;
+import org.apache.curator.framework.imps.CuratorFrameworkBase;
import org.apache.curator.framework.imps.CuratorMultiTransactionImpl;
import org.apache.curator.framework.imps.GetACLBuilderImpl;
import org.apache.curator.framework.imps.SyncBuilderImpl;
@@ -41,7 +41,7 @@ import org.apache.zookeeper.data.ACL;
import org.apache.zookeeper.data.Stat;
public class AsyncCuratorFrameworkImpl implements AsyncCuratorFramework {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private final Filters filters;
private final WatchMode watchMode;
private final boolean watched;
@@ -50,9 +50,9 @@ public class AsyncCuratorFrameworkImpl implements
AsyncCuratorFramework {
this(reveal(client), new Filters(null, null, null),
WatchMode.stateChangeAndSuccess, false);
}
- private static CuratorFrameworkImpl reveal(CuratorFramework client) {
+ private static CuratorFrameworkBase reveal(CuratorFramework client) {
try {
- return (CuratorFrameworkImpl) Objects.requireNonNull(client,
"client cannot be null");
+ return (CuratorFrameworkBase) Objects.requireNonNull(client,
"client cannot be null");
} catch (Exception e) {
throw new IllegalArgumentException(
"Only Curator clients created through
CuratorFrameworkFactory are supported: "
@@ -61,7 +61,7 @@ public class AsyncCuratorFrameworkImpl implements
AsyncCuratorFramework {
}
public AsyncCuratorFrameworkImpl(
- CuratorFrameworkImpl client, Filters filters, WatchMode watchMode,
boolean watched) {
+ CuratorFrameworkBase client, Filters filters, WatchMode watchMode,
boolean watched) {
this.client = Objects.requireNonNull(client, "client cannot be null");
this.filters = Objects.requireNonNull(filters, "filters cannot be
null");
this.watchMode = Objects.requireNonNull(watchMode, "watchMode cannot
be null");
@@ -223,7 +223,7 @@ public class AsyncCuratorFrameworkImpl implements
AsyncCuratorFramework {
return filters;
}
- CuratorFrameworkImpl getClient() {
+ CuratorFrameworkBase getClient() {
return client;
}
diff --git
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncDeleteBuilderImpl.java
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncDeleteBuilderImpl.java
index b1175f7b7..7333dd9fe 100644
---
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncDeleteBuilderImpl.java
+++
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncDeleteBuilderImpl.java
@@ -24,7 +24,7 @@ import static
org.apache.curator.x.async.details.BackgroundProcs.safeCall;
import java.util.Collections;
import java.util.Objects;
import java.util.Set;
-import org.apache.curator.framework.imps.CuratorFrameworkImpl;
+import org.apache.curator.framework.imps.CuratorFrameworkBase;
import org.apache.curator.framework.imps.DeleteBuilderImpl;
import org.apache.curator.x.async.AsyncStage;
import org.apache.curator.x.async.api.AsyncDeleteBuilder;
@@ -32,12 +32,12 @@ import org.apache.curator.x.async.api.AsyncPathable;
import org.apache.curator.x.async.api.DeleteOption;
class AsyncDeleteBuilderImpl implements AsyncDeleteBuilder {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private final Filters filters;
private Set<DeleteOption> options = Collections.emptySet();
private int version = -1;
- AsyncDeleteBuilderImpl(CuratorFrameworkImpl client, Filters filters) {
+ AsyncDeleteBuilderImpl(CuratorFrameworkBase client, Filters filters) {
this.client = client;
this.filters = filters;
}
diff --git
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncExistsBuilderImpl.java
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncExistsBuilderImpl.java
index 002713081..00c19f049 100644
---
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncExistsBuilderImpl.java
+++
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncExistsBuilderImpl.java
@@ -24,7 +24,7 @@ import static
org.apache.curator.x.async.details.BackgroundProcs.safeStatProc;
import java.util.Collections;
import java.util.Objects;
import java.util.Set;
-import org.apache.curator.framework.imps.CuratorFrameworkImpl;
+import org.apache.curator.framework.imps.CuratorFrameworkBase;
import org.apache.curator.framework.imps.ExistsBuilderImpl;
import org.apache.curator.x.async.AsyncStage;
import org.apache.curator.x.async.WatchMode;
@@ -34,12 +34,12 @@ import org.apache.curator.x.async.api.ExistsOption;
import org.apache.zookeeper.data.Stat;
class AsyncExistsBuilderImpl implements AsyncExistsBuilder {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private final Filters filters;
private final WatchMode watchMode;
private Set<ExistsOption> options = Collections.emptySet();
- AsyncExistsBuilderImpl(CuratorFrameworkImpl client, Filters filters,
WatchMode watchMode) {
+ AsyncExistsBuilderImpl(CuratorFrameworkBase client, Filters filters,
WatchMode watchMode) {
this.client = client;
this.filters = filters;
this.watchMode = watchMode;
diff --git
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncGetChildrenBuilderImpl.java
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncGetChildrenBuilderImpl.java
index f30a52986..8a75fa7af 100644
---
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncGetChildrenBuilderImpl.java
+++
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncGetChildrenBuilderImpl.java
@@ -22,7 +22,7 @@ package org.apache.curator.x.async.details;
import static org.apache.curator.x.async.details.BackgroundProcs.childrenProc;
import static org.apache.curator.x.async.details.BackgroundProcs.safeCall;
import java.util.List;
-import org.apache.curator.framework.imps.CuratorFrameworkImpl;
+import org.apache.curator.framework.imps.CuratorFrameworkBase;
import org.apache.curator.framework.imps.GetChildrenBuilderImpl;
import org.apache.curator.x.async.AsyncStage;
import org.apache.curator.x.async.WatchMode;
@@ -31,12 +31,12 @@ import org.apache.curator.x.async.api.AsyncPathable;
import org.apache.zookeeper.data.Stat;
class AsyncGetChildrenBuilderImpl implements AsyncGetChildrenBuilder {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private final Filters filters;
private final WatchMode watchMode;
private Stat stat = null;
- AsyncGetChildrenBuilderImpl(CuratorFrameworkImpl client, Filters filters,
WatchMode watchMode) {
+ AsyncGetChildrenBuilderImpl(CuratorFrameworkBase client, Filters filters,
WatchMode watchMode) {
this.client = client;
this.filters = filters;
this.watchMode = watchMode;
diff --git
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncGetConfigBuilderImpl.java
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncGetConfigBuilderImpl.java
index a3390bea9..88c96f1db 100644
---
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncGetConfigBuilderImpl.java
+++
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncGetConfigBuilderImpl.java
@@ -21,7 +21,7 @@ package org.apache.curator.x.async.details;
import static org.apache.curator.x.async.details.BackgroundProcs.dataProc;
import static org.apache.curator.x.async.details.BackgroundProcs.safeCall;
-import org.apache.curator.framework.imps.CuratorFrameworkImpl;
+import org.apache.curator.framework.imps.CuratorFrameworkBase;
import org.apache.curator.framework.imps.GetConfigBuilderImpl;
import org.apache.curator.x.async.AsyncStage;
import org.apache.curator.x.async.WatchMode;
@@ -30,12 +30,12 @@ import org.apache.curator.x.async.api.AsyncGetConfigBuilder;
import org.apache.zookeeper.data.Stat;
class AsyncGetConfigBuilderImpl implements AsyncGetConfigBuilder {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private final Filters filters;
private final WatchMode watchMode;
private Stat stat = null;
- AsyncGetConfigBuilderImpl(CuratorFrameworkImpl client, Filters filters,
WatchMode watchMode) {
+ AsyncGetConfigBuilderImpl(CuratorFrameworkBase client, Filters filters,
WatchMode watchMode) {
this.client = client;
this.filters = filters;
this.watchMode = watchMode;
diff --git
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncGetDataBuilderImpl.java
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncGetDataBuilderImpl.java
index 1498968a1..8b93674d2 100644
---
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncGetDataBuilderImpl.java
+++
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncGetDataBuilderImpl.java
@@ -21,7 +21,7 @@ package org.apache.curator.x.async.details;
import static org.apache.curator.x.async.details.BackgroundProcs.dataProc;
import static org.apache.curator.x.async.details.BackgroundProcs.safeCall;
-import org.apache.curator.framework.imps.CuratorFrameworkImpl;
+import org.apache.curator.framework.imps.CuratorFrameworkBase;
import org.apache.curator.framework.imps.GetDataBuilderImpl;
import org.apache.curator.x.async.AsyncStage;
import org.apache.curator.x.async.WatchMode;
@@ -30,13 +30,13 @@ import org.apache.curator.x.async.api.AsyncPathable;
import org.apache.zookeeper.data.Stat;
class AsyncGetDataBuilderImpl implements AsyncGetDataBuilder {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private final Filters filters;
private final WatchMode watchMode;
private boolean decompressed;
private Stat stat = null;
- AsyncGetDataBuilderImpl(CuratorFrameworkImpl client, Filters filters,
WatchMode watchMode) {
+ AsyncGetDataBuilderImpl(CuratorFrameworkBase client, Filters filters,
WatchMode watchMode) {
this.client = client;
this.filters = filters;
this.watchMode = watchMode;
diff --git
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncReconfigBuilderImpl.java
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncReconfigBuilderImpl.java
index b490113bf..d4822b0d2 100644
---
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncReconfigBuilderImpl.java
+++
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncReconfigBuilderImpl.java
@@ -22,7 +22,7 @@ package org.apache.curator.x.async.details;
import static org.apache.curator.x.async.details.BackgroundProcs.ignoredProc;
import static org.apache.curator.x.async.details.BackgroundProcs.safeCall;
import java.util.List;
-import org.apache.curator.framework.imps.CuratorFrameworkImpl;
+import org.apache.curator.framework.imps.CuratorFrameworkBase;
import org.apache.curator.framework.imps.ReconfigBuilderImpl;
import org.apache.curator.x.async.AsyncStage;
import org.apache.curator.x.async.api.AsyncEnsemblable;
@@ -30,7 +30,7 @@ import org.apache.curator.x.async.api.AsyncReconfigBuilder;
import org.apache.zookeeper.data.Stat;
class AsyncReconfigBuilderImpl implements AsyncReconfigBuilder,
AsyncEnsemblable<AsyncStage<Void>> {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private final Filters filters;
private Stat stat = null;
private long fromConfig = -1;
@@ -38,7 +38,7 @@ class AsyncReconfigBuilderImpl implements
AsyncReconfigBuilder, AsyncEnsemblable
private List<String> joining = null;
private List<String> leaving = null;
- AsyncReconfigBuilderImpl(CuratorFrameworkImpl client, Filters filters) {
+ AsyncReconfigBuilderImpl(CuratorFrameworkBase client, Filters filters) {
this.client = client;
this.filters = filters;
}
diff --git
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncRemoveWatchesBuilderImpl.java
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncRemoveWatchesBuilderImpl.java
index 5f111b737..0f70a44ef 100644
---
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncRemoveWatchesBuilderImpl.java
+++
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncRemoveWatchesBuilderImpl.java
@@ -25,7 +25,7 @@ import java.util.Collections;
import java.util.Objects;
import java.util.Set;
import org.apache.curator.framework.api.CuratorWatcher;
-import org.apache.curator.framework.imps.CuratorFrameworkImpl;
+import org.apache.curator.framework.imps.CuratorFrameworkBase;
import org.apache.curator.framework.imps.RemoveWatchesBuilderImpl;
import org.apache.curator.x.async.AsyncStage;
import org.apache.curator.x.async.api.AsyncPathable;
@@ -34,14 +34,14 @@ import org.apache.curator.x.async.api.RemoveWatcherOption;
import org.apache.zookeeper.Watcher;
class AsyncRemoveWatchesBuilderImpl implements AsyncRemoveWatchesBuilder,
AsyncPathable<AsyncStage<Void>> {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private final Filters filters;
private Watcher.WatcherType watcherType = Watcher.WatcherType.Any;
private Set<RemoveWatcherOption> options = Collections.emptySet();
private Watcher watcher = null;
private CuratorWatcher curatorWatcher = null;
- AsyncRemoveWatchesBuilderImpl(CuratorFrameworkImpl client, Filters
filters) {
+ AsyncRemoveWatchesBuilderImpl(CuratorFrameworkBase client, Filters
filters) {
this.client = client;
this.filters = filters;
}
diff --git
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncSetACLBuilderImpl.java
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncSetACLBuilderImpl.java
index 5160be6ef..6ed9e2681 100644
---
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncSetACLBuilderImpl.java
+++
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncSetACLBuilderImpl.java
@@ -22,7 +22,7 @@ package org.apache.curator.x.async.details;
import static org.apache.curator.x.async.details.BackgroundProcs.safeCall;
import static org.apache.curator.x.async.details.BackgroundProcs.statProc;
import java.util.List;
-import org.apache.curator.framework.imps.CuratorFrameworkImpl;
+import org.apache.curator.framework.imps.CuratorFrameworkBase;
import org.apache.curator.framework.imps.SetACLBuilderImpl;
import org.apache.curator.x.async.AsyncStage;
import org.apache.curator.x.async.api.AsyncPathable;
@@ -31,12 +31,12 @@ import org.apache.zookeeper.data.ACL;
import org.apache.zookeeper.data.Stat;
class AsyncSetACLBuilderImpl implements AsyncSetACLBuilder,
AsyncPathable<AsyncStage<Stat>> {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private final Filters filters;
private int version = -1;
private List<ACL> aclList = null;
- AsyncSetACLBuilderImpl(CuratorFrameworkImpl client, Filters filters) {
+ AsyncSetACLBuilderImpl(CuratorFrameworkBase client, Filters filters) {
this.client = client;
this.filters = filters;
}
diff --git
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncSetDataBuilderImpl.java
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncSetDataBuilderImpl.java
index 0de17249d..c13c46fd4 100644
---
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncSetDataBuilderImpl.java
+++
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncSetDataBuilderImpl.java
@@ -21,7 +21,7 @@ package org.apache.curator.x.async.details;
import static org.apache.curator.x.async.details.BackgroundProcs.safeCall;
import static org.apache.curator.x.async.details.BackgroundProcs.statProc;
-import org.apache.curator.framework.imps.CuratorFrameworkImpl;
+import org.apache.curator.framework.imps.CuratorFrameworkBase;
import org.apache.curator.framework.imps.SetDataBuilderImpl;
import org.apache.curator.x.async.AsyncStage;
import org.apache.curator.x.async.api.AsyncPathAndBytesable;
@@ -29,12 +29,12 @@ import org.apache.curator.x.async.api.AsyncSetDataBuilder;
import org.apache.zookeeper.data.Stat;
class AsyncSetDataBuilderImpl implements AsyncSetDataBuilder {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private final Filters filters;
private boolean compressed;
private int version = -1;
- AsyncSetDataBuilderImpl(CuratorFrameworkImpl client, Filters filters) {
+ AsyncSetDataBuilderImpl(CuratorFrameworkBase client, Filters filters) {
this.client = client;
this.filters = filters;
this.compressed = client.compressionEnabled();
diff --git
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncTransactionOpImpl.java
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncTransactionOpImpl.java
index 1ef3d23d4..f4660c882 100644
---
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncTransactionOpImpl.java
+++
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncTransactionOpImpl.java
@@ -27,7 +27,7 @@ import
org.apache.curator.framework.api.VersionPathAndBytesable;
import org.apache.curator.framework.api.transaction.CuratorOp;
import org.apache.curator.framework.api.transaction.TransactionCreateBuilder2;
import org.apache.curator.framework.api.transaction.TransactionSetDataBuilder;
-import org.apache.curator.framework.imps.CuratorFrameworkImpl;
+import org.apache.curator.framework.imps.CuratorFrameworkBase;
import org.apache.curator.x.async.api.AsyncPathAndBytesable;
import org.apache.curator.x.async.api.AsyncPathable;
import org.apache.curator.x.async.api.AsyncTransactionCheckBuilder;
@@ -39,9 +39,9 @@ import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.data.ACL;
class AsyncTransactionOpImpl implements AsyncTransactionOp {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
- AsyncTransactionOpImpl(CuratorFrameworkImpl client) {
+ AsyncTransactionOpImpl(CuratorFrameworkBase client) {
this.client = client;
}
diff --git
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncWatchBuilderImpl.java
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncWatchBuilderImpl.java
index cc7cc015d..a31aa08a8 100644
---
a/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncWatchBuilderImpl.java
+++
b/curator-x-async/src/main/java/org/apache/curator/x/async/details/AsyncWatchBuilderImpl.java
@@ -24,7 +24,7 @@ import static
org.apache.curator.x.async.details.BackgroundProcs.safeCall;
import org.apache.curator.framework.api.CuratorWatcher;
import org.apache.curator.framework.api.WatchableBase;
import org.apache.curator.framework.imps.AddWatchBuilderImpl;
-import org.apache.curator.framework.imps.CuratorFrameworkImpl;
+import org.apache.curator.framework.imps.CuratorFrameworkBase;
import org.apache.curator.framework.imps.Watching;
import org.apache.curator.x.async.AsyncStage;
import org.apache.curator.x.async.api.AsyncPathable;
@@ -38,12 +38,12 @@ class AsyncWatchBuilderImpl
AsyncWatchBuilder2,
WatchableBase<AsyncPathable<AsyncStage<Void>>>,
AsyncPathable<AsyncStage<Void>> {
- private final CuratorFrameworkImpl client;
+ private final CuratorFrameworkBase client;
private final Filters filters;
private Watching watching;
private AddWatchMode mode = AddWatchMode.PERSISTENT_RECURSIVE;
- AsyncWatchBuilderImpl(CuratorFrameworkImpl client, Filters filters) {
+ AsyncWatchBuilderImpl(CuratorFrameworkBase client, Filters filters) {
this.client = client;
this.filters = filters;
watching = new Watching(client, true);