org.apache.camel.processor
Class PollEnricher

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

public class PollEnricher
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.

Uses a PollingConsumer to obtain the additional data as opposed to Enricher that uses a Producer.

See Also:
Enricher

Constructor Summary
PollEnricher(AggregationStrategy aggregationStrategy, PollingConsumer consumer, long timeout)
          Creates a new PollEnricher.
PollEnricher(PollingConsumer consumer)
          Creates a new PollEnricher.
 
Method Summary
protected  void doStart()
           
protected  void doStop()
           
protected  void preCheckPoll(Exchange exchange)
          Strategy to pre check polling.
 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 poll enricher.
 void setDefaultAggregationStrategy()
          Sets the default aggregation strategy for this poll enricher.
 void setTimeout(long timeout)
          Sets the timeout to use when polling.
 String toString()
           
 
Methods inherited from class org.apache.camel.impl.ServiceSupport
addChildService, doShutdown, getStatus, getVersion, isRunAllowed, isStarted, isStarting, isStopped, isStopping, removeChildService, shutdown, start, stop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PollEnricher

public PollEnricher(PollingConsumer consumer)
Creates a new PollEnricher. 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:
consumer - consumer to resource endpoint.

PollEnricher

public PollEnricher(AggregationStrategy aggregationStrategy,
                    PollingConsumer consumer,
                    long timeout)
Creates a new PollEnricher.

Parameters:
aggregationStrategy - aggregation strategy to aggregate input data and additional data.
consumer - consumer to resource endpoint.
timeout - timeout in millis
Method Detail

setAggregationStrategy

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

Parameters:
aggregationStrategy - the aggregationStrategy to set

setDefaultAggregationStrategy

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


setTimeout

public void setTimeout(long timeout)
Sets the timeout to use when polling.

Use 0 or negative to not use timeout and block until data is available.

Parameters:
timeout - timeout in millis.

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.

preCheckPoll

protected void preCheckPoll(Exchange exchange)
                     throws Exception
Strategy to pre check polling.

Is currently used to prevent doing poll enrich from a file based endpoint when the current route also started from a file based endpoint as that is not currently supported.

Parameters:
exchange - the current exchange
Throws:
Exception

toString

public String toString()
Overrides:
toString in class Object

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 © 2007-2010 IONA Open Source Community. All Rights Reserved.