第 43 章 交换接口
摘要
本章论述了 Exchange 界面。由于 Apache Camel 2.0 中执行的 camel-core 模块重构,因此不再有必要定义自定义交换类型。现在,在所有情况下都可以使用 DefaultExchange
实现。
43.1. Exchange Interface 复制链接链接已复制到粘贴板!
概述 复制链接链接已复制到粘贴板!
org.apache.camel.Exchange 类型的实例封装了通过路由传递当前的消息,并采用额外的元数据编码为交换属性。
图 43.1 “交换层次结构” 显示交换类型的继承层次结构。默认实施 DefaultExchange
总是被使用。
图 43.1. 交换层次结构
Exchange 接口 复制链接链接已复制到粘贴板!
例 43.1 “交换接口” 显示 org.apache.camel.Exchange 接口的定义。
例 43.1. 交换接口
交换方法 复制链接链接已复制到粘贴板!
Exchange 接口定义了以下方法:
getPattern ()
,setPattern ()
方式为在 org.apache.camel.ExchangePattern 中由org.apache.camel.ExchangePattern
处枚举的值之一。支持以下交换模式值:-
InOnly
-
RobustInOnly
-
InOut
-
In optionalOut
-
OutOnly
-
RobustOutOnly
-
OutIn
-
OutOptionalIn
-
-
setProperty ()
, get
Properties (), getProperties
(),removeProperty ()
,hasProperties ()
具有Properties ()使用属性集,以及 getter 方法将命名属性与 Exchange 实例关联。这些属性包括您可能需要实施组件所需的各种元数据。 setIn ()
,getIn ()
方式 ©-WWNSetter 和 getter 方法用于 In 消息。DefaultExchange
类提供的getIn ()
实现 lazy creation语义s: if In message is null whengetIn ()
被调用时,DefaultExchange
类会创建一个默认的 In 消息。setOut ()
,getOut ()
,hasOut ()
TOKEN-ocpSetter 和 getter 方法用于 Out 消息。getOut ()
方法隐式支持创建 Out 消息。也就是说,如果当前 Out 消息为null
,则会自动创建一个新消息实例。-
setException ()
,getException ()
adjust-strategyGetter 和 setter 方法用于异常对象(可浏览
类型)。 -
如果交换因为异常或因为错误而失败,则
isFailed ()
ALLOW-将Returnstrue
会失败。 -
如果交换被转换,则
isTransacted ()
方式为,将显示为true
。 -
如果交换标记为进行回滚,则
isRollback ()
InstallSucceededReturnstrue
。 -
Getcontext ()
帮助我们Returns 对关联的CamelContext
实例的引用。 -
copy ()
baseDomain-»Creates a new, same (从交换 ID 处)副本当前自定义交换对象。In 消息的正文和标头、Out 消息(若有)和 Fault 信息(若有)也由这个操作复制。 -
setFromEndpoint ()
,getFromEndpoint ()
navigator-strategyGetter 和 setter 方法用于组织此消息的使用者端点(通常是在路由开始时出现在from ()
DSL 命令中)。 -
setFromRouteId ()
,getFromRouteId ()
WWN-RouteGetters 和 setters 用于发起此交换的路由 ID。getFromRouteId ()
方法应仅在内部调用。 -
setUnitOfWork ()
,getUnitOfWork ()
EOF-strategyGetter 和 setter 方法用于org.apache.camel.spi.UnitOfWork
bean 属性。只有可参与事务的交换需要此属性。 -
setExchangeId ()
,getExchangeId ()
Memcached-的Getter 和 setter 方法用于交换 ID。自定义组件是否使用交换 ID 是实施详情。 -
addOnCompletion ()
方式为org.apache.camel.spi.Synchronization
callback 对象,它会在处理交换时调用。 -
handoverCompletions ()
navigator-sandboxedHands over the OnCompletion callback 对象到指定的 Exchange 对象。