Repository: camel
Updated Branches:
  refs/heads/master 0b3e38a7e -> 9c628c284


CAMEL-8731 Camel-Hazelcast: Add clear operation to map and multimap producers


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/9c628c28
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/9c628c28
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/9c628c28

Branch: refs/heads/master
Commit: 9c628c2841daf3b457e1ccfcf69050d5c3c274b7
Parents: 0b3e38a
Author: Andrea Cosentino <anco...@gmail.com>
Authored: Sat May 2 16:50:43 2015 +0200
Committer: Andrea Cosentino <anco...@gmail.com>
Committed: Sat May 2 16:50:43 2015 +0200

----------------------------------------------------------------------
 .../camel/component/hazelcast/HazelcastConstants.java    |  3 ++-
 .../component/hazelcast/map/HazelcastMapProducer.java    | 11 +++++++++++
 .../hazelcast/multimap/HazelcastMultimapProducer.java    |  7 +++++++
 .../component/hazelcast/HazelcastMapProducerTest.java    |  9 ++++++++-
 .../hazelcast/HazelcastMultimapProducerTest.java         |  8 ++++++++
 5 files changed, 36 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/9c628c28/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java
----------------------------------------------------------------------
diff --git 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java
 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java
index 7757f74..84521c3 100644
--- 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java
+++ 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java
@@ -49,7 +49,7 @@ public final class HazelcastConstants {
     public static final String CACHE_NAME = "CamelHazelcastCacheName";
     public static final String CACHE_TYPE = "CamelHazelcastCacheType";
 
-    // actions (put, delete, get, getAll, replace, update)
+    // actions (put, delete, get, getAll, replace, update, clear)
     public static final String OPERATION = "CamelHazelcastOperationType";
     public static final int PUT_OPERATION = 1;
     public static final int DELETE_OPERATION = 2;
@@ -58,6 +58,7 @@ public final class HazelcastConstants {
     public static final int QUERY_OPERATION = 5;
     public static final int GET_ALL_OPERATION = 6;
     public static final int REPLACE_OPERATION = 7;
+    public static final int CLEAR_OPERATION = 8;
 
     // multimap
     public static final int REMOVEVALUE_OPERATION = 10;

http://git-wip-us.apache.org/repos/asf/camel/blob/9c628c28/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/map/HazelcastMapProducer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/map/HazelcastMapProducer.java
 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/map/HazelcastMapProducer.java
index 8b6cd69..ab59a6a 100644
--- 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/map/HazelcastMapProducer.java
+++ 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/map/HazelcastMapProducer.java
@@ -94,6 +94,10 @@ public class HazelcastMapProducer extends 
HazelcastDefaultProducer {
                 this.replace(oid, ovalue, exchange);
             }
             break;
+
+        case HazelcastConstants.CLEAR_OPERATION:
+            this.clear(exchange);
+            break;
             
         default:
             throw new IllegalArgumentException(String.format("The value '%s' 
is not allowed for parameter '%s' on the MAP cache.", operation, 
HazelcastConstants.OPERATION));
@@ -172,4 +176,11 @@ public class HazelcastMapProducer extends 
HazelcastDefaultProducer {
         Object body = exchange.getIn().getBody();
         this.cache.replace(oid, ovalue, body);
     }
+    
+    /**
+     * Clear all the entries
+     */
+    private void clear(Exchange exchange) {
+        this.cache.clear();
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/9c628c28/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/multimap/HazelcastMultimapProducer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/multimap/HazelcastMultimapProducer.java
 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/multimap/HazelcastMultimapProducer.java
index 2bbe5f3..4e9ff53 100644
--- 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/multimap/HazelcastMultimapProducer.java
+++ 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/multimap/HazelcastMultimapProducer.java
@@ -66,6 +66,10 @@ public class HazelcastMultimapProducer extends 
HazelcastDefaultProducer {
             this.removevalue(oid, exchange);
             break;
 
+        case HazelcastConstants.CLEAR_OPERATION:
+            this.clear(exchange);
+            break;
+            
         default:
             throw new IllegalArgumentException(String.format("The value '%s' 
is not allowed for parameter '%s' on the MULTIMAP cache.", operation, 
HazelcastConstants.OPERATION));
         }
@@ -91,4 +95,7 @@ public class HazelcastMultimapProducer extends 
HazelcastDefaultProducer {
         this.cache.remove(oid, exchange.getIn().getBody());
     }
 
+    private void clear(Exchange exchange) {
+        this.cache.clear();
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/9c628c28/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMapProducerTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMapProducerTest.java
 
b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMapProducerTest.java
index 132c3c0..ff11057 100644
--- 
a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMapProducerTest.java
+++ 
b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMapProducerTest.java
@@ -22,7 +22,6 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.Set;
 
 import com.hazelcast.core.HazelcastInstance;
@@ -172,6 +171,12 @@ public class HazelcastMapProducerTest extends 
HazelcastCamelTestSupport implemen
         template.sendBodyAndHeaders("direct:replace", "replaced", headers);
         verify(map).replace("4711", "my-foo", "replaced");
     }
+    
+    @Test
+    public void testClear() throws InterruptedException {
+        template.sendBody("direct:clear", "test");
+        verify(map).clear();
+    }
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
@@ -198,6 +203,8 @@ public class HazelcastMapProducerTest extends 
HazelcastCamelTestSupport implemen
                 
                 from("direct:replace").setHeader(HazelcastConstants.OPERATION, 
constant(HazelcastConstants.REPLACE_OPERATION)).to(String.format("hazelcast:%sfoo",
 HazelcastConstants.MAP_PREFIX));
 
+                from("direct:clear").setHeader(HazelcastConstants.OPERATION, 
constant(HazelcastConstants.CLEAR_OPERATION)).to(String.format("hazelcast:%sfoo",
 HazelcastConstants.MAP_PREFIX));
+                
                 
from("direct:putWithOperationNumber").toF("hazelcast:%sfoo?operation=%s", 
HazelcastConstants.MAP_PREFIX, HazelcastConstants.PUT_OPERATION);
                 
from("direct:putWithOperationName").toF("hazelcast:%sfoo?operation=put", 
HazelcastConstants.MAP_PREFIX);
             }

http://git-wip-us.apache.org/repos/asf/camel/blob/9c628c28/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMultimapProducerTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMultimapProducerTest.java
 
b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMultimapProducerTest.java
index ca76c63..95f357f 100644
--- 
a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMultimapProducerTest.java
+++ 
b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMultimapProducerTest.java
@@ -92,6 +92,12 @@ public class HazelcastMultimapProducerTest extends 
HazelcastCamelTestSupport {
         template.sendBodyAndHeader("direct:delete", null, 
HazelcastConstants.OBJECT_ID, 4711);
         verify(map).remove(4711);
     }
+    
+    @Test
+    public void testClear() {
+        template.sendBody("direct:clear", "test");
+        verify(map).clear();
+    }
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
@@ -111,6 +117,8 @@ public class HazelcastMultimapProducerTest extends 
HazelcastCamelTestSupport {
 
                 from("direct:delete").setHeader(HazelcastConstants.OPERATION, 
constant(HazelcastConstants.DELETE_OPERATION)).to(String.format("hazelcast:%sbar",
 HazelcastConstants.MULTIMAP_PREFIX));
 
+                from("direct:clear").setHeader(HazelcastConstants.OPERATION, 
constant(HazelcastConstants.CLEAR_OPERATION)).to(String.format("hazelcast:%sbar",
 HazelcastConstants.MULTIMAP_PREFIX));
+                
                 
from("direct:putWithOperationNumber").toF("hazelcast:%sbar?operation=%s", 
HazelcastConstants.MULTIMAP_PREFIX, HazelcastConstants.PUT_OPERATION);
                 
from("direct:putWithOperationName").toF("hazelcast:%sbar?operation=put", 
HazelcastConstants.MULTIMAP_PREFIX);
             }

Reply via email to