Class EnrichDefinition

All Implemented Interfaces:
org.apache.camel.CamelContextAware, org.apache.camel.LineNumberAware, AggregationStrategyAwareDefinition<EnrichDefinition>, 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 EnrichDefinition extends ExpressionNode implements AggregationStrategyAwareDefinition<EnrichDefinition>
Enriches a message with data from a secondary resource
See Also:
  • Enricher
  • Constructor Details

    • EnrichDefinition

      public EnrichDefinition()
    • EnrichDefinition

      public EnrichDefinition(org.apache.camel.AggregationStrategy aggregationStrategy)
  • 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
    • aggregationStrategy

      public EnrichDefinition 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<EnrichDefinition>
      Parameters:
      aggregationStrategy - the aggregation strategy
      Returns:
      the builder
    • aggregationStrategy

      public EnrichDefinition 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<EnrichDefinition>
      Parameters:
      aggregationStrategy - the aggregation strategy
      Returns:
      the builder
    • aggregationStrategyMethodName

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

      public EnrichDefinition 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 EnrichDefinition 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.
    • shareUnitOfWork

      public EnrichDefinition shareUnitOfWork()
      Shares the UnitOfWork with the parent and the resource exchange. Enrich will by default not share unit of work between the parent exchange and the resource exchange. This means the resource exchange has its own individual unit of work.
    • cacheSize

      public EnrichDefinition cacheSize(int cacheSize)
      Sets the maximum size used by the ProducerCache which is used to cache and reuse producer 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 EnrichDefinition cacheSize(String cacheSize)
      Sets the maximum size used by the ProducerCache which is used to cache and reuse producer 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 EnrichDefinition ignoreInvalidEndpoint()
      Ignore the invalidate endpoint exception when try to create a producer with that endpoint
      Returns:
      the builder
    • allowOptimisedComponents

      public EnrichDefinition allowOptimisedComponents(boolean allowOptimisedComponents)
      Whether to allow components to optimise enricher if they are SendDynamicAware.
      Returns:
      the builder
    • allowOptimisedComponents

      public EnrichDefinition allowOptimisedComponents(String allowOptimisedComponents)
      Whether to allow components to optimise enricher if they are SendDynamicAware.
      Returns:
      the builder
    • getAggregationStrategyBean

      public org.apache.camel.AggregationStrategy getAggregationStrategyBean()
      Description copied from interface: AggregationStrategyAwareDefinition
      Gets the aggregation strategy
      Specified by:
      getAggregationStrategyBean in interface AggregationStrategyAwareDefinition<EnrichDefinition>
    • 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<EnrichDefinition>
    • 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
    • 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<EnrichDefinition>
    • 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<EnrichDefinition>
    • setAggregationStrategyMethodAllowNull

      public void setAggregationStrategyMethodAllowNull(String aggregationStrategyMethodAllowNull)
    • getAggregateOnException

      public String getAggregateOnException()
    • setAggregateOnException

      public void setAggregateOnException(String aggregateOnException)
    • getShareUnitOfWork

      public String getShareUnitOfWork()
    • setShareUnitOfWork

      public void setShareUnitOfWork(String shareUnitOfWork)
    • getCacheSize

      public String getCacheSize()
    • setCacheSize

      public void setCacheSize(String cacheSize)
    • getIgnoreInvalidEndpoint

      public String getIgnoreInvalidEndpoint()
    • setIgnoreInvalidEndpoint

      public void setIgnoreInvalidEndpoint(String ignoreInvalidEndpoint)
    • getAllowOptimisedComponents

      public String getAllowOptimisedComponents()
    • setAllowOptimisedComponents

      public void setAllowOptimisedComponents(String allowOptimisedComponents)