org.apache.camel.processor
Class PollEnricher

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

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

Field Summary
 
Fields inherited from class org.apache.camel.support.ServiceSupport
shutdown, shuttingdown, started, starting, stopped, stopping, suspended, suspending
 
Constructor Summary
PollEnricher(AggregationStrategy aggregationStrategy, PollingConsumer consumer, long timeout)
          Creates a new PollEnricher.
PollEnricher(AggregationStrategy aggregationStrategy, PollingConsumer consumer, long timeout, Boolean pollMultiple)
          Creates a new PollEnricher.
PollEnricher(PollingConsumer consumer)
          Creates a new PollEnricher.
 
Method Summary
protected  void doStart()
          Implementations override this method to support customized start/stop.
protected  void doStop()
          Implementations override this method to support customized start/stop.
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 setPollMultiple(Boolean value)
           
 void setTimeout(long timeout)
          Sets the timeout to use when polling.
 String toString()
           
 
Methods inherited from class org.apache.camel.support.ServiceSupport
doResume, doShutdown, doSuspend, getStatus, getVersion, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspended, isSuspending, resume, shutdown, start, stop, suspend
 
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

PollEnricher

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

Parameters:
aggregationStrategy - aggregation strategy to aggregate input data and additional data.
consumer - consumer to resource endpoint.
timeout - timeout in millis
pollMultiple - enabled building a List of multiple exchanges
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.

setPollMultiple

public void setPollMultiple(Boolean value)

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
Description copied from class: ServiceSupport
Implementations override this method to support customized start/stop.

Important: See ServiceSupport.doStop() for more details.

Specified by:
doStart in class ServiceSupport
Throws:
Exception
See Also:
ServiceSupport.doStop()

doStop

protected void doStop()
               throws Exception
Description copied from class: ServiceSupport
Implementations override this method to support customized start/stop.

Important: Camel will invoke this 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.

Specified by:
doStop in class ServiceSupport
Throws:
Exception
See Also:
ServiceSupport.doStart()


Apache CAMEL