Repository: camel Updated Branches: refs/heads/master 0d7be17a0 -> 054815fd4
CAMEL-8849 Camel-Hazelcast: Add retainAll operation to list Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/054815fd Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/054815fd Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/054815fd Branch: refs/heads/master Commit: 054815fd4f6f05f5a0ef670da9659b710a015f6a Parents: 0d7be17 Author: Andrea Cosentino <anco...@gmail.com> Authored: Tue Jun 9 09:08:31 2015 +0200 Committer: Andrea Cosentino <anco...@gmail.com> Committed: Tue Jun 9 17:07:28 2015 +0200 ---------------------------------------------------------------------- .../camel/component/hazelcast/HazelcastConstants.java | 3 ++- .../component/hazelcast/list/HazelcastListProducer.java | 9 +++++++++ .../component/hazelcast/HazelcastListProducerTest.java | 12 ++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/054815fd/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 6d9218b..38a3a9d 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 @@ -64,9 +64,10 @@ public final class HazelcastConstants { public static final int PUT_IF_ABSENT_OPERATION = 8; public static final int ADD_ALL_OPERATION = 9; public static final int REMOVE_ALL_OPERATION = 10; + public static final int RETAIN_ALL_OPERATION = 11; // multimap - public static final int REMOVEVALUE_OPERATION = 11; + public static final int REMOVEVALUE_OPERATION = 12; // atomic numbers public static final int INCREMENT_OPERATION = 20; http://git-wip-us.apache.org/repos/asf/camel/blob/054815fd/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/list/HazelcastListProducer.java ---------------------------------------------------------------------- diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/list/HazelcastListProducer.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/list/HazelcastListProducer.java index b29bcc2..0292e95 100644 --- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/list/HazelcastListProducer.java +++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/list/HazelcastListProducer.java @@ -87,6 +87,10 @@ public class HazelcastListProducer extends HazelcastDefaultProducer { this.removeAll(exchange); break; + case HazelcastConstants.RETAIN_ALL_OPERATION: + this.retainAll(exchange); + break; + default: throw new IllegalArgumentException(String.format("The value '%s' is not allowed for parameter '%s' on the LIST cache.", operation, HazelcastConstants.OPERATION)); } @@ -148,4 +152,9 @@ public class HazelcastListProducer extends HazelcastDefaultProducer { final Object body = exchange.getIn().getBody(); list.removeAll((Collection<?>) body); } + + private void retainAll(Exchange exchange) { + final Object body = exchange.getIn().getBody(); + list.retainAll((Collection<?>) body); + } } http://git-wip-us.apache.org/repos/asf/camel/blob/054815fd/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastListProducerTest.java ---------------------------------------------------------------------- diff --git a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastListProducerTest.java b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastListProducerTest.java index 74906da..616cd19 100644 --- a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastListProducerTest.java +++ b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastListProducerTest.java @@ -128,6 +128,15 @@ public class HazelcastListProducerTest extends HazelcastCamelTestSupport { template.sendBody("direct:removeAll", t); verify(list).removeAll(t); } + + @Test + public void retainAll() throws InterruptedException { + Collection t = new ArrayList(); + t.add("test1"); + t.add("test2"); + template.sendBody("direct:retainAll", t); + verify(list).retainAll(t); + } @Override protected RouteBuilder createRouteBuilder() throws Exception { @@ -155,6 +164,9 @@ public class HazelcastListProducerTest extends HazelcastCamelTestSupport { from("direct:removeAll").setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.REMOVE_ALL_OPERATION)).to( String.format("hazelcast:%sbar", HazelcastConstants.LIST_PREFIX)); + from("direct:retainAll").setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.RETAIN_ALL_OPERATION)).to( + String.format("hazelcast:%sbar", HazelcastConstants.LIST_PREFIX)); + from("direct:addWithOperationNumber").toF("hazelcast:%sbar?operation=%s", HazelcastConstants.LIST_PREFIX, HazelcastConstants.ADD_OPERATION); from("direct:addWithOperationName").toF("hazelcast:%sbar?operation=add", HazelcastConstants.LIST_PREFIX); }