Author: davsclaus
Date: Wed Mar 3 10:10:20 2010
New Revision: 918379
URL: http://svn.apache.org/viewvc?rev=918379&view=rev
Log:
CAMEL-217: Added option bufferSize to set the mappingSegementSize on HawtDB.
Added:
camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregateBufferSizeTest.java
- copied, changed from r918330,
camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregateTest.java
Modified:
camel/trunk/components/camel-hawtdb/src/main/java/org/apache/camel/component/hawtdb/HawtDBAggregationRepository.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=918379&r1=918378&r2=918379&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
Wed Mar 3 10:10:20 2010
@@ -47,6 +47,7 @@
private HawtDBFile hawtDBFile;
private String persistentFileName;
private String repositoryName;
+ private Integer bufferSize;
private boolean sync;
private boolean returnOldExchange;
private Marshaller<K> keyMarshaller = new ObjectMarshaller<K>();
@@ -64,7 +65,7 @@
* @param repositoryName the repository name
*/
public HawtDBAggregationRepository(String repositoryName) {
- ObjectHelper.notEmpty(repositoryName, "name");
+ ObjectHelper.notEmpty(repositoryName, "repositoryName");
this.repositoryName = repositoryName;
}
@@ -76,11 +77,10 @@
* @param persistentFileName the persistent store filename
*/
public HawtDBAggregationRepository(String repositoryName, String
persistentFileName) {
- ObjectHelper.notEmpty(repositoryName, "name");
- ObjectHelper.notEmpty(persistentFileName, "fileName");
- this.hawtDBFile = new HawtDBFile();
- this.hawtDBFile.setFile(new File(persistentFileName));
+ ObjectHelper.notEmpty(repositoryName, "repositoryName");
+ ObjectHelper.notEmpty(persistentFileName, "persistentFileName");
this.repositoryName = repositoryName;
+ this.persistentFileName = persistentFileName;
}
/**
@@ -90,8 +90,8 @@
* @param hawtDBFile the hawtdb file to use as persistent store
*/
public HawtDBAggregationRepository(String repositoryName, HawtDBFile
hawtDBFile) {
- ObjectHelper.notEmpty(repositoryName, "name");
- ObjectHelper.notNull(hawtDBFile, "HawtDBFile");
+ ObjectHelper.notEmpty(repositoryName, "repositoryName");
+ ObjectHelper.notNull(hawtDBFile, "hawtDBFile");
this.hawtDBFile = hawtDBFile;
this.repositoryName = repositoryName;
}
@@ -253,6 +253,14 @@
this.sync = sync;
}
+ public Integer getBufferSize() {
+ return bufferSize;
+ }
+
+ public void setBufferSize(Integer bufferSize) {
+ this.bufferSize = bufferSize;
+ }
+
public boolean isReturnOldExchange() {
return returnOldExchange;
}
@@ -268,6 +276,9 @@
hawtDBFile = new HawtDBFile();
hawtDBFile.setFile(new File(persistentFileName));
hawtDBFile.setSync(isSync());
+ if (getBufferSize() != null) {
+ hawtDBFile.setMappingSegementSize(getBufferSize());
+ }
}
ObjectHelper.notNull(hawtDBFile, "Either set a persistentFileName or a
hawtDBFile");
Copied:
camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregateBufferSizeTest.java
(from r918330,
camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregateTest.java)
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregateBufferSizeTest.java?p2=camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregateBufferSizeTest.java&p1=camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregateTest.java&r1=918330&r2=918379&rev=918379&view=diff
==============================================================================
---
camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregateTest.java
(original)
+++
camel/trunk/components/camel-hawtdb/src/test/java/org/apache/camel/component/hawtdb/HawtDBAggregateBufferSizeTest.java
Wed Mar 3 10:10:20 2010
@@ -16,69 +16,26 @@
*/
package org.apache.camel.component.hawtdb;
-import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.processor.aggregate.AggregationStrategy;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
-public class HawtDBAggregateTest extends CamelTestSupport {
-
- @Override
- public void setUp() throws Exception {
- deleteDirectory("target/data");
- super.setUp();
- }
-
- @Test
- public void testHawtDBAggregate() throws Exception {
- MockEndpoint mock = getMockEndpoint("mock:aggregated");
- mock.expectedBodiesReceived("ABCDE");
-
- template.sendBodyAndHeader("direct:start", "A", "id", 123);
- template.sendBodyAndHeader("direct:start", "B", "id", 123);
- template.sendBodyAndHeader("direct:start", "C", "id", 123);
- template.sendBodyAndHeader("direct:start", "D", "id", 123);
- template.sendBodyAndHeader("direct:start", "E", "id", 123);
-
- assertMockEndpointsSatisfied();
-
- // from endpoint should be preserved
- assertEquals("direct://start",
mock.getReceivedExchanges().get(0).getFromEndpoint().getEndpointUri());
- }
+public class HawtDBAggregateBufferSizeTest extends HawtDBAggregateTest {
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@Override
- // START SNIPPET: e1
public void configure() throws Exception {
- // create the hawtdb repo
HawtDBAggregationRepository<String> repo = new
HawtDBAggregationRepository<String>("repo1", "target/data/hawtdb.dat");
+ // use 2mb file
+ repo.setBufferSize(1024 * 1024 * 2);
// here is the Camel route where we aggregate
from("direct:start")
.aggregate(header("id"), new MyAggregationStrategy())
- // use our created hawtdb repo as aggregation
repository
.completionSize(5).aggregationRepository(repo)
.to("mock:aggregated");
}
- // END SNIPPET: e1
};
}
- public static class MyAggregationStrategy implements AggregationStrategy {
-
- public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
- if (oldExchange == null) {
- return newExchange;
- }
- String body1 = oldExchange.getIn().getBody(String.class);
- String body2 = newExchange.getIn().getBody(String.class);
-
- oldExchange.getIn().setBody(body1 + body2);
- return oldExchange;
- }
- }
}
\ No newline at end of file