org.apache.camel
Interface Exchange

All Known Implementing Classes:
DefaultExchange, GenericFileExchange, GroupedExchange, TraceEventExchange

public interface Exchange

The base message exchange interface providing access to the request, response and fault Message instances. Different providers such as JMS, JBI, CXF and HTTP can provide their own derived API to expose the underlying transport semantics to avoid the leaky abstractions of generic APIs.

Version:
$Revision: 752465 $

Field Summary
static String AGGREGATED_SIZE
           
static String BEAN_HOLDER
           
static String BEAN_METHOD_NAME
           
static String BEAN_MULTI_PARAMETER_ARRAY
           
static String CHARSET_NAME
           
static String DATASET_INDEX
           
static String EXCEPTION_CAUGHT
           
static String EXCEPTION_HANDLED
           
static String FAILURE_HANDLED
           
static String FILE_BATCH_INDEX
           
static String FILE_BATCH_SIZE
           
static String FILE_LOCAL_WORK_PATH
           
static String FILE_NAME
           
static String FILE_NAME_ONLY
           
static String FILE_NAME_PRODUCED
           
static String LOOP_INDEX
           
static String LOOP_SIZE
           
static String PROCESSED_SYNC
           
static String REDELIVERED
           
static String REDELIVERY_COUNTER
           
static String SPLIT_INDEX
           
static String SPLIT_SIZE
           
static String TIMER_FIRED_TIME
           
static String TIMER_NAME
           
static String TIMER_PERIOD
           
static String TIMER_TIME
           
static String TRANSACTED
           
 
Method Summary
 Exchange copy()
          Creates a copy of the current message exchange so that it can be forwarded to another destination
 void copyFrom(Exchange source)
          Copies the data into this exchange from the given exchange
 CamelContext getContext()
          Returns the container so that a processor can resolve endpoints from URIs
 Exception getException()
          Returns the exception associated with this exchange
 String getExchangeId()
          Returns the exchange id (unique)
 Message getFault()
          Returns the fault message
 Message getFault(boolean lazyCreate)
          Returns the fault message; optionally lazily creating one if one has not been associated with this exchange
 Endpoint getFromEndpoint()
          Returns the endpoint which originated this message exchange if a consumer on an endpoint created the message exchange otherwise this property will be null
 Message getIn()
          Returns the inbound request message
 Message getOut()
          Returns the outbound message, lazily creating one if one has not already been associated with this exchange.
 Message getOut(boolean lazyCreate)
          Returns the outbound message; optionally lazily creating one if one has not been associated with this exchange
 ExchangePattern getPattern()
          Returns the ExchangePattern (MEP) of this exchange.
 Map<String,Object> getProperties()
          Returns all of the properties associated with the exchange
 Object getProperty(String name)
          Returns a property associated with this exchange by name
<T> T
getProperty(String name, Class<T> type)
          Returns a property associated with this exchange by name and specifying the type required
 UnitOfWork getUnitOfWork()
          Returns the unit of work that this exchange belongs to; which may map to zero, one or more physical transactions
 boolean isFailed()
          Returns true if this exchange failed due to either an exception or fault
 boolean isTransacted()
          Returns true if this exchange is transacted
 Exchange newInstance()
          Creates a new exchange instance with empty messages, headers and properties
 Object removeProperty(String name)
          Removes the given property on the exchange
 void setException(Exception e)
          Sets the exception associated with this exchange
 void setExchangeId(String id)
          Set the exchange id
 void setFromEndpoint(Endpoint fromEndpoint)
          Sets the endpoint which originated this message exchange.
 void setIn(Message in)
          Sets the inbound message instance
 void setOut(Message out)
          Sets the outbound message
 void setPattern(ExchangePattern pattern)
          Allows the ExchangePattern (MEP) of this exchange to be customized.
 void setProperty(String name, Object value)
          Sets a property on the exchange
 void setUnitOfWork(UnitOfWork unitOfWork)
          Sets the unit of work that this exchange belongs to; which may map to zero, one or more physical transactions
 

Field Detail

BEAN_METHOD_NAME

static final String BEAN_METHOD_NAME
See Also:
Constant Field Values

BEAN_HOLDER

static final String BEAN_HOLDER
See Also:
Constant Field Values

BEAN_MULTI_PARAMETER_ARRAY

static final String BEAN_MULTI_PARAMETER_ARRAY
See Also:
Constant Field Values

AGGREGATED_SIZE

static final String AGGREGATED_SIZE
See Also:
Constant Field Values

CHARSET_NAME

static final String CHARSET_NAME
See Also:
Constant Field Values

DATASET_INDEX

static final String DATASET_INDEX
See Also:
Constant Field Values

EXCEPTION_CAUGHT

static final String EXCEPTION_CAUGHT
See Also:
Constant Field Values

EXCEPTION_HANDLED

static final String EXCEPTION_HANDLED
See Also:
Constant Field Values

FAILURE_HANDLED

static final String FAILURE_HANDLED
See Also:
Constant Field Values

FILE_BATCH_INDEX

static final String FILE_BATCH_INDEX
See Also:
Constant Field Values

FILE_BATCH_SIZE

static final String FILE_BATCH_SIZE
See Also:
Constant Field Values

FILE_LOCAL_WORK_PATH

static final String FILE_LOCAL_WORK_PATH
See Also:
Constant Field Values

FILE_NAME

static final String FILE_NAME
See Also:
Constant Field Values

FILE_NAME_ONLY

static final String FILE_NAME_ONLY
See Also:
Constant Field Values

FILE_NAME_PRODUCED

static final String FILE_NAME_PRODUCED
See Also:
Constant Field Values

LOOP_INDEX

static final String LOOP_INDEX
See Also:
Constant Field Values

LOOP_SIZE

static final String LOOP_SIZE
See Also:
Constant Field Values

PROCESSED_SYNC

static final String PROCESSED_SYNC
See Also:
Constant Field Values

REDELIVERED

static final String REDELIVERED
See Also:
Constant Field Values

REDELIVERY_COUNTER

static final String REDELIVERY_COUNTER
See Also:
Constant Field Values

SPLIT_INDEX

static final String SPLIT_INDEX
See Also:
Constant Field Values

SPLIT_SIZE

static final String SPLIT_SIZE
See Also:
Constant Field Values

TIMER_NAME

static final String TIMER_NAME
See Also:
Constant Field Values

TIMER_FIRED_TIME

static final String TIMER_FIRED_TIME
See Also:
Constant Field Values

TIMER_PERIOD

static final String TIMER_PERIOD
See Also:
Constant Field Values

TIMER_TIME

static final String TIMER_TIME
See Also:
Constant Field Values

TRANSACTED

static final String TRANSACTED
See Also:
Constant Field Values
Method Detail

getPattern

ExchangePattern getPattern()
Returns the ExchangePattern (MEP) of this exchange.

Returns:
the message exchange pattern of this exchange

setPattern

void setPattern(ExchangePattern pattern)
Allows the ExchangePattern (MEP) of this exchange to be customized. This typically won't be required as an exchange can be created with a specific MEP by calling Endpoint.createExchange(ExchangePattern) but it is here just in case it is needed.

Parameters:
pattern - the pattern

getProperty

Object getProperty(String name)
Returns a property associated with this exchange by name

Parameters:
name - the name of the property
Returns:
the value of the given header or null if there is no property for the given name

getProperty

<T> T getProperty(String name,
                  Class<T> type)
Returns a property associated with this exchange by name and specifying the type required

Parameters:
name - the name of the property
type - the type of the property
Returns:
the value of the given header or null if there is no property for the given name or null if it cannot be converted to the given type

setProperty

void setProperty(String name,
                 Object value)
Sets a property on the exchange

Parameters:
name - of the property
value - to associate with the name

removeProperty

Object removeProperty(String name)
Removes the given property on the exchange

Parameters:
name - of the property
Returns:
the old value of the property

getProperties

Map<String,Object> getProperties()
Returns all of the properties associated with the exchange

Returns:
all the headers in a Map

getIn

Message getIn()
Returns the inbound request message

Returns:
the message

setIn

void setIn(Message in)
Sets the inbound message instance

Parameters:
in - the inbound message

getOut

Message getOut()
Returns the outbound message, lazily creating one if one has not already been associated with this exchange. If you want to inspect this property but not force lazy creation then invoke the getOut(boolean) method passing in false

Returns:
the response

getOut

Message getOut(boolean lazyCreate)
Returns the outbound message; optionally lazily creating one if one has not been associated with this exchange

Parameters:
lazyCreate - true will lazy create the out message
Returns:
the response

setOut

void setOut(Message out)
Sets the outbound message

Parameters:
out - the outbound message

getFault

Message getFault()
Returns the fault message

Returns:
the fault

getFault

Message getFault(boolean lazyCreate)
Returns the fault message; optionally lazily creating one if one has not been associated with this exchange

Parameters:
lazyCreate - true will lazy create the fault message
Returns:
the fault

getException

Exception getException()
Returns the exception associated with this exchange

Returns:
the exception (or null if no faults)

setException

void setException(Exception e)
Sets the exception associated with this exchange

Parameters:
e - the caused exception

isFailed

boolean isFailed()
Returns true if this exchange failed due to either an exception or fault

Returns:
true if this exchange failed due to either an exception or fault
See Also:
getException(), getFault()

isTransacted

boolean isTransacted()
Returns true if this exchange is transacted


getContext

CamelContext getContext()
Returns the container so that a processor can resolve endpoints from URIs

Returns:
the container which owns this exchange

newInstance

Exchange newInstance()
Creates a new exchange instance with empty messages, headers and properties


copy

Exchange copy()
Creates a copy of the current message exchange so that it can be forwarded to another destination


copyFrom

void copyFrom(Exchange source)
Copies the data into this exchange from the given exchange

Parameters:
source - is the source from which headers and messages will be copied

getFromEndpoint

Endpoint getFromEndpoint()
Returns the endpoint which originated this message exchange if a consumer on an endpoint created the message exchange otherwise this property will be null


setFromEndpoint

void setFromEndpoint(Endpoint fromEndpoint)
Sets the endpoint which originated this message exchange. This method should typically only be called by Endpoint implementations

Parameters:
fromEndpoint - the endpoint which is originating this message exchange

getUnitOfWork

UnitOfWork getUnitOfWork()
Returns the unit of work that this exchange belongs to; which may map to zero, one or more physical transactions


setUnitOfWork

void setUnitOfWork(UnitOfWork unitOfWork)
Sets the unit of work that this exchange belongs to; which may map to zero, one or more physical transactions


getExchangeId

String getExchangeId()
Returns the exchange id (unique)


setExchangeId

void setExchangeId(String id)
Set the exchange id



Copyright © 2009 Apache Software Foundation. All Rights Reserved.