This is an automated email from the ASF dual-hosted git repository. randgalt pushed a commit to branch persistent-watch in repository https://gitbox.apache.org/repos/asf/curator.git
commit 6580885bc895dac44e4cade1f58017054d35d5c3 Merge: d16734a f17e3e6 Author: randgalt <[email protected]> AuthorDate: Wed Oct 2 18:35:13 2019 -0500 Merge branch 'master' into persistent-watch .travis.yml | 4 + README.md | 4 + curator-client/pom.xml | 8 +- .../java/org/apache/curator/ConnectionState.java | 9 +- .../org/apache/curator/CuratorZookeeperClient.java | 54 +++- .../main/java/org/apache/curator/HandleHolder.java | 19 +- .../org/apache/curator/utils/Compatibility.java | 45 ++- .../curator/utils/InjectSessionExpiration.java | 34 +- .../java/org/apache/curator/utils/ZKPaths.java | 139 ++++++-- .../test/java/org/apache/curator/BasicTests.java | 4 +- .../apache/curator/TestSessionFailRetryLoop.java | 10 +- curator-examples/pom.xml | 14 +- .../src/main/java/cache/TreeCacheExample.java | 57 ++++ .../src/main/java/discovery/InstanceDetails.java | 2 +- curator-framework/pom.xml | 6 +- .../apache/curator/framework/CuratorFramework.java | 38 ++- .../curator/framework/CuratorFrameworkFactory.java | 69 +++- .../curator/framework/imps/CreateBuilderImpl.java | 102 +++--- .../framework/imps/CuratorFrameworkImpl.java | 129 +++++--- .../framework/imps/CuratorTempFrameworkImpl.java | 4 +- .../curator/framework/imps/EnsembleTracker.java | 6 + .../framework/imps/GzipCompressionProvider.java | 311 ++++++++++++++++-- .../curator/framework/imps/OperationAndData.java | 5 + .../curator/framework/imps/ProtectedMode.java | 113 +++++++ .../framework/listen/ListenerContainer.java | 11 +- .../curator/framework/listen/ListenerManager.java | 35 +- .../framework/listen/MappingListenerManager.java | 108 +++++++ .../framework/listen/StandardListenerManager.java | 96 ++++++ .../framework/listen/UnaryListenerManager.java | 20 +- .../curator/framework/schema/SchemaViolation.java | 3 +- .../curator/framework/state/CircuitBreaker.java | 111 +++++++ .../CircuitBreakingConnectionStateListener.java | 215 +++++++++++++ .../framework/state/CircuitBreakingManager.java | 91 ++++++ .../framework/state/ConnectionStateListener.java | 15 +- .../ConnectionStateListenerManagerFactory.java | 69 ++++ .../framework/state/ConnectionStateManager.java | 69 ++-- .../framework/ensemble/TestEnsembleProvider.java | 162 ++++++++++ .../curator/framework/imps/TestCleanState.java | 4 +- .../framework/imps/TestCreateReturningStat.java | 30 ++ .../imps/TestEnabledSessionExpiredState.java | 4 +- .../curator/framework/imps/TestFramework.java | 47 +++ .../curator/framework/imps/TestFrameworkEdges.java | 355 +++++++++++++++++---- .../imps/TestGzipCompressionProvider.java | 125 ++++++++ .../curator/framework/imps/TestRemoveWatches.java | 12 +- .../curator/framework/imps/TestTtlNodes.java | 6 + .../curator/framework/imps/TestWithCluster.java | 4 +- .../framework/state/TestCircuitBreaker.java | 98 ++++++ ...TestCircuitBreakingConnectionStateListener.java | 227 +++++++++++++ .../state/TestConnectionStateManager.java | 82 +++++ curator-recipes/pom.xml | 6 +- .../recipes/barriers/DistributedBarrier.java | 7 +- .../recipes/barriers/DistributedDoubleBarrier.java | 14 +- .../framework/recipes/cache/PathChildrenCache.java | 53 ++- .../curator/framework/recipes/cache/TreeCache.java | 168 +++++----- .../framework/recipes/leader/LeaderLatch.java | 43 ++- .../framework/recipes/leader/LeaderSelector.java | 27 +- .../framework/recipes/locks/InterProcessLock.java | 5 +- .../recipes/locks/InterProcessMultiLock.java | 3 + .../framework/recipes/locks/InterProcessMutex.java | 2 +- .../recipes/locks/InterProcessSemaphoreMutex.java | 7 + .../recipes/locks/InterProcessSemaphoreV2.java | 32 +- .../framework/recipes/locks/LockInternals.java | 44 +-- .../framework/recipes/nodes/PersistentNode.java | 16 +- .../recipes/queue/DistributedDelayQueue.java | 2 +- .../framework/recipes/queue/QueueBuilder.java | 4 +- .../framework/recipes/shared/SharedCount.java | 2 +- .../framework/recipes/cache/BaseTestTreeCache.java | 12 + .../framework/recipes/cache/TestNodeCache.java | 12 +- .../recipes/cache/TestPathChildrenCache.java | 109 ++++++- .../framework/recipes/cache/TestTreeCache.java | 39 ++- .../framework/recipes/leader/TestLeaderLatch.java | 151 +++++++++ .../recipes/leader/TestLeaderSelector.java | 48 ++- .../recipes/locks/TestInterProcessMutex.java | 4 +- .../recipes/locks/TestInterProcessMutexBase.java | 4 +- .../recipes/locks/TestInterProcessSemaphore.java | 49 +++ .../locks/TestInterProcessSemaphoreMutex.java | 10 +- .../framework/recipes/locks/TestLockACLs.java | 4 +- .../recipes/nodes/TestPersistentEphemeralNode.java | 52 +-- .../recipes/nodes/TestPersistentNode.java | 33 ++ .../recipes/nodes/TestPersistentTtlNode.java | 6 + .../recipes/queue/TestDistributedQueue.java | 2 +- curator-test-zk34/pom.xml | 13 +- .../org/apache/curator/test/Compatibility.java | 8 - curator-test/pom.xml | 6 +- .../org/apache/curator/test/BaseClassForTests.java | 150 +++------ .../org/apache/curator/test/Compatibility.java | 7 - curator-x-async/pom.xml | 14 +- .../details/CachedModeledFrameworkImpl.java | 4 +- .../modeled/details/ModeledFrameworkImpl.java | 2 +- .../curator/framework/imps/TestFramework.java | 29 ++ .../async/modeled/TestCachedModeledFramework.java | 69 +++- .../x/async/modeled/TestModeledFramework.java | 10 +- curator-x-discovery-server/pom.xml | 43 ++- .../server/contexts/GenericDiscoveryContext.java | 8 +- .../server/contexts/IntegerDiscoveryContext.java | 4 +- .../server/contexts/StringDiscoveryContext.java | 4 +- .../entity/JsonServiceInstanceMarshaller.java | 6 +- .../entity/JsonServiceInstancesMarshaller.java | 8 +- .../server/entity/JsonServiceNamesMarshaller.java | 22 +- .../x/discovery/server/rest/DiscoveryContext.java | 4 +- .../server/jetty_jersey/ServiceDetails.java | 3 +- curator-x-discovery/pom.xml | 11 +- .../curator/x/discovery/ServiceInstance.java | 6 +- .../discovery/details/JsonInstanceSerializer.java | 12 +- .../x/discovery/details/OldServiceInstance.java | 5 +- .../x/discovery/details/ServiceCacheImpl.java | 22 +- .../TestJsonInstanceSerializerCompatibility.java | 4 +- .../discovery/details/TestNewServiceInstance.java | 5 +- .../x/discovery/details/TestServiceCacheRace.java | 128 ++++++++ .../x/discovery/details/TestServiceDiscovery.java | 8 +- doap.rdf | 6 +- pom.xml | 188 ++++++++--- src/site/confluence/errors.confluence | 4 +- src/site/confluence/getting-started.confluence | 4 +- src/site/confluence/index.confluence | 8 + src/site/confluence/logging.confluence | 2 +- src/site/confluence/utilities.confluence | 28 ++ src/site/confluence/zk-compatibility.confluence | 31 +- src/site/site.xml | 14 +- 119 files changed, 4217 insertions(+), 838 deletions(-) diff --cc curator-recipes/src/main/java/org/apache/curator/framework/recipes/cache/TreeCache.java index b411220,f42c1d5..cf84b03 --- a/curator-recipes/src/main/java/org/apache/curator/framework/recipes/cache/TreeCache.java +++ b/curator-recipes/src/main/java/org/apache/curator/framework/recipes/cache/TreeCache.java @@@ -27,15 -27,13 +27,18 @@@ import com.google.common.collect.Maps import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.WatcherRemoveCuratorFramework; import org.apache.curator.framework.api.BackgroundCallback; + import org.apache.curator.framework.api.BackgroundPathable; import org.apache.curator.framework.api.CuratorEvent; + import org.apache.curator.framework.api.Pathable; import org.apache.curator.framework.api.UnhandledErrorListener; + import org.apache.curator.framework.api.Watchable; import org.apache.curator.framework.listen.Listenable; import org.apache.curator.framework.listen.ListenerContainer; +import org.apache.curator.framework.recipes.watch.CacheAction; +import org.apache.curator.framework.recipes.watch.CacheSelector; +import org.apache.curator.framework.recipes.watch.CacheSelectors; +import org.apache.curator.framework.recipes.watch.CuratorCache; +import org.apache.curator.framework.recipes.watch.CuratorCacheBuilder; import org.apache.curator.framework.state.ConnectionState; import org.apache.curator.framework.state.ConnectionStateListener; import org.apache.curator.utils.PathUtils; @@@ -755,11 -725,18 +767,11 @@@ public class TreeCache implements TreeC result = builder.build(); } - // Double-check liveness after retreiving children. - return node.nodeState == NodeState.LIVE ? result : null; + // Double-check liveness after retrieving children. + return isLive(node.childData) ? result : null; } - /** - * Return the current data for the given path. There are no guarantees of accuracy. This is - * merely the most recent view of the data. If there is no node at the given path, - * {@code null} is returned. - * - * @param fullPath full path to the node to check - * @return data if the node is alive, or null - */ + @Override public ChildData getCurrentData(String fullPath) { TreeNode node = find(fullPath); diff --cc curator-recipes/src/test/java/org/apache/curator/framework/recipes/cache/TestTreeCache.java index ee5e918,1e97ce2..5aaad47 --- a/curator-recipes/src/test/java/org/apache/curator/framework/recipes/cache/TestTreeCache.java +++ b/curator-recipes/src/test/java/org/apache/curator/framework/recipes/cache/TestTreeCache.java @@@ -30,10 -29,9 +29,9 @@@ import org.apache.zookeeper.CreateMode import org.testng.Assert; import org.testng.annotations.Test; import java.util.concurrent.Semaphore; - import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; -public class TestTreeCache extends BaseTestTreeCache +public class TestTreeCache extends BaseTestTreeCache<TreeCache> { @Test public void testSelector() throws Exception
