CAMEL-8856 Camel-Hazelcast: Add evict and evictAll operation to hazelcast map


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

Branch: refs/heads/master
Commit: 305580120fd97c8532d7a792a303118ed2382637
Parents: 4bc4fe8
Author: Andrea Cosentino <anco...@gmail.com>
Authored: Thu Jun 11 10:13:59 2015 +0200
Committer: Andrea Cosentino <anco...@gmail.com>
Committed: Thu Jun 11 17:14:36 2015 +0200

----------------------------------------------------------------------
 .../camel/component/hazelcast/HazelcastConstants.java    |  3 ++-
 .../component/hazelcast/map/HazelcastMapProducer.java    | 11 +++++++++++
 .../component/hazelcast/HazelcastMapProducerTest.java    | 11 +++++++++++
 3 files changed, 24 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/30558012/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 38a3a9d..b005047 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
@@ -65,9 +65,10 @@ public final class HazelcastConstants {
     public static final int ADD_ALL_OPERATION = 9;
     public static final int REMOVE_ALL_OPERATION = 10;
     public static final int RETAIN_ALL_OPERATION = 11;
+    public static final int EVICT_OPERATION = 12;
 
     // multimap
-    public static final int REMOVEVALUE_OPERATION = 12;
+    public static final int REMOVEVALUE_OPERATION = 14;
 
     // atomic numbers
     public static final int INCREMENT_OPERATION = 20;

http://git-wip-us.apache.org/repos/asf/camel/blob/30558012/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 75de1d2..ba459b0 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
@@ -118,6 +118,10 @@ public class HazelcastMapProducer extends 
HazelcastDefaultProducer {
             this.clear(exchange);
             break;
             
+        case HazelcastConstants.EVICT_OPERATION:
+            this.evict(oid);
+            break;
+            
         default:
             throw new IllegalArgumentException(String.format("The value '%s' 
is not allowed for parameter '%s' on the MAP cache.", operation, 
HazelcastConstants.OPERATION));
         }
@@ -219,4 +223,11 @@ public class HazelcastMapProducer extends 
HazelcastDefaultProducer {
     private void clear(Exchange exchange) {
         this.cache.clear();
     }
+    
+    /**
+     * Eviction operation for a specific key
+     */
+    private void evict(Object oid) {
+        this.cache.evict(oid);
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/30558012/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 a821303..c848142 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
@@ -198,6 +198,14 @@ public class HazelcastMapProducerTest extends 
HazelcastCamelTestSupport implemen
     }
     
     @Test
+    public void testEvict() throws InterruptedException {
+        Map<String, Object> headers = new HashMap<String, Object>();
+        headers.put(HazelcastConstants.OBJECT_ID, "4711");
+        template.sendBodyAndHeaders("direct:evict", "", headers);
+        verify(map).evict("4711");
+    }
+    
+    @Test
     public void testClear() throws InterruptedException {
         template.sendBody("direct:clear", "test");
         verify(map).clear();
@@ -230,6 +238,9 @@ public class HazelcastMapProducerTest extends 
HazelcastCamelTestSupport implemen
                         .to("seda:out");
 
                 from("direct:clear").setHeader(HazelcastConstants.OPERATION, 
constant(HazelcastConstants.CLEAR_OPERATION)).to(String.format("hazelcast:%sfoo",
 HazelcastConstants.MAP_PREFIX));
+ 
+                from("direct:evict").setHeader(HazelcastConstants.OPERATION, 
constant(HazelcastConstants.EVICT_OPERATION)).to(String.format("hazelcast:%sfoo",
 HazelcastConstants.MAP_PREFIX))
+                        .to("seda:out");
                 
                 
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);

Reply via email to