Spring Integration JAVA DSL中的AcceptOnceFileListFilter覆盖SimplePatternFileListFilter

时间:2018-06-19 12:02:33

标签: spring-integration spring-integration-dsl

我有以下代码:

return IntegrationFlows
                .from(Files.inboundAdapter(new File("data"))
                        .filter(new SimplePatternFileListFilter("*.txt"))
                        .filter(new AcceptOnceFileListFilter<>()),
                        e -> e.poller(Pollers.fixedDelay("1000"))
                                .id("fileInboundChannelAdapter"))
                .split(new FileSplitter())
                .<Object, Class<?>>route(Object::getClass, m -> m.channelMapping(String.class, "tranform.input")).get();

我的 SimplePatternFileListFilter 无法正常工作,但是如果我删除了 AcceptOnceFileListFilter ,则可以正常工作。

是否只能传递一个FileListerFilter?如果是,是否有任何解决方法?

1 个答案:

答案 0 :(得分:1)

是的。由于我们不知道您将如何组合它们以及顺序如何,因此只能配置一个.filter()。但是,同时有CompositeFileListFilterChainFileListFilter供您选择以组成一组过滤器。而且那里的顺序已经很重要了。

下面的所有艰苦工作都委托给FileListFilterFactoryBean,而组成和相互排斥是由那个人决定的。

我想我们需要在此问题上提供更简洁的JavaDocs。随时提出JIRA,我们会尽快修复。