CAMEL-8863 Camel-Hazelcast: Add valueCount operation to multimap
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/9dd309a4 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/9dd309a4 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/9dd309a4 Branch: refs/heads/master Commit: 9dd309a40b1e8637ff7cd41f992c6a495f6fcd24 Parents: 2217291 Author: Andrea Cosentino <anco...@gmail.com> Authored: Fri Jun 12 10:32:16 2015 +0200 Committer: Andrea Cosentino <anco...@gmail.com> Committed: Fri Jun 12 17:41:23 2015 +0200 ---------------------------------------------------------------------- .../apache/camel/component/hazelcast/HazelcastConstants.java | 3 ++- .../hazelcast/multimap/HazelcastMultimapProducer.java | 8 ++++++++ .../component/hazelcast/HazelcastMultimapProducerTest.java | 8 ++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/9dd309a4/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 3da468f..fcc7256 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 @@ -67,9 +67,10 @@ public final class HazelcastConstants { public static final int RETAIN_ALL_OPERATION = 11; public static final int EVICT_OPERATION = 12; public static final int EVICT_ALL_OPERATION = 13; + public static final int VALUE_COUNT_OPERATION = 14; // multimap - public static final int REMOVEVALUE_OPERATION = 14; + public static final int REMOVEVALUE_OPERATION = 15; // atomic numbers public static final int INCREMENT_OPERATION = 20; http://git-wip-us.apache.org/repos/asf/camel/blob/9dd309a4/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 4e9ff53..b5ebb2e 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 @@ -70,6 +70,10 @@ public class HazelcastMultimapProducer extends HazelcastDefaultProducer { this.clear(exchange); break; + case HazelcastConstants.VALUE_COUNT_OPERATION: + this.valuecount(oid, exchange); + break; + default: throw new IllegalArgumentException(String.format("The value '%s' is not allowed for parameter '%s' on the MULTIMAP cache.", operation, HazelcastConstants.OPERATION)); } @@ -94,6 +98,10 @@ public class HazelcastMultimapProducer extends HazelcastDefaultProducer { private void removevalue(Object oid, Exchange exchange) { this.cache.remove(oid, exchange.getIn().getBody()); } + + private void valuecount(Object oid, Exchange exchange) { + exchange.getOut().setBody(this.cache.valueCount(oid)); + } private void clear(Exchange exchange) { this.cache.clear(); http://git-wip-us.apache.org/repos/asf/camel/blob/9dd309a4/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 95f357f..65a9e11 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 @@ -98,6 +98,12 @@ public class HazelcastMultimapProducerTest extends HazelcastCamelTestSupport { template.sendBody("direct:clear", "test"); verify(map).clear(); } + + @Test + public void testValueCount() { + template.sendBodyAndHeader("direct:valueCount", "test", HazelcastConstants.OBJECT_ID, "4711"); + verify(map).valueCount("4711"); + } @Override protected RouteBuilder createRouteBuilder() throws Exception { @@ -119,6 +125,8 @@ public class HazelcastMultimapProducerTest extends HazelcastCamelTestSupport { from("direct:clear").setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.CLEAR_OPERATION)).to(String.format("hazelcast:%sbar", HazelcastConstants.MULTIMAP_PREFIX)); + from("direct:valueCount").setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.VALUE_COUNT_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); }