diff --git a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/AbstractFileListFilter.java b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/AbstractFileListFilter.java index 351fe20227..23fcda4766 100644 --- a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/AbstractFileListFilter.java +++ b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/AbstractFileListFilter.java @@ -20,8 +20,6 @@ import java.io.File; import java.util.ArrayList; import java.util.List; -import org.springframework.util.Assert; - /** * A convenience base class for any {@link FileListFilter} whose criteria can be * evaluated against each File in isolation. If the entire List of files is diff --git a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/FileWritingMessageHandler.java b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/FileWritingMessageHandler.java index 74e9117028..de5d5b53d7 100644 --- a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/FileWritingMessageHandler.java +++ b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/FileWritingMessageHandler.java @@ -18,9 +18,11 @@ package org.springframework.integration.file; import java.io.File; import java.io.FileOutputStream; +import java.io.IOException; import java.io.OutputStreamWriter; import java.nio.charset.Charset; +import org.springframework.core.io.Resource; import org.springframework.integration.core.Message; import org.springframework.integration.message.MessageHandler; import org.springframework.integration.message.MessageHandlingException; @@ -41,6 +43,7 @@ import org.springframework.util.FileCopyUtils; * method by the {@link org.springframework.integration.transformer.ObjectToStringTransformer}. * * @author Mark Fisher + * @author Iwein Fuld */ public class FileWritingMessageHandler implements MessageHandler { @@ -50,13 +53,14 @@ public class FileWritingMessageHandler implements MessageHandler { private volatile Charset charset = Charset.defaultCharset(); - - public FileWritingMessageHandler(String parentDirectoryPath) { - this(new File(parentDirectoryPath)); - } - - public FileWritingMessageHandler(File parentDirectory) { - this.parentDirectory = parentDirectory; + public FileWritingMessageHandler(Resource parentDirectory) { + try { + this.parentDirectory = parentDirectory.getFile(); + } + catch (IOException e) { + // TODO Auto-generated catch block + throw new RuntimeException(e); + } } diff --git a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/config/FileOutboundChannelAdapterParser.java b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/config/FileOutboundChannelAdapterParser.java index 851f40be00..6e421b0914 100644 --- a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/config/FileOutboundChannelAdapterParser.java +++ b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/config/FileOutboundChannelAdapterParser.java @@ -25,9 +25,12 @@ import org.springframework.integration.config.xml.AbstractOutboundChannelAdapter import org.springframework.util.StringUtils; /** - * Parser for the <outbound-channel-adapter/> element of the 'file' namespace. + * Parser for the <outbound-channel-adapter/> element of the 'file' + * namespace. * * @author Mark Fisher + * @author Iwein Fuld + * */ public class FileOutboundChannelAdapterParser extends AbstractOutboundChannelAdapterParser { @@ -37,8 +40,11 @@ public class FileOutboundChannelAdapterParser extends AbstractOutboundChannelAda if (!StringUtils.hasText(directory)) { parserContext.getReaderContext().error("directory is required", element); } - BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition( - "org.springframework.integration.file.FileWritingMessageHandler"); + if (directory.indexOf(':') == -1) { + directory = "file:" + directory; + } + BeanDefinitionBuilder builder = BeanDefinitionBuilder + .genericBeanDefinition("org.springframework.integration.file.FileWritingMessageHandler"); builder.addConstructorArgValue(directory); String fileNameGenerator = element.getAttribute("filename-generator"); if (StringUtils.hasText(fileNameGenerator)) { diff --git a/org.springframework.integration.file/src/test/java/org/springframework/integration/file/FileToChannelIntegrationTests.java b/org.springframework.integration.file/src/test/java/org/springframework/integration/file/FileToChannelIntegrationTests.java index 14d1543a48..bf0cf152cb 100644 --- a/org.springframework.integration.file/src/test/java/org/springframework/integration/file/FileToChannelIntegrationTests.java +++ b/org.springframework.integration.file/src/test/java/org/springframework/integration/file/FileToChannelIntegrationTests.java @@ -7,7 +7,6 @@ import java.io.File; import org.junit.After; import org.junit.AfterClass; -import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/org.springframework.integration.file/src/test/java/org/springframework/integration/file/FileWritingMessageHandlerTests.java b/org.springframework.integration.file/src/test/java/org/springframework/integration/file/FileWritingMessageHandlerTests.java index 5c0ca009e6..63676a3f93 100644 --- a/org.springframework.integration.file/src/test/java/org/springframework/integration/file/FileWritingMessageHandlerTests.java +++ b/org.springframework.integration.file/src/test/java/org/springframework/integration/file/FileWritingMessageHandlerTests.java @@ -16,22 +16,29 @@ package org.springframework.integration.file; +import static org.easymock.EasyMock.*; import java.io.File; import org.junit.Test; +import org.springframework.core.io.Resource; import org.springframework.integration.message.GenericMessage; import org.springframework.integration.message.MessageHandlingException; /** * @author Mark Fisher + * @author Iwein Fuld */ public class FileWritingMessageHandlerTests { + + private Resource outputDirectory = createMock(Resource.class); @Test(expected = MessageHandlingException.class) - public void unsupportedType() { + public void unsupportedType() throws Exception { + expect(outputDirectory.getFile()).andReturn(new File(System.getProperty("java.io.tmpdir"))).anyTimes(); + replay(outputDirectory); FileWritingMessageHandler handler = new FileWritingMessageHandler( - new File(System.getProperty("java.io.tmpdir"))); + outputDirectory ); handler.handleMessage(new GenericMessage(99)); }