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/18 17:41:08 UTC

[2/2] camel git commit: CAMEL-8883: Camel-Hazelcast: Add containsKey and containsValue operation to ReplicatedMap and MultiMap Producer

CAMEL-8883: Camel-Hazelcast: Add containsKey and containsValue operation to ReplicatedMap and MultiMap Producer


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

Branch: refs/heads/master
Commit: b102a56a16dd1fcb513b55043701d2580cf19378
Parents: ce5c087
Author: Andrea Cosentino <an...@gmail.com>
Authored: Thu Jun 18 12:45:51 2015 +0200
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Thu Jun 18 17:37:22 2015 +0200

----------------------------------------------------------------------
 .../multimap/HazelcastMultimapProducer.java     | 17 +++++++++
 .../HazelcastMultimapProducerForSpringTest.java | 27 ++++++++++++++
 .../HazelcastMultimapProducerTest.java          | 37 ++++++++++++++++++++
 .../spring/test-camel-context-multimap.xml      | 18 ++++++++++
 4 files changed, 99 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/b102a56a/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 b5ebb2e..6264c22 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
@@ -65,6 +65,14 @@ public class HazelcastMultimapProducer extends HazelcastDefaultProducer {
         case HazelcastConstants.REMOVEVALUE_OPERATION:
             this.removevalue(oid, exchange);
             break;
+            
+        case HazelcastConstants.CONTAINS_KEY_OPERATION:
+            this.containsKey(oid, exchange);
+            break;
+            
+        case HazelcastConstants.CONTAINS_VALUE_OPERATION:
+            this.containsValue(exchange);
+            break;
 
         case HazelcastConstants.CLEAR_OPERATION:
             this.clear(exchange);
@@ -106,4 +114,13 @@ public class HazelcastMultimapProducer extends HazelcastDefaultProducer {
     private void clear(Exchange exchange) {
         this.cache.clear();
     }
+
+    private void containsKey(Object oid, Exchange exchange) {
+        exchange.getOut().setBody(this.cache.containsKey(oid));
+    }
+
+    private void containsValue(Exchange exchange) {
+        Object body = exchange.getIn().getBody();
+        exchange.getOut().setBody(this.cache.containsValue(body));
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/b102a56a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMultimapProducerForSpringTest.java
----------------------------------------------------------------------
diff --git a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMultimapProducerForSpringTest.java b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMultimapProducerForSpringTest.java
index 6a78332..f6ef368 100644
--- a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMultimapProducerForSpringTest.java
+++ b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastMultimapProducerForSpringTest.java
@@ -85,4 +85,31 @@ public class HazelcastMultimapProducerForSpringTest extends HazelcastCamelSpring
         verify(map).remove(4711);
     }
 
+    @Test
+    public void testContainsKey() {
+        when(map.containsKey("testOk")).thenReturn(true);
+        when(map.containsKey("testKo")).thenReturn(false);
+        template.sendBodyAndHeader("direct:containsKey", null, HazelcastConstants.OBJECT_ID, "testOk");
+        Boolean body = consumer.receiveBody("seda:out", 5000, Boolean.class);
+        verify(map).containsKey("testOk");
+        assertEquals(true, body);
+        template.sendBodyAndHeader("direct:containsKey", null, HazelcastConstants.OBJECT_ID, "testKo");
+        body = consumer.receiveBody("seda:out", 5000, Boolean.class);
+        verify(map).containsKey("testKo");
+        assertEquals(false, body);
+    }
+    
+    @Test
+    public void testContainsValue() {
+        when(map.containsValue("testOk")).thenReturn(true);
+        when(map.containsValue("testKo")).thenReturn(false);
+        template.sendBody("direct:containsValue", "testOk");
+        Boolean body = consumer.receiveBody("seda:out", 5000, Boolean.class);
+        verify(map).containsValue("testOk");
+        assertEquals(true, body);
+        template.sendBody("direct:containsValue", "testKo");
+        body = consumer.receiveBody("seda:out", 5000, Boolean.class);
+        verify(map).containsValue("testKo");
+        assertEquals(false, body);
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/b102a56a/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 b52b4ae..5d44c80 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
@@ -27,6 +27,7 @@ import org.apache.camel.builder.RouteBuilder;
 import org.junit.After;
 import org.junit.Test;
 import org.mockito.Mock;
+
 import static org.mockito.Mockito.*;
 
 public class HazelcastMultimapProducerTest extends HazelcastCamelTestSupport {
@@ -104,6 +105,34 @@ public class HazelcastMultimapProducerTest extends HazelcastCamelTestSupport {
         template.sendBodyAndHeader("direct:valueCount", "test", HazelcastConstants.OBJECT_ID, "4711");
         verify(map).valueCount("4711");
     }
+    
+    @Test
+    public void testContainsKey() {
+        when(map.containsKey("testOk")).thenReturn(true);
+        when(map.containsKey("testKo")).thenReturn(false);
+        template.sendBodyAndHeader("direct:containsKey", null, HazelcastConstants.OBJECT_ID, "testOk");
+        Boolean body = consumer.receiveBody("seda:out", 5000, Boolean.class);
+        verify(map).containsKey("testOk");
+        assertEquals(true, body);
+        template.sendBodyAndHeader("direct:containsKey", null, HazelcastConstants.OBJECT_ID, "testKo");
+        body = consumer.receiveBody("seda:out", 5000, Boolean.class);
+        verify(map).containsKey("testKo");
+        assertEquals(false, body);
+    }
+    
+    @Test
+    public void testContainsValue() {
+        when(map.containsValue("testOk")).thenReturn(true);
+        when(map.containsValue("testKo")).thenReturn(false);
+        template.sendBody("direct:containsValue", "testOk");
+        Boolean body = consumer.receiveBody("seda:out", 5000, Boolean.class);
+        verify(map).containsValue("testOk");
+        assertEquals(true, body);
+        template.sendBody("direct:containsValue", "testKo");
+        body = consumer.receiveBody("seda:out", 5000, Boolean.class);
+        verify(map).containsValue("testKo");
+        assertEquals(false, body);
+    }
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
@@ -128,6 +157,14 @@ public class HazelcastMultimapProducerTest extends HazelcastCamelTestSupport {
                 from("direct:valueCount").setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.VALUE_COUNT_OPERATION))
                         .to(String.format("hazelcast:%sbar", HazelcastConstants.MULTIMAP_PREFIX));
                 
+                from("direct:containsKey").setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.CONTAINS_KEY_OPERATION))
+                        .to(String.format("hazelcast:%sbar", HazelcastConstants.MULTIMAP_PREFIX))
+                        .to("seda:out");
+                
+                from("direct:containsValue").setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.CONTAINS_VALUE_OPERATION))
+                        .to(String.format("hazelcast:%sbar", HazelcastConstants.MULTIMAP_PREFIX))
+                        .to("seda:out");
+                
                 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);
             }

http://git-wip-us.apache.org/repos/asf/camel/blob/b102a56a/components/camel-hazelcast/src/test/resources/META-INF/spring/test-camel-context-multimap.xml
----------------------------------------------------------------------
diff --git a/components/camel-hazelcast/src/test/resources/META-INF/spring/test-camel-context-multimap.xml b/components/camel-hazelcast/src/test/resources/META-INF/spring/test-camel-context-multimap.xml
index f855b0d..1c2fa65 100644
--- a/components/camel-hazelcast/src/test/resources/META-INF/spring/test-camel-context-multimap.xml
+++ b/components/camel-hazelcast/src/test/resources/META-INF/spring/test-camel-context-multimap.xml
@@ -55,6 +55,24 @@
 			</setHeader>
 			<to uri="hazelcast:multimap:bar" />
 		</route>
+		
+		<route>
+			<from uri="direct:containsKey" />
+			<setHeader headerName="CamelHazelcastOperationType">
+				<constant>containsKey</constant>
+			</setHeader>
+			<to uri="hazelcast:multimap:bar" />
+            <to uri="seda:out" />
+		</route>
+		
+		<route>
+			<from uri="direct:containsValue" />
+			<setHeader headerName="CamelHazelcastOperationType">
+				<constant>containsValue</constant>
+			</setHeader>
+			<to uri="hazelcast:multimap:bar" />
+            <to uri="seda:out" />
+		</route>
 
 	</camelContext>