You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@curator.apache.org by ra...@apache.org on 2017/07/10 19:41:03 UTC

[1/4] curator git commit: removed asyncDefault() it was a dumb idea anyway. Also, fixed one of the tests now that the root node isn't cached

Repository: curator
Updated Branches:
  refs/heads/master 12cc7cec5 -> 3b9d60626


removed asyncDefault() it was a dumb idea anyway. Also, fixed one of the tests now that the root node isn't cached


Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/46e5462f
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/46e5462f
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/46e5462f

Branch: refs/heads/master
Commit: 46e5462fb3a5217a2e3077d8e99a0e1b81330f78
Parents: 0f5d10d
Author: randgalt <ra...@apache.org>
Authored: Sun Jul 9 18:07:20 2017 -0500
Committer: randgalt <ra...@apache.org>
Committed: Sun Jul 9 18:07:20 2017 -0500

----------------------------------------------------------------------
 .../modeled/cached/CachedModeledFramework.java  | 10 ---
 .../details/CachedModeledFrameworkImpl.java     | 22 ++----
 .../modeled/TestCachedModeledFramework.java     | 75 +-------------------
 3 files changed, 9 insertions(+), 98 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/curator/blob/46e5462f/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/cached/CachedModeledFramework.java
----------------------------------------------------------------------
diff --git a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/cached/CachedModeledFramework.java b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/cached/CachedModeledFramework.java
index 8acbebb..6cda3aa 100644
--- a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/cached/CachedModeledFramework.java
+++ b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/cached/CachedModeledFramework.java
@@ -37,16 +37,6 @@ public interface CachedModeledFramework<T> extends ModeledFramework<T>, Closeabl
     ModeledCache<T> cache();
 
     /**
-     * Returns a view of this instance that uses the CachedModeledFramework's executor
-     * for all default async completion operations. i.e. when you use, for example,
-     * {@link java.util.concurrent.CompletionStage#handleAsync(java.util.function.BiFunction)}
-     * this instance's executor is used instead of <code>ForkJoinPool.commonPool()</code>.
-     *
-     * @return view
-     */
-    CachedModeledFramework<T> asyncDefault();
-
-    /**
      * Start the internally created cache
      */
     void start();

http://git-wip-us.apache.org/repos/asf/curator/blob/46e5462f/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/CachedModeledFrameworkImpl.java
----------------------------------------------------------------------
diff --git a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/CachedModeledFrameworkImpl.java b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/CachedModeledFrameworkImpl.java
index 2a7fd5f..f701ab3 100644
--- a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/CachedModeledFrameworkImpl.java
+++ b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/CachedModeledFrameworkImpl.java
@@ -48,19 +48,17 @@ class CachedModeledFrameworkImpl<T> implements CachedModeledFramework<T>
     private final ModeledFramework<T> client;
     private final ModeledCacheImpl<T> cache;
     private final Executor executor;
-    private final boolean asyncDefaultMode;
 
     CachedModeledFrameworkImpl(ModeledFramework<T> client, ExecutorService executor)
     {
-        this(client, new ModeledCacheImpl<>(client.unwrap().unwrap(), client.modelSpec(), executor), executor, false);
+        this(client, new ModeledCacheImpl<>(client.unwrap().unwrap(), client.modelSpec(), executor), executor);
     }
 
-    private CachedModeledFrameworkImpl(ModeledFramework<T> client, ModeledCacheImpl<T> cache, Executor executor, boolean asyncDefaultMode)
+    private CachedModeledFrameworkImpl(ModeledFramework<T> client, ModeledCacheImpl<T> cache, Executor executor)
     {
         this.client = client;
         this.cache = cache;
         this.executor = executor;
-        this.asyncDefaultMode = asyncDefaultMode;
     }
 
     @Override
@@ -70,12 +68,6 @@ class CachedModeledFrameworkImpl<T> implements CachedModeledFramework<T>
     }
 
     @Override
-    public CachedModeledFramework<T> asyncDefault()
-    {
-        return new CachedModeledFrameworkImpl<>(client, cache, executor, true);
-    }
-
-    @Override
     public void start()
     {
         cache.start();
@@ -126,7 +118,7 @@ class CachedModeledFrameworkImpl<T> implements CachedModeledFramework<T>
     @Override
     public CachedModeledFramework<T> child(Object child)
     {
-        return new CachedModeledFrameworkImpl<>(client.child(child), cache, executor, asyncDefaultMode);
+        return new CachedModeledFrameworkImpl<>(client.child(child), cache, executor);
     }
 
     @Override
@@ -138,7 +130,7 @@ class CachedModeledFrameworkImpl<T> implements CachedModeledFramework<T>
     @Override
     public CachedModeledFramework<T> withPath(ZPath path)
     {
-        return new CachedModeledFrameworkImpl<>(client.withPath(path), cache, executor, asyncDefaultMode);
+        return new CachedModeledFrameworkImpl<>(client.withPath(path), cache, executor);
     }
 
     @Override
@@ -215,7 +207,7 @@ class CachedModeledFrameworkImpl<T> implements CachedModeledFramework<T>
             .stream()
             .map(ZNode::model)
             .collect(Collectors.toList());
-        return asyncDefaultMode ? ModelStage.asyncCompleted(children, executor) : ModelStage.completed(children);
+        return ModelStage.completed(children);
     }
 
     @Override
@@ -323,13 +315,13 @@ class CachedModeledFrameworkImpl<T> implements CachedModeledFramework<T>
 
     private <U> AsyncStage<U> completed(U value)
     {
-        return asyncDefaultMode ? ModelStage.asyncCompleted(value, executor) : ModelStage.completed(value);
+        return ModelStage.completed(value);
     }
 
     private <U> AsyncStage<U> exceptionally()
     {
         KeeperException.NoNodeException exception = new KeeperException.NoNodeException(client.modelSpec().path().fullPath());
-        return asyncDefaultMode ? ModelStage.asyncExceptionally(exception, executor) : ModelStage.exceptionally(exception);
+        return ModelStage.exceptionally(exception);
     }
 
     private <U> AsyncStage<U> internalRead(Function<ZNode<T>, U> resolver, Supplier<AsyncStage<U>> elseProc)

http://git-wip-us.apache.org/repos/asf/curator/blob/46e5462f/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/TestCachedModeledFramework.java
----------------------------------------------------------------------
diff --git a/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/TestCachedModeledFramework.java b/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/TestCachedModeledFramework.java
index 49821e2..80c1f8b 100644
--- a/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/TestCachedModeledFramework.java
+++ b/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/TestCachedModeledFramework.java
@@ -28,82 +28,11 @@ import org.testng.annotations.Test;
 import java.io.IOException;
 import java.math.BigInteger;
 import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
 import java.util.concurrent.Semaphore;
-import java.util.concurrent.atomic.AtomicReference;
 
 public class TestCachedModeledFramework extends TestModeledFrameworkBase
 {
     @Test
-    public void testThreading()
-    {
-        TestModel model = new TestModel("a", "b", "c", 1, BigInteger.ONE);
-        CachedModeledFramework<TestModel> client = ModeledFramework.wrap(async, modelSpec).cached().asyncDefault();
-
-        CountDownLatch latch = new CountDownLatch(1);
-        client.listenable().addListener((type, path1, stat, model1) -> latch.countDown());
-
-        complete(client.set(model));
-        client.start();
-        try
-        {
-            Assert.assertTrue(new Timing().awaitLatch(latch));
-
-            AtomicReference<Thread> completionThread = new AtomicReference<>();
-            complete(client.read().whenCompleteAsync((s, e) -> completionThread.set((e == null) ? Thread.currentThread() : null)));
-            Assert.assertNotNull(completionThread.get());
-            Assert.assertNotEquals(Thread.currentThread(), completionThread.get(), "Should be different threads");
-            completionThread.set(null);
-
-            complete(client.child("foo").read().whenCompleteAsync((v, e) -> completionThread.set((e != null) ? Thread.currentThread() : null)));
-            Assert.assertNotNull(completionThread.get());
-            Assert.assertNotEquals(Thread.currentThread(), completionThread.get(), "Should be different threads");
-            completionThread.set(null);
-        }
-        finally
-        {
-            client.close();
-        }
-    }
-
-    @Test
-    public void testCustomThreading()
-    {
-        AtomicReference<Thread> ourThread = new AtomicReference<>();
-        ExecutorService executor = Executors.newSingleThreadExecutor(r -> {
-            Thread thread = new Thread(r, "testCustomThreading");
-            ourThread.set(thread);
-            return thread;
-        });
-        TestModel model = new TestModel("a", "b", "c", 1, BigInteger.ONE);
-        CachedModeledFramework<TestModel> client = ModeledFramework.wrap(async, modelSpec).cached(executor).asyncDefault();
-
-        CountDownLatch latch = new CountDownLatch(1);
-        client.listenable().addListener((type, path1, stat, model1) -> latch.countDown());
-
-        complete(client.set(model));
-        client.start();
-        try
-        {
-            Assert.assertTrue(new Timing().awaitLatch(latch));
-
-            AtomicReference<Thread> completionThread = new AtomicReference<>();
-            complete(client.read().thenAcceptAsync(s -> completionThread.set(Thread.currentThread())));
-            Assert.assertEquals(ourThread.get(), completionThread.get(), "Should be our thread");
-            completionThread.set(null);
-
-            complete(client.child("foo").read().whenCompleteAsync((v, e) -> completionThread.set((e != null) ? Thread.currentThread() : null)));
-            Assert.assertEquals(ourThread.get(), completionThread.get(), "Should be our thread");
-            completionThread.set(null);
-        }
-        finally
-        {
-            client.close();
-        }
-    }
-
-    @Test
     public void testDownServer() throws IOException
     {
         Timing timing = new Timing();
@@ -116,7 +45,7 @@ public class TestCachedModeledFramework extends TestModeledFrameworkBase
         client.start();
         try
         {
-            client.set(model);
+            client.child(model).set(model);
             Assert.assertTrue(timing.acquireSemaphore(semaphore));
 
             CountDownLatch latch = new CountDownLatch(1);
@@ -129,7 +58,7 @@ public class TestCachedModeledFramework extends TestModeledFrameworkBase
             server.stop();
             Assert.assertTrue(timing.awaitLatch(latch));
 
-            complete(client.read().whenComplete((value, e) -> {
+            complete(client.child(model).read().whenComplete((value, e) -> {
                 Assert.assertNotNull(value);
                 Assert.assertNull(e);
             }));


[3/4] curator git commit: Must use timing for ttls so that Jenkins can have appropriate values

Posted by ra...@apache.org.
Must use timing for ttls so that Jenkins can have appropriate values


Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/4ad1fb8e
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/4ad1fb8e
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/4ad1fb8e

Branch: refs/heads/master
Commit: 4ad1fb8e5867648e311200edbba773b203c546ad
Parents: 1b2598d
Author: randgalt <ra...@apache.org>
Authored: Mon Jul 10 14:40:20 2017 -0500
Committer: randgalt <ra...@apache.org>
Committed: Mon Jul 10 14:40:20 2017 -0500

----------------------------------------------------------------------
 .../recipes/nodes/TestPersistentTtlNode.java         | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/curator/blob/4ad1fb8e/curator-recipes/src/test/java/org/apache/curator/framework/recipes/nodes/TestPersistentTtlNode.java
----------------------------------------------------------------------
diff --git a/curator-recipes/src/test/java/org/apache/curator/framework/recipes/nodes/TestPersistentTtlNode.java b/curator-recipes/src/test/java/org/apache/curator/framework/recipes/nodes/TestPersistentTtlNode.java
index 43f5cc0..573a867 100644
--- a/curator-recipes/src/test/java/org/apache/curator/framework/recipes/nodes/TestPersistentTtlNode.java
+++ b/curator-recipes/src/test/java/org/apache/curator/framework/recipes/nodes/TestPersistentTtlNode.java
@@ -39,6 +39,7 @@ import static org.apache.curator.framework.recipes.cache.PathChildrenCache.Start
 public class TestPersistentTtlNode extends BaseClassForTests
 {
     private final Timing timing = new Timing();
+    private final long ttlMs = timing.multiple(.10).milliseconds(); // a small number
 
     @BeforeMethod
     @Override
@@ -63,14 +64,14 @@ public class TestPersistentTtlNode extends BaseClassForTests
         {
             client.start();
 
-            try (PersistentTtlNode node = new PersistentTtlNode(client, "/test", 100, new byte[0]))
+            try (PersistentTtlNode node = new PersistentTtlNode(client, "/test", ttlMs, new byte[0]))
             {
                 node.start();
                 Assert.assertTrue(node.waitForInitialCreate(timing.session(), TimeUnit.MILLISECONDS));
 
-                for ( int i = 0; i < 10; ++i )
+                for ( int i = 0; i < 5; ++i )
                 {
-                    Thread.sleep(110);  // sleep a bit more than the TTL
+                    Thread.sleep(ttlMs + (ttlMs / 2));  // sleep a bit more than the TTL
                     Assert.assertNotNull(client.checkExists().forPath("/test"));
                 }
             }
@@ -88,14 +89,14 @@ public class TestPersistentTtlNode extends BaseClassForTests
         {
             client.start();
 
-            try (PersistentTtlNode node = new PersistentTtlNode(client, "/test", 10, new byte[0]))
+            try (PersistentTtlNode node = new PersistentTtlNode(client, "/test", ttlMs, new byte[0]))
             {
                 node.start();
                 Assert.assertTrue(node.waitForInitialCreate(timing.session(), TimeUnit.MILLISECONDS));
 
-                for ( int i = 0; i < 10; ++i )
+                for ( int i = 0; i < 5; ++i )
                 {
-                    Thread.sleep(10);
+                    Thread.sleep(ttlMs);
                     client.delete().quietly().forPath(ZKPaths.makePath("test", PersistentTtlNode.DEFAULT_CHILD_NODE_NAME));
                 }
 
@@ -112,7 +113,7 @@ public class TestPersistentTtlNode extends BaseClassForTests
         {
             client.start();
 
-            try (PersistentTtlNode node = new PersistentTtlNode(client, "/test", 10, new byte[0]))
+            try (PersistentTtlNode node = new PersistentTtlNode(client, "/test", ttlMs, new byte[0]))
             {
                 try(PathChildrenCache cache = new PathChildrenCache(client, "/", true))
                 {


[4/4] curator git commit: Merge branch 'master' into CURATOR-419

Posted by ra...@apache.org.
Merge branch 'master' into CURATOR-419


Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/3b9d6062
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/3b9d6062
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/3b9d6062

Branch: refs/heads/master
Commit: 3b9d60626bd5f469dbe0be37a4f952ed2f7dd15e
Parents: 4ad1fb8 12cc7ce
Author: randgalt <ra...@apache.org>
Authored: Mon Jul 10 14:40:48 2017 -0500
Committer: randgalt <ra...@apache.org>
Committed: Mon Jul 10 14:40:48 2017 -0500

----------------------------------------------------------------------
 .../framework/recipes/shared/SharedCount.java   |   5 +
 .../framework/recipes/shared/SharedValue.java   |  28 ++++-
 .../recipes/shared/TestSharedCount.java         | 117 ++++++++++++++++++-
 3 files changed, 148 insertions(+), 2 deletions(-)
----------------------------------------------------------------------



[2/4] curator git commit: Enabled must use custom serializer now

Posted by ra...@apache.org.
Enabled must use custom serializer now


Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/1b2598d3
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/1b2598d3
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/1b2598d3

Branch: refs/heads/master
Commit: 1b2598d389b9e38182f99cd89e8c8cf1445c155a
Parents: 46e5462
Author: randgalt <ra...@apache.org>
Authored: Mon Jul 10 10:15:49 2017 -0500
Committer: randgalt <ra...@apache.org>
Committed: Mon Jul 10 10:15:49 2017 -0500

----------------------------------------------------------------------
 .../apache/curator/x/discovery/details/TestServiceProvider.java   | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/curator/blob/1b2598d3/curator-x-discovery/src/test/java/org/apache/curator/x/discovery/details/TestServiceProvider.java
----------------------------------------------------------------------
diff --git a/curator-x-discovery/src/test/java/org/apache/curator/x/discovery/details/TestServiceProvider.java b/curator-x-discovery/src/test/java/org/apache/curator/x/discovery/details/TestServiceProvider.java
index fae7266..d7358fe 100644
--- a/curator-x-discovery/src/test/java/org/apache/curator/x/discovery/details/TestServiceProvider.java
+++ b/curator-x-discovery/src/test/java/org/apache/curator/x/discovery/details/TestServiceProvider.java
@@ -85,7 +85,8 @@ public class TestServiceProvider extends BaseClassForTests
             client.start();
 
             ServiceInstance<String> instance = ServiceInstance.<String>builder().payload("thing").name("test").port(10064).enabled(false).build();
-            ServiceDiscovery<String> discovery = ServiceDiscoveryBuilder.builder(String.class).basePath("/test").client(client).thisInstance(instance).build();
+            InstanceSerializer<String> serializer = new JsonInstanceSerializer<>(String.class, false);
+            ServiceDiscovery<String> discovery = ServiceDiscoveryBuilder.builder(String.class).serializer(serializer).basePath("/test").client(client).thisInstance(instance).build();
             closeables.add(discovery);
             discovery.start();