Author: davsclaus
Date: Sun Apr 6 09:46:35 2008
New Revision: 645269
URL: http://svn.apache.org/viewvc?rev=645269&view=rev
Log:
CAMEL-420: Out of the box conversion support for FTPConsumer to String in the
payload
Added:
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToAsciiFileNoBodyConversionTest.java
Modified:
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConverter.java
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFileToFtpTest.java
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToAsciiFileTest.java
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToBinaryFileTest.java
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToFileNoFileNameHeaderTest.java
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToMockTest.java
Modified:
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConverter.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConverter.java?rev=645269&r1=645268&r2=645269&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConverter.java
(original)
+++
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConverter.java
Sun Apr 6 09:46:35 2008
@@ -36,6 +36,11 @@
}
@Converter
+ public static String toString(ByteArrayOutputStream os) {
+ return os.toString();
+ }
+
+ @Converter
public static InputStream toInputStream(ByteArrayOutputStream os) {
return new ByteArrayInputStream(os.toByteArray());
}
Modified:
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFileToFtpTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFileToFtpTest.java?rev=645269&r1=645268&r2=645269&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFileToFtpTest.java
(original)
+++
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFileToFtpTest.java
Sun Apr 6 09:46:35 2008
@@ -33,7 +33,7 @@
resultEndpoint.assertIsSatisfied();
// let some time pass to let the consumer etc. properly do its
business before closing
- Thread.sleep(2000);
+ Thread.sleep(1000);
}
public String getPort() {
Added:
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToAsciiFileNoBodyConversionTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToAsciiFileNoBodyConversionTest.java?rev=645269&view=auto
==============================================================================
---
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToAsciiFileNoBodyConversionTest.java
(added)
+++
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToAsciiFileNoBodyConversionTest.java
Sun Apr 6 09:46:35 2008
@@ -0,0 +1,87 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.file.remote;
+
+import java.io.File;
+
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.component.file.FileComponent;
+import org.apache.camel.Endpoint;
+import org.apache.camel.Exchange;
+import org.apache.camel.Producer;
+import org.apache.camel.builder.RouteBuilder;
+
+/**
+ * Unit testing a FTP ASCII transfer that Camel provides the needed conversion
to String from
+ * the input stream.
+ */
+public class FromFtpToAsciiFileNoBodyConversionTest extends
FtpServerTestSupport {
+
+ private String port = "20016";
+ private String ftpUrl = "ftp://[EMAIL PROTECTED]:" + port +
"/tmp6/camel?password=admin&binary=false";
+
+ public void testFromFtpToAsciiFileNoBodyConversion() throws Exception {
+
+ MockEndpoint resultEndpoint = getMockEndpoint("mock:result");
+ resultEndpoint.expectedMinimumMessageCount(1);
+ resultEndpoint.expectedBodiesReceived("Hello ASCII from FTPServer");
+
+ // wait until the file producer has written the file
+ Thread.sleep(1000);
+
+ // assert the file
+ File file = new File("target/ftptest/helloascii.txt");
+ assertTrue("The ASCII file should exists", file.exists());
+ assertTrue("File size wrong", file.length() > 10);
+
+ // let some time pass to let the consumer etc. properly do its
business before closing
+ Thread.sleep(1000);
+ }
+
+ public String getPort() {
+ return port;
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ prepareFtpServer();
+ }
+
+ private void prepareFtpServer() throws Exception {
+ // prepares the FTP Server by creating a file on the server that we
want to unit
+ // test that we can pool and store as a local file
+ Endpoint endpoint = context.getEndpoint(ftpUrl);
+ Exchange exchange = endpoint.createExchange();
+ exchange.getIn().setBody("Hello ASCII from FTPServer");
+ exchange.getIn().setHeader(FileComponent.HEADER_FILE_NAME,
"helloascii.txt");
+ Producer producer = endpoint.createProducer();
+ producer.start();
+ producer.process(exchange);
+ producer.stop();
+ }
+
+ protected RouteBuilder createRouteBuilder() throws Exception {
+ return new RouteBuilder() {
+ public void configure() throws Exception {
+ String fileUrl = "file:target/ftptest/?append=false&noop=true";
+ from(ftpUrl).to(fileUrl, "mock:result");
+ }
+ };
+ }
+
+}
Modified:
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToAsciiFileTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToAsciiFileTest.java?rev=645269&r1=645268&r2=645269&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToAsciiFileTest.java
(original)
+++
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToAsciiFileTest.java
Sun Apr 6 09:46:35 2008
@@ -16,6 +16,8 @@
*/
package org.apache.camel.component.file.remote;
+import java.io.File;
+
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
import org.apache.camel.Producer;
@@ -37,8 +39,16 @@
resultEndpoint.expectedBodiesReceived("Hello World from FTPServer");
resultEndpoint.assertIsSatisfied();
+ // wait until the file producer has written the file
+ Thread.sleep(1000);
+
+ // assert the file
+ File file = new File("target/ftptest/deleteme.txt");
+ assertTrue("The ASCII file should exists", file.exists());
+ assertTrue("File size wrong", file.length() > 10);
+
// let some time pass to let the consumer etc. properly do its
business before closing
- Thread.sleep(2000);
+ Thread.sleep(1000);
}
public String getPort() {
Modified:
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToBinaryFileTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToBinaryFileTest.java?rev=645269&r1=645268&r2=645269&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToBinaryFileTest.java
(original)
+++
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToBinaryFileTest.java
Sun Apr 6 09:46:35 2008
@@ -44,13 +44,16 @@
byte[] bytes = ex.getIn().getBody(byte[].class);
assertTrue("Logo size wrong", bytes.length > 10000);
+ // wait until the file producer has written the file
+ Thread.sleep(1000);
+
// assert the file
File file = new File("target/ftptest/deleteme.jpg");
assertTrue("The binary file should exists", file.exists());
assertTrue("Logo size wrong", file.length() > 10000);
// let some time pass to let the consumer etc. properly do its
business before closing
- Thread.sleep(2000);
+ Thread.sleep(1000);
}
public String getPort() {
Modified:
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToFileNoFileNameHeaderTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToFileNoFileNameHeaderTest.java?rev=645269&r1=645268&r2=645269&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToFileNoFileNameHeaderTest.java
(original)
+++
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToFileNoFileNameHeaderTest.java
Sun Apr 6 09:46:35 2008
@@ -40,13 +40,16 @@
resultEndpoint.expectedBodiesReceived("Hello World from FTPServer");
resultEndpoint.assertIsSatisfied();
+ // wait until the file producer has written the file
+ Thread.sleep(1000);
+
// assert the file
File file = new File("target/ftptest/hello.txt");
assertTrue("The file should exists", file.exists());
assertTrue("File size wrong", file.length() > 10);
// let some time pass to let the consumer etc. properly do its
business before closing
- Thread.sleep(2000);
+ Thread.sleep(1000);
}
public String getPort() {
Modified:
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToMockTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToMockTest.java?rev=645269&r1=645268&r2=645269&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToMockTest.java
(original)
+++
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToMockTest.java
Sun Apr 6 09:46:35 2008
@@ -40,7 +40,7 @@
resultEndpoint.assertIsSatisfied();
// let some time pass to let the consumer etc. properly do its
business before closing
- Thread.sleep(2000);
+ Thread.sleep(1000);
}
protected RouteBuilder createRouteBuilder() throws Exception {