Author: hadrian
Date: Sun Jun 28 03:20:58 2009
New Revision: 789039
URL: http://svn.apache.org/viewvc?rev=789039&view=rev
Log:
CAMEL-1078. Reducing entropy around GenericFileExchange.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileComponent.java
camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileExchange.java
camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileProducerExpressionTest.java
camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerMultipleDirectoriesTest.java
camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerWithNoFileOptionTest.java
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileComponent.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileComponent.java?rev=789039&r1=789038&r2=789039&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileComponent.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileComponent.java
Sun Jun 28 03:20:58 2009
@@ -25,6 +25,11 @@
public class FileComponent extends GenericFileComponent<File> {
/**
+ * GenericFile property on Camel Exchanges.
+ */
+ public static final String FILE_EXCHANGE_FILE = "CamelFileExchangeFile";
+
+ /**
* Default camel lock filename postfix
*/
public static final String DEFAULT_LOCK_FILE_POSTFIX = ".camelLock";
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileExchange.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileExchange.java?rev=789039&r1=789038&r2=789039&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileExchange.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileExchange.java
Sun Jun 28 03:20:58 2009
@@ -16,21 +16,16 @@
*/
package org.apache.camel.component.file;
-import java.io.File;
import java.io.IOException;
-import java.util.Date;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
-import org.apache.camel.Message;
import org.apache.camel.PollingConsumerAware;
import org.apache.camel.RuntimeExchangeException;
import org.apache.camel.impl.DefaultExchange;
public class GenericFileExchange<T> extends DefaultExchange implements
PollingConsumerAware {
- private GenericFile<T> file;
-
public GenericFileExchange(Endpoint fromEndpoint) {
super(fromEndpoint);
}
@@ -40,33 +35,34 @@
setGenericFile(file);
}
- protected void populateHeaders(GenericFile<T> file) {
- Message message = getIn();
- if (file != null && message instanceof GenericFileMessage) {
- file.populateHeaders((GenericFileMessage<T>)message);
- }
- }
-
public GenericFile<T> getGenericFile() {
- return file;
+ return (GenericFile<T>) getProperty(FileComponent.FILE_EXCHANGE_FILE);
}
public void setGenericFile(GenericFile<T> file) {
- this.file = file;
- setIn(new GenericFileMessage<T>(file));
- populateHeaders(file);
+ setProperty(FileComponent.FILE_EXCHANGE_FILE, file);
+ GenericFileMessage<T> in = new GenericFileMessage<T>(file);
+ setIn(in);
+ if (file != null) {
+ file.populateHeaders(in);
+ }
}
public Exchange newInstance() {
- return new GenericFileExchange<T>(this, file);
+ return new GenericFileExchange<T>(this, getGenericFile());
}
public void exchangePolled(Exchange exchange) {
- try {
- // load content into memory
- file.getBinding().loadContent(exchange, file);
- } catch (IOException e) {
- throw new RuntimeExchangeException("Cannot load content of file: "
+ file.getAbsoluteFilePath(), exchange, e);
+ GenericFile<T> file = getGenericFile();
+ if (file != null)
+ {
+ try {
+ // load content into memory
+ file.getBinding().loadContent(exchange, file);
+ } catch (IOException e) {
+ throw new RuntimeExchangeException("Cannot load content of
file: "
+ + file.getAbsoluteFilePath(), exchange, e);
+ }
}
}
}
Modified:
camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileProducerExpressionTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileProducerExpressionTest.java?rev=789039&r1=789038&r2=789039&view=diff
==============================================================================
---
camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileProducerExpressionTest.java
(original)
+++
camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileProducerExpressionTest.java
Sun Jun 28 03:20:58 2009
@@ -109,5 +109,4 @@
return "123";
}
}
-
}
Modified:
camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerMultipleDirectoriesTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerMultipleDirectoriesTest.java?rev=789039&r1=789038&r2=789039&view=diff
==============================================================================
---
camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerMultipleDirectoriesTest.java
(original)
+++
camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerMultipleDirectoriesTest.java
Sun Jun 28 03:20:58 2009
@@ -16,8 +16,9 @@
*/
package org.apache.camel.component.file.remote;
+import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.file.GenericFileExchange;
+import org.apache.camel.component.file.FileComponent;
import org.apache.camel.component.mock.MockEndpoint;
import org.junit.Before;
import org.junit.Test;
@@ -52,20 +53,23 @@
assertMockEndpointsSatisfied();
- GenericFileExchange exchange = (GenericFileExchange)
mock.getExchanges().get(0);
- RemoteFile file = (RemoteFile) exchange.getGenericFile();
+ Exchange exchange = mock.getExchanges().get(0);
+ RemoteFile file = (RemoteFile)
exchange.getProperty(FileComponent.FILE_EXCHANGE_FILE);
+ assertNotNull(file);
assertDirectoryEquals("multidir/bye.txt", file.getAbsoluteFilePath());
assertDirectoryEquals("bye.txt", file.getRelativeFilePath());
assertEquals("bye.txt", file.getFileName());
- exchange = (GenericFileExchange) mock.getExchanges().get(1);
- file = (RemoteFile) exchange.getGenericFile();
+ exchange = mock.getExchanges().get(1);
+ file = (RemoteFile)
exchange.getProperty(FileComponent.FILE_EXCHANGE_FILE);
+ assertNotNull(file);
assertDirectoryEquals("multidir/sub/hello.txt",
file.getAbsoluteFilePath());
assertDirectoryEquals("sub/hello.txt", file.getRelativeFilePath());
assertEquals("hello.txt", file.getFileName());
- exchange = (GenericFileExchange) mock.getExchanges().get(2);
- file = (RemoteFile) exchange.getGenericFile();
+ exchange = mock.getExchanges().get(2);
+ file = (RemoteFile)
exchange.getProperty(FileComponent.FILE_EXCHANGE_FILE);
+ assertNotNull(file);
assertDirectoryEquals("multidir/sub/sub2/godday.txt",
file.getAbsoluteFilePath());
assertDirectoryEquals("sub/sub2/godday.txt",
file.getRelativeFilePath());
assertEquals("godday.txt", file.getFileName());
Modified:
camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerWithNoFileOptionTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerWithNoFileOptionTest.java?rev=789039&r1=789038&r2=789039&view=diff
==============================================================================
---
camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerWithNoFileOptionTest.java
(original)
+++
camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerWithNoFileOptionTest.java
Sun Jun 28 03:20:58 2009
@@ -16,8 +16,9 @@
*/
package org.apache.camel.component.file.remote;
+import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.file.GenericFileExchange;
+import org.apache.camel.component.file.FileComponent;
import org.apache.camel.component.mock.MockEndpoint;
import org.junit.Before;
import org.junit.Test;
@@ -53,8 +54,9 @@
assertMockEndpointsSatisfied();
- GenericFileExchange exchange = (GenericFileExchange)
mock.getExchanges().get(0);
- RemoteFile file = (RemoteFile) exchange.getGenericFile();
+ Exchange exchange = mock.getExchanges().get(0);
+ RemoteFile file = (RemoteFile)
exchange.getProperty(FileComponent.FILE_EXCHANGE_FILE);
+ assertNotNull(file);
assertEquals("hello.txt", file.getAbsoluteFilePath());
assertEquals("hello.txt", file.getRelativeFilePath());
assertEquals("hello.txt", file.getFileName());