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 2012/11/09 18:22:34 UTC

svn commit: r1407548 - /camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/stress/FileProducerAppendManyMessagesFastTest.java

Author: davsclaus
Date: Fri Nov  9 17:22:34 2012
New Revision: 1407548

URL: http://svn.apache.org/viewvc?rev=1407548&view=rev
Log:
Added test based on user forum issue

Added:
    camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/stress/FileProducerAppendManyMessagesFastTest.java
      - copied, changed from r1407546, camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/stress/FileProducerAppendManyMessagesTest.java

Copied: camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/stress/FileProducerAppendManyMessagesFastTest.java (from r1407546, camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/stress/FileProducerAppendManyMessagesTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/stress/FileProducerAppendManyMessagesFastTest.java?p2=camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/stress/FileProducerAppendManyMessagesFastTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/stress/FileProducerAppendManyMessagesTest.java&r1=1407546&r2=1407548&rev=1407548&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/stress/FileProducerAppendManyMessagesTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/stress/FileProducerAppendManyMessagesFastTest.java Fri Nov  9 17:22:34 2012
@@ -18,15 +18,18 @@ package org.apache.camel.component.file.
 
 import java.io.File;
 import java.io.FileOutputStream;
+import java.io.OutputStream;
 
 import org.apache.camel.ContextTestSupport;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 
 /**
  *
  */
-public class FileProducerAppendManyMessagesTest extends ContextTestSupport {
+public class FileProducerAppendManyMessagesFastTest extends ContextTestSupport {
 
     private boolean enabled;
 
@@ -38,6 +41,8 @@ public class FileProducerAppendManyMessa
 
         deleteDirectory("target/big");
         createDirectory("target/big");
+        deleteDirectory("target/out");
+        createDirectory("target/out");
 
         // create a big file
         File file = new File("target/big/data.txt");
@@ -69,10 +74,34 @@ public class FileProducerAppendManyMessa
             @Override
             public void configure() throws Exception {
                 from("file:target/big")
+                    .process(new Processor() {
+                        @Override
+                        public void process(Exchange exchange) throws Exception {
+                            // store a output stream we use for writing
+                            FileOutputStream fos = new FileOutputStream("target/out/also-big.txt", true);
+                            exchange.setProperty("myStream", fos);
+                        }
+                    })
                     .split(body().tokenize(LS)).streaming()
                         .to("log:processing?groupSize=1000")
-                        .to("file:target/out/also-big.txt?fileExist=Append")
+                        .process(new Processor() {
+                            @Override
+                            public void process(Exchange exchange) throws Exception {
+                                OutputStream fos = exchange.getProperty("myStream", OutputStream.class);
+                                byte[] data = exchange.getIn().getBody(byte[].class);
+                                fos.write(data);
+                                fos.write(LS.getBytes());
+                            }
+                        })
                     .end()
+                    .process(new Processor() {
+                        @Override
+                        public void process(Exchange exchange) throws Exception {
+                            OutputStream fos = exchange.getProperty("myStream", OutputStream.class);
+                            fos.close();
+                            exchange.removeProperty("myStream");
+                        }
+                    })
                     .to("mock:done");
             }
         };