INT-1703 added support for configuring 'remote-file-separator' for FTP/SFTP

This commit is contained in:
Oleg Zhurakousky
2011-01-06 13:35:37 -05:00
parent c979dd63e7
commit f0d446617d
10 changed files with 42 additions and 0 deletions

View File

@@ -47,6 +47,7 @@ public abstract class AbstractRemoteFileInboundChannelAdapterParser extends Abst
synchronizerBuilder.addConstructorArgValue(sessionFactoryBuilder.getBeanDefinition());
IntegrationNamespaceUtils.setValueIfAttributeDefined(synchronizerBuilder, element, "remote-directory");
IntegrationNamespaceUtils.setValueIfAttributeDefined(synchronizerBuilder, element, "delete-remote-files");
IntegrationNamespaceUtils.setValueIfAttributeDefined(synchronizerBuilder, element, "remote-file-separator");
this.configureFilter(synchronizerBuilder, element, parserContext);
// build the MessageSource

View File

@@ -88,6 +88,7 @@ public class RemoteFileOutboundChannelAdapterParser extends AbstractOutboundChan
}
}
IntegrationNamespaceUtils.setValueIfAttributeDefined(handlerBuilder, element, "charset");
IntegrationNamespaceUtils.setValueIfAttributeDefined(handlerBuilder, element, "remote-file-separator");
return handlerBuilder.getBeanDefinition();
}

View File

@@ -64,6 +64,10 @@ public class FileTransferringMessageHandler extends AbstractMessageHandler {
this.sessionFactory = sessionFactory;
}
public void setRemoteFileSeparator(String remoteFileSeparator) {
Assert.hasText(remoteFileSeparator, "'remoteFileSeparator' must not be null");
this.remoteFileSeparator = remoteFileSeparator;
}
public void setRemoteDirectoryExpression(Expression remoteDirectoryExpression) {
this.directoryExpressionProcessor = new ExpressionEvaluatingMessageProcessor<String>(remoteDirectoryExpression, String.class);

View File

@@ -88,6 +88,10 @@ public abstract class AbstractInboundFileSynchronizer<F> implements InboundFileS
this.sessionFactory = sessionFactory;
}
public void setRemoteFileSeparator(String remoteFileSeparator) {
Assert.hasText(remoteFileSeparator, "'remoteFileSeparator' must not be null");
this.remoteFileSeparator = remoteFileSeparator;
}
/**
* Specify the full path to the remote directory.

View File

@@ -37,6 +37,13 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="remote-file-separator" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
Allows you to provide remote file/directory separator character. DEFAULT: '/'
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="remote-filename-generator" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
@@ -111,6 +118,13 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="remote-file-separator" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
Allows you to provide remote file/directory separator character. DEFAULT: '/'
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="local-directory" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation>

View File

@@ -18,6 +18,7 @@
delete-remote-files="true"
filename-pattern="*.txt"
local-directory="."
remote-file-separator="/"
remote-directory="foo/bar">
<int:poller fixed-rate="1000"/>
</int-ftp:inbound-channel-adapter>

View File

@@ -21,6 +21,7 @@
session-factory="ftpSessionFactory"
remote-directory="foo/bar"
charset="UTF-8"
remote-file-separator="/"
remote-filename-generator="fileNameGenerator"/>
<int:channel id="ftpChannel"/>

View File

@@ -55,6 +55,13 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="remote-file-separator" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
Allows you to provide remote file/directory separator character. DEFAULT: '/'
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="remote-directory-expression" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
@@ -168,6 +175,13 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="remote-file-separator" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
Allows you to provide remote file/directory separator character. DEFAULT: '/'
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="remote-directory" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation>

View File

@@ -42,6 +42,7 @@
remote-directory="/foo"
local-directory="file:local-test-dir"
auto-create-local-directory="false"
remote-file-separator="/"
delete-remote-files="false">
<poller fixed-rate="1000"/>
</sftp:inbound-channel-adapter>

View File

@@ -25,6 +25,7 @@
channel="inputChannel"
charset="UTF-8"
remote-filename-generator="fileNameGenerator"
remote-file-separator="/"
remote-directory="foo/bar"/>
<int-sftp:outbound-channel-adapter id="sftpOutboundAdapterWithExpression"