第 43 章 交换接口
摘要
本章论述了 Exchange 接口。由于 Apache Camel 2.0 中执行的 camel-core 模块重构,因此不再需要定义自定义交换类型。DefaultExchange 实现现在可以在所有情况下使用。
43.1. Exchange Interface 复制链接链接已复制到粘贴板!
概述 复制链接链接已复制到粘贴板!
org.apache.camel.Exchange 类型的实例封装通过路由传递的当前消息,其他元数据编码为交换属性。
图 43.1 “Exchange Inheritance Hierarchy” 显示交换类型的继承层次结构。默认实施 DefaultExchange 总是被使用。
图 43.1. Exchange Inheritance Hierarchy
Exchange 接口 复制链接链接已复制到粘贴板!
例 43.1 “交换接口” 显示 org.apache.camel.Exchange 接口的定义。
例 43.1. 交换接口
Exchange 方法 复制链接链接已复制到粘贴板!
Exchange 接口定义以下方法:
getPattern (),setPattern ()HEKETI-busyboxThe Exchange pattern 可以是org.apache.camel.ExchangePattern中枚举的值之一。支持以下交换模式值:-
InOnly -
RobustInOnly -
InOut -
InOptionalOut -
OutOnly -
RobustOutOnly -
OutIn -
OutOptionalIn
-
-
setProperty (),getProperty (),getProperties (),removeProperty (),hasProperties ()属性由您可能需要的其它元数据组成,供您的组件实现。 setIn (),getIn ()wagon-wagonSetter 和 getter 方法,用于 In 消息。DefaultExchange类提供的get In ()实施实施 lazy 创建语义:如果在调用getIn ()时 In 消息为 null,则DefaultExchange类会创建一个默认的 In 消息。setOut (),getOut (),hasOut (), hasOut ()5-4Setter 和 getter 方法用于 Out 消息。getOut ()方法隐式支持 lazy 创建 Out 消息。也就是说,如果当前 Out 消息是null,则会自动创建新的消息实例。-
setException (),getException ()wagon-wagonGetter 和 setter 方法用于例外对象(格式为Throwabletype)。 -
isFailed ()HEKETI-wagonReturnstrue(如果交换因为异常或由于错误而失败)。 -
如果交换被转换,则
isTransacted ()wagon-wagonReturnstrue。 -
如果交换标记为回滚,则
isRollback ()HEKETI-wagonReturnstrue。 -
Getcontext ()wagon- swigReturns 对关联的CamelContext实例的引用。 -
copy ()HEKETICreates 一个新的与当前自定义交换对象相同的新副本(交换 ID 除外)副本。此操作也会复制 In 消息正文和标头,out 消息(若有)和 Fault 消息(若有)。 -
setFromEndpoint (),getFromEndpoint ()HEKETI-wagonGetter 和 setter 方法,用于组织此消息的消费者端点(通常是在路由开始时出现在from ()DSL 命令中的端点)。 -
setFromRouteId (),getFromRouteId ()5-4-wagonGetters 和 setters 用于源自此交换的路由 ID。getFromRouteId ()方法应该只在内部调用。 -
setUnitOfWork (),getUnitOfWork ()wagon-wagonGetter 和 setter 方法,用于org.apache.camel.spi.UnitOfWorkbean 属性。此属性只适用于可以参与事务的交换。 -
setExchangeId (),getExchangeId ()HEKETI-wagonGetter 和 setter 方法用于交换 ID。自定义组件是否使用交换 ID 是一个实施详情。 -
addOnCompletion ()HEKETIAdds 是一个org.apache.camel.spi.Synchronization回调对象,它会在处理交换完成时调用。 -
将所有 OnCompletion 回调对象到指定交换对象的
handoverCompletions ()HEKETI-wagonHands。