43장. Exchange Interface
초록
이 장에서는 교환 인터페이스에 대해 설명합니다. Apache Camel 2.0에서 수행되는 camel-core 모듈 리팩토링은 더 이상 사용자 정의 교환 유형을 정의할 필요가 없습니다. 이제 DefaultExchange
구현을 모든 경우에 사용할 수 있습니다.
43.1. 교환 인터페이스
43.1.1. 개요
org.apache.camel.Exchange 유형의 인스턴스는 경로를 통과하는 현재 메시지를 캡슐화하며, 교환 속성으로 인코딩되는 추가 메타데이터를 캡슐화합니다.
그림 43.1. “Exchange Inheritance Hierarchy” 교환 유형에 대한 상속 계층 구조를 표시합니다. 기본 구현인 DefaultExchange
가 항상 사용됩니다.
그림 43.1. Exchange Inheritance Hierarchy
43.1.2. 교환 인터페이스
예 43.1. “Exchange Interface” org.apache.camel.Exchange 인터페이스의 정의를 보여줍니다.
예 43.1. Exchange Interface
package org.apache.camel; import java.util.Map; import org.apache.camel.spi.Synchronization; import org.apache.camel.spi.UnitOfWork; public interface Exchange { // Exchange property names (string constants) // (Not shown here) ... ExchangePattern getPattern(); void setPattern(ExchangePattern pattern); Object getProperty(String name); Object getProperty(String name, Object defaultValue); <T> T getProperty(String name, Class<T> type); <T> T getProperty(String name, Object defaultValue, Class<T> type); void setProperty(String name, Object value); Object removeProperty(String name); Map<String, Object> getProperties(); boolean hasProperties(); Message getIn(); <T> T getIn(Class<T> type); void setIn(Message in); Message getOut(); <T> T getOut(Class<T> type); void setOut(Message out); boolean hasOut(); Throwable getException(); <T> T getException(Class<T> type); void setException(Throwable e); boolean isFailed(); boolean isTransacted(); boolean isRollbackOnly(); CamelContext getContext(); Exchange copy(); Endpoint getFromEndpoint(); void setFromEndpoint(Endpoint fromEndpoint); String getFromRouteId(); void setFromRouteId(String fromRouteId); UnitOfWork getUnitOfWork(); void setUnitOfWork(UnitOfWork unitOfWork); String getExchangeId(); void setExchangeId(String id); void addOnCompletion(Synchronization onCompletion); void handoverCompletions(Exchange target); }
43.1.3. 교환 방법
교환 인터페이스는 다음 방법을 정의합니다.
getPattern()
,setPattern()
Cryostat-2307-change 패턴은org.apache.camel.ExchangePattern
에 열거된 값 중 하나일 수 있습니다. 다음과 같은 교환 패턴 값이 지원됩니다.-
InOnly
-
RobustInOnly
-
InOut
-
InOptionalOut
-
OutOnly
-
RobustOutOnly
-
OutIn
-
OutOptionalIn
-
-
SetProperty()
,getProperty()
,getProperties()
,removeProperty()
,hasProperties()
Cryostat- Cryostat 속성 setter 및 getter 메서드를 사용하여 이름이 지정된 속성을 교환 인스턴스와 연결합니다. 속성은 구성 요소 구현에 필요할 수 있는 기타 메타데이터로 구성됩니다. SetIn()
,getIn()
, getIn() ECDSASetter 및 getter 메서드의 In 메시지입니다.DefaultExchange
클래스에서 제공하는getIn()
구현은 지연 생성 의미 체계를 구현합니다.get In ()
이 호출되면 In 메시지가 null이면DefaultExchange
클래스는 기본 In 메시지를 생성합니다.SetOut()
,getOut()
,hasOut()
Cryostat- CryostatSetter and getter methods for the Out message.getOut()
메서드는 Out 메시지의 지연 생성을 암시적으로 지원합니다. 즉, 현재 Out 메시지가null
이면 새 메시지 인스턴스가 자동으로 생성됩니다.-
setException()
,getException()
Cryostat-cidrGetter 및 setter 메서드(Throwable
유형)에 대한 속성입니다. -
isFailed()
Cryostat- 마이그레이션에서 예외로 인해 또는 오류로 인해 교환이 실패한 경우true
입니다. -
는 exchange가 거래되는
경우true
입니다. -
isRollback()
Cryostat-이자 returntrue
, 교환이 롤백을 위해 표시된 경우 true입니다. -
getContext()
Cryostat- Cryostat 관련CamelContext
인스턴스에 대한 참조입니다. -
현재 사용자 지정 교환 개체의 동일한 새
복사본
을 만듭니다.Creates a new, identical (apart from the exchange ID) copy of the current custom exchange object. In 메시지의 본문 및 헤더, Out 메시지(있는 경우) 및 Fault 메시지(있는 경우)도 이 작업에 의해 복사됩니다. -
setFromEndpoint()
,getFromEndpoint()
Cryostat- CryostatGetter 및 setter 메서드(일반적으로 경로 시작 시from()
DSL 명령에 나타나는 끝점)가 조직된 소비자 끝점에 대한 설정 메서드입니다. -
setFromRouteId()
,getFromRouteId()
Cryostat- CryostatGetECDSA 및 이 교환을 시작한 경로 ID에 대해 zone을 설정합니다.getFromRouteId()
메서드는 내부적으로만 호출해야 합니다. -
setUnitOfWork()
,getUnitOfWork()
Cryostat-ECDHEGetter 및 setter 메서드org.apache.camel.spi.UnitOfWork
VLAN 속성. 이 속성은 트랜잭션에 참여할 수 있는 교환에만 필요합니다. -
setExchangeId()
,getExchangeId()
Cryostat- CryostatGetter 및 교환 ID에 대한 setter 메서드. 사용자 지정 구성 요소에서 교환 ID를 사용하는지 여부는 구현 세부 정보입니다. -
addOnCompletion()
Cryostat- CryostatAdds anorg.apache.camel.spi.Synchronization
callback object, which is called when processing of the exchange has completed. -
지정된 교환 개체에 대한 모든 OnCompletion 콜백 오브젝트를 통해
handoverCompletions()
입니다.