0

我需要轮询目录并使用不区分大小写的表达式缩小文件范围。

在 2.10 版中,camel 添加了对 antInclude 的支持,这是我所研究的,不幸的是,antInclude 区分大小写,其他过滤表达式也是如此。实现 GenericFileFilter 不是一个选项,因为过滤模式在编译时是未知的,因为我在运行时从数据库中读取它们,并且我有多个文件规则,每个规则都有不同的模式。

我以编程方式在一个循环中创建多个路由,其中​​每个文件路由具有不同的不区分大小写的过滤模式。如果骆驼文件组件支持不区分大小写的表达式,我将不胜感激,或者是否有任何其他方法无需在骆驼中创建自己的新文件组件?

public class MyRouter extends RouteBuilder {

@Override
public void configure() throws Exception {
    Vector<FileTransferEntity> list = TransferDAO.getTransferList();
    for(FileTransferEntity t : list) {
        fromF("ftp://ftpuser@ftpserver/some-directory?antInclude=%s", t.getFileMask()).
        toF("mock:result");//depending on t, action will change.
    }
}
4

1 回答 1

0

应该能够改用自定义过滤器...有关信息,请参阅camel-file2或查看此示例...

https://svn.apache.org/repos/asf/camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFileFilterTest.java

于 2012-01-26T19:02:35.213 回答