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