16.3. 其他 Camel Quarkus 配置
16.3.1. 简单语言 复制链接链接已复制到粘贴板!
16.3.1.1. 使用 OGNL 表示法 复制链接链接已复制到粘贴板!
当使用简单语言的 OGNL 表示法时,应使用 camel-quarkus-bean
扩展。
例如,下面简单表达式是访问类型为 Client
的消息正文上的 getAddress()
方法。
--- simple("${body.address}") ---
---
simple("${body.address}")
---
在这种情况下,另一个应该对 camel-quarkus-bean 扩展进行额外的依赖 ,如下所述。请注意,在原生模式下,可能需要注册一些类来反映。在上例中,需要注册 Client
类 以反映。
16.3.1.2. 在原生模式中使用动态类型解析 复制链接链接已复制到粘贴板!
从简单表达式动态解析类型时,例如:
-
simple("${mandatoryBodyAs(TYPE)}")
-
simple("${type:package.Enum.CONSTANT}")
-
from("…").split(bodyAs(TYPE.class))
-
simple("${body} 是 TYPE")
可能需要手动注册一些类以手动进行反对。
例如,以下简单表达式是在运行时动态解析类型 java.nio.ByteBuffer
:
--- simple("${body} is 'java.nio.ByteBuffer'") ---
---
simple("${body} is 'java.nio.ByteBuffer'")
---
因此,需要注册 java.nio.ByteBuffer
类 以反映。
16.3.1.3. 以原生模式使用带有类路径资源的简单语言 复制链接链接已复制到粘贴板!
如果您的路由应该从类路径加载 Simple 脚本,如下例所示
from("direct:start").transform().simple("resource:classpath:mysimple.txt");
from("direct:start").transform().simple("resource:classpath:mysimple.txt");
然后,您需要使用 Quarkus quarkus.native.resources.includes
属性将资源包含在原生可执行文件中,如下所示:
quarkus.native.resources.includes = mysimple.txt
quarkus.native.resources.includes = mysimple.txt
16.3.1.4. 通过原生模式中的属性配置自定义 Bean 复制链接链接已复制到粘贴板!
当在带有 #class:*
或 #type:*
等配置的原生模式中指定自定义 bean 时,可能需要手动注册一些类进行反射。
例如,下面的自定义 bean 定义涉及使用反射进行 bean 实例化和 setter 调用:
--- camel.beans.customBeanWithSetterInjection = #class:org.example.PropertiesCustomBeanWithSetterInjection camel.beans.customBeanWithSetterInjection.counter = 123 ---
---
camel.beans.customBeanWithSetterInjection = #class:org.example.PropertiesCustomBeanWithSetterInjection
camel.beans.customBeanWithSetterInjection.counter = 123
---
因此,为反映需要注册类 PropertiesCustomBeanWithSetterInjection
,请注意,在这种情况下可以省略字段访问权限。
配置属性 | 类型 | 默认 |
---|---|---|
当设置为 true 时, |
|
|
以逗号分隔的 Ant-path 风格模式列表,以匹配类路径中的 Camel 服务定义文件。匹配文件中定义的服务无法通过 |
| |
以逗号分隔的 Ant-path 风格模式列表,以匹配类路径中的 Camel 服务定义文件。匹配文件中定义的服务将通过 |
| |
以逗号分隔的 Ant-path 风格模式列表,以匹配类路径中的 Camel 服务定义文件。匹配文件中定义的服务不会在应用程序静态初始化过程中添加到 Camel 注册表中。排除的优先级高于 includes。此处定义的排除也可用于注册 Camel Quarkus 扩展中包含的服务。示例值: |
| |
以逗号分隔的 Ant-path 风格模式列表,以匹配类路径中的 Camel 服务定义文件。匹配文件中定义的服务将在应用程序的静态初始化过程中添加到 Camel registry 中,除非通过 |
| |
如果为 |
|
|
如果为 |
|
|
如果为应用程序嵌入了 Runtime Camel Catalog,则会包含应用程序中提供的 Camel 数据格式的 JSON 模式;否则,在 Runtime Camel Catalog 中将无法使用数据格式 JSON 模式,并试图访问它们将导致 RuntimeException。 |
|
|
如果为 |
|
|
在静态初始化过程中启用路由自动发现。 |
|
|
用于对 RouteBuilder 类进行独占过滤扫描。独占过滤的优先级高于包过滤。模式使用 Ant-path 风格模式。可以使用逗号分隔多个模式。例如,要排除从 Bar use 开始的所有类,**/Bar* 要排除特定软件包的所有路由,请使用 com/mycompany/bar/* 排除所有路由表单,并将其子软件包使用双通配符:com/mycompany/bar/**,并排除来自两个特定软件包的所有路由:com/mycompany/bar/*、com/mycompany/bar/* |
| |
用于对 RouteBuilder 类进行包过滤扫描。独占过滤的优先级高于包过滤。模式使用 Ant-path 风格模式。可以使用逗号分隔多个模式。例如,要包含以 Foo 使用开始的所有类:**/Foo*,用于包含特定软件包的所有路由,请使用 com/mycompany/foo/* 来包括所有路由,包括来自两个具体软件包的所有路由:com/mycompany/foo/*,并包括来自两个特定软件包的所有路由:com/mycompany/foo/*、com/mycompany/foo/* |
| |
在 Camel Quarkus 2.0.0 中,使用 |
| |
由 Camel Quarkus 2.0.0 中的 |
| |
以逗号分隔的 Ant-path 风格模式列表,以匹配应在注册中排除的类名称以便反映。使用 |
| |
以逗号分隔的 Ant-path 风格模式列表,以匹配应注册以反映的类名称。使用 |
| |
如果为 |
|
|
如果无法在构建期间从路由定义中提取 CSimple 表达式,该怎么办。 |
|
|
是否启用 Camel 事件到 CDI 事件的桥接。这允许为 Camel 事件配置 CDI 观察程序。e.g.属于 |
|
|
等待 |
|
|
当 |
|
|
构建时会修复的配置属性。所有其他配置属性可在运行时使用。