103.25. 使用 ANT 路径匹配器过滤

ANT 路径匹配器在 camel-spring jar 中提供。因此,如果您使用 Maven,您需要依赖于 camel-spring
其原因在于,我们利用 Spring 的 AntPathMatcher 进行实际匹配。

文件路径与以下规则匹配:

  • ? 匹配一个字符
  • * 匹配零或更多字符
  • ** 匹配路径中的零或更多目录
提示

现在,Camel 2.10 的新选项为 atInclude ,AtExclude 选项方便指定 ANT 风格 include/exclude,而无需定义过滤器。如需更多信息,请参阅上面的 URI 选项。

以下示例演示了如何使用它:

103.25.1. 使用 Comparator 的排序

Camel 支持可插拔排序策略。此策略使用 Java 中的 java.util.Comparator 中的构建。然后,您可以使用此类比较器配置端点,并让 Camel 在处理前对文件进行排序。

在示例中,我们构建了我们自己的比较器,它根据文件名排序:

然后,我们可以使用 sorter 选项配置我们的路由,以引用 spring XML 文件中定义的分类器(mySorter):

 <!-- define our sorter as a plain spring bean -->
 <bean id="mySorter" class="com.mycompany.MyFileSorter"/>

<route>
  <from uri="file://inbox?sorter=#mySorter"/>
  <to uri="bean:processInbox"/>
</route>
提示

URI 选项可以使用上述 Spring DSL 路由中的 # 语法 引用 Bean,通过加上 # 来指代注册表中的 Bean。因此,写 sorter=#mySorter 将指示 Camel 在 Registry 中查找 ID 为 mySorter 的 Bean。