INTSAMPLES-41 - Use embedded Apache FTP Server
For Reference see: https://jira.springsource.org/browse/INTSAMPLES-41
This commit is contained in:
@@ -12,19 +12,20 @@
|
||||
<context:property-placeholder location="classpath:user.properties"/>
|
||||
|
||||
<bean id="ftpClientFactory" class="org.springframework.integration.ftp.session.DefaultFtpSessionFactory">
|
||||
<property name="host" value="localhost"/>
|
||||
<property name="host" value="${host}"/>
|
||||
<property name="port" value="${port}"/>
|
||||
<property name="username" value="${user}"/>
|
||||
<property name="password" value="${password}"/>
|
||||
</bean>
|
||||
|
||||
<int-ftp:inbound-channel-adapter id="ftpInbound"
|
||||
<int-ftp:inbound-channel-adapter id="ftpInbound" cache-sessions="false"
|
||||
channel="ftpChannel"
|
||||
session-factory="ftpClientFactory"
|
||||
filename-regex=".*\.txt$"
|
||||
filename-pattern="*.txt"
|
||||
auto-create-local-directory="true"
|
||||
delete-remote-files="false"
|
||||
remote-directory="<SPECIFY REMOTE DIRECTORY (e.g., /{workspace}/samples/basic/ftp/remote-source-dir)"
|
||||
local-directory="file:local-target-dir">
|
||||
remote-directory="/"
|
||||
local-directory="#{ T(org.springframework.integration.samples.ftp.TestSuite).LOCAL_FTP_TEMP_DIR}/ftpInbound">
|
||||
<int:poller fixed-rate="1000"/>
|
||||
</int-ftp:inbound-channel-adapter>
|
||||
|
||||
|
||||
@@ -2,26 +2,27 @@
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:int="http://www.springframework.org/schema/integration"
|
||||
xmlns:int-ftp="http://www.springframework.org/schema/integration/ftp"
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
xmlns:int-ftp="http://www.springframework.org/schema/integration/ftp"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/integration/ftp http://www.springframework.org/schema/integration/ftp/spring-integration-ftp.xsd
|
||||
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
|
||||
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
|
||||
http://www.springframework.org/schema/integration/ftp http://www.springframework.org/schema/integration/ftp/spring-integration-ftp.xsd">
|
||||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
|
||||
|
||||
<context:property-placeholder location="classpath:user.properties"/>
|
||||
|
||||
<bean id="ftpClientFactory" class="org.springframework.integration.ftp.session.DefaultFtpSessionFactory">
|
||||
<property name="host" value="localhost"/>
|
||||
<property name="host" value="${host}"/>
|
||||
<property name="port" value="${port}"/>
|
||||
<property name="username" value="${user}"/>
|
||||
<property name="password" value="${password}"/>
|
||||
</bean>
|
||||
|
||||
<int:channel id="ftpChannel"/>
|
||||
|
||||
<int-ftp:outbound-channel-adapter id="ftpOutbound"
|
||||
<int-ftp:outbound-channel-adapter id="ftpOutbound" cache-sessions="false"
|
||||
channel="ftpChannel"
|
||||
remote-directory="<SPECIFY REMOTE DIRECTORY (e.g., /{workspace}/samples/basic/ftp/remote-target-dir)"
|
||||
client-factory="ftpClientFactory"/>
|
||||
remote-directory="/"
|
||||
session-factory="ftpClientFactory" />
|
||||
|
||||
</beans>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xmlns:int="http://www.springframework.org/schema/integration"
|
||||
xmlns:int-ftp="http://www.springframework.org/schema/integration/ftp"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/integration/ftp http://www.springframework.org/schema/integration/ftp/spring-integration-ftp.xsd
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/integration/ftp http://www.springframework.org/schema/integration/ftp/spring-integration-ftp-2.1.xsd
|
||||
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
|
||||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
|
||||
@@ -16,36 +16,54 @@
|
||||
|
||||
<bean id="ftpSessionFactory"
|
||||
class="org.springframework.integration.ftp.session.DefaultFtpSessionFactory">
|
||||
<property name="host" value="localhost"/>
|
||||
<property name="host" value="${host}"/>
|
||||
<property name="port" value="${port}"/>
|
||||
<property name="username" value="${user}"/>
|
||||
<property name="password" value="${password}"/>
|
||||
</bean>
|
||||
|
||||
<int-ftp:outbound-gateway id="gatewayLS"
|
||||
<int-ftp:outbound-gateway id="gatewayLS" cache-sessions="false"
|
||||
session-factory="ftpSessionFactory"
|
||||
request-channel="inbound"
|
||||
command="ls"
|
||||
command-options=""
|
||||
expression="payload"
|
||||
reply-channel="toSplitter"/>
|
||||
|
||||
<int:channel id="toSplitter">
|
||||
<int:interceptors>
|
||||
<int:wire-tap channel="logger"/>
|
||||
</int:interceptors>
|
||||
</int:channel>
|
||||
|
||||
<int:splitter input-channel="toSplitter" output-channel="toGet"/>
|
||||
<int:logging-channel-adapter id="logger" log-full-message="true"/>
|
||||
|
||||
<int-ftp:outbound-gateway id="gatewayGET"
|
||||
local-directory="#{ T(System).getProperty('java.io.tmpdir')}"
|
||||
<int:splitter id="splitter" input-channel="toSplitter" output-channel="toGet"/>
|
||||
|
||||
<int-ftp:outbound-gateway id="gatewayGET" cache-sessions="false"
|
||||
local-directory="#{ T(org.springframework.integration.samples.ftp.TestSuite).LOCAL_FTP_TEMP_DIR}/gatewayGET"
|
||||
session-factory="ftpSessionFactory"
|
||||
request-channel="toGet"
|
||||
reply-channel="toRm"
|
||||
command="get"
|
||||
reply-channel="toRemoveChannel"
|
||||
command="get"
|
||||
command-options="-P"
|
||||
expression="payload.remoteDirectory + '/' + payload.filename"/>
|
||||
|
||||
<int-ftp:outbound-gateway id="gatewayRM" reply-channel="aggregateResultsChannel"
|
||||
session-factory="ftpSessionFactory"
|
||||
expression="headers['file_remoteDirectory'] + '/' + headers['file_remoteFile']"
|
||||
request-channel="toRm"
|
||||
command="rm"/>
|
||||
<int:channel id="toRemoveChannel">
|
||||
<int:interceptors>
|
||||
<int:wire-tap channel="logger2"/>
|
||||
</int:interceptors>
|
||||
</int:channel>
|
||||
|
||||
<int:aggregator input-channel="aggregateResultsChannel"/>
|
||||
<int:logging-channel-adapter id="logger2" log-full-message="true"/>
|
||||
|
||||
<int-ftp:outbound-gateway id="gatewayRM"
|
||||
session-factory="ftpSessionFactory" cache-sessions="false"
|
||||
expression="headers['file_remoteDirectory'] + '/' + headers['file_remoteFile']"
|
||||
request-channel="toRemoveChannel"
|
||||
command="rm"
|
||||
reply-channel="aggregateResultsChannel"/>
|
||||
|
||||
<int:aggregator input-channel="aggregateResultsChannel"/>
|
||||
|
||||
</beans>
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
log4j.rootCategory=WARN, stdout
|
||||
|
||||
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
|
||||
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
|
||||
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %t %c{2}:%L - %m%n
|
||||
|
||||
log4j.category.org.springframework=WARN
|
||||
log4j.category.org.springframework.integration=DEBUG
|
||||
27
basic/ftp/src/test/resources/logback.xml
Normal file
27
basic/ftp/src/test/resources/logback.xml
Normal file
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<configuration>
|
||||
|
||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>%d %5p | %t | %-55logger{55} | %m %n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<logger name="org.springframework.integration">
|
||||
<level value="INFO" />
|
||||
</logger>
|
||||
|
||||
<logger name="org.springframework">
|
||||
<level value="INFO" />
|
||||
</logger>
|
||||
<logger name="org.apache.ftpserver">
|
||||
<level value="WARN" />
|
||||
</logger>
|
||||
|
||||
<root>
|
||||
<level value="INFO" />
|
||||
<appender-ref ref="CONSOLE" />
|
||||
</root>
|
||||
|
||||
</configuration>
|
||||
1
basic/ftp/src/test/resources/test-files/a.txt
Normal file
1
basic/ftp/src/test/resources/test-files/a.txt
Normal file
@@ -0,0 +1 @@
|
||||
A
|
||||
0
basic/ftp/src/test/resources/test-files/b.txt
Normal file
0
basic/ftp/src/test/resources/test-files/b.txt
Normal file
@@ -1,2 +1,4 @@
|
||||
user=
|
||||
password=
|
||||
user=demo
|
||||
password=demo
|
||||
port=3333
|
||||
host=localhost
|
||||
Reference in New Issue
Block a user