【发布时间】:2017-06-28 04:39:32
【问题描述】:
我正在尝试对流配置进行一些测试。我将 JMS 入站通道适配器作为流的入口点,将出站文件通道适配器(带有附加的 ExpressionEvaluatingRequestHandlerAdvice)作为最后一个端点。
这是一个示例代码:
@Bean
public IntegrationFlow fileProcessingFlow() {
DefaultMessageListenerContainer dmlc = new DefaultMessageListenerContainer();
dmlc.setConnectionFactory(connectionFactory);
dmlc.setDestination(jmsQueue);
return IntegrationFlows.from(Jms.messageDrivenChannelAdapter(dmlc))
.<String, File>transform(p -> new File(p))
.handle(headerEnricherService)
.<Boolean>route("T(SomeEnum).INVALID.equals(headers['headerName'])", mapping -> mapping
.subFlowMapping(Boolean.TRUE, sf -> sf.handle(serviceRef, "handleInvalidFile"))
.subFlowMapping(Boolean.FALSE, sf -> sf
.handle(serviceRef, "handleValidFile")
.handle(anotherServiceRef)))
.filter(additionalFilterRef)
.handle(Files.outboundAdapter("'output/dir/path'")
.autoCreateDirectory(true)
.deleteSourceFiles(true),
c -> c.advice(fileCopyAdvice()))
.get();
}
我正在使用这篇文章来实现上面的代码 - https://spring.io/blog/2014/11/25/spring-integration-java-dsl-line-by-line-tutorial 。但是,我无法找到有关测试该代码的信息。
我对上面的代码有几个问题:
- 在哪里可以找到定义类似的流程的测试示例?或者至少,一些关于这个主题的教程或文章?
- 模拟 JMS 连接的最佳方式是什么?
- 如果没有在流配置中明确定义通道,我如何获得对通道的引用?最好,我想在我的测试配置中自动连接通道,然后向它发送示例消息。类似
jmsInputChannel.send(testMessage); - 有什么方法可以在测试中使用 MessageHistory 吗?
谢谢。
【问题讨论】: