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()
。但是同时有CompositeFileListFilter
和ChainFileListFilter
供您选择组成一组过滤器。那里的顺序已经很重要了。
下面的所有辛勤工作都委托给了 FileListFilterFactoryBean
,而组成和互斥性则由那个决定。
我想我们需要就此事提供更清晰的 JavaDoc。欢迎提出JIRA,我们会尽快修复。
我有以下代码:
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()
。但是同时有CompositeFileListFilter
和ChainFileListFilter
供您选择组成一组过滤器。那里的顺序已经很重要了。
下面的所有辛勤工作都委托给了 FileListFilterFactoryBean
,而组成和互斥性则由那个决定。
我想我们需要就此事提供更清晰的 JavaDoc。欢迎提出JIRA,我们会尽快修复。