AcceptOnceFileListFilter 正在覆盖 Spring 集成 JAVA DSL 中的 SimplePatternFileListFilter

AcceptOnceFileListFilter is overriding SimplePatternFileListFilter in Spring Integration JAVA 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吗?如果是,是否有任何解决方法?

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

下面的所有辛勤工作都委托给了 FileListFilterFactoryBean,而组成和互斥性则由那个决定。

我想我们需要就此事提供更清晰的 JavaDoc。欢迎提出JIRA,我们会尽快修复。