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


Reply via email to