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 2010/04/22 12:36:25 UTC

svn commit: r936762 - in /camel/trunk/components/camel-hawtdb/src: main/java/org/apache/camel/component/hawtdb/ test/java/org/apache/camel/component/hawtdb/

Author: davsclaus
Date: Thu Apr 22 10:36:24 2010
New Revision: 936762

URL: http://svn.apache.org/viewvc?rev=936762&view=rev
Log:
In read only operations avoid creating new index if index did not exist already.

Modified:
    camel/trunk/components/camel-hawtdb/src/main/java/org/apache/camel/component/hawtdb/HawtDBAggregationRepository.java
    camel/trunk/components/camel-hawtdb/src/main/java/org/apache/camel/component/hawtdb/HawtDBFile.java
    camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregateNotLostRemovedWhenConfirmedTest.java
    camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregateNotLostTest.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=936762&r1=936761&r2=936762&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 Thu Apr 22 10:36:24 2010
@@ -35,7 +35,6 @@ import org.apache.camel.util.ServiceHelp
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.fusesource.hawtdb.api.Index;
-import org.fusesource.hawtdb.api.IndexVisitor;
 import org.fusesource.hawtdb.api.Transaction;
 import org.fusesource.hawtdb.util.buffer.Buffer;
 
@@ -114,7 +113,7 @@ public class HawtDBAggregationRepository
             final Buffer exchangeBuffer = marshaller.marshallExchange(camelContext, exchange);
             Buffer rc = hawtDBFile.execute(new Work<Buffer>() {
                 public Buffer execute(Transaction tx) {
-                    Index<Buffer, Buffer> index = hawtDBFile.getRepositoryIndex(tx, repositoryName);
+                    Index<Buffer, Buffer> index = hawtDBFile.getRepositoryIndex(tx, repositoryName, true);
                     return index.put(keyBuffer, exchangeBuffer);
                 }
 
@@ -144,7 +143,10 @@ public class HawtDBAggregationRepository
             final Buffer keyBuffer = marshaller.marshallKey(key);
             Buffer rc = hawtDBFile.execute(new Work<Buffer>() {
                 public Buffer execute(Transaction tx) {
-                    Index<Buffer, Buffer> index = hawtDBFile.getRepositoryIndex(tx, repositoryName);
+                    Index<Buffer, Buffer> index = hawtDBFile.getRepositoryIndex(tx, repositoryName, false);
+                    if (index == null) {
+                        return null;
+                    }
                     return index.get(keyBuffer);
                 }
 
@@ -176,12 +178,12 @@ public class HawtDBAggregationRepository
             final Buffer exchangeBuffer = marshaller.marshallExchange(camelContext, exchange);
             hawtDBFile.execute(new Work<Buffer>() {
                 public Buffer execute(Transaction tx) {
-                    Index<Buffer, Buffer> index = hawtDBFile.getRepositoryIndex(tx, repositoryName);
+                    Index<Buffer, Buffer> index = hawtDBFile.getRepositoryIndex(tx, repositoryName, true);
                     // remove from the in progress index
                     index.remove(keyBuffer);
 
                     // and add it to the confirmed index
-                    Index<Buffer, Buffer> indexCompleted = hawtDBFile.getRepositoryIndex(tx, getRepositoryNameCompleted());
+                    Index<Buffer, Buffer> indexCompleted = hawtDBFile.getRepositoryIndex(tx, getRepositoryNameCompleted(), true);
                     indexCompleted.put(confirmKeyBuffer, exchangeBuffer);
                     return null;
                 }
@@ -205,7 +207,7 @@ public class HawtDBAggregationRepository
             final Buffer confirmKeyBuffer = marshaller.marshallKey(exchangeId);
             hawtDBFile.execute(new Work<Buffer>() {
                 public Buffer execute(Transaction tx) {
-                    Index<Buffer, Buffer> indexCompleted = hawtDBFile.getRepositoryIndex(tx, getRepositoryNameCompleted());
+                    Index<Buffer, Buffer> indexCompleted = hawtDBFile.getRepositoryIndex(tx, getRepositoryNameCompleted(), true);
                     return indexCompleted.remove(confirmKeyBuffer);
                 }
 
@@ -230,9 +232,12 @@ public class HawtDBAggregationRepository
                     return null;
                 }
 
-                Index<Buffer, Buffer> indexCompleted = hawtDBFile.getRepositoryIndex(tx, getRepositoryName());
+                Index<Buffer, Buffer> index = hawtDBFile.getRepositoryIndex(tx, repositoryName, false);
+                if (index == null) {
+                    return null;
+                }
 
-                Iterator<Map.Entry<Buffer, Buffer>> it = indexCompleted.iterator();
+                Iterator<Map.Entry<Buffer, Buffer>> it = index.iterator();
                 // scan could potentially be running while we are shutting down so check for that
                 while (it.hasNext() && isRunAllowed()) {
                     Map.Entry<Buffer, Buffer> entry = it.next();
@@ -273,7 +278,10 @@ public class HawtDBAggregationRepository
                     return null;
                 }
 
-                Index<Buffer, Buffer> indexCompleted = hawtDBFile.getRepositoryIndex(tx, getRepositoryNameCompleted());
+                Index<Buffer, Buffer> indexCompleted = hawtDBFile.getRepositoryIndex(tx, getRepositoryNameCompleted(), false);
+                if (indexCompleted == null) {
+                    return null;
+                }
 
                 Iterator<Map.Entry<Buffer, Buffer>> it = indexCompleted.iterator();
                 // scan could potentially be running while we are shutting down so check for that
@@ -320,7 +328,10 @@ public class HawtDBAggregationRepository
             final Buffer confirmKeyBuffer = marshaller.marshallKey(exchangeId);
             Buffer rc = hawtDBFile.execute(new Work<Buffer>() {
                 public Buffer execute(Transaction tx) {
-                    Index<Buffer, Buffer> indexCompleted = hawtDBFile.getRepositoryIndex(tx, getRepositoryNameCompleted());
+                    Index<Buffer, Buffer> indexCompleted = hawtDBFile.getRepositoryIndex(tx, getRepositoryNameCompleted(), false);
+                    if (indexCompleted == null) {
+                        return null;
+                    }
                     return indexCompleted.get(confirmKeyBuffer);
                 }
 

Modified: camel/trunk/components/camel-hawtdb/src/main/java/org/apache/camel/component/hawtdb/HawtDBFile.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-hawtdb/src/main/java/org/apache/camel/component/hawtdb/HawtDBFile.java?rev=936762&r1=936761&r2=936762&view=diff
==============================================================================
--- camel/trunk/components/camel-hawtdb/src/main/java/org/apache/camel/component/hawtdb/HawtDBFile.java (original)
+++ camel/trunk/components/camel-hawtdb/src/main/java/org/apache/camel/component/hawtdb/HawtDBFile.java Thu Apr 22 10:36:24 2010
@@ -121,13 +121,13 @@ public class HawtDBFile extends TxPageFi
         return answer;
     }
 
-    public Index<Buffer, Buffer> getRepositoryIndex(Transaction tx, String name) {
-        Index<Buffer, Buffer> answer;
+    public Index<Buffer, Buffer> getRepositoryIndex(Transaction tx, String name, boolean create) {
+        Index<Buffer, Buffer> answer = null;
 
         Index<String, Integer> indexes = ROOT_INDEXES_FACTORY.open(tx, 0);
         Integer location = indexes.get(name);
 
-        if (location == null) {
+        if (create && location == null) {
             // create it..
             int page = tx.allocator().alloc(1);
             Index<Buffer, Buffer> created = INDEX_FACTORY.create(tx, page);
@@ -140,7 +140,7 @@ public class HawtDBFile extends TxPageFi
             }
 
             answer = created;
-        } else {
+        } else if (location != null) {
             if (LOG.isTraceEnabled()) {
                 LOG.trace("Repository index with name " + name + " at location " + location);
             }

Modified: camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregateNotLostRemovedWhenConfirmedTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregateNotLostRemovedWhenConfirmedTest.java?rev=936762&r1=936761&r2=936762&view=diff
==============================================================================
--- camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregateNotLostRemovedWhenConfirmedTest.java (original)
+++ camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregateNotLostRemovedWhenConfirmedTest.java Thu Apr 22 10:36:24 2010
@@ -56,7 +56,7 @@ public class HawtDBAggregateNotLostRemov
         final Buffer confirmKeyBuffer = marshaller.marshallKey(exchangeId);
         Buffer bf = hawtDBFile.execute(new Work<Buffer>() {
             public Buffer execute(Transaction tx) {
-                Index<Buffer, Buffer> index = hawtDBFile.getRepositoryIndex(tx, "repo1-completed");
+                Index<Buffer, Buffer> index = hawtDBFile.getRepositoryIndex(tx, "repo1-completed", false);
                 return index.get(confirmKeyBuffer);
             }
         });

Modified: camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregateNotLostTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregateNotLostTest.java?rev=936762&r1=936761&r2=936762&view=diff
==============================================================================
--- camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregateNotLostTest.java (original)
+++ camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregateNotLostTest.java Thu Apr 22 10:36:24 2010
@@ -57,7 +57,7 @@ public class HawtDBAggregateNotLostTest 
         final Buffer confirmKeyBuffer = marshaller.marshallKey(exchangeId);
         Buffer bf = hawtDBFile.execute(new Work<Buffer>() {
             public Buffer execute(Transaction tx) {
-                Index<Buffer, Buffer> index = hawtDBFile.getRepositoryIndex(tx, "repo1-completed");
+                Index<Buffer, Buffer> index = hawtDBFile.getRepositoryIndex(tx, "repo1-completed", false);
                 return index.get(confirmKeyBuffer);
             }
         });