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 <[email protected]> Authored: Sun Jul 9 18:07:20 2017 -0500 Committer: randgalt <[email protected]> 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); }));
