我们有一个远程FTP服务器,其中有一个包含某些文本文件的文件夹“test/”,“test/”文件夹中有另一个子目录“archive/”。
FTP服务器-〉-测试/---abc. txt---xyz. txt---存档/
我们可以通过Spring Integration流程下载本地目录中的所有文本文件,并将文件移动到同一个ftp服务器上的另一个远程位置。现在我们正在寻找测试以下代码的方法。
工作代码:
@Bean
public IntegrationFlow integrationFlow() {
File localDirectory = new File("tmp/");
FtpInboundChannelAdapterSpec ftpInboundChannelAdapterSpec = Ftp.inboundAdapter(gimmeFactory())
.remoteDirectory("test/")
.autoCreateLocalDirectory(true)
.regexFilter(".*\\.txt$")
.localDirectory(localDirectory)
.preserveTimestamp(true)
.remoteFileSeparator("/");
return IntegrationFlows
.from(ftpInboundChannelAdapterSpec, e -> e.poller(Pollers.fixedDelay(Duration.ofSeconds(5))))
.handle(Ftp.outboundGateway(gimmeFactory(), AbstractRemoteFileOutboundGateway.Command.LS, "'test/'")
.options(AbstractRemoteFileOutboundGateway.Option.NAME_ONLY))
.split()
.handle(Ftp.outboundGateway(gimmeFactory(), AbstractRemoteFileOutboundGateway.Command.MV, "'test/' +payload").renameExpression("'test/archive/' +payload"))
.channel("nullChannel")
.get();
}
我已经通过了许多文章,但不能得到这个确切的解决方案。有人能请帮助我在这里测试上述工作代码。提前感谢。
1条答案
按热度按时间ut6juiuv1#
该框架使用ApacheMina进行集成测试;你也可以这样做。
https://github.com/spring-projects/spring-integration/blob/main/spring-integration-ftp/src/test/java/org/springframework/integration/ftp/FtpTestSupport.java#L56