第 377 章 XQuery Component
作为 Camel 版本 1.0 可用
Camel 支持 XQuery,允许在 DSL 或 Xml 配置中使用表达式或 predicates。例如,您可以使用 XQuery 在 Message Filter 中创建 Predicate,或作为 Recipient List 的 Expression。
377.1. 选项 复制链接链接已复制到粘贴板!
XQuery 组件支持 4 个选项,它们如下所列。
| 名称 | 描述 | 默认 | 类型 | 
|---|---|---|---|
|   moduleURIResolver (高级)  |   使用自定义 ModuleURIResolver  |   ModuleURIResolver  | |
|   配置 (高级)  |   使用自定义 Saxon 配置  |   配置  | |
|   configurationProperties (advanced)  |   设置自定义 Saxon 配置属性  |   map  | |
|   resolveProperty Placeholders (advanced)  |   启动时,组件是否应自行解析属性占位符。只有 String 类型的属性才能使用属性占位符。  |   true  |   布尔值  | 
XQuery 端点使用 URI 语法进行配置:
xquery:resourceUri
xquery:resourceUri
使用以下路径和查询参数:
377.1.1. 路径名(1 参数): 复制链接链接已复制到粘贴板!
| 名称 | 描述 | 默认 | 类型 | 
|---|---|---|---|
|   resourceUri  |   需要 模板的名称以便从 classpath 或文件系统载入  |   字符串  | 
377.1.2. 查询参数(31 参数): 复制链接链接已复制到粘贴板!
| 名称 | 描述 | 默认 | 类型 | 
|---|---|---|---|
|   allowStAX (common)  |   是否允许使用 StAX 模式  |   false  |   布尔值  | 
|   headerName (common)  |   使用 Camel 消息标头作为输入源,而不是消息正文。  |   字符串  | |
|   namespacePrefixes (common)  |   允许控制用于一组命名空间映射的命名空间前缀  |   map  | |
|   resultsFormat (common)  |   要使用的输出结果  |   DOM  |   ResultFormat  | 
|   resultType (common)  |   使用什么输出结果将定义为类  |   类  | |
|   stripsAllWhiteSpace (common)  |   是否要剥离所有空格  |   true  |   布尔值  | 
|   bridgeErrorHandler (consumer)  |   允许将消费者桥接到 Camel 路由 Error Handler,这意味着使用者试图获取传入消息或类似信息时出现任何异常,现在将作为一个消息进行处理,并由路由 Error Handler 处理。默认情况下,使用者将使用 org.apache.camel.spi.Exception 处理程序处理异常,该处理程序将记录在 WARN 或 ERROR 级别,并忽略。  |   false  |   布尔值  | 
|   sendEmptyMessageWhenIdle (consumer)  |   如果轮询使用者没有轮询任何文件,您可以启用这个选项来发送空消息(无正文)。  |   false  |   布尔值  | 
|   exceptionHandler (consumer)  |   要让使用者使用自定义 ExceptionHandler。请注意,如果启用了选项 bridgeErrorHandler,则不使用这个选项。默认情况下,消费者处理异常,这将在 WARN 或 ERROR 级别记录,并忽略。  |   ExceptionHandler  | |
|   exchangePattern (consumer)  |   在使用者创建交换时设置交换模式。  |   ExchangePattern  | |
|   pollStrategy (consumer)  |   可插拔 org.apache.camel.PollingConsumerPollingStrategy 允许您提供自定义实施来控制在轮询操作中通常会发生错误处理,然后再在 Camel 中创建并被路由。  |   PollingConsumerPoll Strategy  | |
|   配置 (高级)  |   使用自定义 Saxon 配置  |   配置  | |
|   configurationProperties (advanced)  |   设置自定义 Saxon 配置属性  |   map  | |
|   moduleURIResolver (高级)  |   使用自定义 ModuleURIResolver  |   ModuleURIResolver  | |
|   参数 (高级)  |   其他参数  |   map  | |
|   属性 (高级)  |   配置序列化参数的属性  |   Properties  | |
|   staticQueryContext (advanced)  |   使用自定义 Saxon StaticQueryContext  |   StaticQueryContext  | |
|   同步 (高级)  |   设置同步处理是否应当严格使用,还是允许 Camel 使用异步处理(如果受支持)。  |   false  |   布尔值  | 
|   backoffErrorThreshold (scheduler)  |   后续错误轮询(因某些错误导致的失败)的数量,在 backoffMultipler 应该启动前发生。  |   int  | |
|   backoffIdleThreshold (scheduler)  |   后续闲置轮询的数量,在 backoffMultipler 应该启动之前发生。  |   int  | |
|   backoffMultiplier (scheduler)  |   如果行中有多个后续闲置/errors,让调度的轮询消费者重新关闭。然后,倍数是下一次实际尝试发生前跳过的轮询数量。当使用这个选项时,还必须配置 backoffIdleThreshold 和/or backoffErrorThreshold。  |   int  | |
|   延迟 (scheduler)  |   下次轮询前的毫秒。您还可以使用单位(60 秒)、5m30s (5 分钟和 30 秒)和 1h (1 小时)指定时间值。  |   500  |   long  | 
|   greedy (scheduler)  |   如果启用了 greedy,则 ScheduledPollConsumer 将立即再次运行,如果上一运行轮询了 1 或更多消息。  |   false  |   布尔值  | 
|   initialDelay (scheduler)  |   第一次轮询启动前的毫秒。您还可以使用单位(60 秒)、5m30s (5 分钟和 30 秒)和 1h (1 小时)指定时间值。  |   1000  |   long  | 
|   runLoggingLevel (scheduler)  |   消费者日志轮询轮询时启动/完成日志行。此选项允许您为其配置日志级别。  |   TRACE  |   LoggingLevel  | 
|   scheduledExecutorService (scheduler)  |   允许配置用于使用者的自定义/共享线程池。默认情况下,每个使用者都有自己的单个线程池。  |   ScheduledExecutor 服务  | |
|   调度程序 (scheduler)  |   使用来自 camel-spring 或 camel-quartz2 组件的 cron 调度程序  |   none  |   ScheduledPollConsumer Scheduler  | 
|   schedulerProperties (scheduler)  |   在使用自定义调度程序或任何基于 Spring 的调度程序时配置额外属性。  |   map  | |
|   startScheduler (scheduler)  |   调度程序是否应自动启动。  |   true  |   布尔值  | 
|   timeUnit (scheduler)  |   初始延迟和延迟选项的时间单位。  |   毫秒  |   TimeUnit  | 
|   useFixedDelay (scheduler)  |   控制是否使用固定延迟或固定率。详情请参阅 JDK 中的 ScheduledExecutorService。  |   true  |   布尔值  |