You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2014/08/22 08:12:22 UTC

[09/10] git commit: CAMEL-7730 plus added junit test for this bug

CAMEL-7730 plus added junit test for this bug


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

Branch: refs/heads/camel-2.13.x
Commit: f8d382ec95c8cab558364bb8ec48cfa39cb8c9ac
Parents: c2ddc7b
Author: Roman Jakubco <rj...@redhat.com>
Authored: Thu Aug 21 16:38:57 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Fri Aug 22 08:11:41 2014 +0200

----------------------------------------------------------------------
 .../infinispan/InfinispanOperation.java         | 10 +++-
 .../infinispan/InfinispanProducer.java          |  2 +-
 .../infinispan/InfinispanProducerTest.java      | 58 ++++++++++++++++++++
 3 files changed, 67 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/f8d382ec/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 ae8e18d..04ffe55 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
@@ -24,9 +24,11 @@ import org.slf4j.LoggerFactory;
 public class InfinispanOperation {
     private static final transient Logger LOGGER = LoggerFactory.getLogger(InfinispanOperation.class);
     private final BasicCache<Object, Object> cache;
+    private final InfinispanConfiguration configuration;
 
-    public InfinispanOperation(BasicCache<Object, Object> cache) {
+    public InfinispanOperation(BasicCache<Object, Object> cache, InfinispanConfiguration configuration) {
         this.cache = cache;
+        this.configuration = configuration;
     }
 
     public void process(Exchange exchange) {
@@ -37,7 +39,11 @@ public class InfinispanOperation {
     private Operation getOperation(Exchange exchange) {
         String operation = exchange.getIn().getHeader(InfinispanConstants.OPERATION, String.class);
         if (operation == null) {
-            operation = InfinispanConstants.PUT;
+            if(configuration.getCommand() != null){
+                operation = InfinispanConstants.OPERATION + configuration.getCommand();
+            } else{
+                operation = InfinispanConstants.PUT;
+            }
         }
         LOGGER.trace("Operation: [{}]", operation);
         return Operation.valueOf(operation.substring(InfinispanConstants.OPERATION.length()).toUpperCase());

http://git-wip-us.apache.org/repos/asf/camel/blob/f8d382ec/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanProducer.java
----------------------------------------------------------------------
diff --git a/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanProducer.java b/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanProducer.java
index 9e3037c..4063553 100644
--- a/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanProducer.java
+++ b/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanProducer.java
@@ -39,7 +39,7 @@ public class InfinispanProducer extends DefaultProducer {
 
     @Override
     public void process(Exchange exchange) throws Exception {
-        new InfinispanOperation(getCache(exchange)).process(exchange);
+        new InfinispanOperation(getCache(exchange), configuration).process(exchange);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/camel/blob/f8d382ec/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 e31fd92..7a7d003 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
@@ -19,6 +19,7 @@ package org.apache.camel.component.infinispan;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
+import org.junit.Assert;
 import org.junit.Test;
 
 import static org.hamcrest.CoreMatchers.nullValue;
@@ -26,6 +27,9 @@ import static org.hamcrest.core.Is.is;
 
 public class InfinispanProducerTest extends InfinispanTestSupport {
 
+    private static final String COMMAND_VALUE = "commandValue";
+    private static final String COMMAND_KEY = "commandKey1";
+
     @Test
     public void keyAndValueArePublishedWithDefaultOperation() throws Exception {
         template.send("direct:start", new Processor() {
@@ -119,6 +123,51 @@ public class InfinispanProducerTest extends InfinispanTestSupport {
         assertThat(currentCache().isEmpty(), is(true));
     }
 
+    @Test
+    public void testUriCommandOption() throws Exception {
+        template.send("direct:put", new Processor() {
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(InfinispanConstants.KEY, COMMAND_KEY);
+                exchange.getIn().setHeader(InfinispanConstants.VALUE, COMMAND_VALUE);
+            }
+        });
+        String result = (String) currentCache().get(COMMAND_KEY);
+        assertEquals(COMMAND_VALUE, result);
+
+        Exchange exchange;
+        exchange = template.send("direct:get", new Processor() {
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(InfinispanConstants.KEY, COMMAND_KEY);
+            }
+        });
+        String resultGet = exchange.getIn().getHeader(InfinispanConstants.RESULT, String.class);
+        assertEquals(COMMAND_VALUE, resultGet);
+
+        exchange = template.send("direct:remove", new Processor() {
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(InfinispanConstants.KEY, COMMAND_KEY);
+            }
+        });
+        String resultRemove = exchange.getIn().getHeader(InfinispanConstants.RESULT, String.class);
+        assertEquals(COMMAND_VALUE, resultRemove);
+        assertNull(currentCache().get(COMMAND_KEY));
+        assertTrue(currentCache().isEmpty());
+
+        currentCache().put(COMMAND_KEY, COMMAND_VALUE);
+        currentCache().put("keyTest","valueTest");
+
+        template.send("direct:clear", new Processor() {
+            @Override
+            public void process(Exchange exchange) throws Exception {
+
+            }
+        });
+        assertTrue(currentCache().isEmpty());
+    }
+
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
@@ -126,6 +175,15 @@ public class InfinispanProducerTest extends InfinispanTestSupport {
             public void configure() {
                 from("direct:start")
                         .to("infinispan://localhost?cacheContainer=#cacheContainer");
+
+                from("direct:put")
+                        .to("infinispan://localhost?cacheContainer=#cacheContainer&command=PUT");
+                from("direct:get")
+                        .to("infinispan://localhost?cacheContainer=#cacheContainer&command=GET");
+                from("direct:remove")
+                        .to("infinispan://localhost?cacheContainer=#cacheContainer&command=REMOVE");
+                from("direct:clear")
+                        .to("infinispan://localhost?cacheContainer=#cacheContainer&command=CLEAR");
             }
         };
     }