Class PollEnrichDefinition

All Implemented Interfaces:
org.apache.camel.CamelContextAware, org.apache.camel.LineNumberAware, AggregationStrategyAwareDefinition<PollEnrichDefinition>, Block, HasExpressionType, org.apache.camel.NamedNode, org.apache.camel.spi.HasCamelContext, org.apache.camel.spi.HasId, org.apache.camel.spi.IdAware

@Metadata(label="eip,transformation") public class PollEnrichDefinition extends ExpressionNode implements AggregationStrategyAwareDefinition<PollEnrichDefinition>
Enriches messages with data polled from a secondary resource
See Also:
  • Enricher
  • Constructor Details

    • PollEnrichDefinition

      public PollEnrichDefinition()
    • PollEnrichDefinition

      public PollEnrichDefinition(org.apache.camel.AggregationStrategy aggregationStrategy, long timeout)
  • Method Details

    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getShortName

      public String getShortName()
      Specified by:
      getShortName in interface org.apache.camel.NamedNode
    • getLabel

      public String getLabel()
      Description copied from class: ProcessorDefinition
      Returns a label to describe this node such as the expression if some kind of expression node
      Specified by:
      getLabel in interface org.apache.camel.NamedNode
      Overrides:
      getLabel in class ExpressionNode
    • timeout

      public PollEnrichDefinition timeout(long timeout)
      Timeout in millis when polling from the external service.

      The timeout has influence about the poll enrich behavior. It basically operations in three different modes:

      • negative value - Waits until a message is available and then returns it. Warning that this method could block indefinitely if no messages are available.
      • 0 - Attempts to receive a message exchange immediately without waiting and returning null if a message exchange is not available yet.
      • positive value - Attempts to receive a message exchange, waiting up to the given timeout to expire if a message is not yet available. Returns null if timed out
      The default value is -1 and therefore the method could block indefinitely, and therefore its recommended to use a timeout value
    • timeout

      public PollEnrichDefinition timeout(String timeout)
      Timeout in millis when polling from the external service.

      The timeout has influence about the poll enrich behavior. It basically operations in three different modes:

      • negative value - Waits until a message is available and then returns it. Warning that this method could block indefinitely if no messages are available.
      • 0 - Attempts to receive a message exchange immediately without waiting and returning null if a message exchange is not available yet.
      • positive value - Attempts to receive a message exchange, waiting up to the given timeout to expire if a message is not yet available. Returns null if timed out
      The default value is -1 and therefore the method could block indefinitely, and therefore its recommended to use a timeout value
    • variableReceive

      public PollEnrichDefinition variableReceive(String variableReceive)
      To use a variable to store the received message body (only body, not headers). This is handy for easy access to the received message body via variables. Important: When using receive variable then the received body is stored only in this variable and not on the current Message.
    • aggregationStrategy

      public PollEnrichDefinition aggregationStrategy(org.apache.camel.AggregationStrategy aggregationStrategy)
      Sets the AggregationStrategy to be used to merge the reply from the external service, into a single outgoing message. By default Camel will use the reply from the external service as outgoing message.
      Specified by:
      aggregationStrategy in interface AggregationStrategyAwareDefinition<PollEnrichDefinition>
      Parameters:
      aggregationStrategy - the aggregation strategy
      Returns:
      the builder
    • aggregationStrategy

      public PollEnrichDefinition aggregationStrategy(String aggregationStrategy)
      Refers to an AggregationStrategy to be used to merge the reply from the external service, into a single outgoing message. By default Camel will use the reply from the external service as outgoing message.
      Specified by:
      aggregationStrategy in interface AggregationStrategyAwareDefinition<PollEnrichDefinition>
      Parameters:
      aggregationStrategy - the aggregation strategy
      Returns:
      the builder
    • aggregationStrategyMethodName

      public PollEnrichDefinition aggregationStrategyMethodName(String aggregationStrategyMethodName)
      This option can be used to explicit declare the method name to use, when using POJOs as the AggregationStrategy.
    • aggregationStrategyMethodAllowNull

      public PollEnrichDefinition aggregationStrategyMethodAllowNull(boolean aggregationStrategyMethodAllowNull)
      If this option is false then the aggregate method is not used if there was no data to enrich. If this option is true then null values is used as the oldExchange (when no data to enrich), when using POJOs as the AggregationStrategy.
    • aggregateOnException

      public PollEnrichDefinition aggregateOnException(boolean aggregateOnException)
      If this option is false then the aggregate method is not used if there was an exception thrown while trying to retrieve the data to enrich from the resource. Setting this option to true allows end users to control what to do if there was an exception in the aggregate method. For example to suppress the exception or set a custom message body etc.
    • cacheSize

      public PollEnrichDefinition cacheSize(int cacheSize)
      Sets the maximum size used by the ConsumerCache which is used to cache and reuse consumers when uris are reused. Beware that when using dynamic endpoints then it affects how well the cache can be utilized. If each dynamic endpoint is unique then its best to turn off caching by setting this to -1, which allows Camel to not cache both the producers and endpoints; they are regarded as prototype scoped and will be stopped and discarded after use. This reduces memory usage as otherwise producers/endpoints are stored in memory in the caches. However if there are a high degree of dynamic endpoints that have been used before, then it can benefit to use the cache to reuse both producers and endpoints and therefore the cache size can be set accordingly or rely on the default size (1000). If there is a mix of unique and used before dynamic endpoints, then setting a reasonable cache size can help reduce memory usage to avoid storing too many non frequent used producers.
      Parameters:
      cacheSize - the cache size, use 0 for default cache size, or -1 to turn cache off.
      Returns:
      the builder
    • cacheSize

      public PollEnrichDefinition cacheSize(String cacheSize)
      Sets the maximum size used by the ConsumerCache which is used to cache and reuse consumers when uris are reused. Beware that when using dynamic endpoints then it affects how well the cache can be utilized. If each dynamic endpoint is unique then its best to turn off caching by setting this to -1, which allows Camel to not cache both the producers and endpoints; they are regarded as prototype scoped and will be stopped and discarded after use. This reduces memory usage as otherwise producers/endpoints are stored in memory in the caches. However if there are a high degree of dynamic endpoints that have been used before, then it can benefit to use the cache to reuse both producers and endpoints and therefore the cache size can be set accordingly or rely on the default size (1000). If there is a mix of unique and used before dynamic endpoints, then setting a reasonable cache size can help reduce memory usage to avoid storing too many non frequent used producers.
      Parameters:
      cacheSize - the cache size, use 0 for default cache size, or -1 to turn cache off.
      Returns:
      the builder
    • ignoreInvalidEndpoint

      public PollEnrichDefinition ignoreInvalidEndpoint()
      Ignore the invalidate endpoint exception when try to create a producer with that endpoint
      Returns:
      the builder
    • autoStartComponents

      public PollEnrichDefinition autoStartComponents(String autoStartComponents)
      Whether to auto startup components when poll enricher is starting up.
      Returns:
      the builder
    • setExpression

      public void setExpression(ExpressionDefinition expression)
      Expression that computes the endpoint uri to use as the resource endpoint to enrich from
      Overrides:
      setExpression in class ExpressionNode
    • getAggregationStrategyBean

      public org.apache.camel.AggregationStrategy getAggregationStrategyBean()
      Description copied from interface: AggregationStrategyAwareDefinition
      Gets the aggregation strategy
      Specified by:
      getAggregationStrategyBean in interface AggregationStrategyAwareDefinition<PollEnrichDefinition>
    • getAggregationStrategyRef

      public String getAggregationStrategyRef()
      Description copied from interface: AggregationStrategyAwareDefinition
      Gets a reference id to lookup the aggregation strategy from the registry
      Specified by:
      getAggregationStrategyRef in interface AggregationStrategyAwareDefinition<PollEnrichDefinition>
    • getTimeout

      public String getTimeout()
    • setTimeout

      public void setTimeout(String timeout)
    • getVariableReceive

      public String getVariableReceive()
    • setVariableReceive

      public void setVariableReceive(String variableReceive)
    • getAggregationStrategy

      public String getAggregationStrategy()
    • setAggregationStrategy

      public void setAggregationStrategy(String aggregationStrategy)
    • setAggregationStrategy

      public void setAggregationStrategy(org.apache.camel.AggregationStrategy aggregationStrategy)
    • getAggregationStrategyMethodName

      public String getAggregationStrategyMethodName()
      Description copied from interface: AggregationStrategyAwareDefinition
      This option can be used to explicit declare the method name to use, when using beans as the AggregationStrategy.
      Specified by:
      getAggregationStrategyMethodName in interface AggregationStrategyAwareDefinition<PollEnrichDefinition>
    • setAggregationStrategyMethodName

      public void setAggregationStrategyMethodName(String aggregationStrategyMethodName)
    • getAggregationStrategyMethodAllowNull

      public String getAggregationStrategyMethodAllowNull()
      Description copied from interface: AggregationStrategyAwareDefinition
      If this option is false then the aggregate method is not used for the very first aggregation. If this option is true then null values is used as the oldExchange (at the very first aggregation), when using beans as the AggregationStrategy.
      Specified by:
      getAggregationStrategyMethodAllowNull in interface AggregationStrategyAwareDefinition<PollEnrichDefinition>
    • setAggregationStrategyMethodAllowNull

      public void setAggregationStrategyMethodAllowNull(String aggregationStrategyMethodAllowNull)
    • getAggregateOnException

      public String getAggregateOnException()
    • setAggregateOnException

      public void setAggregateOnException(String aggregateOnException)
    • getCacheSize

      public String getCacheSize()
    • setCacheSize

      public void setCacheSize(String cacheSize)
    • getIgnoreInvalidEndpoint

      public String getIgnoreInvalidEndpoint()
    • setIgnoreInvalidEndpoint

      public void setIgnoreInvalidEndpoint(String ignoreInvalidEndpoint)
    • getAutoStartComponents

      public String getAutoStartComponents()
    • setAutoStartComponents

      public void setAutoStartComponents(String autoStartComponents)