第 43 章 Exchange Interface
摘要
本章论述了 Exchange 接口。由于 Apache Camel 2.0 中重构了 camel-core 模块,因此不再需要定义自定义交换类型。现在,所有情况下都可以使用 DefaultExchange
实现。
43.1. Exchange 接口 复制链接链接已复制到粘贴板!
概述 复制链接链接已复制到粘贴板!
org.apache.camel.Exchange 类型实例封装当前的消息通过路由,其他元数据编码为交换属性。
图 43.1 “Exchange Inheritance Hierarchy” 显示交换类型的继承层次结构。默认实施 DefaultExchange
总是被使用。
图 43.1. Exchange Inheritance Hierarchy
Exchange 接口 复制链接链接已复制到粘贴板!
例 43.1 “Exchange Interface” 显示 org.apache.camel.Exchange 接口的定义。
例 43.1. Exchange Interface
交换方法 复制链接链接已复制到粘贴板!
Exchange 接口定义了以下方法:
getPattern ()
,setPattern ()
mvapich-mvapichThe Exchange pattern 可以是org.apache.camel.ExchangePattern
中枚举的值之一。支持以下交换模式值:-
InOnly
-
RobustInOnly
-
InOut
-
InOptionalOut
-
OutOnly
-
RobustOutOnly
-
OutIn
-
OutOptionalIn
-
-
setProperty ()
,getProperty ()
,getProperties ()
, removeProperty
(),hasProperties ()
mvapichUse 属性 setter 和 getter 方法,用于将命名的属性与交换实例关联。属性包含您可能需要进行组件实施的各种元数据。 setIn ()
,getIn ()
criu-criuSetter 和 getter 方法用于 In 消息。DefaultExchange
类提供的getIn ()
实现 lazy 创建语义:如果调用get In ()
时 In 消息为 null,则DefaultExchange
类会创建一个默认的 In 消息。setOut ()
,getOut ()
,hasOut ()
criu-unmarshalSetter 和 getter 方法用于 Out 消息。getOut ()
方法隐式支持创建 Out 消息的 lazy。也就是说,如果当前 Out 消息为null
,则会自动创建新的消息实例。-
setException ()
,getException ()
iwl-wagonGetter 和 setter method for an exception 对象(Throwable
type)。 -
如果交换因为异常或因为故障而失败,则
isFailed ()
mvapichReturnstrue
。 -
if 交换被转换,则
isTransacted ()
mvapichReturnstrue
。 -
如果交换标记为回滚,则
isRollback ()
mvapichReturnstrue
。 -
Getcontext ()
criu-wagonReturns 对关联的CamelContext
实例的引用。 -
copy ()
criu-growfs 创建当前自定义交换对象的交换 ID 一个新的相同(与交换 ID 不同)。In 消息的正文和标头、Out 消息(若有)和 Fault 消息(若有)也会被此操作复制。 -
setFromEndpoint ()
,getFromEndpoint ()
categories-wagonGetter 和 setter 方法用于组织此消息的消费者端点(通常是在路由开始时的from ()
DSL 命令中出现的端点)。 -
setFromRouteId ()
,getFromRouteId ()
criu- iwlGetterss 和 setters 用于源自此交换的路由 ID。getFromRouteId ()
方法仅在内部调用。 -
setUnitOfWork ()
,getUnitOfWork
() criu-wagonGetter 和 setter 方法用于org.apache.camel.spi.UnitOfWork
bean 属性。此属性只适用于可以参与事务的交换。 -
setExchangeId ()
,getExchangeId ()
criu-wagonGetter 和 setter 方法用于交换 ID。自定义组件是否使用交换 ID 是实现详情。 -
addOnCompletion ()
criu-wagonAdds 一个org.apache.camel.spi.Synchronization
回调对象,在处理交换完成后会调用。 -
在向指定的交换对象的所有 OnCompletion callback 对象上移移(glyoverCompletions ()
mvapichHands)。