org.apache.camel.processor
Class Enricher

java.lang.Object
  extended by org.apache.camel.impl.ServiceSupport
      extended by org.apache.camel.processor.Enricher
All Implemented Interfaces:
Processor, Service

public class Enricher
extends ServiceSupport
implements Processor

A content enricher that enriches input data by first obtaining additional data from a resource 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.


Constructor Summary
Enricher(AggregationStrategy aggregationStrategy, Producer producer)
          Creates a new Enricher.
Enricher(Producer producer)
          Creates a new Enricher.
 
Method Summary
protected  Exchange createResourceExchange(Exchange source, ExchangePattern pattern)
          Creates a new DefaultExchange instance from the given exchange.
protected  void doStart()
           
protected  void doStop()
           
 void process(Exchange exchange)
          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 setAggregationStrategy(AggregationStrategy aggregationStrategy)
          Sets the aggregation strategy for this enricher.
 void setDefaultAggregationStrategy()
          Sets the default aggregation strategy for this enricher.
 
Methods inherited from class org.apache.camel.impl.ServiceSupport
addChildService, getStatus, getVersion, isRunAllowed, isStarted, isStarting, isStopped, isStopping, removeChildService, start, stop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Enricher

public Enricher(Producer producer)
Creates a new 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.

Parameters:
producer - producer to resource endpoint.

Enricher

public Enricher(AggregationStrategy aggregationStrategy,
                Producer producer)
Creates a new Enricher.

Parameters:
aggregationStrategy - aggregation strategy to aggregate input data and additional data.
producer - producer to resource endpoint.
Method Detail

setAggregationStrategy

public void setAggregationStrategy(AggregationStrategy aggregationStrategy)
Sets the aggregation strategy for this enricher.

Parameters:
aggregationStrategy - the aggregationStrategy to set

setDefaultAggregationStrategy

public void setDefaultAggregationStrategy()
Sets the default aggregation strategy for this enricher.


process

public void process(Exchange exchange)
             throws Exception
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. 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.

Specified by:
process in interface Processor
Parameters:
exchange - input data.
Throws:
Exception - if an internal processing error has occurred.

createResourceExchange

protected Exchange createResourceExchange(Exchange source,
                                          ExchangePattern pattern)
Creates a new DefaultExchange instance from the given exchange. The resulting exchange's pattern is defined by pattern.

Parameters:
source - exchange to copy from.
pattern - exchange pattern to set.
Returns:
created exchange.

doStart

protected void doStart()
                throws Exception
Specified by:
doStart in class ServiceSupport
Throws:
Exception

doStop

protected void doStop()
               throws Exception
Specified by:
doStop in class ServiceSupport
Throws:
Exception


Copyright © 2009 Apache Software Foundation. All Rights Reserved.