Repository: camel Updated Branches: refs/heads/master bc1c33149 -> 9d0a01ede
CAMEL-8903 Camel-Infinispan: Add ClearAsync operation to producer Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/9d0a01ed Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/9d0a01ed Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/9d0a01ed Branch: refs/heads/master Commit: 9d0a01edecab475fdd663d1e173683c73df08ddb Parents: bc1c331 Author: Andrea Cosentino <anco...@gmail.com> Authored: Thu Jun 25 10:50:45 2015 +0200 Committer: Andrea Cosentino <anco...@gmail.com> Committed: Thu Jun 25 17:12:21 2015 +0200 ---------------------------------------------------------------------- .../infinispan/InfinispanConstants.java | 1 + .../infinispan/InfinispanOperation.java | 7 +++++++ .../infinispan/InfinispanProducerTest.java | 21 ++++++++++++++++++++ 3 files changed, 29 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/9d0a01ed/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanConstants.java ---------------------------------------------------------------------- diff --git a/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanConstants.java b/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanConstants.java index 2dfe003..9b82bc5 100644 --- a/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanConstants.java +++ b/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanConstants.java @@ -39,6 +39,7 @@ public interface InfinispanConstants { String REPLACE = "CamelInfinispanOperationReplace"; String REPLACE_ASYNC = "CamelInfinispanOperationReplaceAsync"; String CLEAR = "CamelInfinispanOperationClear"; + String CLEAR_ASYNC = "CamelInfinispanOperationClearAsync"; String SIZE = "CamelInfinispanOperationSize"; String RESULT = "CamelInfinispanOperationResult"; String LIFESPAN_TIME = "CamelInfinispanLifespanTime"; http://git-wip-us.apache.org/repos/asf/camel/blob/9d0a01ed/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanOperation.java ---------------------------------------------------------------------- diff --git a/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanOperation.java b/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanOperation.java index 14fd363..4d37c9a 100644 --- a/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanOperation.java +++ b/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanOperation.java @@ -288,6 +288,13 @@ public class InfinispanOperation { void execute(BasicCache<Object, Object> cache, Exchange exchange) { cache.clear(); } + }, CLEARASYNC { + @Override + void execute(BasicCache<Object, Object> cache, Exchange exchange) { + NotifyingFuture result; + result = cache.clearAsync(); + setResult(result, exchange); + } }; void setResult(Object result, Exchange exchange) { http://git-wip-us.apache.org/repos/asf/camel/blob/9d0a01ed/components/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/InfinispanProducerTest.java ---------------------------------------------------------------------- diff --git a/components/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/InfinispanProducerTest.java b/components/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/InfinispanProducerTest.java index 8993fdd..61fd0fa 100644 --- a/components/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/InfinispanProducerTest.java +++ b/components/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/InfinispanProducerTest.java @@ -1064,6 +1064,25 @@ public class InfinispanProducerTest extends InfinispanTestSupport { }); assertTrue(currentCache().isEmpty()); } + + @Test + public void clearAsyncTest() throws Exception { + currentCache().put(KEY_ONE, VALUE_ONE); + currentCache().put(KEY_TWO, VALUE_TWO); + + Exchange exchange = template.request("direct:clearasync", new Processor() { + @Override + public void process(Exchange exchange) throws Exception { + exchange.getIn().setHeader(InfinispanConstants.OPERATION, InfinispanConstants.CLEAR_ASYNC); + } + }); + + Thread.sleep(100); + NotifyingFuture fut = exchange.getIn().getHeader(InfinispanConstants.RESULT, NotifyingFuture.class); + assertEquals(fut.isDone(), Boolean.TRUE); + + assertTrue(currentCache().isEmpty()); + } @Override protected RouteBuilder createRouteBuilder() throws Exception { @@ -1100,6 +1119,8 @@ public class InfinispanProducerTest extends InfinispanTestSupport { .to("infinispan://localhost?cacheContainer=#cacheContainer&command=REPLACEASYNC"); from("direct:removeasync") .to("infinispan://localhost?cacheContainer=#cacheContainer&command=REMOVEASYNC"); + from("direct:clearasync") + .to("infinispan://localhost?cacheContainer=#cacheContainer&command=CLEARASYNC"); } }; }