Package org.apache.camel.processor
Class PollEnricher
- java.lang.Object
-
- org.apache.camel.support.service.BaseService
-
- org.apache.camel.support.service.ServiceSupport
-
- org.apache.camel.support.AsyncProcessorSupport
-
- org.apache.camel.processor.PollEnricher
-
- All Implemented Interfaces:
AutoCloseable
,org.apache.camel.AsyncProcessor
,org.apache.camel.CamelContextAware
,org.apache.camel.Processor
,org.apache.camel.Service
,org.apache.camel.ShutdownableService
,org.apache.camel.spi.HasId
,org.apache.camel.spi.IdAware
,org.apache.camel.spi.RouteIdAware
,org.apache.camel.StatefulService
,org.apache.camel.SuspendableService
public class PollEnricher extends org.apache.camel.support.AsyncProcessorSupport implements org.apache.camel.spi.IdAware, org.apache.camel.spi.RouteIdAware, org.apache.camel.CamelContextAware
A content enricher that enriches input data by first obtaining additional data from a resource represented by an endpointproducer
and second by aggregating input data and additional data. Aggregation of input data and additional data is delegated to anAggregationStrategy
object. Uses aPollingConsumer
to obtain the additional data as opposed toEnricher
that uses aProducer
.- See Also:
Enricher
-
-
Constructor Summary
Constructors Constructor Description PollEnricher(String destination, long timeout)
Creates a newPollEnricher
.PollEnricher(org.apache.camel.Expression expression, long timeout)
Creates a newPollEnricher
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
doBuild()
protected void
doInit()
protected void
doShutdown()
protected void
doStart()
protected void
doStop()
org.apache.camel.AggregationStrategy
getAggregationStrategy()
int
getCacheSize()
org.apache.camel.CamelContext
getCamelContext()
org.apache.camel.spi.EndpointUtilizationStatistics
getEndpointUtilizationStatistics()
protected static org.apache.camel.Endpoint
getExistingEndpoint(org.apache.camel.CamelContext context, Object recipient)
org.apache.camel.Expression
getExpression()
String
getId()
String
getRouteId()
long
getTimeout()
boolean
isAggregateOnException()
boolean
isIgnoreInvalidEndpoint()
protected void
preCheckPoll(org.apache.camel.Exchange exchange)
Strategy to pre check polling.protected static Object
prepareRecipient(org.apache.camel.Exchange exchange, Object recipient)
boolean
process(org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback callback)
Enriches the input data (exchange
) by first obtaining additional data from an endpoint represented by an endpointproducer
and second by aggregating input data and additional data.protected static org.apache.camel.Endpoint
resolveEndpoint(org.apache.camel.CamelContext camelContext, Object recipient, boolean prototype)
void
setAggregateOnException(boolean aggregateOnException)
void
setAggregationStrategy(org.apache.camel.AggregationStrategy aggregationStrategy)
Sets the aggregation strategy for this poll enricher.void
setCacheSize(int cacheSize)
void
setCamelContext(org.apache.camel.CamelContext camelContext)
void
setId(String id)
void
setIgnoreInvalidEndpoint(boolean ignoreInvalidEndpoint)
void
setRouteId(String routeId)
void
setTimeout(long timeout)
Sets the timeout to use when polling.String
toString()
-
Methods inherited from class org.apache.camel.support.service.BaseService
build, doFail, doLifecycleChange, doResume, doSuspend, fail, getStatus, init, isBuild, isInit, isNew, isRunAllowed, isShutdown, isStarted, isStarting, isStartingOrStarted, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, 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(org.apache.camel.Expression expression, long timeout)
Creates a newPollEnricher
.- Parameters:
expression
- expression to use to compute the endpoint to poll from.timeout
- timeout in millis
-
PollEnricher
public PollEnricher(String destination, long timeout)
Creates a newPollEnricher
.- Parameters:
destination
- the endpoint to poll from.timeout
- timeout in millis
-
-
Method Detail
-
getCamelContext
public org.apache.camel.CamelContext getCamelContext()
- Specified by:
getCamelContext
in interfaceorg.apache.camel.CamelContextAware
-
setCamelContext
public void setCamelContext(org.apache.camel.CamelContext camelContext)
- Specified by:
setCamelContext
in interfaceorg.apache.camel.CamelContextAware
-
getId
public String getId()
- Specified by:
getId
in interfaceorg.apache.camel.spi.HasId
-
setId
public void setId(String id)
- Specified by:
setId
in interfaceorg.apache.camel.spi.IdAware
-
getRouteId
public String getRouteId()
- Specified by:
getRouteId
in interfaceorg.apache.camel.spi.RouteIdAware
-
setRouteId
public void setRouteId(String routeId)
- Specified by:
setRouteId
in interfaceorg.apache.camel.spi.RouteIdAware
-
getExpression
public org.apache.camel.Expression getExpression()
-
getEndpointUtilizationStatistics
public org.apache.camel.spi.EndpointUtilizationStatistics getEndpointUtilizationStatistics()
-
getAggregationStrategy
public org.apache.camel.AggregationStrategy getAggregationStrategy()
-
setAggregationStrategy
public void setAggregationStrategy(org.apache.camel.AggregationStrategy aggregationStrategy)
Sets the aggregation strategy for this poll enricher.- Parameters:
aggregationStrategy
- the aggregationStrategy to set
-
getTimeout
public long getTimeout()
-
setTimeout
public void setTimeout(long timeout)
Sets the timeout to use when polling. Use 0 to use receiveNoWait, Use -1 to use receive with no timeout (which will block until data is available).- Parameters:
timeout
- timeout in millis.
-
isAggregateOnException
public boolean isAggregateOnException()
-
setAggregateOnException
public void setAggregateOnException(boolean aggregateOnException)
-
getCacheSize
public int getCacheSize()
-
setCacheSize
public void setCacheSize(int cacheSize)
-
isIgnoreInvalidEndpoint
public boolean isIgnoreInvalidEndpoint()
-
setIgnoreInvalidEndpoint
public void setIgnoreInvalidEndpoint(boolean ignoreInvalidEndpoint)
-
process
public boolean process(org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback callback)
Enriches the input data (exchange
) by first obtaining additional data from an endpoint represented by an endpointproducer
and second by aggregating input data and additional data. Aggregation of input data and additional data is delegated to anAggregationStrategy
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 interfaceorg.apache.camel.AsyncProcessor
- Parameters:
exchange
- input data.
-
prepareRecipient
protected static Object prepareRecipient(org.apache.camel.Exchange exchange, Object recipient) throws org.apache.camel.NoTypeConversionAvailableException
- Throws:
org.apache.camel.NoTypeConversionAvailableException
-
getExistingEndpoint
protected static org.apache.camel.Endpoint getExistingEndpoint(org.apache.camel.CamelContext context, Object recipient)
-
resolveEndpoint
protected static org.apache.camel.Endpoint resolveEndpoint(org.apache.camel.CamelContext camelContext, Object recipient, boolean prototype)
-
preCheckPoll
protected void preCheckPoll(org.apache.camel.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
-
doBuild
protected void doBuild() throws Exception
- Overrides:
doBuild
in classorg.apache.camel.support.service.BaseService
- Throws:
Exception
-
doInit
protected void doInit() throws Exception
- Overrides:
doInit
in classorg.apache.camel.support.service.BaseService
- Throws:
Exception
-
doStart
protected void doStart() throws Exception
- Overrides:
doStart
in classorg.apache.camel.support.AsyncProcessorSupport
- Throws:
Exception
-
doStop
protected void doStop() throws Exception
- Overrides:
doStop
in classorg.apache.camel.support.AsyncProcessorSupport
- Throws:
Exception
-
-