INTSAMPLES-12 added SFTP sample

This commit is contained in:
Oleg Zhurakousky
2010-11-18 03:23:09 -05:00
parent 12863155aa
commit afec85a6e2
26 changed files with 492 additions and 0 deletions

8
basic/sftp/.classpath Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>

1
basic/sftp/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/local-dir

23
basic/sftp/.project Normal file
View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>sftp</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.maven.ide.eclipse.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.maven.ide.eclipse.maven2Nature</nature>
</natures>
</projectDescription>

View File

@@ -0,0 +1,5 @@
#Thu Nov 18 03:08:02 EST 2010
//com.springsource.sts.config.flow.coordinates\:http\://www.springframework.org/schema/integration\:/sftp/src/main/resources/META-INF/spring/integration/SftpInboundReceiveSample-context.xml=<?xml version\="1.0" encoding\="UTF-8"?>\n<graph>\n<element clazz\="InboundChannelAdapterModelElement" type\="inbound-channel-adapter">\n<structure end\="1954" endstart\="1919" start\="1487" startend\="1857"/>\n<bounds height\="112" width\="116" x\="19" y\="17"/>\n</element>\n<element clazz\="ChannelModelElement" type\="channel">\n<structure end\="2022" endstart\="2008" start\="1958" startend\="1991"/>\n<bounds height\="112" width\="116" x\="155" y\="17"/>\n</element>\n</graph>
//com.springsource.sts.config.flow.coordinates\:http\://www.springframework.org/schema/integration\:/sftp/src/test/resources/META-INF/spring/integration/SftpInboundReceiveSample-context.xml=<?xml version\="1.0" encoding\="UTF-8"?>\n<graph>\n<element clazz\="InboundChannelAdapterModelElement" type\="inbound-channel-adapter">\n<structure end\="1961" endstart\="1926" start\="1487" startend\="1864"/>\n<bounds height\="112" width\="116" x\="19" y\="17"/>\n</element>\n<element clazz\="ChannelModelElement" type\="channel">\n<structure end\="2029" endstart\="2015" start\="1965" startend\="1998"/>\n<bounds height\="112" width\="116" x\="155" y\="17"/>\n</element>\n</graph>
//com.springsource.sts.config.flow.coordinates\:http\://www.springframework.org/schema/integration\:/sftp/src/test/resources/META-INF/spring/integration/SftpOutboundTransferSample-context.xml=<?xml version\="1.0" encoding\="UTF-8"?>\n<graph>\n<element clazz\="ChannelModelElement" type\="channel">\n<structure end\="1355" endstart\="1355" start\="1323" startend\="1355"/>\n<bounds height\="112" width\="116" x\="19" y\="17"/>\n</element>\n<element clazz\="OutboundChannelAdapterModelElement" type\="outbound-channel-adapter">\n<structure end\="1650" endstart\="1650" start\="1359" startend\="1650"/>\n<bounds height\="112" width\="116" x\="155" y\="17"/>\n</element>\n</graph>
eclipse.preferences.version=1

View File

@@ -0,0 +1,13 @@
#Thu Nov 18 02:10:39 EST 2010
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.source=1.6

View File

@@ -0,0 +1,9 @@
#Thu Nov 18 01:42:05 EST 2010
activeProfiles=
eclipse.preferences.version=1
fullBuildGoals=process-test-resources
includeModules=false
resolveWorkspaceProjects=true
resourceFilterGoals=process-resources resources\:testResources
skipCompilerPlugin=true
version=1

64
basic/sftp/pom.xml Normal file
View File

@@ -0,0 +1,64 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework.integration.samples</groupId>
<artifactId>sftp</artifactId>
<version>2.0.0</version>
<name>SFTP Demo</name>
<packaging>jar</packaging>
<properties>
<spring.integration.version>2.0.0.BUILD-SNAPSHOT</spring.integration.version>
<log4j.version>1.2.16</log4j.version>
<junit.version>4.7</junit.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-sftp</artifactId>
<version>${spring.integration.version}</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<!-- test-scoped dependencies -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<compilerArgument>-Xlint:all</compilerArgument>
<showWarnings>true</showWarnings>
<showDeprecation>false</showDeprecation>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>repository.springframework.maven.release</id>
<name>Spring Framework Maven Release Repository</name>
<url>http://maven.springframework.org/release</url>
</repository>
<repository>
<id>repository.springframework.maven.milestone</id>
<name>Spring Framework Maven Milestone Repository</name>
<url>http://maven.springframework.org/milestone</url>
</repository>
<repository>
<id>repository.springframework.maven.snapshot</id>
<name>Spring Framework Maven Snapshot Repository</name>
<url>http://maven.springframework.org/snapshot</url>
</repository>
</repositories>
</project>

68
basic/sftp/readme.txt Normal file
View File

@@ -0,0 +1,68 @@
This example demonstrates the following aspects of the SFTP support available with Spring Integration:
1. SFTP Inbound Channel Adapter (transfers files from remote to local directory)
2. SFTP Outbound Channel Adapter (transfers files from local to the remote directory)
In order to run this sample you need to
1. generate private/public keys. Below is simple directions what needs to be done
2. update user.properties file with appropriate values
3. run the sample
#### INBOUND CHANNEL ADAPTER ####
To run INBOUND CHANNEL ADAPTER sample execute SftpInboundReceiveSample test. You will see that based on configuration it
will access sample remote directory which contains 3 files and will attept to securly copy them to a local directory which
will be generated.
The output should look like this:
=====
Received first file message: [Payload=local-dir/a.txt][Headers={timestamp=1290066001349, id=9dca686a-cfd4-4d96-a1a7-761feb005e43}]
Received second file message: [Payload=local-dir/b.txt][Headers={timestamp=1290066001650, id=d33a475d-fa71-4c5b-b73e-3147969f1c6f}]
No third file was received null
=====
As you can see, although the remote directory had 3 files we only received 2 since we were filtering only the files that end with 'txt'.
#### OUTBOUND CHANNEL ADAPTER ####
To run OUTBOUND CHANNEL ADAPTER sample execute SftpOutboundTransferSample test. You will see that based on configuration it
will attempt to transfer this 'readme.txt' file to a remote directory 'remote-target-dir'
The output should look like this:
=====
Successfully transfered 'readme.txt' file to a remote location under the name 'readme.txt_foo'
=====
NOTE: You can see that we are using SpEL via 'remote-file-expression' attribute to define the remote file name by
simply appending '_foo' to the original file name.
====== HOW TO GENERATE KEYS ======
>$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/ozhurakousky/.ssh/id_rsa): ./sftp_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ./sftp_rsa.
Your public key has been saved in ./sftp_rsa.pub.
The key fingerprint is:
2c:30:7c:18:3c:a0:d5:83:68:78:7e:c1:5f:c1:3e:3d ozhurakousky@oleg.home
The key's randomart image is:
+--[ RSA 2048]----+
|..o*. ... |
|o+o.Bo o |
|oo ==.o . |
| . .+..o E |
| . . S. . |
| . |
| |
| |
| |
+-----------------+
>$ ls
sftp_rsa sftp_rsa.pub
>$
2. Create a file ~/.ssh/authorized_keys and give it the required permissions
>$ chmod 600 ~/.ssh/authorized_keys
3. Then edit 'authorized_keys' file and paste in the contents of the public key file 'sftp_rsa.pub' .
4. Move your private key file 'sftp_rsa' to META-INF/keys directory

View File

@@ -0,0 +1 @@
A

View File

@@ -0,0 +1 @@
B

View File

@@ -0,0 +1 @@
C

View File

View File

@@ -0,0 +1,26 @@
/**
*
*/
package org.springframework.integration.samples.sftp;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.integration.core.PollableChannel;
/**
* @author ozhurakousky
*
*/
public class SftpInboundReceiveSample {
@Test
public void runDemo(){
ApplicationContext context = new ClassPathXmlApplicationContext("/META-INF/spring/integration/SftpInboundReceiveSample-context.xml", this.getClass());
PollableChannel localFileChannel = context.getBean("receiveChannel", PollableChannel.class);
System.out.println("Received first file message: " + localFileChannel.receive());
System.out.println("Received second file message: " + localFileChannel.receive());
System.out.println("No third file was received " + localFileChannel.receive(1000));
}
}

View File

@@ -0,0 +1,52 @@
/*
* Copyright 2002-2010 the original author or authors.
*
* Licensed 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.springframework.integration.samples.sftp;
import java.io.File;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.integration.Message;
import org.springframework.integration.MessageChannel;
import org.springframework.integration.support.MessageBuilder;
/**
* @author Oleg Zhurakousky
*
*/
public class SftpOutboundTransferSample {
@Test
public void testOutbound() throws Exception{
ClassPathXmlApplicationContext ac =
new ClassPathXmlApplicationContext("/META-INF/spring/integration/SftpOutboundTransferSample-context.xml", SftpOutboundTransferSample.class);
ac.start();
File file = new File("readme.txt");
if (file.exists()){
Message<File> message = MessageBuilder.withPayload(file).build();
MessageChannel inputChannel = ac.getBean("inputChannel", MessageChannel.class);
inputChannel.send(message);
Thread.sleep(2000);
}
if (new File("remote-target-dir/readme.txt_foo").exists()){
System.out.println("Successfully transfered 'readme.txt' file to a remote location under the name 'readme.txt_foo'");
}
ac.stop();
}
}

View File

@@ -0,0 +1,30 @@
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,89FEB82756CA8E56
TKzzEZLLatyEMrbDVvTOkf6mvdRr/XT8+AZ1ZZfcw02sdUXSVtLMWi1tGhwTzvka
Acl438D+O6WZT/JBvMcST/17KT2CFwgYrFGwxVnDXge5eQ7bHNZ33vPXVNsfmuhx
OtNPy35LiClXt7FP1JpWlubWjXrlWIxCoxOYvQuETTc6t+CMjoRL1rvAv7IdPuso
nT8XO0hwOXIUn5ZVC47ChuQjyisbfL3elSp3vE9T4Jwcb2QIkQ7DAJ6/y79ne7C3
BTELKnuskK8WDnwaBMJImMK1da52ttDSrG5DD58DbnVLWGaYs3k1Y6LRol9jhoW+
u8qd/UR7FF/0A9Dmwa7Su2FNsR30E367TJhtSEOOZ9qwe5J3AOKczTck3oMoLkmR
Gs92uryCmO79XfUVINLaDZaM+Qaa5jskQDAGqGIm91nmFn8iALMSMyPhTNAv2kw0
6/pmIKmYZ72+hjqoxd5Baqxv7+xbJYZoo1OB0ErmihU8UFMU5zJmJlt+desxot6C
/83IarRe19QLWVX/Vm7NMOfcTdRGv1w1xONFIggOep6mWDtueyGchI3a2FxQR2Dz
mZSwCGaQGL+ZtOkDD1ceoM0mvjdTNRMioOSULUQnjTNMn/0JTpBMAmZkyHJeNdyD
MMca/ftZZszR7snN3SVOty7h5Q/AL+r9+sEPEMX+oE5N65gxhS2Bhqs0OZyeklFB
RCK1eQtwUHEmfFv2XJZBBtm5LLOktQo4jgbMMPJ0HSpf+rkRumav7SFFgBmmYN2X
9Gqw2/uW42FNNaRP/9UD/1zHiKXMMVM9U5BWXn1Eb/3oZ1jIxn6LIrSrv3aEZLmt
7lWynxxohXZOUZiPJxidLP6tH55bXifd+XReR/iynMZ9OBvV3wtFtJxW/NuaMCBX
i5549CSc202Ba/MEt4E7iwTnqO3ySBDT1pUY0ZPOHaZn+L4CDT9y6qVzj6GeTG3m
0B/c61EPjrJ1aqrPy8gNB32B/mmsQGXWwjcFRe8VTJeflwWafe1WHZCt4k3E1ac/
Ju6Gf/r19dLn+FQutHVMaD7YlkDmh+eEKGq0nQBViOYu3ERDYKEEUYO9ZeC/hdge
TmzNST5hLF5lDv3Gzh3RhBB/409Fo2MoL53gW7mteoYn0tSk4TtJ2fz3tdbBln76
z3ZE23Z88pL7YetcMgaIDeXBeybGK1HBtOq+NJvSF2hhT4SjIhgTMFM+2/dwsuRN
00ug+kAV/9uSQ+NQFA/5cZXqsBJ8eeTrpmBKV61Mrfd4xNaEEmJMYKhXegyFzfNy
iEBUh3JoE1cE9zpC/Qrbcw5asuflhEZ0+Ot5umipoJtipfD4hf6MWng2LKsddDR6
19CkO28M9SORD25AFfn4AEPqa+Lp9fMKgs3gm2KkTpSzuoZJp9Y85H/GmmeaZyzc
yqNQrOc8KhDFH9wtTMiquB2cY6qwEUngV57gaQslPE2AW0+tAjbYirku+hFkOZId
dOYmibf6CW7IvbIPPBR2dVlzyn9JNwszTNLxvJLGmF3btKKlKr/GyMomsR0AYSWn
LjCgN4NYYC/XhseeJ2D/vygBoV8kRL9UFDp8K+/IaI7S8RKsW3RrSA==
-----END RSA PRIVATE KEY-----

View File

@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<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-sftp="http://www.springframework.org/schema/integration/sftp"
xmlns:task="http://www.springframework.org/schema/task"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-2.0.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/integration/sftp http://www.springframework.org/schema/integration/sftp/spring-integration-sftp-2.0.xsd">
<context:property-placeholder location="classpath:user.properties"/>
<bean id="sftpSessionFactory" class="org.springframework.integration.sftp.session.SftpSessionFactory">
<property name="host" value="localhost"/>
<property name="privateKey" value="classpath:META-INF/keys/sftp_rsa"/>
<property name="privateKeyPassphrase" value="${passphrase}"/>
<property name="port" value="22"/>
<property name="user" value="${user}"/>
</bean>
<int-sftp:inbound-channel-adapter id="sftpInbondAdapter"
channel="receiveChannel"
session-factory="sftpSessionFactory"
local-directory="file:local-dir"
remote-directory="/Users/ozhurakousky/workspace-sts-2.3.3.M2/si/samples/basic/sftp/remote-source-dir"
auto-create-directories="true"
auto-delete-remote-files-on-sync="false"
filename-pattern=".*\.txt$">
<int:poller fixed-rate="1000" max-messages-per-poll="1"/>
</int-sftp:inbound-channel-adapter>
<int:channel id="receiveChannel">
<int:queue/>
</int:channel>
</beans>

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<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-sftp="http://www.springframework.org/schema/integration/sftp"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-2.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/integration/sftp http://www.springframework.org/schema/integration/sftp/spring-integration-sftp-2.0.xsd">
<context:property-placeholder location="classpath:user.properties"/>
<bean id="sftpSessionFactory" class="org.springframework.integration.sftp.session.SftpSessionFactory">
<property name="host" value="localhost"/>
<property name="privateKey" value="classpath:META-INF/keys/sftp_rsa"/>
<property name="privateKeyPassphrase" value="${passphrase}"/>
<property name="port" value="22"/>
<property name="user" value="${user}"/>
</bean>
<int:channel id="inputChannel"/>
<int-sftp:outbound-channel-adapter id="sftpOutboundAdapter"
session-factory="sftpSessionFactory"
channel="inputChannel"
remote-file-expression="payload.getName() + '_foo'"
remote-directory="/Users/ozhurakousky/workspace-sts-2.3.3.M2/si/samples/basic/sftp/remote-target-dir"/>
</beans>

View File

@@ -0,0 +1,9 @@
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.sftp=TRACE
log4j.category.org.springframework.integration.samples.sftp=TRACE

View File

@@ -0,0 +1,2 @@
user=ozhurakousky
passphrase=springintegration

View File

@@ -0,0 +1,30 @@
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,89FEB82756CA8E56
TKzzEZLLatyEMrbDVvTOkf6mvdRr/XT8+AZ1ZZfcw02sdUXSVtLMWi1tGhwTzvka
Acl438D+O6WZT/JBvMcST/17KT2CFwgYrFGwxVnDXge5eQ7bHNZ33vPXVNsfmuhx
OtNPy35LiClXt7FP1JpWlubWjXrlWIxCoxOYvQuETTc6t+CMjoRL1rvAv7IdPuso
nT8XO0hwOXIUn5ZVC47ChuQjyisbfL3elSp3vE9T4Jwcb2QIkQ7DAJ6/y79ne7C3
BTELKnuskK8WDnwaBMJImMK1da52ttDSrG5DD58DbnVLWGaYs3k1Y6LRol9jhoW+
u8qd/UR7FF/0A9Dmwa7Su2FNsR30E367TJhtSEOOZ9qwe5J3AOKczTck3oMoLkmR
Gs92uryCmO79XfUVINLaDZaM+Qaa5jskQDAGqGIm91nmFn8iALMSMyPhTNAv2kw0
6/pmIKmYZ72+hjqoxd5Baqxv7+xbJYZoo1OB0ErmihU8UFMU5zJmJlt+desxot6C
/83IarRe19QLWVX/Vm7NMOfcTdRGv1w1xONFIggOep6mWDtueyGchI3a2FxQR2Dz
mZSwCGaQGL+ZtOkDD1ceoM0mvjdTNRMioOSULUQnjTNMn/0JTpBMAmZkyHJeNdyD
MMca/ftZZszR7snN3SVOty7h5Q/AL+r9+sEPEMX+oE5N65gxhS2Bhqs0OZyeklFB
RCK1eQtwUHEmfFv2XJZBBtm5LLOktQo4jgbMMPJ0HSpf+rkRumav7SFFgBmmYN2X
9Gqw2/uW42FNNaRP/9UD/1zHiKXMMVM9U5BWXn1Eb/3oZ1jIxn6LIrSrv3aEZLmt
7lWynxxohXZOUZiPJxidLP6tH55bXifd+XReR/iynMZ9OBvV3wtFtJxW/NuaMCBX
i5549CSc202Ba/MEt4E7iwTnqO3ySBDT1pUY0ZPOHaZn+L4CDT9y6qVzj6GeTG3m
0B/c61EPjrJ1aqrPy8gNB32B/mmsQGXWwjcFRe8VTJeflwWafe1WHZCt4k3E1ac/
Ju6Gf/r19dLn+FQutHVMaD7YlkDmh+eEKGq0nQBViOYu3ERDYKEEUYO9ZeC/hdge
TmzNST5hLF5lDv3Gzh3RhBB/409Fo2MoL53gW7mteoYn0tSk4TtJ2fz3tdbBln76
z3ZE23Z88pL7YetcMgaIDeXBeybGK1HBtOq+NJvSF2hhT4SjIhgTMFM+2/dwsuRN
00ug+kAV/9uSQ+NQFA/5cZXqsBJ8eeTrpmBKV61Mrfd4xNaEEmJMYKhXegyFzfNy
iEBUh3JoE1cE9zpC/Qrbcw5asuflhEZ0+Ot5umipoJtipfD4hf6MWng2LKsddDR6
19CkO28M9SORD25AFfn4AEPqa+Lp9fMKgs3gm2KkTpSzuoZJp9Y85H/GmmeaZyzc
yqNQrOc8KhDFH9wtTMiquB2cY6qwEUngV57gaQslPE2AW0+tAjbYirku+hFkOZId
dOYmibf6CW7IvbIPPBR2dVlzyn9JNwszTNLxvJLGmF3btKKlKr/GyMomsR0AYSWn
LjCgN4NYYC/XhseeJ2D/vygBoV8kRL9UFDp8K+/IaI7S8RKsW3RrSA==
-----END RSA PRIVATE KEY-----

View File

@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<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-sftp="http://www.springframework.org/schema/integration/sftp"
xmlns:task="http://www.springframework.org/schema/task"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-2.0.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/integration/sftp http://www.springframework.org/schema/integration/sftp/spring-integration-sftp-2.0.xsd">
<context:property-placeholder location="classpath:user.properties"/>
<bean id="sftpSessionFactory" class="org.springframework.integration.sftp.session.SftpSessionFactory">
<property name="host" value="localhost"/>
<property name="privateKey" value="classpath:META-INF/keys/sftp_rsa"/>
<property name="privateKeyPassphrase" value="${passphrase}"/>
<property name="port" value="22"/>
<property name="user" value="${user}"/>
</bean>
<int-sftp:inbound-channel-adapter id="sftpInbondAdapter"
channel="receiveChannel"
session-factory="sftpSessionFactory"
local-directory="file:local-dir"
remote-directory="/Users/ozhurakousky/workspace-sts-2.3.3.M2/si/samples/basic/sftp/remote-source-dir"
auto-create-directories="true"
auto-delete-remote-files-on-sync="false"
filename-pattern=".*\.txt$">
<int:poller fixed-rate="1000" max-messages-per-poll="1"/>
</int-sftp:inbound-channel-adapter>
<int:channel id="receiveChannel">
<int:queue/>
</int:channel>
</beans>

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<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-sftp="http://www.springframework.org/schema/integration/sftp"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-2.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/integration/sftp http://www.springframework.org/schema/integration/sftp/spring-integration-sftp-2.0.xsd">
<context:property-placeholder location="classpath:user.properties"/>
<bean id="sftpSessionFactory" class="org.springframework.integration.sftp.session.SftpSessionFactory">
<property name="host" value="localhost"/>
<property name="privateKey" value="classpath:META-INF/keys/sftp_rsa"/>
<property name="privateKeyPassphrase" value="${passphrase}"/>
<property name="port" value="22"/>
<property name="user" value="${user}"/>
</bean>
<int:channel id="inputChannel"/>
<int-sftp:outbound-channel-adapter id="sftpOutboundAdapter"
session-factory="sftpSessionFactory"
channel="inputChannel"
remote-file-expression="payload.getName() + '_foo'"
remote-directory="/Users/ozhurakousky/workspace-sts-2.3.3.M2/si/samples/basic/sftp/remote-target-dir"/>
</beans>

View File

@@ -0,0 +1,9 @@
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.sftp=TRACE
log4j.category.org.springframework.integration.samples.sftp=TRACE

View File

@@ -0,0 +1,2 @@
user=ozhurakousky
passphrase=springintegration