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-이자 return true, 교환이 롤백을 위해 표시된 경우 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 an org.apache.camel.spi.Synchronization callback object, which is called when processing of the exchange has completed.
  • 지정된 교환 개체에 대한 모든 OnCompletion 콜백 오브젝트를 통해 handoverCompletions() 입니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.