You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2015/06/25 17:16:33 UTC

camel git commit: CAMEL-8903 Camel-Infinispan: Add ClearAsync operation to producer

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 <an...@gmail.com>
Authored: Thu Jun 25 10:50:45 2015 +0200
Committer: Andrea Cosentino <an...@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");
             }
         };
     }