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>