Repository: camel Updated Branches: refs/heads/master 16ea61e23 -> 09aa6f68f
CAMEL-8698 Camel-Infinispan: Add size operation Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/09aa6f68 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/09aa6f68 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/09aa6f68 Branch: refs/heads/master Commit: 09aa6f68fb3552da1ab486f0b093a2019a562d74 Parents: 16ea61e Author: ancosen <anco...@gmail.com> Authored: Sat Apr 25 11:32:30 2015 +0200 Committer: ancosen <anco...@gmail.com> Committed: Sat Apr 25 11:32:30 2015 +0200 ---------------------------------------------------------------------- .../component/infinispan/InfinispanConstants.java | 1 + .../component/infinispan/InfinispanOperation.java | 6 ++++++ .../infinispan/InfinispanProducerTest.java | 18 ++++++++++++++++++ 3 files changed, 25 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/09aa6f68/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanConstants.java ---------------------------------------------------------------------- diff --git a/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanConstants.java b/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanConstants.java index 6f69e7f..2c0ba42 100644 --- a/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanConstants.java +++ b/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanConstants.java @@ -33,6 +33,7 @@ public interface InfinispanConstants { String REMOVE = "CamelInfinispanOperationRemove"; String REPLACE = "CamelInfinispanOperationReplace"; String CLEAR = "CamelInfinispanOperationClear"; + String SIZE = "CamelInfinispanOperationSize"; String RESULT = "CamelInfinispanOperationResult"; String LIFESPAN_TIME = "CamelInfinispanLifespanTime"; String LIFESPAN_TIME_UNIT = "CamelInfinispanTimeUnit"; http://git-wip-us.apache.org/repos/asf/camel/blob/09aa6f68/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanOperation.java ---------------------------------------------------------------------- diff --git a/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanOperation.java b/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanOperation.java index 7cd5a2a..3450666 100644 --- a/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanOperation.java +++ b/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanOperation.java @@ -156,6 +156,12 @@ public class InfinispanOperation { } setResult(result, exchange); } + }, SIZE { + @Override + void execute(BasicCache<Object, Object> cache, Exchange exchange) { + Object result = cache.size(); + setResult(result, exchange); + } }, CLEAR { @Override void execute(BasicCache<Object, Object> cache, Exchange exchange) { http://git-wip-us.apache.org/repos/asf/camel/blob/09aa6f68/components/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/InfinispanProducerTest.java ---------------------------------------------------------------------- diff --git a/components/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/InfinispanProducerTest.java b/components/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/InfinispanProducerTest.java index ca38e2b..84df8e4 100644 --- a/components/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/InfinispanProducerTest.java +++ b/components/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/InfinispanProducerTest.java @@ -46,6 +46,22 @@ public class InfinispanProducerTest extends InfinispanTestSupport { Object value = currentCache().get(KEY_ONE); assertEquals(value.toString(), VALUE_ONE); } + + @Test + public void cacheSizeTest() throws Exception { + currentCache().put(KEY_ONE, VALUE_ONE); + currentCache().put(KEY_TWO, VALUE_TWO); + + Exchange exchange = template.request("direct:size", new Processor() { + @Override + public void process(Exchange exchange) throws Exception { + exchange.getIn().setHeader(InfinispanConstants.OPERATION, InfinispanConstants.SIZE); + } + }); + + assertEquals(exchange.getIn().getHeader(InfinispanConstants.RESULT, Integer.class), new Integer(2)); + assertNotEquals(exchange.getIn().getHeader(InfinispanConstants.RESULT, Integer.class), new Integer(4)); + } @Test public void publishKeyAndValueByExplicitlySpecifyingTheOperation() throws Exception { @@ -509,6 +525,8 @@ public class InfinispanProducerTest extends InfinispanTestSupport { .to("infinispan://localhost?cacheContainer=#cacheContainer&command=CONTAINSKEY"); from("direct:containsvalue") .to("infinispan://localhost?cacheContainer=#cacheContainer&command=CONTAINSVALUE"); + from("direct:size") + .to("infinispan://localhost?cacheContainer=#cacheContainer&command=SIZE"); } }; }