public class Enricher extends ServiceSupport implements AsyncProcessor
producer
and second by aggregating input data and additional data. Aggregation of
input data and additional data is delegated to an AggregationStrategy
object.
Uses a Producer
to obtain the additional data as opposed to PollEnricher
that uses a PollingConsumer
.PollEnricher
shutdown, shuttingdown, started, starting, stopped, stopping, suspended, suspending
Constructor and Description |
---|
Enricher(AggregationStrategy aggregationStrategy,
Producer producer)
Creates a new
Enricher . |
Enricher(Producer producer)
Creates a new
Enricher . |
Modifier and Type | Method and Description |
---|---|
protected Exchange |
createResourceExchange(Exchange source,
ExchangePattern pattern)
Creates a new
DefaultExchange instance from the given
exchange . |
protected void |
doStart()
Implementations override this method to support customized start/stop.
|
protected void |
doStop()
Implementations override this method to support customized start/stop.
|
AggregationStrategy |
getAggregationStrategy() |
boolean |
isAggregateOnException() |
void |
process(Exchange exchange)
Processes the message exchange
|
boolean |
process(Exchange exchange,
AsyncCallback callback)
Enriches the input data (
exchange ) by first obtaining
additional data from an endpoint represented by an endpoint
producer and second by aggregating input data and additional
data. |
void |
setAggregateOnException(boolean aggregateOnException)
Whether to call
AggregationStrategy.aggregate(org.apache.camel.Exchange, org.apache.camel.Exchange) if
an exception was thrown. |
void |
setAggregationStrategy(AggregationStrategy aggregationStrategy)
Sets the aggregation strategy for this enricher.
|
void |
setDefaultAggregationStrategy()
Sets the default aggregation strategy for this enricher.
|
String |
toString() |
doResume, doShutdown, doSuspend, getStatus, getVersion, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, resume, shutdown, start, stop, suspend
public Enricher(Producer producer)
Enricher
. The default aggregation strategy is to
copy the additional data obtained from the enricher's resource over the
input data. When using the copy aggregation strategy the enricher
degenerates to a normal transformer.producer
- producer to resource endpoint.public Enricher(AggregationStrategy aggregationStrategy, Producer producer)
Enricher
.aggregationStrategy
- aggregation strategy to aggregate input data and additional data.producer
- producer to resource endpoint.public void setAggregationStrategy(AggregationStrategy aggregationStrategy)
aggregationStrategy
- the aggregationStrategy to setpublic AggregationStrategy getAggregationStrategy()
public boolean isAggregateOnException()
public void setAggregateOnException(boolean aggregateOnException)
AggregationStrategy.aggregate(org.apache.camel.Exchange, org.apache.camel.Exchange)
if
an exception was thrown.public void setDefaultAggregationStrategy()
public void process(Exchange exchange) throws Exception
Processor
public boolean process(Exchange exchange, AsyncCallback callback)
exchange
) by first obtaining
additional data from an endpoint represented by an endpoint
producer
and second by aggregating input data and additional
data. Aggregation of input data and additional data is delegated to an
AggregationStrategy
object set at construction time. If the
message exchange with the resource endpoint fails then no aggregation
will be done and the failed exchange content is copied over to the
original message exchange.process
in interface AsyncProcessor
exchange
- input data.callback
- the AsyncCallback
will be invoked when the processing of the exchange is completed.
If the exchange is completed synchronously, then the callback is also invoked synchronously.
The callback should therefore be careful of starting recursive loop.protected Exchange createResourceExchange(Exchange source, ExchangePattern pattern)
DefaultExchange
instance from the given
exchange
. The resulting exchange's pattern is defined by
pattern
.source
- exchange to copy from.pattern
- exchange pattern to set.protected void doStart() throws Exception
ServiceSupport
ServiceSupport.doStop()
for more details.doStart
in class ServiceSupport
Exception
ServiceSupport.doStop()
protected void doStop() throws Exception
ServiceSupport
ServiceSupport.doStop()
method when
the service is being stopped. This method will also be invoked
if the service is still in uninitialized state (eg has not
been started). The method is always called to allow the service
to do custom logic when the service is being stopped, such as when
CamelContext
is shutting down.doStop
in class ServiceSupport
Exception
ServiceSupport.doStart()
Apache Camel