Repository: curator Updated Branches: refs/heads/CURATOR-421 9385d0490 -> 33e413884
Added asyncEnsureParents() Project: http://git-wip-us.apache.org/repos/asf/curator/repo Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/9d30a8c8 Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/9d30a8c8 Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/9d30a8c8 Branch: refs/heads/CURATOR-421 Commit: 9d30a8c8769f803715862eb9b5479057bfd0d5af Parents: 9385d04 Author: randgalt <[email protected]> Authored: Sat Jul 15 11:02:30 2017 -0500 Committer: randgalt <[email protected]> Committed: Sat Jul 15 11:02:30 2017 -0500 ---------------------------------------------------------------------- .../apache/curator/x/async/AsyncWrappers.java | 36 ++++++++++++++------ 1 file changed, 25 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/curator/blob/9d30a8c8/curator-x-async/src/main/java/org/apache/curator/x/async/AsyncWrappers.java ---------------------------------------------------------------------- diff --git a/curator-x-async/src/main/java/org/apache/curator/x/async/AsyncWrappers.java b/curator-x-async/src/main/java/org/apache/curator/x/async/AsyncWrappers.java index d7b3cc3..f26b3b4 100644 --- a/curator-x-async/src/main/java/org/apache/curator/x/async/AsyncWrappers.java +++ b/curator-x-async/src/main/java/org/apache/curator/x/async/AsyncWrappers.java @@ -28,7 +28,6 @@ import org.apache.zookeeper.KeeperException; import java.util.Collections; import java.util.List; import java.util.Map; -import java.util.Set; import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletionStage; import java.util.concurrent.Executor; @@ -134,8 +133,19 @@ public class AsyncWrappers } /** - * Asynchronously call {@link org.apache.curator.framework.CuratorFramework#createContainers(String)} using - * the given executor + * Asynchronously ensure that the parents of the given path are created + * + * @param client client + * @param path path to ensure + * @return stage + */ + public static CompletionStage<Void> asyncEnsureParents(AsyncCuratorFramework client, String path) + { + return ensure(client, path, ExistsOption.createParentsIfNeeded); + } + + /** + * Asynchronously ensure that the parents of the given path are created as containers * * @param client client * @param path path to ensure @@ -143,14 +153,7 @@ public class AsyncWrappers */ public static CompletionStage<Void> asyncEnsureContainers(AsyncCuratorFramework client, String path) { - String localPath = ZKPaths.makePath(path, "foo"); - Set<ExistsOption> options = Collections.singleton(ExistsOption.createParentsAsContainers); - return client - .checkExists() - .withOptions(options) - .forPath(localPath) - .thenApply(__ -> null) - ; + return ensure(client, path, ExistsOption.createParentsAsContainers); } /** @@ -373,6 +376,17 @@ public class AsyncWrappers }); } + private static CompletionStage<Void> ensure(AsyncCuratorFramework client, String path, ExistsOption option) + { + String localPath = ZKPaths.makePath(path, "foo"); + return client + .checkExists() + .withOptions(Collections.singleton(option)) + .forPath(localPath) + .thenApply(__ -> null) + ; + } + private AsyncWrappers() { }
