Merge 'master' into CURATOR-3.0
Project: http://git-wip-us.apache.org/repos/asf/curator/repo Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/44ee8547 Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/44ee8547 Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/44ee8547 Branch: refs/heads/CURATOR-3.0 Commit: 44ee8547ef3563823c89ac9d8570a0df1b33a0a8 Parents: 8c8d7ec e8aff9a Author: Scott Blum <[email protected]> Authored: Mon Aug 17 13:01:21 2015 -0400 Committer: Scott Blum <[email protected]> Committed: Mon Aug 17 13:01:21 2015 -0400 ---------------------------------------------------------------------- curator-client/pom.xml | 22 ++ .../org/apache/curator/utils/DebugUtils.java | 1 + .../org/apache/curator/utils/EnsurePath.java | 14 +- .../java/org/apache/curator/utils/ZKPaths.java | 74 ++++++- curator-examples/pom.xml | 6 + .../src/main/java/cache/PathCacheExample.java | 2 +- curator-framework/pom.xml | 12 ++ .../curator/framework/CuratorFramework.java | 17 +- .../framework/CuratorFrameworkFactory.java | 20 ++ .../api/CreateBackgroundModeACLable.java | 12 ++ .../curator/framework/api/CreateBuilder.java | 13 ++ .../curator/framework/api/ExistsBuilder.java | 15 +- .../framework/api/ExistsBuilderMain.java | 27 +++ .../framework/imps/CreateBuilderImpl.java | 38 +++- .../framework/imps/CuratorFrameworkImpl.java | 15 ++ .../framework/imps/ExistsBuilderImpl.java | 56 ++++- .../curator/framework/imps/NamespaceFacade.java | 10 +- .../curator/framework/imps/NamespaceImpl.java | 30 ++- .../curator/framework/imps/TestFramework.java | 211 +++++++++++++++++-- curator-recipes/pom.xml | 12 ++ .../recipes/atomic/DistributedAtomicValue.java | 15 +- .../recipes/barriers/DistributedBarrier.java | 2 +- .../barriers/DistributedDoubleBarrier.java | 2 +- .../framework/recipes/cache/NodeCache.java | 9 +- .../recipes/cache/PathChildrenCache.java | 24 ++- .../recipes/cache/PathChildrenCacheMode.java | 1 + .../framework/recipes/cache/TreeCache.java | 82 ++++--- .../framework/recipes/leader/LeaderLatch.java | 2 +- .../recipes/leader/LeaderSelector.java | 2 +- .../framework/recipes/locks/ChildReaper.java | 5 + .../recipes/locks/InterProcessSemaphore.java | 1 + .../recipes/locks/InterProcessSemaphoreV2.java | 2 +- .../curator/framework/recipes/locks/Reaper.java | 5 + .../locks/StandardLockInternalsDriver.java | 4 +- .../recipes/nodes/PersistentEphemeralNode.java | 10 +- .../recipes/queue/DistributedQueue.java | 6 +- .../framework/recipes/queue/QueueSharder.java | 2 +- .../recipes/queue/SimpleDistributedQueue.java | 18 +- .../framework/recipes/shared/SharedValue.java | 2 +- .../src/site/confluence/index.confluence | 2 + .../recipes/cache/TestPathChildrenCache.java | 202 +----------------- .../framework/recipes/cache/TestTreeCache.java | 18 ++ .../locks/TestInterProcessMultiMutex.java | 4 +- .../recipes/locks/TestInterProcessMutex.java | 2 +- .../locks/TestInterProcessMutexBase.java | 85 +++++++- .../locks/TestInterProcessSemaphoreMutex.java | 2 +- .../nodes/TestPersistentEphemeralNode.java | 41 ++++ .../recipes/queue/TestDistributedIdQueue.java | 47 +++++ curator-test/pom.xml | 16 ++ .../apache/curator/test/BaseClassForTests.java | 28 ++- .../curator/test/DelegatingExecutorService.java | 119 +++++++++++ .../ExecuteCalledWatchingExecutorService.java | 48 +++++ curator-x-discovery-server/pom.xml | 6 + curator-x-discovery/pom.xml | 6 + .../x/discovery/ServiceCacheBuilder.java | 24 ++- .../details/ServiceCacheBuilderImpl.java | 39 +++- .../x/discovery/details/ServiceCacheImpl.java | 17 +- .../discovery/details/ServiceDiscoveryImpl.java | 4 +- .../curator/x/discovery/TestServiceCache.java | 117 +++++++--- curator-x-rpc/pom.xml | 6 + .../idl/services/CuratorProjectionService.java | 4 + .../curator/x/rpc/idl/structs/CreateSpec.java | 6 +- .../x/rpc/idl/structs/RpcCreateMode.java | 3 +- curator-x-rpc/src/main/thrift/curator.thrift | 3 +- .../src/site/confluence/reference.confluence | 1 + pom.xml | 39 ++-- src/site/confluence/utilities.confluence | 32 --- 67 files changed, 1282 insertions(+), 440 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/curator/blob/44ee8547/curator-client/pom.xml ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/curator/blob/44ee8547/curator-examples/pom.xml ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/curator/blob/44ee8547/curator-framework/pom.xml ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/curator/blob/44ee8547/curator-framework/src/main/java/org/apache/curator/framework/CuratorFramework.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/curator/blob/44ee8547/curator-framework/src/main/java/org/apache/curator/framework/imps/CreateBuilderImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/curator/blob/44ee8547/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/curator/blob/44ee8547/curator-framework/src/main/java/org/apache/curator/framework/imps/ExistsBuilderImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/curator/blob/44ee8547/curator-recipes/pom.xml ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/curator/blob/44ee8547/curator-test/pom.xml ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/curator/blob/44ee8547/curator-x-discovery-server/pom.xml ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/curator/blob/44ee8547/curator-x-discovery/pom.xml ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/curator/blob/44ee8547/curator-x-rpc/pom.xml ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/curator/blob/44ee8547/pom.xml ---------------------------------------------------------------------- diff --cc pom.xml index 0319c8d,cb747b7..8c984ab --- a/pom.xml +++ b/pom.xml @@@ -61,6 -61,7 +61,7 @@@ <surefire-forkcount>1</surefire-forkcount> <!-- versions --> - <zookeeper-version>3.4.6</zookeeper-version> ++ <zookeeper-version>3.5.0-alpha</zookeeper-version> <maven-project-info-reports-plugin-version>2.7</maven-project-info-reports-plugin-version> <maven-bundle-plugin-version>2.3.7</maven-bundle-plugin-version> <maven-javadoc-plugin-version>2.10.3</maven-javadoc-plugin-version> http://git-wip-us.apache.org/repos/asf/curator/blob/44ee8547/src/site/confluence/utilities.confluence ---------------------------------------------------------------------- diff --cc src/site/confluence/utilities.confluence index 2ec5c6b,16bbc13..f0d927d --- a/src/site/confluence/utilities.confluence +++ b/src/site/confluence/utilities.confluence @@@ -43,22 -25,3 +25,8 @@@ h2. QueueSharde Due to limitations in ZooKeeper's transport layer, a single queue will break if it has more than 10K\-ish items in it. This class provides a facade over multiple distributed queues. It monitors the queues and if any one of them goes over a threshold, a new queue is added. Puts are distributed amongst the queues. + - h2. Reaper and ChildReaper - - _Reaper_ - - A Utility to delete parent paths of locks, etc. Periodically checks paths added to the reaper. If at check time, there are no - children, the path is deleted. Clients should create one Reaper instance per application. Add lock paths to the reaper as - needed and the reaper will periodically delete them. Curator's lock recipes will correctly handle parents getting deleted. - - _ChildReaper_ - - Utility to reap the empty child nodes in a parent node. Periodically calls getChildren() on the node and adds empty nodes to an internally managed Reaper. - - *NOTE:* You should consider using LeaderSelector to run the Reapers as they don't need to run in every client. - +h2. EnsembleTracker + +Utility to listen for ensemble/configuration changes via registered EnsembleListeners. Allocate a EnsembleTracker, add one or more listeners +and start it.
