Author: davsclaus
Date: Mon Mar  1 17:12:51 2010
New Revision: 917596

URL: http://svn.apache.org/viewvc?rev=917596&view=rev
Log:
CAMEL-217: Added option to return old exchange on add if really needed.

Modified:
    
camel/trunk/components/camel-hawtdb/src/main/java/org/apache/camel/component/hawtdb/HawtDBAggregationRepository.java
    
camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregationRepositoryLoadExistingTest.java
    
camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregationRepositoryMultipleRepoTest.java
    
camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregationRepositoryTest.java

Modified: 
camel/trunk/components/camel-hawtdb/src/main/java/org/apache/camel/component/hawtdb/HawtDBAggregationRepository.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-hawtdb/src/main/java/org/apache/camel/component/hawtdb/HawtDBAggregationRepository.java?rev=917596&r1=917595&r2=917596&view=diff
==============================================================================
--- 
camel/trunk/components/camel-hawtdb/src/main/java/org/apache/camel/component/hawtdb/HawtDBAggregationRepository.java
 (original)
+++ 
camel/trunk/components/camel-hawtdb/src/main/java/org/apache/camel/component/hawtdb/HawtDBAggregationRepository.java
 Mon Mar  1 17:12:51 2010
@@ -48,6 +48,7 @@
     private String persistentFileName;
     private String repositoryName;
     private boolean sync;
+    private boolean returnOldExchange;
     private Marshaller<K> keyMarshaller = new ObjectMarshaller<K>();
     private Marshaller<DefaultExchangeHolder> exchangeMarshaller = new 
ObjectMarshaller<DefaultExchangeHolder>();
 
@@ -116,8 +117,11 @@
             if (rc == null) {
                 return null;
             }
-            // we can improve performance by not returning the old when adding
-            // return unmarshallExchange(camelContext, rc);
+
+            // only return old exchange if enabled
+            if (isReturnOldExchange()) {
+                return unmarshallExchange(camelContext, rc);
+            }
         } catch (IOException e) {
             throw new RuntimeException("Error adding to repository " + 
repositoryName + " with key " + key, e);
         }
@@ -234,6 +238,14 @@
         this.sync = sync;
     }
 
+    public boolean isReturnOldExchange() {
+        return returnOldExchange;
+    }
+
+    public void setReturnOldExchange(boolean returnOldExchange) {
+        this.returnOldExchange = returnOldExchange;
+    }
+
     @Override
     protected void doStart() throws Exception {
         // either we have a HawtDB configured or we use a provided fileName

Modified: 
camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregationRepositoryLoadExistingTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregationRepositoryLoadExistingTest.java?rev=917596&r1=917595&r2=917596&view=diff
==============================================================================
--- 
camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregationRepositoryLoadExistingTest.java
 (original)
+++ 
camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregationRepositoryLoadExistingTest.java
 Mon Mar  1 17:12:51 2010
@@ -48,6 +48,7 @@
         HawtDBAggregationRepository<String> repo = new 
HawtDBAggregationRepository<String>();
         repo.setHawtDBFile(hawtDBFile);
         repo.setRepositoryName("repo1");
+        repo.setReturnOldExchange(true);
 
         // Store it..
         Exchange exchange1 = new DefaultExchange(context);

Modified: 
camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregationRepositoryMultipleRepoTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregationRepositoryMultipleRepoTest.java?rev=917596&r1=917595&r2=917596&view=diff
==============================================================================
--- 
camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregationRepositoryMultipleRepoTest.java
 (original)
+++ 
camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregationRepositoryMultipleRepoTest.java
 Mon Mar  1 17:12:51 2010
@@ -48,10 +48,12 @@
         HawtDBAggregationRepository<String> repo1 = new 
HawtDBAggregationRepository<String>();
         repo1.setHawtDBFile(hawtDBFile);
         repo1.setRepositoryName("repo1");
+        repo1.setReturnOldExchange(true);
 
         HawtDBAggregationRepository<String> repo2 = new 
HawtDBAggregationRepository<String>();
         repo2.setHawtDBFile(hawtDBFile);
         repo2.setRepositoryName("repo2");
+        repo2.setReturnOldExchange(true);
 
         // Can't get something we have not put in...
         Exchange actual = repo1.get(context, "missing");

Modified: 
camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregationRepositoryTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregationRepositoryTest.java?rev=917596&r1=917595&r2=917596&view=diff
==============================================================================
--- 
camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregationRepositoryTest.java
 (original)
+++ 
camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregationRepositoryTest.java
 Mon Mar  1 17:12:51 2010
@@ -48,6 +48,7 @@
         HawtDBAggregationRepository<String> repo = new 
HawtDBAggregationRepository<String>();
         repo.setHawtDBFile(hawtDBFile);
         repo.setRepositoryName("repo1");
+        repo.setReturnOldExchange(true);
 
         // Can't get something we have not put in...
         Exchange actual = repo.get(context, "missing");


Reply via email to