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 2012/09/09 11:21:47 UTC

svn commit: r1382433 - in /camel/trunk/components/camel-cache/src: main/java/org/apache/camel/component/cache/CacheProducer.java test/java/org/apache/camel/component/cache/CacheProducerTest.java

Author: davsclaus
Date: Sun Sep  9 09:21:47 2012
New Revision: 1382433

URL: http://svn.apache.org/viewvc?rev=1382433&view=rev
Log:
CAMEL-5436: Convert cache keys to String to allow other types as well. Thanks to Michal Svab for the patch.

Modified:
    camel/trunk/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheProducer.java
    camel/trunk/components/camel-cache/src/test/java/org/apache/camel/component/cache/CacheProducerTest.java

Modified: camel/trunk/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheProducer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheProducer.java?rev=1382433&r1=1382432&r2=1382433&view=diff
==============================================================================
--- camel/trunk/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheProducer.java (original)
+++ camel/trunk/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheProducer.java Sun Sep  9 09:21:47 2012
@@ -56,10 +56,11 @@ public class CacheProducer extends Defau
         cache = getEndpoint().initializeCache();
 
         Map<String, Object> headers = exchange.getIn().getHeaders();
-        String key = (headers.containsKey(CacheConstants.CACHE_KEY)) ? (String) headers
-                .get(CacheConstants.CACHE_KEY) : getEndpoint().getKey();
+        String key = (headers.containsKey(CacheConstants.CACHE_KEY))
+                ? exchange.getIn().getHeader(CacheConstants.CACHE_KEY, String.class)
+                : getEndpoint().getKey();
 
-        String operation = (headers.containsKey(CacheConstants.CACHE_OPERATION)) ? (String) headers
+        String operation = (headers.containsKey(CacheConstants.CACHE_OPERATION)) ? (String)headers
                 .get(CacheConstants.CACHE_OPERATION) : getEndpoint().getOperation();
 
         if (operation == null) {

Modified: camel/trunk/components/camel-cache/src/test/java/org/apache/camel/component/cache/CacheProducerTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cache/src/test/java/org/apache/camel/component/cache/CacheProducerTest.java?rev=1382433&r1=1382432&r2=1382433&view=diff
==============================================================================
--- camel/trunk/components/camel-cache/src/test/java/org/apache/camel/component/cache/CacheProducerTest.java (original)
+++ camel/trunk/components/camel-cache/src/test/java/org/apache/camel/component/cache/CacheProducerTest.java Sun Sep  9 09:21:47 2012
@@ -19,6 +19,7 @@ package org.apache.camel.component.cache
 
 import java.io.FileInputStream;
 import java.io.InputStream;
+import java.util.concurrent.TimeUnit;
 
 import net.sf.ehcache.Cache;
 import net.sf.ehcache.CacheException;
@@ -27,6 +28,7 @@ import org.apache.camel.EndpointInject;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.Processor;
+import org.apache.camel.builder.NotifyBuilder;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.converter.IOConverter;
@@ -133,6 +135,26 @@ public class CacheProducerTest extends C
     }
 
     @Test
+    public void testAddingDataToCacheWithNonStringCacheKey() throws Exception {
+        context.addRoutes(new RouteBuilder() {
+            public void configure() {
+                from("direct:a").
+                        setHeader(CacheConstants.CACHE_OPERATION, constant(CacheConstants.CACHE_OPERATION_ADD)).
+                        setHeader(CacheConstants.CACHE_KEY, constant(10L)).
+                        to("cache://TestCache1");
+            }
+        });
+        context.start();
+        NotifyBuilder notify = new NotifyBuilder(context).whenExactlyDone(1).create();
+
+        LOG.debug("------------Beginning CacheProducer Add Test---------------");
+        sendOriginalFile();
+
+        notify.matches(10, TimeUnit.SECONDS);
+        assertNotNull(fetchElement("10"));
+    }
+
+    @Test
     public void testAddingDataElementEternal() throws Exception {
         context.addRoutes(new RouteBuilder() {
             public void configure() {