2.18. Core
Camel 核心功能和基本的 Camel 语言/等级、交换属性、Header、Ref、简单和令牌化
2.18.1. 内部内容 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.18.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上创建一个具有此扩展名的新项目
或者在现有项目中添加协调:
<dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-core</artifactId> </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-core</artifactId>
</dependency>
2.18.3. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
2.18.3.1. 简单语言 复制链接链接已复制到粘贴板!
2.18.3.1.1. 使用 OGNL 表示法 复制链接链接已复制到粘贴板!
使用简单语言的 OGNL 表示法时,应使用 camel-quarkus-bean
扩展。
例如,以下简单表达式正在访问类型为 Client
的消息正文的 getAddress ()
方法。
--- simple("${body.address}") ---
---
simple("${body.address}")
---
在这种情况下,一个应该依赖于 camel-quarkus-bean 扩展,如此处所述。请注意,在原生模式下,可能需要注册一些类来反映。在上例中,Client
类需要 进行注册以进行反映。
2.18.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
来反映。
2.18.3.1.3. 在原生模式中使用带有 classpath 资源的简单语言 复制链接链接已复制到粘贴板!
如果您的路由应该从 classpath 加载一个简单脚本,如下例所示
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
2.18.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 风格模式列表,以匹配 classpath 中的 Camel 服务定义文件。匹配文件中定义的服务无法通过 |
| |
以逗号分隔的 Ant-path 风格模式列表,以匹配 classpath 中的 Camel 服务定义文件。匹配文件中定义的服务将通过 |
| |
以逗号分隔的 Ant-path 风格模式列表,以匹配 classpath 中的 Camel 服务定义文件。在应用程序的静态初始化过程中,匹配文件中定义的服务不会添加到 Camel registry 中。排除的优先级高于 includes。此处定义的排除也可以用于注册 Camel Quarkus 扩展中包含的服务。示例值: |
| |
以逗号分隔的 Ant-path 风格模式列表,以匹配 classpath 中的 Camel 服务定义文件。在应用静态初始化期间,匹配文件中定义的服务将添加到 Camel registry 中,除非通过 |
| |
如果为 |
|
|
如果为 |
|
|
如果为 |
|
|
如果为 |
|
|
在静态初始化过程中启用自动发现路由。 |
|
|
用于对 RouteBuilder 类进行独占过滤。独占过滤优先于包含的过滤。模式使用 Ant-path 风格模式。可以使用逗号分开指定多个模式。例如,要排除以 Bar use: **/Bar* 开始的所有类,以排除特定软件包使用的所有路由表单: com/mycompany/bar.com/mycompany/stufftle all routes form a specific package, its sub-packages using double wildcard: com/mycompany/bar/** And 来排除来自两个特定软件包的所有路由,使用 com/mycompany/barial,com/mycompany/stuffTimestamp. |
| |
用于包含过滤 RouteBuilder 类扫描。独占过滤优先于包含的过滤。模式使用 Ant-path 风格模式。可以使用逗号分开指定多个模式。例如,要包括以 Foo use 开始的所有类:**/Foo*,使其包含特定软件包使用的所有路由表单:com/mycompany/foo locate, include all routes form a specific package, its sub-packages using double wildcard: com/mycompany/foo/** And 来包括两个特定软件包的所有路由使用: com/mycompany/fooautomatic,com/mycompany/stuffTimestamp. |
| |
由 Camel Quarkus 2.0.0 中的 |
| |
被 Camel Quarkus 2.0.0 中的 |
| |
以逗号分隔的 Ant-path 样式模式列表,以匹配应排除在注册中的类名称。使用 |
| |
以逗号分隔的 Ant-path 样式模式列表,以匹配应注册的类名称。使用 |
| |
如果为 |
|
|
如果无法在构建时从路由定义中提取 CSimple 表达式,该怎么办。 |
|
|
是否启用将 Camel 事件桥接到 CDI 事件。这允许为 Camel 事件配置 CDI 观察器。例如,属于 |
|
|
启用/禁用 camel 源位置的构建时间配置选项 |
|
|
一个超时时间(带有 millisecond precision)等待 |
|
|
CamelMain 在 |
|
|
构建时修复的配置属性。所有其他配置属性可在运行时过度使用。