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");
}
};
}