Return-Path: X-Original-To: apmail-curator-commits-archive@minotaur.apache.org Delivered-To: apmail-curator-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2C6F418008 for ; Mon, 18 Jan 2016 23:04:53 +0000 (UTC) Received: (qmail 81652 invoked by uid 500); 18 Jan 2016 23:04:53 -0000 Delivered-To: apmail-curator-commits-archive@curator.apache.org Received: (qmail 81619 invoked by uid 500); 18 Jan 2016 23:04:53 -0000 Mailing-List: contact commits-help@curator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@curator.apache.org Delivered-To: mailing list commits@curator.apache.org Received: (qmail 81610 invoked by uid 99); 18 Jan 2016 23:04:53 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 18 Jan 2016 23:04:53 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id F0E7FE03CD; Mon, 18 Jan 2016 23:04:52 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: randgalt@apache.org To: commits@curator.apache.org Date: Mon, 18 Jan 2016 23:04:52 -0000 Message-Id: <34c153d176ac4549bf7490d61930a488@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [1/3] curator git commit: ZKPaths.mkdirs() was always passing the full path to the aclProvider instead of the subpath being created Repository: curator Updated Branches: refs/heads/CURATOR-3.0 ae8dc466c -> 75325d4ae ZKPaths.mkdirs() was always passing the full path to the aclProvider instead of the subpath being created Project: http://git-wip-us.apache.org/repos/asf/curator/repo Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/d6da90e8 Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/d6da90e8 Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/d6da90e8 Branch: refs/heads/CURATOR-3.0 Commit: d6da90e8e746c92cc182e62a96fc2a9182fd1a15 Parents: 45332f3 Author: randgalt Authored: Tue Jan 12 10:13:12 2016 -0500 Committer: randgalt Committed: Tue Jan 12 10:13:12 2016 -0500 ---------------------------------------------------------------------- .../java/org/apache/curator/utils/ZKPaths.java | 2 +- .../framework/recipes/locks/TestLockACLs.java | 50 ++++++++++++++++---- 2 files changed, 43 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/curator/blob/d6da90e8/curator-client/src/main/java/org/apache/curator/utils/ZKPaths.java ---------------------------------------------------------------------- diff --git a/curator-client/src/main/java/org/apache/curator/utils/ZKPaths.java b/curator-client/src/main/java/org/apache/curator/utils/ZKPaths.java index 75e1171..17fa913 100644 --- a/curator-client/src/main/java/org/apache/curator/utils/ZKPaths.java +++ b/curator-client/src/main/java/org/apache/curator/utils/ZKPaths.java @@ -278,7 +278,7 @@ public class ZKPaths List acl = null; if ( aclProvider != null ) { - acl = aclProvider.getAclForPath(path); + acl = aclProvider.getAclForPath(subPath); if ( acl == null ) { acl = aclProvider.getDefaultAcl(); http://git-wip-us.apache.org/repos/asf/curator/blob/d6da90e8/curator-recipes/src/test/java/org/apache/curator/framework/recipes/locks/TestLockACLs.java ---------------------------------------------------------------------- diff --git a/curator-recipes/src/test/java/org/apache/curator/framework/recipes/locks/TestLockACLs.java b/curator-recipes/src/test/java/org/apache/curator/framework/recipes/locks/TestLockACLs.java index 2d9a9aa..b6159cc 100644 --- a/curator-recipes/src/test/java/org/apache/curator/framework/recipes/locks/TestLockACLs.java +++ b/curator-recipes/src/test/java/org/apache/curator/framework/recipes/locks/TestLockACLs.java @@ -26,7 +26,6 @@ import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.framework.api.ACLProvider; import org.apache.curator.retry.ExponentialBackoffRetry; -import org.apache.curator.test.TestingServer; import org.apache.zookeeper.ZooDefs; import org.apache.zookeeper.data.ACL; import org.apache.zookeeper.data.Id; @@ -37,16 +36,17 @@ import java.util.List; public class TestLockACLs extends BaseClassForTests { - private static final List ACLS = Collections.singletonList(new ACL(ZooDefs.Perms.ALL, new Id("ip", "127.0.0.1"))); + private static final List ACLS1 = Collections.singletonList(new ACL(ZooDefs.Perms.ALL, new Id("ip", "127.0.0.1"))); + private static final List ACLS2 = Collections.singletonList(new ACL(ZooDefs.Perms.CREATE, new Id("ip", "127.0.0.1"))); - private CuratorFramework createClient() throws Exception + private CuratorFramework createClient(ACLProvider provider) throws Exception { RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3); CuratorFramework client = CuratorFrameworkFactory.builder() .namespace("ns") .connectString(server.getConnectString()) .retryPolicy(retryPolicy) - .aclProvider(new MyACLProvider()) + .aclProvider(provider) .build(); client.start(); return client; @@ -55,7 +55,7 @@ public class TestLockACLs extends BaseClassForTests @Test public void testLockACLs() throws Exception { - CuratorFramework client = createClient(); + CuratorFramework client = createClient(new TestLockACLsProvider()); try { client.create().forPath("/foo"); @@ -78,19 +78,53 @@ public class TestLockACLs extends BaseClassForTests } } - public class MyACLProvider implements ACLProvider + @Test + public void testACLsCreatingParents() throws Exception + { + CuratorFramework client = createClient(new TestACLsCreatingParentsProvider()); + try + { + client.create().creatingParentsIfNeeded().forPath("/parent/foo"); + Assert.assertEquals(ZooDefs.Perms.CREATE, client.getACL().forPath("/parent").get(0).getPerms()); + Assert.assertEquals(ZooDefs.Perms.ALL, client.getACL().forPath("/parent/foo").get(0).getPerms()); + } + finally + { + CloseableUtils.closeQuietly(client); + } + } + + private class TestACLsCreatingParentsProvider implements ACLProvider { + @Override + public List getDefaultAcl() + { + return ACLS1; + } @Override + public List getAclForPath(String path) + { + if ( path.equals("/ns/parent") ) + { + return ACLS2; + } + return ACLS1; + } + } + + private class TestLockACLsProvider implements ACLProvider + { + @Override public List getDefaultAcl() { - return ACLS; + return ACLS1; } @Override public List getAclForPath(String path) { - return ACLS; + return ACLS1; } } }