You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2021/01/27 06:23:42 UTC

[camel] 04/06: CAMEL-12489 - camel-infinspan: split remote and embedded components (docs)

This is an automated email from the ASF dual-hosted git repository.

lburgazzoli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit c9cdc676a77f38f687407b1a040818c3d5299576
Author: Luca Burgazzoli <lb...@gmail.com>
AuthorDate: Tue Jan 26 10:56:09 2021 +0100

    CAMEL-12489 - camel-infinspan: split remote and embedded components (docs)
---
 .../camel/catalog/docs/infinispan-component.adoc   |   8 +-
 .../docs/infinispan-embedded-component.adoc        | 801 ++++++---------------
 .../infinispan/embedded/infinispan-embedded.json   |   8 +-
 .../main/docs/infinispan-embedded-component.adoc   | 801 ++++++---------------
 .../embedded/InfinispanEmbeddedConfiguration.java  |   7 +-
 .../component/infinispan/remote/infinispan.json    |   8 +-
 .../src/main/docs/infinispan-component.adoc        |   8 +-
 .../remote/InfinispanRemoteConfiguration.java      |   7 +-
 .../dsl/InfinispanComponentBuilderFactory.java     |  12 +-
 .../InfinispanEmbeddedComponentBuilderFactory.java |  12 +-
 .../InfinispanEmbeddedEndpointBuilderFactory.java  |  72 +-
 .../InfinispanRemoteEndpointBuilderFactory.java    |  72 +-
 .../modules/ROOT/pages/infinispan-component.adoc   |   8 +-
 .../ROOT/pages/infinispan-embedded-component.adoc  | 801 ++++++---------------
 14 files changed, 752 insertions(+), 1873 deletions(-)

diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/infinispan-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/infinispan-component.adoc
index 0ba396c..46f03f9 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/infinispan-component.adoc
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/infinispan-component.adoc
@@ -69,10 +69,10 @@ The Infinispan component supports 26 options, which are listed below.
 | *username* ( security) | Define the username to access the infinispan instance |  | String
 | *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
 | *cacheContainer* (advanced) | *Autowired* Specifies the cache Container to connect |  | RemoteCacheManager
-| *cacheContainerConfiguration* (advanced) | *Autowired* The CacheContainer configuration. Uses if the cacheContainer is not defined. Must be the following types: org.infinispan.client.hotrod.configuration.Configuration - for remote cache interaction configuration; org.infinispan.configuration.cache.Configuration - for embedded cache interaction configuration; |  | Configuration
+| *cacheContainerConfiguration* (advanced) | *Autowired* The CacheContainer configuration. Used if the cacheContainer is not defined. |  | Configuration
 | *configurationProperties* (advanced) | Implementation specific properties for the CacheManager |  | Map
 | *configurationUri* (advanced) | An implementation specific URI for the CacheManager |  | String
-| *flags* (advanced) | A comma separated list of Flag to be applied by default on each cache invocation, not applicable to remote caches. |  | String
+| *flags* (advanced) | A comma separated list of org.infinispan.client.hotrod.Flag to be applied by default on each cache invocation. |  | String
 | *remappingFunction* (advanced) | Set a specific remappingFunction to use in a compute operation. |  | BiFunction
 | *resultHeader* (advanced) | Store the operation result in a header instead of the message body. By default, resultHeader == null and the query result is stored in the message body, any existing content in the message body is discarded. If resultHeader is set, the value is used as the name of the header to store the query result and the original message body is preserved. This value can be overridden by an in message header named: CamelInfinispanOperationResultHeader |  | String
 |===
@@ -126,10 +126,10 @@ with the following path and query parameters:
 | *securityServerName* ( security) | Define the security server name to access the infinispan instance |  | String
 | *username* ( security) | Define the username to access the infinispan instance |  | String
 | *cacheContainer* (advanced) | *Autowired* Specifies the cache Container to connect |  | RemoteCacheManager
-| *cacheContainerConfiguration* (advanced) | *Autowired* The CacheContainer configuration. Uses if the cacheContainer is not defined. Must be the following types: org.infinispan.client.hotrod.configuration.Configuration - for remote cache interaction configuration; org.infinispan.configuration.cache.Configuration - for embedded cache interaction configuration; |  | Configuration
+| *cacheContainerConfiguration* (advanced) | *Autowired* The CacheContainer configuration. Used if the cacheContainer is not defined. |  | Configuration
 | *configurationProperties* (advanced) | Implementation specific properties for the CacheManager |  | Map
 | *configurationUri* (advanced) | An implementation specific URI for the CacheManager |  | String
-| *flags* (advanced) | A comma separated list of Flag to be applied by default on each cache invocation, not applicable to remote caches. |  | String
+| *flags* (advanced) | A comma separated list of org.infinispan.client.hotrod.Flag to be applied by default on each cache invocation. |  | String
 | *remappingFunction* (advanced) | Set a specific remappingFunction to use in a compute operation. |  | BiFunction
 | *resultHeader* (advanced) | Store the operation result in a header instead of the message body. By default, resultHeader == null and the query result is stored in the message body, any existing content in the message body is discarded. If resultHeader is set, the value is used as the name of the header to store the query result and the original message body is preserved. This value can be overridden by an in message header named: CamelInfinispanOperationResultHeader |  | String
 |===
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/infinispan-embedded-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/infinispan-embedded-component.adoc
index 3b2f7f3..164a7ae 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/infinispan-embedded-component.adoc
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/infinispan-embedded-component.adoc
@@ -19,7 +19,7 @@ store and data grid platform written in Java.
 
 Infinispan requires at least Java 8.
 
-The `camel-infinispan` component includes the following features:
+The `camel-infinispan-embedded` component includes the following features:
 
 * *Local Camel Consumer* - Receives cache change notifications and sends them to be processed.
 This can be done synchronously or asynchronously, and is also supported with a replicated or distributed cache.
@@ -51,14 +51,11 @@ infinispan-embedded://cacheName?[options]
 
 == URI Options
 
-The producer allows sending messages to a local infinispan cache
-configured in the registry, or to a remote cache using the HotRod
-protocol. The consumer allows listening for events from local infinispan cache
-accessible from the registry.
+The producer allows sending messages to a local infinispan cache.
+The consumer allows listening for events from local infinispan cache.
 
 If no cache configuration is provided, embedded cacheContainer is created directly in the component.
 
-
 // component options: START
 The Infinispan Embedded component supports 20 options, which are listed below.
 
@@ -82,9 +79,9 @@ The Infinispan Embedded component supports 20 options, which are listed below.
 | *value* (producer) | Set a specific value for producer operations |  | Object
 | *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
 | *cacheContainer* (advanced) | *Autowired* Specifies the cache Container to connect |  | EmbeddedCacheManager
-| *cacheContainerConfiguration* (advanced) | *Autowired* The CacheContainer configuration. Uses if the cacheContainer is not defined. Must be the following types: org.infinispan.client.hotrod.configuration.Configuration - for remote cache interaction configuration; org.infinispan.configuration.cache.Configuration - for embedded cache interaction configuration; |  | Configuration
+| *cacheContainerConfiguration* (advanced) | *Autowired* The CacheContainer configuration. Used if the cacheContainer is not defined. |  | Configuration
 | *configurationUri* (advanced) | An implementation specific URI for the CacheManager |  | String
-| *flags* (advanced) | A comma separated list of Flag to be applied by default on each cache invocation, not applicable to remote caches. |  | String
+| *flags* (advanced) | A comma separated list of org.infinispan.context.Flag to be applied by default on each cache invocation |  | String
 | *remappingFunction* (advanced) | Set a specific remappingFunction to use in a compute operation. |  | BiFunction
 | *resultHeader* (advanced) | Store the operation result in a header instead of the message body. By default, resultHeader == null and the query result is stored in the message body, any existing content in the message body is discarded. If resultHeader is set, the value is used as the name of the header to store the query result and the original message body is preserved. This value can be overridden by an in message header named: CamelInfinispanOperationResultHeader |  | String
 |===
@@ -133,268 +130,169 @@ with the following path and query parameters:
 | *operation* (producer) | The operation to perform. There are 21 enums and the value can be one of: PUT, PUTASYNC, PUTALL, PUTALLASYNC, PUTIFABSENT, PUTIFABSENTASYNC, GET, GETORDEFAULT, CONTAINSKEY, CONTAINSVALUE, REMOVE, REMOVEASYNC, REPLACE, REPLACEASYNC, SIZE, CLEAR, CLEARASYNC, QUERY, STATS, COMPUTE, COMPUTEASYNC | PUT | InfinispanOperation
 | *value* (producer) | Set a specific value for producer operations |  | Object
 | *cacheContainer* (advanced) | *Autowired* Specifies the cache Container to connect |  | EmbeddedCacheManager
-| *cacheContainerConfiguration* (advanced) | *Autowired* The CacheContainer configuration. Uses if the cacheContainer is not defined. Must be the following types: org.infinispan.client.hotrod.configuration.Configuration - for remote cache interaction configuration; org.infinispan.configuration.cache.Configuration - for embedded cache interaction configuration; |  | Configuration
+| *cacheContainerConfiguration* (advanced) | *Autowired* The CacheContainer configuration. Used if the cacheContainer is not defined. |  | Configuration
 | *configurationUri* (advanced) | An implementation specific URI for the CacheManager |  | String
-| *flags* (advanced) | A comma separated list of Flag to be applied by default on each cache invocation, not applicable to remote caches. |  | String
+| *flags* (advanced) | A comma separated list of org.infinispan.context.Flag to be applied by default on each cache invocation |  | String
 | *remappingFunction* (advanced) | Set a specific remappingFunction to use in a compute operation. |  | BiFunction
 | *resultHeader* (advanced) | Store the operation result in a header instead of the message body. By default, resultHeader == null and the query result is stored in the message body, any existing content in the message body is discarded. If resultHeader is set, the value is used as the name of the header to store the query result and the original message body is preserved. This value can be overridden by an in message header named: CamelInfinispanOperationResultHeader |  | String
 |===
 // endpoint options: END
 
+
 == Camel Operations
 This section lists all available operations, along with their header information.
 
 .Put Operations
-[cols="40%,60%", frame="all", options="header"]
+[cols="40%,60%a", frame="all", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.PUT
-| *Context*: Embedded / Remote
-
-*Description*: Puts a key/value pair in the cache, optionally with expiration
-
-*Required Headers*: CamelInfinispanKey, CamelInfinispanValue
-
-*Optional Headers*: CamelInfinispanLifespanTime, CamelInfinispanLifespanTimeUnit, CamelInfinispanMaxIdleTime, CamelInfinispanMaxIdleTimeUnit, CamelInfinispanIgnoreReturnValues
-
-*Result Header*: CamelInfinispanOperationResult
-
-| InfinispanOperation.PUTASYNC
-| *Description*: Asynchronously puts a key/value pair in the cache, optionally with expiration
-
-
-| InfinispanOperation.PUTIFABSENT
-| *Description*: Puts a key/value pair in the cache if it did not exist, optionally with expiration
-
-
-| InfinispanOperation.PUTIFABSENTASYNC
-| *Description*: Asynchronously puts a key/value pair in the cache if it did not exist, optionally with expiration
-
+| Operation Name | Description
+| InfinispanOperation.PUT | Puts a key/value pair in the cache, optionally with expiration
+| InfinispanOperation.PUTASYNC | Asynchronously puts a key/value pair in the cache, optionally with expiration
+| InfinispanOperation.PUTIFABSENT | Puts a key/value pair in the cache if it did not exist, optionally with expiration
+| InfinispanOperation.PUTIFABSENTASYNC | Asynchronously puts a key/value pair in the cache if it did not exist, optionally with expiration
 |===
 
+* *Required Headers*:
+** CamelInfinispanKey
+** CamelInfinispanValue
+* *Optional Headers*:
+** CamelInfinispanLifespanTime
+** CamelInfinispanLifespanTimeUnit
+** CamelInfinispanMaxIdleTime
+** CamelInfinispanMaxIdleTimeUnit
+* *Result Header*:
+** CamelInfinispanOperationResult
+
 .Put All Operations
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.PUTALL
-| *Context*: Embedded / Remote
-
-*Description*: Adds multiple entries to a cache, optionally with expiration
-
-*Required Headers*: CamelInfinispanMap
-
-*Optional Headers*: CamelInfinispanLifespanTime, CamelInfinispanLifespanTimeUnit, CamelInfinispanMaxIdleTime, CamelInfinispanMaxIdleTimeUnit
-
-*Result Header*: None
-
-| CamelInfinispanOperation.PUTALLASYNC
-| *Description*: Asynchronously adds multiple entries to a cache, optionally with expiration
-
+| Operation Name | Description
+| InfinispanOperation.PUTALL | Adds multiple entries to a cache, optionally with expiration
+| CamelInfinispanOperation.PUTALLASYNC | Asynchronously adds multiple entries to a cache, optionally with expiration
 |===
 
+* *Required Headers*:
+** CamelInfinispanMap
+* *Optional Headers*:
+** CamelInfinispanLifespanTime
+** CamelInfinispanLifespanTimeUnit
+** CamelInfinispanMaxIdleTime
+** CamelInfinispanMaxIdleTimeUnit
+
 .Get Operations
-[cols="40%,60%", frame="all", options="header"]
+[cols="40%,60%a", frame="all", options="header"]
 |===
-|Operation Name
-|Description
-
-| InfinispanOperation.GET
-| *Context*: Embedded / Remote
-
-*Description*: Retrieves the value associated with a specific key from the cache
-
-*Required Headers*: CamelInfinispanKey
-
-*Optional Headers*: None
-
-*Result Header*: None
-
-| InfinispanOperation.GETORDEFAULT
-| *Context*: Embedded / Remote
-
-*Description*: Retrieves the value, or default value, associated with a specific key from the cache
-
-*Required Headers*: CamelInfinispanKey
-
-*Optional Headers*: None
-
-*Result Header*: None
+|Operation Name |Description
+| InfinispanOperation.GET | Retrieves the value associated with a specific key from the cache
+| InfinispanOperation.GETORDEFAULT | Retrieves the value, or default value, associated with a specific key from the cache
 |===
 
+* *Required Headers*:
+** CamelInfinispanKey
+
 .Contains Key Operation
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.CONTAINSKEY
-| *Context*: Embedded / Remote
-
-*Description*: Determines whether a cache contains a specific key
-
-*Required Headers*: CamelInfinispanKey
-
-*Optional Headers*: None
-
-*Result Header*: CamelInfinispanOperationResult
+| Operation Name | Description
+| InfinispanOperation.CONTAINSKEY | Determines whether a cache contains a specific key
 |===
 
+* *Required Headers*
+** CamelInfinispanKey
+* *Result Header*
+** CamelInfinispanOperationResult
+
 .Contains Value Operation
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
+|===
+| Operation Name | Description
+| InfinispanOperation.CONTAINSVALUE | Determines whether a cache contains a specific value
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.CONTAINSVALUE
-| *Context*: Embedded / Remote
-
-*Description*: Determines whether a cache contains a specific value
-
-*Required Headers*: CamelInfinispanKey
 
-*Optional Headers*: None
+* *Required Headers*:
+** CamelInfinispanKey
 
-*Result Headers*: None
-|===
 
 .Remove Operations
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.REMOVE
-| *Context*: Embedded / Remote
-
-*Description*: Removes an entry from a cache, optionally only if the value matches a given one
-
-*Required Headers*: CamelInfinispanKey
-
-*Optional Headers*: CamelInfinispanValue
-
-*Result Header*: CamelInfinispanOperationResult
-
-| InfinispanOperation.REMOVEASYNC
-| *Description*: Asynchronously removes an entry from a cache, optionally only if the value matches a given one
-
+| Operation Name | Description
+| InfinispanOperation.REMOVE | Removes an entry from a cache, optionally only if the value matches a given one
+| InfinispanOperation.REMOVEASYNC | Asynchronously removes an entry from a cache, optionally only if the value matches a given one
 |===
 
+* *Required Headers*:
+** CamelInfinispanKey
+* *Optional Headers*:
+** CamelInfinispanValue
+* *Result Header*:
+** CamelInfinispanOperationResult
+
 .Replace Operations
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.REPLACE
-| *Context*: Embedded / Remote
-
-*Description*: Conditionally replaces an entry in the cache, optionally with expiration
-
-*Required Headers*: CamelInfinispanKey, CamelInfinispanValue, CamelInfinispanOldValue
-
-*Optional Headers*: CamelInfinispanLifespanTime, CamelInfinispanLifespanTimeUnit, CamelInfinispanMaxIdleTime, CamelInfinispanMaxIdleTimeUnit, CamelInfinispanIgnoreReturnValues
-
-*Result Header*: CamelInfinispanOperationResult
-
-| InfinispanOperation.REPLACEASYNC
-| *Description*: Asynchronously conditionally replaces an entry in the cache, optionally with expiration
-
+| Operation Name | Description
+| InfinispanOperation.REPLACE | Conditionally replaces an entry in the cache, optionally with expiration
+| InfinispanOperation.REPLACEASYNC |  Asynchronously conditionally replaces an entry in the cache, optionally with expiration
 |===
 
+* *Required Headers*:
+** CamelInfinispanKey
+** CamelInfinispanValue
+** CamelInfinispanOldValue
+* *Optional Headers*:
+** CamelInfinispanLifespanTime
+** CamelInfinispanLifespanTimeUnit
+** CamelInfinispanMaxIdleTime
+** CamelInfinispanMaxIdleTimeUnit
+* *Result Header*:
+** CamelInfinispanOperationResult
+
 .Clear Operations
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.CLEAR
-| *Context*: Embedded / Remote
-
-*Description*: Clears the cache
-
-*Required Headers*: None
-
-*Optional Headers*: None
-
-*Result Header*: None
-
-| InfinispanOperation.CLEARASYNC
-| *Context*: Embedded / Remote
-
-*Description*: Asynchronously clears the cache
-
-*Required Headers*: None
-
-*Optional Headers*: None
-
-*Result Header*: None
+| Operation Name | Description
+| InfinispanOperation.CLEAR | Clears the cache
+| InfinispanOperation.CLEARASYNC | Asynchronously clears the cache
 |===
 
 .Size Operation
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.SIZE
-| *Context*: Embedded / Remote
-
-*Description*: Returns the number of entries in the cache
-
-*Required Headers*: None
-
-*Optional Headers*: None
-
-*Result Header*: CamelInfinispanOperationResult
+| Operation Name | Description
+| InfinispanOperation.SIZE | Returns the number of entries in the cache
 |===
 
+* *Result Header*
+** CamelInfinispanOperationResult
+
 .Stats Operation
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.STATS
-| *Context*: Embedded / Remote
-
-*Description*: Returns statistics about the cache
-
-*Required Headers*: None
-
-*Optional Headers*: None
-
-*Result Header*: CamelInfinispanOperationResult
+| Operation Name | Description
+| InfinispanOperation.STATS | Returns statistics about the cache
 |===
 
+* *Result Header*:
+** CamelInfinispanOperationResult
+
 .Query Operation
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.QUERY
-| *Context*: Remote
-
-*Description*: Executes a query on the cache
-
-*Required Headers*: CamelInfinispanQueryBuilder
-
-*Optional Headers*: None
-
-*Result Header*: CamelInfinispanOperationResult
+| Operation Name | Description
+| InfinispanOperation.QUERY | Executes a query on the cache
 |===
 
+* *Required Headers*:
+** CamelInfinispanQueryBuilder
+* *Result Header*:
+** CamelInfinispanOperationResult
+
 [NOTE]
 ====
-Any operations that take `CamelInfinispanIgnoreReturnValues` will receive a null result.
+Write methods like put(key, value) and remove(key) do not return the previous value by default.
 ====
 
-
-
 == Message Headers
 
 [width="100%",cols="10%,10%,10%,10%,60%",options="header",]
@@ -405,439 +303,188 @@ Any operations that take `CamelInfinispanIgnoreReturnValues` will receive a null
 |CamelInfinispanMap |`null` |Map |Producer |A Map to use in case of CamelInfinispanOperationPutAll operation
 |CamelInfinispanKey |`null` |Object |Shared |The key to perform the operation to or the key generating the event.
 |CamelInfinispanValue |`null` |Object |Producer |The value to use for the operation.
-|CamelInfinispanEventType |`null` |String |Consumer |The type of the received event. Possible values defined here org.infinispan.notifications.cachelistener.event.Event.Type
-|CamelInfinispanIsPre |`null` |Boolean |Consumer |Infinispan fires two events for each operation: one before and one after the operation.
+|CamelInfinispanEventType |`null` |String |Consumer |The type of the received event.
 |CamelInfinispanLifespanTime |`null` |long |Producer |The Lifespan time of a value inside the cache. Negative values are interpreted as infinity.
 |CamelInfinispanTimeUnit |`null` |String |Producer |The Time Unit of an entry Lifespan Time.
 |CamelInfinispanMaxIdleTime |`null` |long |Producer |The maximum amount of time an entry is allowed to be idle for before it is considered as expired.
 |CamelInfinispanMaxIdleTimeUnit |`null` |String |Producer |The Time Unit of an entry Max Idle Time.
 |CamelInfinispanQueryBuilder |null |InfinispanQueryBuilder |Producer |The QueryBuilde to use for QUERY command, if not present the command defaults to InifinispanConfiguration's one
-|CamelInfinispanIgnoreReturnValues |null |Boolean |Producer |If this header is set, the return value for cache operation returning something is ignored by the client application
 |CamelInfinispanOperationResultHeader |null |String |Producer |Store the operation result in a header instead of the message body
 |=======================================================================
 
-== Examples
-
-* Retrieve a specific key from the default cache using a custom cache container:
-
-[source,java]
-----
-from("direct:start")
-    .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.GET)
-    .setHeader(InfinispanConstants.KEY).constant("123")
-    .to("infinispan?cacheContainer=#cacheContainer");
-----
 
+== Examples
 
 * Put a key/value into a named cache:
 +
 [source,java]
 ----
 from("direct:start")
-    .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.PUT)
-    .setHeader(InfinispanConstants.KEY).constant("123")
-    .to("infinispan:myCacheName");
+    .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.PUT) // <1>
+    .setHeader(InfinispanConstants.KEY).constant("123") // <2>
+    .to("infinispan:myCacheName&cacheContainer=#cacheContainer"); // <3>
 ----
-
-* Put a value with lifespan
-
-[source,java]
+<1> Set the operation to perform
+<2> Set the key used to identify the element in the cache
+<3> Use the configured cache manager `cacheContainer` from the registry to put an element to the cache named `myCacheName`
++
+It is possible to configure the lifetime and/or the idle time before the entry expires and gets evicted from the cache, as example:
++
+[source,java,options="nowrap"]
 ----
 from("direct:start")
     .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.GET)
     .setHeader(InfinispanConstants.KEY).constant("123")
-    .setHeader(InfinispanConstants.LIFESPAN_TIME).constant(100L)
-    .setHeader(InfinispanConstants.LIFESPAN_TIME_UNIT.constant(TimeUnit.MILLISECONDS.toString())
+    .setHeader(InfinispanConstants.LIFESPAN_TIME).constant(100L) // <1>
+    .setHeader(InfinispanConstants.LIFESPAN_TIME_UNIT.constant(TimeUnit.MILLISECONDS.toString()) // <2>
     .to("infinispan:myCacheName");
 ----
+<1> Set the lifespan of the entry
+<2> Set the time unit for the lifespan
 
-* Compute operation through a remapping function on the default cache using a custom cache container:
-
-[source,java]
-----
-@BindToRegistry("mappingFunction")
-BiFunction<String, String, String> comp = (k, v) -> v + "replay";
-
-from("direct:start")
-    .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.COMPUTE)
-    .setHeader(InfinispanConstants.KEY).constant("123")
-    .to("infinispan?cacheContainer=#cacheContainer&remappingFunction=#mappingFunction");
-----
-
-This will return oldValue + "replay".
-
-This can be done also as async operation, with the `InfinispanOperation.COMPUTEASYNC` operation
-
-* Retrieve a specific key from the remote cache using a cache container configuration with additional parameters (host, port and protocol version):
-
-[source,java]
-----
-org.infinispan.client.hotrod.configuration.Configuration cacheContainerConfiguration = new org.infinispan.client.hotrod.configuration.ConfigurationBuilder()
-    .addServer()
-        .host("localhost")
-        .port(9999)
-        .version(org.infinispan.client.hotrod.ProtocolVersion.PROTOCOL_VERSION_25)
-    .build();
-...
-
-from("direct:start")
-    .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.GET)
-    .setHeader(InfinispanConstants.KEY).constant("123")
-    .to("infinispan?cacheContainerConfiguration=#cacheContainerConfiguration");
-----
-
-
-
-=== XML examples
-
-Routing can also be performed using XML configuration.
-The following example demonstrates `camel-infinispan` `local-camel-producer`, a camel route that sends data to an embedded cache created by the `local-cache` module.
-
-[source,java,options="nowrap"]
-----
-<camelContext id="local-producer" xmlns="http://camel.apache.org/schema/blueprint">
-    <route>
-        <from uri="timer://local?fixedRate=true&amp;period=5000"/>
-        <setHeader headerName="CamelInfinispanKey">
-            <constant>CamelTimerCounter</constant>
-        </setHeader>
-        <setHeader headerName="CamelInfinispanValue">
-            <constant>CamelTimerCounter</constant>
-        </setHeader>
-        <to uri="infinispan://foo?cacheContainer=#cacheManager"/>
-        <to uri="log:local-put?showAll=true"/>
-    </route>
-</camelContext>
-----
-
-
-The provided example requires you to instantiate the [class]``cacheManager``.
-
-You can instantiate the [class]``cacheManager`` bean for Spring XML as follows:
-
-[source,xml,options="nowrap"]
-----
-<bean id="cacheManager" class="org.infinispan.manager.DefaultCacheManager" init-method="start" destroy-method="stop">
-    <constructor-arg type="java.lang.String" value="infinispan.xml"/>
-</bean>
-----
-
-
-The following demonstrates how to instantiate the [class]``cacheManager`` bean using Blueprint XML.
-
-[source,xml,options="nowrap"]
-----
-<bean id="cacheManager" class="org.infinispan.manager.DefaultCacheManager" init-method="start" destroy-method="stop">
-    <argument value="infinispan.xml" />
-</bean>
-----
-
-[NOTE]
-====
-Both the Spring XML and Blueprint XML examples use the configuration file [path]_infinispan.xml_
- for configuration of the cache. This file must be present on the classpath.
-====
-
-
-== Remote Query
-
-When executing remote queries the cacheManager must be an instance of ``RemoteCacheManager``, and an example configuration utilizing a `RemoteCacheManager` is found below for both Java and blueprint.xml:
-
-.Using only Java
-====
+* Queries
++
 [source,java,options="nowrap"]
 ----
 from("direct:start")
     .setHeader(InfinispanConstants.OPERATION, InfinispanConstants.QUERY)
-    .setHeader(InfinispanConstants.QUERY_BUILDER,
-      new InfinispanQueryBuilder() {
-        public Query build(QueryFactory<Query> queryFactory) {
-          return queryFactory.from(User.class).having("name").like("%abc%")
-                      .build();
-        }
-      })
-    .to("infinispan://localhost?cacheContainer=#cacheManager&cacheName=remote_query_cache") ;
-----
-====
-
-.Using Blueprint and Java
-====
-.Java [class]``RemoteCacheManagerFactory`` class:
-[source,java,options="nowrap"]
-----
-public class RemoteCacheManagerFactory {
-    ConfigurationBuilder clientBuilder;
-    public RemoteCacheManagerFactory(String hostname, int port) {
-        clientBuilder = new ConfigurationBuilder();
-        clientBuilder.addServer()
-            .host(hostname).port(port);
-    }
-    public RemoteCacheManager newRemoteCacheManager() {
-        return new RemoteCacheManager(clientBuilder.build());
-    }
-}
-----
-.Java [class]``InfinispanQueryExample`` class:
-[source,java,options="nowrap"]
-----
-public class InfinispanQueryExample {
-    public InfinispanQueryBuilder getBuilder() {
-        return new InfinispanQueryBuilder() {
-            public Query build(QueryFactory<Query> queryFactory) {
-                return queryFactory.from(User.class)
-                         .having("name")
-                         .like("%abc%")
-                         .build();
-            }
+    .setHeader(InfinispanConstants.QUERY_BUILDER, new InfinispanQueryBuilder() {
+        @Override
+        public Query build(QueryFactory<Query> qf) {
+            return qf.from(User.class).having("name").like("%abc%").build();
         }
-    }
-}
-----
-.blueprint.xml:
-[source,xml,options="nowrap"]
+    })
+    .to("infinispan:myCacheName?cacheContainer=#cacheManager") ;
 ----
-<bean id=”remoteCacheManagerFactory” class=“com.datagrid.RemoteCacheManagerFactory”>
-    <argument value=”localhost”/>
-    <argument value="11222”/>
-</bean>
-
-<bean id=”cacheManager”
-    factory-ref=”remoteCacheManagerFactory”
-    factory-method=“newRemoteCacheManager”>
-</bean>
-
-<bean id="queryBuilder" class="org.example.com.InfinispanQueryExample"/>
-
-<camelContext id="route" xmlns="http://camel.apache.org/schema/blueprint">
-    <route>
-        <from uri="direct:start"/>
-            <setHeader headerName="CamelInfinispanOperation">
-                <constant>CamelInfinispanOperationQuery</constant>
-            </setHeader>
-            <setHeader headerName="CamelInfinispanQueryBuilder">
-                <method ref="queryBuilder" method="getBuilder"/>
-            </setHeader>
-        <to uri="infinispan://localhost?cacheContainer=#cacheManager&cacheName=remote_query_cache"/>
-    </route>
-</camelContext>
-----
-====
-
-The `remote_query_cache` is an arbitrary name for a cache that holds the data, and the results of the query will be a list of domain objects stored as a `CamelInfinispanOperationResult` header.
-
-In addition, there are the following requirements:
-
-* The [class]``RemoteCacheManager`` must be configured to use [class]``ProtoStreamMarshaller``.
-* The [class]``ProtoStreamMarshaller`` must be registered with the [class]``RemoteCacheManager``'s serialization context.
-* The .proto descriptors for domain objects must be registered with the remote Data Grid server.
-
-
-== Custom Listeners for Embedded Cache
-
-Custom Listeners for an embedded cache can be registered through the [parameter]``customListener`` parameter as shown below:
-
-.Using Java
++
 
+* Custom Listeners
++
 [source,java,options="nowrap"]
 ----
-from("infinispan://?cacheContainer=#myCustomContainer&cacheName=customCacheName&customListener=#myCustomListener")
+from("infinispan://?cacheContainer=#cacheManager&customListener=#myCustomListener")
   .to("mock:result");
 ----
-
-.Using Blueprint
-
-[source,xml,options="nowrap"]
-----
-<bean id="myCustomContainer" org.infinispan.manager.DefaultCacheManager"
-      init-method="start" destroy-method="stop">
-      <argument value="infinispan.xml" />
-</bean>
-
-<bean id="myCustomListener" class="org.example.com.CustomListener"/>
-
-<camelContext id="route" xmlns="http://camel.apache.org/schema/blueprint">
-    <route>
-        <from uri="infinispan://?cacheContainer=#myCustomContainer&cacheName=customCacheName&customListener=#myCustomListener"/>
-        <to uri="mock:result"/>
-    </route>
-</camelContext>
-----
-
-
-The instance of [class]``myCustomListener`` must exist.
-Users are encouraged to extend the [class]``org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedCustomListener`` and annotate the resulting class with the `@Listener` annotation from [package]#org.infinispan.notifications#
-.
-
-[NOTE]
-====
-Custom filters and converters for embedded caches are currently not supported.
-====
++
+The instance of `myCustomListener` must exist and Camel should be able to look it up from the  `Registry`.
+Users are encouraged to extend the `org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedCustomListener` class and annotate the resulting class with `@Listener` which can be found found in package `org.infinispan.notifications`.
 
 
-== Custom Listeners for Remote Cache
+== Using the Infinispan based idempotent repository
 
-Custom listeners for a remote cache can be registered in the same way as an embedded cache, with the exception that [parameter]``sync=false`` must be present.
-For instance:
+In this section we will use the Infinispan based idempotent repository.
 
-.Using only Java
-====
-[source,java,options="nowrap"]
-----
-from(infinispan://?cacheContainer=#cacheManager&sync=false&customListener=#myCustomListener")
-  .to(mock:result);
+.Java Example
+[source,java]
 ----
-====
+InfinispanEmbeddedConfiguration conf = new InfinispanEmbeddedConfiguration(); // <1>
+conf.setConfigurationUri("classpath:infinispan.xml")
 
-.Using Blueprint and Java
-====
-.Java class:
-[source,java,options="nowrap"]
-----
+InfinispanEmbeddedIdempotentRepository repo = new InfinispanEmbeddedIdempotentRepository("idempotent");  // <2>
+repo.setConfiguration(conf);
 
-public class RemoteCacheManagerFactory {
-    ConfigurationBuilder clientBuilder;
-    public RemoteCacheManagerFactory(String hostname, int port) {
-        clientBuilder = new ConfigurationBuilder();
-        clientBuilder.addServer()
-            .host(hostname).port(port);
-    }
-    public RemoteCacheManager newRemoteCacheManager() {
-        return new RemoteCacheManager(clientBuilder.build());
+context.addRoutes(new RouteBuilder() {
+    @Override
+    public void configure() {
+        from("direct:start")
+            .idempotentConsumer(header("MessageID"), repo) // <3>
+            .to("mock:result");
     }
-}
+});
 ----
-.blueprint.xml:
-[source,xml,options="nowrap"]
-----
-<bean id=”remoteCacheManagerFactory” class=“com.datagrid.RemoteCacheManagerFactory”>
-    <argument value=”localhost”/>
-    <argument value="11222”/>
-</bean>
+<1> Configure the cache
+<2> Configure the repository bean
+<3> Set the repository to the route
 
-<bean id=”cacheManager”
-    factory-ref=”remoteCacheManagerFactory”
-    factory-method=“newRemoteCacheManager”>
+.XML Example
+[source,xml]
+----
+<bean id="infinispanRepo" class="org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedIdempotentRepository" destroy-method="stop">
+  <constructor-arg value="idempotent"/> <1>
+  <property name="configuration"> <2>
+    <bean class="org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration">
+      <property name="configurationUrl" value="classpath:infinispan.xml"/>
+    </bean>
+  </property>
 </bean>
 
-<bean id="myCustomListener" class="org.example.com.CustomListener"/>
-
-<camelContext id="route" xmlns="http://camel.apache.org/schema/blueprint">
+<camelContext xmlns="http://camel.apache.org/schema/spring">
     <route>
-        <from uri="infinispan://?cacheContainer=#cacheManager&sync=false&customListener=#myCustomListener"/>
-        <to uri="mock:result"/>
+        <from uri="direct:start" />
+        <idempotentConsumer messageIdRepositoryRef="infinispanRepo"> <3>
+            <header>MessageID</header>
+            <to uri="mock:result" />
+        </idempotentConsumer>
     </route>
 </camelContext>
 ----
-====
+<1> Set the name of the cache that will be used by the repository
+<2> Configure the repository bean
+<3> Set the repository to the route
 
-The instance of [class]``myCustomListener`` must exist.
-Users are encouraged to extend the [class]``org.apache.camel.component.infinispan.remote.InfinispanRemoteCustomListener`` class and annotate the resulting class with ``@ClientListener``; this annotation is found in [package]#org.infinispan.client.hotrod.annotation#
-.
+== Using the Infinispan based aggregation repository
 
-Remote listeners may also be associated with custom filters and converters as shown below:
-[source,java,options="nowrap"]
-----
-@ClientListener(includeCurrentState=true, filterFactoryName = "static-filter-factory", converterFactoryName = "static-converter-factory")
-  private static class MyCustomListener extends InfinispanRemoteCustomListener {
-}
-----
+In this section we will use the Infinispan based aggregation repository.
 
-In order to use custom filters or converters classes annotated with `@NamedFactory` must be implemented.
-A skeleton that implements the necessary methods is shown below:
-[source,java,options="nowrap"]
+.Java Example
+[source,java]
 ----
-import org.infinispan.notifications.cachelistener.filter;
-
-@NamedFactory(name = "static-converter-factory")
-public static class StaticConverterFactory implements CacheEventConverterFactory {
-  @Override
-  public CacheEventConverter<Integer, String, CustomEvent> getConverter(Object[] params) {
-    ...
-  }
-
-  static class StaticConverter implements CacheEventConverter<Integer, String, CustomEvent>, Serializable {
-    @Override
-    public CustomEvent convert(Integer key, String previousValue, Metadata previousMetadata,
-                               String value, Metadata metadata, EventType eventType) {
-      ...
-    }
-  }
-}
+InfinispanEmbeddedConfiguration conf = new InfinispanEmbeddedConfiguration(); // <1>
+conf.setConfigurationUri("classpath:infinispan.xml")
 
-@NamedFactory(name = "static-filter-factory")
-public static class StaticCacheEventFilterFactory implements CacheEventFilterFactory {
-  @Override
-  public CacheEventFilter<Integer, String> getFilter(final Object[] params) {
-    ...
-  }
+InfinispanEmbeddedAggregationRepository repo = new InfinispanEmbeddedAggregationRepository("aggregation");  // <2>
+repo.setConfiguration(conf);
 
-  static class StaticCacheEventFilter implements CacheEventFilter<Integer, String>, Serializable {
+context.addRoutes(new RouteBuilder() {
     @Override
-    public boolean accept(Integer key, String previousValue, Metadata previousMetadata,
-                          String value, Metadata metadata, EventType eventType) {
-      ...
+    public void configure() {
+        from("direct:start")
+                .aggregate(header("MessageID"))
+                .completionSize(3)
+                .aggregationRepository(repo) // <3>
+                .aggregationStrategyRef("myStrategy")
+                .to("mock:result");
     }
-  }
-}
-----
-
-Custom filters and converters must be registered with the server.
-.
-
-[NOTE]
-====
-In order to listen for remote HotRod events the cacheManager must be of type [class]``RemoteCacheManager`` and instantiated.
-====
-
-[NOTE]
-====
-With the release of Infinispan 11, it is required to set the encoding configuration on any cache created. This is critical for consuming events too.
-For more information have a look at https://infinispan.org/docs/stable/titles/developing/developing.html#data_encoding[Data Encoding and MediaTypes] in the official Infinispan documentation.
-====
-
-== Using the Infinispan based idempotent repository
-
-In this section we will use the Infinispan based idempotent repository.
-
-First, we need to create a cacheManager and then configure our
-
-[source,java]
-----
-org.apache.camel.component.infinispan.processor.idempotent.InfinispanIdempotentRepository:
+});
 ----
+<1> Configure the cache
+<2> Create the repository bean
+<3> Set the repository to the route
 
+.XML Example
 [source,xml]
 ----
-<!-- set up the cache manager -->
-<bean id="cacheManager"
-      class="org.infinispan.manager.DefaultCacheManager"
-      init-method="start"
-      destroy-method="stop"/>
-
-<!-- set up the repository -->
-<bean id="infinispanRepo"
-      class="org.apache.camel.component.infinispan.InfinispanIdempotentRepository"
-      factory-method="infinispanIdempotentRepository">
-    <argument ref="cacheManager"/>
-    <argument value="idempotent"/>
+<bean id="infinispanRepo" class="org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedAggregationRepository" destroy-method="stop">
+  <constructor-arg value="aggregation"/> <1>
+  <property name="configuration"> <2>
+    <bean class="org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration">
+      <property name="configurationUrl" value="classpath:infinispan.xml"/>
+    </bean>
+  </property>
 </bean>
-----
-
-Then we can create our Infinispan idempotent repository in the spring
-XML file as well:
 
-[source,xml]
-----
 <camelContext xmlns="http://camel.apache.org/schema/spring">
-    <route id="JpaMessageIdRepositoryTest">
+    <route>
         <from uri="direct:start" />
-        <idempotentConsumer messageIdRepositoryRef="infinispanStore">
-            <header>messageId</header>
-            <to uri="mock:result" />
-        </idempotentConsumer>
+        <aggregate strategyRef="myStrategy"
+                   completionSize="3"
+                   aggregationRepositoryRef="infinispanRepo"> <3>
+            <correlationExpression>
+                <header>MessageID</header>
+            </correlationExpression>
+            <to uri="mock:result"/>
+        </aggregate>
     </route>
 </camelContext>
 ----
+<1> Set the name of the cache that will be used by the repository
+<2> Configure the repository bean
+<3> Set the repository to the route
 
+[NOTE]
+====
+With the release of Infinispan 11, it is required to set the encoding configuration on any cache created. This is critical for consuming events too.
+For more information have a look at https://infinispan.org/docs/stable/titles/developing/developing.html#data_encoding[Data Encoding and MediaTypes] in the official Infinispan documentation.
+====
 
-include::camel-spring-boot::page$infinispan-starter.adoc[]
+include::camel-spring-boot::page$infinispan-embedded-starter.adoc[]
diff --git a/components/camel-infinispan/camel-infinispan-embedded/src/generated/resources/org/apache/camel/component/infinispan/embedded/infinispan-embedded.json b/components/camel-infinispan/camel-infinispan-embedded/src/generated/resources/org/apache/camel/component/infinispan/embedded/infinispan-embedded.json
index 63daf90..ee9887f 100644
--- a/components/camel-infinispan/camel-infinispan-embedded/src/generated/resources/org/apache/camel/component/infinispan/embedded/infinispan-embedded.json
+++ b/components/camel-infinispan/camel-infinispan-embedded/src/generated/resources/org/apache/camel/component/infinispan/embedded/infinispan-embedded.json
@@ -37,9 +37,9 @@
     "value": { "kind": "property", "displayName": "Value", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration", "configurationField": "configuration", "description": "Set a specific value for producer operations" },
     "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
     "cacheContainer": { "kind": "property", "displayName": "Cache Container", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.infinispan.manager.EmbeddedCacheManager", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration", "configurationField": "configuration", "description": "Specifies the cache Container to connect" },
-    "cacheContainerConfiguration": { "kind": "property", "displayName": "Cache Container Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.infinispan.configuration.cache.Configuration", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration", "configurationField": "configuration", "description": "The C [...]
+    "cacheContainerConfiguration": { "kind": "property", "displayName": "Cache Container Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.infinispan.configuration.cache.Configuration", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration", "configurationField": "configuration", "description": "The C [...]
     "configurationUri": { "kind": "property", "displayName": "Configuration Uri", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration", "configurationField": "configuration", "description": "An implementation specific URI for the CacheManager" },
-    "flags": { "kind": "property", "displayName": "Flags", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration", "configurationField": "configuration", "description": "A comma separated list of Flag to be applied by default on each cache invocation, not applicable to remot [...]
+    "flags": { "kind": "property", "displayName": "Flags", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration", "configurationField": "configuration", "description": "A comma separated list of org.infinispan.context.Flag to be applied by default on each cache invocation" },
     "remappingFunction": { "kind": "property", "displayName": "Remapping Function", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.function.BiFunction", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration", "configurationField": "configuration", "description": "Set a specific remappingFunction to use in a compute operation." },
     "resultHeader": { "kind": "property", "displayName": "Result Header", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration", "configurationField": "configuration", "description": "Store the operation result in a header instead of the message body. By default, resultHead [...]
   },
@@ -60,9 +60,9 @@
     "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.infinispan.InfinispanOperation", "enum": [ "PUT", "PUTASYNC", "PUTALL", "PUTALLASYNC", "PUTIFABSENT", "PUTIFABSENTASYNC", "GET", "GETORDEFAULT", "CONTAINSKEY", "CONTAINSVALUE", "REMOVE", "REMOVEASYNC", "REPLACE", "REPLACEASYNC", "SIZE", "CLEAR", "CLEARASYNC", "QUERY", "STATS", "COMPUTE", "COMPUTEASYNC" ] [...]
     "value": { "kind": "parameter", "displayName": "Value", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration", "configurationField": "configuration", "description": "Set a specific value for producer operations" },
     "cacheContainer": { "kind": "parameter", "displayName": "Cache Container", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.infinispan.manager.EmbeddedCacheManager", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration", "configurationField": "configuration", "description": "Specifies the cache Container to con [...]
-    "cacheContainerConfiguration": { "kind": "parameter", "displayName": "Cache Container Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.infinispan.configuration.cache.Configuration", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration", "configurationField": "configuration", "description": "The  [...]
+    "cacheContainerConfiguration": { "kind": "parameter", "displayName": "Cache Container Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.infinispan.configuration.cache.Configuration", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration", "configurationField": "configuration", "description": "The  [...]
     "configurationUri": { "kind": "parameter", "displayName": "Configuration Uri", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration", "configurationField": "configuration", "description": "An implementation specific URI for the CacheManager" },
-    "flags": { "kind": "parameter", "displayName": "Flags", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration", "configurationField": "configuration", "description": "A comma separated list of Flag to be applied by default on each cache invocation, not applicable to remo [...]
+    "flags": { "kind": "parameter", "displayName": "Flags", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration", "configurationField": "configuration", "description": "A comma separated list of org.infinispan.context.Flag to be applied by default on each cache invocation" },
     "remappingFunction": { "kind": "parameter", "displayName": "Remapping Function", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.function.BiFunction", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration", "configurationField": "configuration", "description": "Set a specific remappingFunction to use in a compute operation." },
     "resultHeader": { "kind": "parameter", "displayName": "Result Header", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration", "configurationField": "configuration", "description": "Store the operation result in a header instead of the message body. By default, resultHea [...]
   }
diff --git a/components/camel-infinispan/camel-infinispan-embedded/src/main/docs/infinispan-embedded-component.adoc b/components/camel-infinispan/camel-infinispan-embedded/src/main/docs/infinispan-embedded-component.adoc
index 3b2f7f3..164a7ae 100644
--- a/components/camel-infinispan/camel-infinispan-embedded/src/main/docs/infinispan-embedded-component.adoc
+++ b/components/camel-infinispan/camel-infinispan-embedded/src/main/docs/infinispan-embedded-component.adoc
@@ -19,7 +19,7 @@ store and data grid platform written in Java.
 
 Infinispan requires at least Java 8.
 
-The `camel-infinispan` component includes the following features:
+The `camel-infinispan-embedded` component includes the following features:
 
 * *Local Camel Consumer* - Receives cache change notifications and sends them to be processed.
 This can be done synchronously or asynchronously, and is also supported with a replicated or distributed cache.
@@ -51,14 +51,11 @@ infinispan-embedded://cacheName?[options]
 
 == URI Options
 
-The producer allows sending messages to a local infinispan cache
-configured in the registry, or to a remote cache using the HotRod
-protocol. The consumer allows listening for events from local infinispan cache
-accessible from the registry.
+The producer allows sending messages to a local infinispan cache.
+The consumer allows listening for events from local infinispan cache.
 
 If no cache configuration is provided, embedded cacheContainer is created directly in the component.
 
-
 // component options: START
 The Infinispan Embedded component supports 20 options, which are listed below.
 
@@ -82,9 +79,9 @@ The Infinispan Embedded component supports 20 options, which are listed below.
 | *value* (producer) | Set a specific value for producer operations |  | Object
 | *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
 | *cacheContainer* (advanced) | *Autowired* Specifies the cache Container to connect |  | EmbeddedCacheManager
-| *cacheContainerConfiguration* (advanced) | *Autowired* The CacheContainer configuration. Uses if the cacheContainer is not defined. Must be the following types: org.infinispan.client.hotrod.configuration.Configuration - for remote cache interaction configuration; org.infinispan.configuration.cache.Configuration - for embedded cache interaction configuration; |  | Configuration
+| *cacheContainerConfiguration* (advanced) | *Autowired* The CacheContainer configuration. Used if the cacheContainer is not defined. |  | Configuration
 | *configurationUri* (advanced) | An implementation specific URI for the CacheManager |  | String
-| *flags* (advanced) | A comma separated list of Flag to be applied by default on each cache invocation, not applicable to remote caches. |  | String
+| *flags* (advanced) | A comma separated list of org.infinispan.context.Flag to be applied by default on each cache invocation |  | String
 | *remappingFunction* (advanced) | Set a specific remappingFunction to use in a compute operation. |  | BiFunction
 | *resultHeader* (advanced) | Store the operation result in a header instead of the message body. By default, resultHeader == null and the query result is stored in the message body, any existing content in the message body is discarded. If resultHeader is set, the value is used as the name of the header to store the query result and the original message body is preserved. This value can be overridden by an in message header named: CamelInfinispanOperationResultHeader |  | String
 |===
@@ -133,268 +130,169 @@ with the following path and query parameters:
 | *operation* (producer) | The operation to perform. There are 21 enums and the value can be one of: PUT, PUTASYNC, PUTALL, PUTALLASYNC, PUTIFABSENT, PUTIFABSENTASYNC, GET, GETORDEFAULT, CONTAINSKEY, CONTAINSVALUE, REMOVE, REMOVEASYNC, REPLACE, REPLACEASYNC, SIZE, CLEAR, CLEARASYNC, QUERY, STATS, COMPUTE, COMPUTEASYNC | PUT | InfinispanOperation
 | *value* (producer) | Set a specific value for producer operations |  | Object
 | *cacheContainer* (advanced) | *Autowired* Specifies the cache Container to connect |  | EmbeddedCacheManager
-| *cacheContainerConfiguration* (advanced) | *Autowired* The CacheContainer configuration. Uses if the cacheContainer is not defined. Must be the following types: org.infinispan.client.hotrod.configuration.Configuration - for remote cache interaction configuration; org.infinispan.configuration.cache.Configuration - for embedded cache interaction configuration; |  | Configuration
+| *cacheContainerConfiguration* (advanced) | *Autowired* The CacheContainer configuration. Used if the cacheContainer is not defined. |  | Configuration
 | *configurationUri* (advanced) | An implementation specific URI for the CacheManager |  | String
-| *flags* (advanced) | A comma separated list of Flag to be applied by default on each cache invocation, not applicable to remote caches. |  | String
+| *flags* (advanced) | A comma separated list of org.infinispan.context.Flag to be applied by default on each cache invocation |  | String
 | *remappingFunction* (advanced) | Set a specific remappingFunction to use in a compute operation. |  | BiFunction
 | *resultHeader* (advanced) | Store the operation result in a header instead of the message body. By default, resultHeader == null and the query result is stored in the message body, any existing content in the message body is discarded. If resultHeader is set, the value is used as the name of the header to store the query result and the original message body is preserved. This value can be overridden by an in message header named: CamelInfinispanOperationResultHeader |  | String
 |===
 // endpoint options: END
 
+
 == Camel Operations
 This section lists all available operations, along with their header information.
 
 .Put Operations
-[cols="40%,60%", frame="all", options="header"]
+[cols="40%,60%a", frame="all", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.PUT
-| *Context*: Embedded / Remote
-
-*Description*: Puts a key/value pair in the cache, optionally with expiration
-
-*Required Headers*: CamelInfinispanKey, CamelInfinispanValue
-
-*Optional Headers*: CamelInfinispanLifespanTime, CamelInfinispanLifespanTimeUnit, CamelInfinispanMaxIdleTime, CamelInfinispanMaxIdleTimeUnit, CamelInfinispanIgnoreReturnValues
-
-*Result Header*: CamelInfinispanOperationResult
-
-| InfinispanOperation.PUTASYNC
-| *Description*: Asynchronously puts a key/value pair in the cache, optionally with expiration
-
-
-| InfinispanOperation.PUTIFABSENT
-| *Description*: Puts a key/value pair in the cache if it did not exist, optionally with expiration
-
-
-| InfinispanOperation.PUTIFABSENTASYNC
-| *Description*: Asynchronously puts a key/value pair in the cache if it did not exist, optionally with expiration
-
+| Operation Name | Description
+| InfinispanOperation.PUT | Puts a key/value pair in the cache, optionally with expiration
+| InfinispanOperation.PUTASYNC | Asynchronously puts a key/value pair in the cache, optionally with expiration
+| InfinispanOperation.PUTIFABSENT | Puts a key/value pair in the cache if it did not exist, optionally with expiration
+| InfinispanOperation.PUTIFABSENTASYNC | Asynchronously puts a key/value pair in the cache if it did not exist, optionally with expiration
 |===
 
+* *Required Headers*:
+** CamelInfinispanKey
+** CamelInfinispanValue
+* *Optional Headers*:
+** CamelInfinispanLifespanTime
+** CamelInfinispanLifespanTimeUnit
+** CamelInfinispanMaxIdleTime
+** CamelInfinispanMaxIdleTimeUnit
+* *Result Header*:
+** CamelInfinispanOperationResult
+
 .Put All Operations
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.PUTALL
-| *Context*: Embedded / Remote
-
-*Description*: Adds multiple entries to a cache, optionally with expiration
-
-*Required Headers*: CamelInfinispanMap
-
-*Optional Headers*: CamelInfinispanLifespanTime, CamelInfinispanLifespanTimeUnit, CamelInfinispanMaxIdleTime, CamelInfinispanMaxIdleTimeUnit
-
-*Result Header*: None
-
-| CamelInfinispanOperation.PUTALLASYNC
-| *Description*: Asynchronously adds multiple entries to a cache, optionally with expiration
-
+| Operation Name | Description
+| InfinispanOperation.PUTALL | Adds multiple entries to a cache, optionally with expiration
+| CamelInfinispanOperation.PUTALLASYNC | Asynchronously adds multiple entries to a cache, optionally with expiration
 |===
 
+* *Required Headers*:
+** CamelInfinispanMap
+* *Optional Headers*:
+** CamelInfinispanLifespanTime
+** CamelInfinispanLifespanTimeUnit
+** CamelInfinispanMaxIdleTime
+** CamelInfinispanMaxIdleTimeUnit
+
 .Get Operations
-[cols="40%,60%", frame="all", options="header"]
+[cols="40%,60%a", frame="all", options="header"]
 |===
-|Operation Name
-|Description
-
-| InfinispanOperation.GET
-| *Context*: Embedded / Remote
-
-*Description*: Retrieves the value associated with a specific key from the cache
-
-*Required Headers*: CamelInfinispanKey
-
-*Optional Headers*: None
-
-*Result Header*: None
-
-| InfinispanOperation.GETORDEFAULT
-| *Context*: Embedded / Remote
-
-*Description*: Retrieves the value, or default value, associated with a specific key from the cache
-
-*Required Headers*: CamelInfinispanKey
-
-*Optional Headers*: None
-
-*Result Header*: None
+|Operation Name |Description
+| InfinispanOperation.GET | Retrieves the value associated with a specific key from the cache
+| InfinispanOperation.GETORDEFAULT | Retrieves the value, or default value, associated with a specific key from the cache
 |===
 
+* *Required Headers*:
+** CamelInfinispanKey
+
 .Contains Key Operation
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.CONTAINSKEY
-| *Context*: Embedded / Remote
-
-*Description*: Determines whether a cache contains a specific key
-
-*Required Headers*: CamelInfinispanKey
-
-*Optional Headers*: None
-
-*Result Header*: CamelInfinispanOperationResult
+| Operation Name | Description
+| InfinispanOperation.CONTAINSKEY | Determines whether a cache contains a specific key
 |===
 
+* *Required Headers*
+** CamelInfinispanKey
+* *Result Header*
+** CamelInfinispanOperationResult
+
 .Contains Value Operation
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
+|===
+| Operation Name | Description
+| InfinispanOperation.CONTAINSVALUE | Determines whether a cache contains a specific value
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.CONTAINSVALUE
-| *Context*: Embedded / Remote
-
-*Description*: Determines whether a cache contains a specific value
-
-*Required Headers*: CamelInfinispanKey
 
-*Optional Headers*: None
+* *Required Headers*:
+** CamelInfinispanKey
 
-*Result Headers*: None
-|===
 
 .Remove Operations
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.REMOVE
-| *Context*: Embedded / Remote
-
-*Description*: Removes an entry from a cache, optionally only if the value matches a given one
-
-*Required Headers*: CamelInfinispanKey
-
-*Optional Headers*: CamelInfinispanValue
-
-*Result Header*: CamelInfinispanOperationResult
-
-| InfinispanOperation.REMOVEASYNC
-| *Description*: Asynchronously removes an entry from a cache, optionally only if the value matches a given one
-
+| Operation Name | Description
+| InfinispanOperation.REMOVE | Removes an entry from a cache, optionally only if the value matches a given one
+| InfinispanOperation.REMOVEASYNC | Asynchronously removes an entry from a cache, optionally only if the value matches a given one
 |===
 
+* *Required Headers*:
+** CamelInfinispanKey
+* *Optional Headers*:
+** CamelInfinispanValue
+* *Result Header*:
+** CamelInfinispanOperationResult
+
 .Replace Operations
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.REPLACE
-| *Context*: Embedded / Remote
-
-*Description*: Conditionally replaces an entry in the cache, optionally with expiration
-
-*Required Headers*: CamelInfinispanKey, CamelInfinispanValue, CamelInfinispanOldValue
-
-*Optional Headers*: CamelInfinispanLifespanTime, CamelInfinispanLifespanTimeUnit, CamelInfinispanMaxIdleTime, CamelInfinispanMaxIdleTimeUnit, CamelInfinispanIgnoreReturnValues
-
-*Result Header*: CamelInfinispanOperationResult
-
-| InfinispanOperation.REPLACEASYNC
-| *Description*: Asynchronously conditionally replaces an entry in the cache, optionally with expiration
-
+| Operation Name | Description
+| InfinispanOperation.REPLACE | Conditionally replaces an entry in the cache, optionally with expiration
+| InfinispanOperation.REPLACEASYNC |  Asynchronously conditionally replaces an entry in the cache, optionally with expiration
 |===
 
+* *Required Headers*:
+** CamelInfinispanKey
+** CamelInfinispanValue
+** CamelInfinispanOldValue
+* *Optional Headers*:
+** CamelInfinispanLifespanTime
+** CamelInfinispanLifespanTimeUnit
+** CamelInfinispanMaxIdleTime
+** CamelInfinispanMaxIdleTimeUnit
+* *Result Header*:
+** CamelInfinispanOperationResult
+
 .Clear Operations
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.CLEAR
-| *Context*: Embedded / Remote
-
-*Description*: Clears the cache
-
-*Required Headers*: None
-
-*Optional Headers*: None
-
-*Result Header*: None
-
-| InfinispanOperation.CLEARASYNC
-| *Context*: Embedded / Remote
-
-*Description*: Asynchronously clears the cache
-
-*Required Headers*: None
-
-*Optional Headers*: None
-
-*Result Header*: None
+| Operation Name | Description
+| InfinispanOperation.CLEAR | Clears the cache
+| InfinispanOperation.CLEARASYNC | Asynchronously clears the cache
 |===
 
 .Size Operation
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.SIZE
-| *Context*: Embedded / Remote
-
-*Description*: Returns the number of entries in the cache
-
-*Required Headers*: None
-
-*Optional Headers*: None
-
-*Result Header*: CamelInfinispanOperationResult
+| Operation Name | Description
+| InfinispanOperation.SIZE | Returns the number of entries in the cache
 |===
 
+* *Result Header*
+** CamelInfinispanOperationResult
+
 .Stats Operation
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.STATS
-| *Context*: Embedded / Remote
-
-*Description*: Returns statistics about the cache
-
-*Required Headers*: None
-
-*Optional Headers*: None
-
-*Result Header*: CamelInfinispanOperationResult
+| Operation Name | Description
+| InfinispanOperation.STATS | Returns statistics about the cache
 |===
 
+* *Result Header*:
+** CamelInfinispanOperationResult
+
 .Query Operation
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.QUERY
-| *Context*: Remote
-
-*Description*: Executes a query on the cache
-
-*Required Headers*: CamelInfinispanQueryBuilder
-
-*Optional Headers*: None
-
-*Result Header*: CamelInfinispanOperationResult
+| Operation Name | Description
+| InfinispanOperation.QUERY | Executes a query on the cache
 |===
 
+* *Required Headers*:
+** CamelInfinispanQueryBuilder
+* *Result Header*:
+** CamelInfinispanOperationResult
+
 [NOTE]
 ====
-Any operations that take `CamelInfinispanIgnoreReturnValues` will receive a null result.
+Write methods like put(key, value) and remove(key) do not return the previous value by default.
 ====
 
-
-
 == Message Headers
 
 [width="100%",cols="10%,10%,10%,10%,60%",options="header",]
@@ -405,439 +303,188 @@ Any operations that take `CamelInfinispanIgnoreReturnValues` will receive a null
 |CamelInfinispanMap |`null` |Map |Producer |A Map to use in case of CamelInfinispanOperationPutAll operation
 |CamelInfinispanKey |`null` |Object |Shared |The key to perform the operation to or the key generating the event.
 |CamelInfinispanValue |`null` |Object |Producer |The value to use for the operation.
-|CamelInfinispanEventType |`null` |String |Consumer |The type of the received event. Possible values defined here org.infinispan.notifications.cachelistener.event.Event.Type
-|CamelInfinispanIsPre |`null` |Boolean |Consumer |Infinispan fires two events for each operation: one before and one after the operation.
+|CamelInfinispanEventType |`null` |String |Consumer |The type of the received event.
 |CamelInfinispanLifespanTime |`null` |long |Producer |The Lifespan time of a value inside the cache. Negative values are interpreted as infinity.
 |CamelInfinispanTimeUnit |`null` |String |Producer |The Time Unit of an entry Lifespan Time.
 |CamelInfinispanMaxIdleTime |`null` |long |Producer |The maximum amount of time an entry is allowed to be idle for before it is considered as expired.
 |CamelInfinispanMaxIdleTimeUnit |`null` |String |Producer |The Time Unit of an entry Max Idle Time.
 |CamelInfinispanQueryBuilder |null |InfinispanQueryBuilder |Producer |The QueryBuilde to use for QUERY command, if not present the command defaults to InifinispanConfiguration's one
-|CamelInfinispanIgnoreReturnValues |null |Boolean |Producer |If this header is set, the return value for cache operation returning something is ignored by the client application
 |CamelInfinispanOperationResultHeader |null |String |Producer |Store the operation result in a header instead of the message body
 |=======================================================================
 
-== Examples
-
-* Retrieve a specific key from the default cache using a custom cache container:
-
-[source,java]
-----
-from("direct:start")
-    .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.GET)
-    .setHeader(InfinispanConstants.KEY).constant("123")
-    .to("infinispan?cacheContainer=#cacheContainer");
-----
 
+== Examples
 
 * Put a key/value into a named cache:
 +
 [source,java]
 ----
 from("direct:start")
-    .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.PUT)
-    .setHeader(InfinispanConstants.KEY).constant("123")
-    .to("infinispan:myCacheName");
+    .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.PUT) // <1>
+    .setHeader(InfinispanConstants.KEY).constant("123") // <2>
+    .to("infinispan:myCacheName&cacheContainer=#cacheContainer"); // <3>
 ----
-
-* Put a value with lifespan
-
-[source,java]
+<1> Set the operation to perform
+<2> Set the key used to identify the element in the cache
+<3> Use the configured cache manager `cacheContainer` from the registry to put an element to the cache named `myCacheName`
++
+It is possible to configure the lifetime and/or the idle time before the entry expires and gets evicted from the cache, as example:
++
+[source,java,options="nowrap"]
 ----
 from("direct:start")
     .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.GET)
     .setHeader(InfinispanConstants.KEY).constant("123")
-    .setHeader(InfinispanConstants.LIFESPAN_TIME).constant(100L)
-    .setHeader(InfinispanConstants.LIFESPAN_TIME_UNIT.constant(TimeUnit.MILLISECONDS.toString())
+    .setHeader(InfinispanConstants.LIFESPAN_TIME).constant(100L) // <1>
+    .setHeader(InfinispanConstants.LIFESPAN_TIME_UNIT.constant(TimeUnit.MILLISECONDS.toString()) // <2>
     .to("infinispan:myCacheName");
 ----
+<1> Set the lifespan of the entry
+<2> Set the time unit for the lifespan
 
-* Compute operation through a remapping function on the default cache using a custom cache container:
-
-[source,java]
-----
-@BindToRegistry("mappingFunction")
-BiFunction<String, String, String> comp = (k, v) -> v + "replay";
-
-from("direct:start")
-    .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.COMPUTE)
-    .setHeader(InfinispanConstants.KEY).constant("123")
-    .to("infinispan?cacheContainer=#cacheContainer&remappingFunction=#mappingFunction");
-----
-
-This will return oldValue + "replay".
-
-This can be done also as async operation, with the `InfinispanOperation.COMPUTEASYNC` operation
-
-* Retrieve a specific key from the remote cache using a cache container configuration with additional parameters (host, port and protocol version):
-
-[source,java]
-----
-org.infinispan.client.hotrod.configuration.Configuration cacheContainerConfiguration = new org.infinispan.client.hotrod.configuration.ConfigurationBuilder()
-    .addServer()
-        .host("localhost")
-        .port(9999)
-        .version(org.infinispan.client.hotrod.ProtocolVersion.PROTOCOL_VERSION_25)
-    .build();
-...
-
-from("direct:start")
-    .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.GET)
-    .setHeader(InfinispanConstants.KEY).constant("123")
-    .to("infinispan?cacheContainerConfiguration=#cacheContainerConfiguration");
-----
-
-
-
-=== XML examples
-
-Routing can also be performed using XML configuration.
-The following example demonstrates `camel-infinispan` `local-camel-producer`, a camel route that sends data to an embedded cache created by the `local-cache` module.
-
-[source,java,options="nowrap"]
-----
-<camelContext id="local-producer" xmlns="http://camel.apache.org/schema/blueprint">
-    <route>
-        <from uri="timer://local?fixedRate=true&amp;period=5000"/>
-        <setHeader headerName="CamelInfinispanKey">
-            <constant>CamelTimerCounter</constant>
-        </setHeader>
-        <setHeader headerName="CamelInfinispanValue">
-            <constant>CamelTimerCounter</constant>
-        </setHeader>
-        <to uri="infinispan://foo?cacheContainer=#cacheManager"/>
-        <to uri="log:local-put?showAll=true"/>
-    </route>
-</camelContext>
-----
-
-
-The provided example requires you to instantiate the [class]``cacheManager``.
-
-You can instantiate the [class]``cacheManager`` bean for Spring XML as follows:
-
-[source,xml,options="nowrap"]
-----
-<bean id="cacheManager" class="org.infinispan.manager.DefaultCacheManager" init-method="start" destroy-method="stop">
-    <constructor-arg type="java.lang.String" value="infinispan.xml"/>
-</bean>
-----
-
-
-The following demonstrates how to instantiate the [class]``cacheManager`` bean using Blueprint XML.
-
-[source,xml,options="nowrap"]
-----
-<bean id="cacheManager" class="org.infinispan.manager.DefaultCacheManager" init-method="start" destroy-method="stop">
-    <argument value="infinispan.xml" />
-</bean>
-----
-
-[NOTE]
-====
-Both the Spring XML and Blueprint XML examples use the configuration file [path]_infinispan.xml_
- for configuration of the cache. This file must be present on the classpath.
-====
-
-
-== Remote Query
-
-When executing remote queries the cacheManager must be an instance of ``RemoteCacheManager``, and an example configuration utilizing a `RemoteCacheManager` is found below for both Java and blueprint.xml:
-
-.Using only Java
-====
+* Queries
++
 [source,java,options="nowrap"]
 ----
 from("direct:start")
     .setHeader(InfinispanConstants.OPERATION, InfinispanConstants.QUERY)
-    .setHeader(InfinispanConstants.QUERY_BUILDER,
-      new InfinispanQueryBuilder() {
-        public Query build(QueryFactory<Query> queryFactory) {
-          return queryFactory.from(User.class).having("name").like("%abc%")
-                      .build();
-        }
-      })
-    .to("infinispan://localhost?cacheContainer=#cacheManager&cacheName=remote_query_cache") ;
-----
-====
-
-.Using Blueprint and Java
-====
-.Java [class]``RemoteCacheManagerFactory`` class:
-[source,java,options="nowrap"]
-----
-public class RemoteCacheManagerFactory {
-    ConfigurationBuilder clientBuilder;
-    public RemoteCacheManagerFactory(String hostname, int port) {
-        clientBuilder = new ConfigurationBuilder();
-        clientBuilder.addServer()
-            .host(hostname).port(port);
-    }
-    public RemoteCacheManager newRemoteCacheManager() {
-        return new RemoteCacheManager(clientBuilder.build());
-    }
-}
-----
-.Java [class]``InfinispanQueryExample`` class:
-[source,java,options="nowrap"]
-----
-public class InfinispanQueryExample {
-    public InfinispanQueryBuilder getBuilder() {
-        return new InfinispanQueryBuilder() {
-            public Query build(QueryFactory<Query> queryFactory) {
-                return queryFactory.from(User.class)
-                         .having("name")
-                         .like("%abc%")
-                         .build();
-            }
+    .setHeader(InfinispanConstants.QUERY_BUILDER, new InfinispanQueryBuilder() {
+        @Override
+        public Query build(QueryFactory<Query> qf) {
+            return qf.from(User.class).having("name").like("%abc%").build();
         }
-    }
-}
-----
-.blueprint.xml:
-[source,xml,options="nowrap"]
+    })
+    .to("infinispan:myCacheName?cacheContainer=#cacheManager") ;
 ----
-<bean id=”remoteCacheManagerFactory” class=“com.datagrid.RemoteCacheManagerFactory”>
-    <argument value=”localhost”/>
-    <argument value="11222”/>
-</bean>
-
-<bean id=”cacheManager”
-    factory-ref=”remoteCacheManagerFactory”
-    factory-method=“newRemoteCacheManager”>
-</bean>
-
-<bean id="queryBuilder" class="org.example.com.InfinispanQueryExample"/>
-
-<camelContext id="route" xmlns="http://camel.apache.org/schema/blueprint">
-    <route>
-        <from uri="direct:start"/>
-            <setHeader headerName="CamelInfinispanOperation">
-                <constant>CamelInfinispanOperationQuery</constant>
-            </setHeader>
-            <setHeader headerName="CamelInfinispanQueryBuilder">
-                <method ref="queryBuilder" method="getBuilder"/>
-            </setHeader>
-        <to uri="infinispan://localhost?cacheContainer=#cacheManager&cacheName=remote_query_cache"/>
-    </route>
-</camelContext>
-----
-====
-
-The `remote_query_cache` is an arbitrary name for a cache that holds the data, and the results of the query will be a list of domain objects stored as a `CamelInfinispanOperationResult` header.
-
-In addition, there are the following requirements:
-
-* The [class]``RemoteCacheManager`` must be configured to use [class]``ProtoStreamMarshaller``.
-* The [class]``ProtoStreamMarshaller`` must be registered with the [class]``RemoteCacheManager``'s serialization context.
-* The .proto descriptors for domain objects must be registered with the remote Data Grid server.
-
-
-== Custom Listeners for Embedded Cache
-
-Custom Listeners for an embedded cache can be registered through the [parameter]``customListener`` parameter as shown below:
-
-.Using Java
++
 
+* Custom Listeners
++
 [source,java,options="nowrap"]
 ----
-from("infinispan://?cacheContainer=#myCustomContainer&cacheName=customCacheName&customListener=#myCustomListener")
+from("infinispan://?cacheContainer=#cacheManager&customListener=#myCustomListener")
   .to("mock:result");
 ----
-
-.Using Blueprint
-
-[source,xml,options="nowrap"]
-----
-<bean id="myCustomContainer" org.infinispan.manager.DefaultCacheManager"
-      init-method="start" destroy-method="stop">
-      <argument value="infinispan.xml" />
-</bean>
-
-<bean id="myCustomListener" class="org.example.com.CustomListener"/>
-
-<camelContext id="route" xmlns="http://camel.apache.org/schema/blueprint">
-    <route>
-        <from uri="infinispan://?cacheContainer=#myCustomContainer&cacheName=customCacheName&customListener=#myCustomListener"/>
-        <to uri="mock:result"/>
-    </route>
-</camelContext>
-----
-
-
-The instance of [class]``myCustomListener`` must exist.
-Users are encouraged to extend the [class]``org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedCustomListener`` and annotate the resulting class with the `@Listener` annotation from [package]#org.infinispan.notifications#
-.
-
-[NOTE]
-====
-Custom filters and converters for embedded caches are currently not supported.
-====
++
+The instance of `myCustomListener` must exist and Camel should be able to look it up from the  `Registry`.
+Users are encouraged to extend the `org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedCustomListener` class and annotate the resulting class with `@Listener` which can be found found in package `org.infinispan.notifications`.
 
 
-== Custom Listeners for Remote Cache
+== Using the Infinispan based idempotent repository
 
-Custom listeners for a remote cache can be registered in the same way as an embedded cache, with the exception that [parameter]``sync=false`` must be present.
-For instance:
+In this section we will use the Infinispan based idempotent repository.
 
-.Using only Java
-====
-[source,java,options="nowrap"]
-----
-from(infinispan://?cacheContainer=#cacheManager&sync=false&customListener=#myCustomListener")
-  .to(mock:result);
+.Java Example
+[source,java]
 ----
-====
+InfinispanEmbeddedConfiguration conf = new InfinispanEmbeddedConfiguration(); // <1>
+conf.setConfigurationUri("classpath:infinispan.xml")
 
-.Using Blueprint and Java
-====
-.Java class:
-[source,java,options="nowrap"]
-----
+InfinispanEmbeddedIdempotentRepository repo = new InfinispanEmbeddedIdempotentRepository("idempotent");  // <2>
+repo.setConfiguration(conf);
 
-public class RemoteCacheManagerFactory {
-    ConfigurationBuilder clientBuilder;
-    public RemoteCacheManagerFactory(String hostname, int port) {
-        clientBuilder = new ConfigurationBuilder();
-        clientBuilder.addServer()
-            .host(hostname).port(port);
-    }
-    public RemoteCacheManager newRemoteCacheManager() {
-        return new RemoteCacheManager(clientBuilder.build());
+context.addRoutes(new RouteBuilder() {
+    @Override
+    public void configure() {
+        from("direct:start")
+            .idempotentConsumer(header("MessageID"), repo) // <3>
+            .to("mock:result");
     }
-}
+});
 ----
-.blueprint.xml:
-[source,xml,options="nowrap"]
-----
-<bean id=”remoteCacheManagerFactory” class=“com.datagrid.RemoteCacheManagerFactory”>
-    <argument value=”localhost”/>
-    <argument value="11222”/>
-</bean>
+<1> Configure the cache
+<2> Configure the repository bean
+<3> Set the repository to the route
 
-<bean id=”cacheManager”
-    factory-ref=”remoteCacheManagerFactory”
-    factory-method=“newRemoteCacheManager”>
+.XML Example
+[source,xml]
+----
+<bean id="infinispanRepo" class="org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedIdempotentRepository" destroy-method="stop">
+  <constructor-arg value="idempotent"/> <1>
+  <property name="configuration"> <2>
+    <bean class="org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration">
+      <property name="configurationUrl" value="classpath:infinispan.xml"/>
+    </bean>
+  </property>
 </bean>
 
-<bean id="myCustomListener" class="org.example.com.CustomListener"/>
-
-<camelContext id="route" xmlns="http://camel.apache.org/schema/blueprint">
+<camelContext xmlns="http://camel.apache.org/schema/spring">
     <route>
-        <from uri="infinispan://?cacheContainer=#cacheManager&sync=false&customListener=#myCustomListener"/>
-        <to uri="mock:result"/>
+        <from uri="direct:start" />
+        <idempotentConsumer messageIdRepositoryRef="infinispanRepo"> <3>
+            <header>MessageID</header>
+            <to uri="mock:result" />
+        </idempotentConsumer>
     </route>
 </camelContext>
 ----
-====
+<1> Set the name of the cache that will be used by the repository
+<2> Configure the repository bean
+<3> Set the repository to the route
 
-The instance of [class]``myCustomListener`` must exist.
-Users are encouraged to extend the [class]``org.apache.camel.component.infinispan.remote.InfinispanRemoteCustomListener`` class and annotate the resulting class with ``@ClientListener``; this annotation is found in [package]#org.infinispan.client.hotrod.annotation#
-.
+== Using the Infinispan based aggregation repository
 
-Remote listeners may also be associated with custom filters and converters as shown below:
-[source,java,options="nowrap"]
-----
-@ClientListener(includeCurrentState=true, filterFactoryName = "static-filter-factory", converterFactoryName = "static-converter-factory")
-  private static class MyCustomListener extends InfinispanRemoteCustomListener {
-}
-----
+In this section we will use the Infinispan based aggregation repository.
 
-In order to use custom filters or converters classes annotated with `@NamedFactory` must be implemented.
-A skeleton that implements the necessary methods is shown below:
-[source,java,options="nowrap"]
+.Java Example
+[source,java]
 ----
-import org.infinispan.notifications.cachelistener.filter;
-
-@NamedFactory(name = "static-converter-factory")
-public static class StaticConverterFactory implements CacheEventConverterFactory {
-  @Override
-  public CacheEventConverter<Integer, String, CustomEvent> getConverter(Object[] params) {
-    ...
-  }
-
-  static class StaticConverter implements CacheEventConverter<Integer, String, CustomEvent>, Serializable {
-    @Override
-    public CustomEvent convert(Integer key, String previousValue, Metadata previousMetadata,
-                               String value, Metadata metadata, EventType eventType) {
-      ...
-    }
-  }
-}
+InfinispanEmbeddedConfiguration conf = new InfinispanEmbeddedConfiguration(); // <1>
+conf.setConfigurationUri("classpath:infinispan.xml")
 
-@NamedFactory(name = "static-filter-factory")
-public static class StaticCacheEventFilterFactory implements CacheEventFilterFactory {
-  @Override
-  public CacheEventFilter<Integer, String> getFilter(final Object[] params) {
-    ...
-  }
+InfinispanEmbeddedAggregationRepository repo = new InfinispanEmbeddedAggregationRepository("aggregation");  // <2>
+repo.setConfiguration(conf);
 
-  static class StaticCacheEventFilter implements CacheEventFilter<Integer, String>, Serializable {
+context.addRoutes(new RouteBuilder() {
     @Override
-    public boolean accept(Integer key, String previousValue, Metadata previousMetadata,
-                          String value, Metadata metadata, EventType eventType) {
-      ...
+    public void configure() {
+        from("direct:start")
+                .aggregate(header("MessageID"))
+                .completionSize(3)
+                .aggregationRepository(repo) // <3>
+                .aggregationStrategyRef("myStrategy")
+                .to("mock:result");
     }
-  }
-}
-----
-
-Custom filters and converters must be registered with the server.
-.
-
-[NOTE]
-====
-In order to listen for remote HotRod events the cacheManager must be of type [class]``RemoteCacheManager`` and instantiated.
-====
-
-[NOTE]
-====
-With the release of Infinispan 11, it is required to set the encoding configuration on any cache created. This is critical for consuming events too.
-For more information have a look at https://infinispan.org/docs/stable/titles/developing/developing.html#data_encoding[Data Encoding and MediaTypes] in the official Infinispan documentation.
-====
-
-== Using the Infinispan based idempotent repository
-
-In this section we will use the Infinispan based idempotent repository.
-
-First, we need to create a cacheManager and then configure our
-
-[source,java]
-----
-org.apache.camel.component.infinispan.processor.idempotent.InfinispanIdempotentRepository:
+});
 ----
+<1> Configure the cache
+<2> Create the repository bean
+<3> Set the repository to the route
 
+.XML Example
 [source,xml]
 ----
-<!-- set up the cache manager -->
-<bean id="cacheManager"
-      class="org.infinispan.manager.DefaultCacheManager"
-      init-method="start"
-      destroy-method="stop"/>
-
-<!-- set up the repository -->
-<bean id="infinispanRepo"
-      class="org.apache.camel.component.infinispan.InfinispanIdempotentRepository"
-      factory-method="infinispanIdempotentRepository">
-    <argument ref="cacheManager"/>
-    <argument value="idempotent"/>
+<bean id="infinispanRepo" class="org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedAggregationRepository" destroy-method="stop">
+  <constructor-arg value="aggregation"/> <1>
+  <property name="configuration"> <2>
+    <bean class="org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration">
+      <property name="configurationUrl" value="classpath:infinispan.xml"/>
+    </bean>
+  </property>
 </bean>
-----
-
-Then we can create our Infinispan idempotent repository in the spring
-XML file as well:
 
-[source,xml]
-----
 <camelContext xmlns="http://camel.apache.org/schema/spring">
-    <route id="JpaMessageIdRepositoryTest">
+    <route>
         <from uri="direct:start" />
-        <idempotentConsumer messageIdRepositoryRef="infinispanStore">
-            <header>messageId</header>
-            <to uri="mock:result" />
-        </idempotentConsumer>
+        <aggregate strategyRef="myStrategy"
+                   completionSize="3"
+                   aggregationRepositoryRef="infinispanRepo"> <3>
+            <correlationExpression>
+                <header>MessageID</header>
+            </correlationExpression>
+            <to uri="mock:result"/>
+        </aggregate>
     </route>
 </camelContext>
 ----
+<1> Set the name of the cache that will be used by the repository
+<2> Configure the repository bean
+<3> Set the repository to the route
 
+[NOTE]
+====
+With the release of Infinispan 11, it is required to set the encoding configuration on any cache created. This is critical for consuming events too.
+For more information have a look at https://infinispan.org/docs/stable/titles/developing/developing.html#data_encoding[Data Encoding and MediaTypes] in the official Infinispan documentation.
+====
 
-include::camel-spring-boot::page$infinispan-starter.adoc[]
+include::camel-spring-boot::page$infinispan-embedded-starter.adoc[]
diff --git a/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedConfiguration.java b/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedConfiguration.java
index e32a677..d8bb96f 100644
--- a/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedConfiguration.java
+++ b/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedConfiguration.java
@@ -61,9 +61,7 @@ public class InfinispanEmbeddedConfiguration extends InfinispanConfiguration imp
     }
 
     /**
-     * The CacheContainer configuration. Uses if the cacheContainer is not defined. Must be the following types:
-     * org.infinispan.client.hotrod.configuration.Configuration - for remote cache interaction configuration;
-     * org.infinispan.configuration.cache.Configuration - for embedded cache interaction configuration;
+     * The CacheContainer configuration. Used if the cacheContainer is not defined.
      */
     public void setCacheContainerConfiguration(Configuration cacheContainerConfiguration) {
         this.cacheContainerConfiguration = cacheContainerConfiguration;
@@ -127,8 +125,7 @@ public class InfinispanEmbeddedConfiguration extends InfinispanConfiguration imp
     }
 
     /**
-     * A comma separated list of Flag to be applied by default on each cache invocation, not applicable to remote
-     * caches.
+     * A comma separated list of org.infinispan.context.Flag to be applied by default on each cache invocation
      */
     public void setFlags(String flagsAsString) {
         String[] flagsArray = flagsAsString.split(",");
diff --git a/components/camel-infinispan/camel-infinispan/src/generated/resources/org/apache/camel/component/infinispan/remote/infinispan.json b/components/camel-infinispan/camel-infinispan/src/generated/resources/org/apache/camel/component/infinispan/remote/infinispan.json
index 3a299ce..6f45ca3 100644
--- a/components/camel-infinispan/camel-infinispan/src/generated/resources/org/apache/camel/component/infinispan/remote/infinispan.json
+++ b/components/camel-infinispan/camel-infinispan/src/generated/resources/org/apache/camel/component/infinispan/remote/infinispan.json
@@ -42,10 +42,10 @@
     "username": { "kind": "property", "displayName": "Username", "group": " security", "label": "common, security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration", "configurationField": "configuration", "description": "Define the username to access the infinispan instance" },
     "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
     "cacheContainer": { "kind": "property", "displayName": "Cache Container", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.infinispan.client.hotrod.RemoteCacheManager", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration", "configurationField": "configuration", "description": "Specifies the cache Container to connect" },
-    "cacheContainerConfiguration": { "kind": "property", "displayName": "Cache Container Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.infinispan.client.hotrod.configuration.Configuration", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration", "configurationField": "configuration", "description": "T [...]
+    "cacheContainerConfiguration": { "kind": "property", "displayName": "Cache Container Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.infinispan.client.hotrod.configuration.Configuration", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration", "configurationField": "configuration", "description": "T [...]
     "configurationProperties": { "kind": "property", "displayName": "Configuration Properties", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration", "configurationField": "configuration", "description": "Implementation specific properties for  [...]
     "configurationUri": { "kind": "property", "displayName": "Configuration Uri", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration", "configurationField": "configuration", "description": "An implementation specific URI for the CacheManager" },
-    "flags": { "kind": "property", "displayName": "Flags", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration", "configurationField": "configuration", "description": "A comma separated list of Flag to be applied by default on each cache invocation, not applicable to remote ca [...]
+    "flags": { "kind": "property", "displayName": "Flags", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration", "configurationField": "configuration", "description": "A comma separated list of org.infinispan.client.hotrod.Flag to be applied by default on each cache invocation." },
     "remappingFunction": { "kind": "property", "displayName": "Remapping Function", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.function.BiFunction", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration", "configurationField": "configuration", "description": "Set a specific remappingFunction to use in a compute operation." },
     "resultHeader": { "kind": "property", "displayName": "Result Header", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration", "configurationField": "configuration", "description": "Store the operation result in a header instead of the message body. By default, resultHeader = [...]
   },
@@ -71,10 +71,10 @@
     "securityServerName": { "kind": "parameter", "displayName": "Security Server Name", "group": " security", "label": "common, security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration", "configurationField": "configuration", "description": "Define the security server name to access the infinispan instance" },
     "username": { "kind": "parameter", "displayName": "Username", "group": " security", "label": "common, security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration", "configurationField": "configuration", "description": "Define the username to access the infinispan instance" },
     "cacheContainer": { "kind": "parameter", "displayName": "Cache Container", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.infinispan.client.hotrod.RemoteCacheManager", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration", "configurationField": "configuration", "description": "Specifies the cache Container to con [...]
-    "cacheContainerConfiguration": { "kind": "parameter", "displayName": "Cache Container Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.infinispan.client.hotrod.configuration.Configuration", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration", "configurationField": "configuration", "description": " [...]
+    "cacheContainerConfiguration": { "kind": "parameter", "displayName": "Cache Container Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.infinispan.client.hotrod.configuration.Configuration", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration", "configurationField": "configuration", "description": " [...]
     "configurationProperties": { "kind": "parameter", "displayName": "Configuration Properties", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration", "configurationField": "configuration", "description": "Implementation specific properties for [...]
     "configurationUri": { "kind": "parameter", "displayName": "Configuration Uri", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration", "configurationField": "configuration", "description": "An implementation specific URI for the CacheManager" },
-    "flags": { "kind": "parameter", "displayName": "Flags", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration", "configurationField": "configuration", "description": "A comma separated list of Flag to be applied by default on each cache invocation, not applicable to remote c [...]
+    "flags": { "kind": "parameter", "displayName": "Flags", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration", "configurationField": "configuration", "description": "A comma separated list of org.infinispan.client.hotrod.Flag to be applied by default on each cache invocation." },
     "remappingFunction": { "kind": "parameter", "displayName": "Remapping Function", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.function.BiFunction", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration", "configurationField": "configuration", "description": "Set a specific remappingFunction to use in a compute operation." },
     "resultHeader": { "kind": "parameter", "displayName": "Result Header", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration", "configurationField": "configuration", "description": "Store the operation result in a header instead of the message body. By default, resultHeader  [...]
   }
diff --git a/components/camel-infinispan/camel-infinispan/src/main/docs/infinispan-component.adoc b/components/camel-infinispan/camel-infinispan/src/main/docs/infinispan-component.adoc
index 0ba396c..46f03f9 100644
--- a/components/camel-infinispan/camel-infinispan/src/main/docs/infinispan-component.adoc
+++ b/components/camel-infinispan/camel-infinispan/src/main/docs/infinispan-component.adoc
@@ -69,10 +69,10 @@ The Infinispan component supports 26 options, which are listed below.
 | *username* ( security) | Define the username to access the infinispan instance |  | String
 | *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
 | *cacheContainer* (advanced) | *Autowired* Specifies the cache Container to connect |  | RemoteCacheManager
-| *cacheContainerConfiguration* (advanced) | *Autowired* The CacheContainer configuration. Uses if the cacheContainer is not defined. Must be the following types: org.infinispan.client.hotrod.configuration.Configuration - for remote cache interaction configuration; org.infinispan.configuration.cache.Configuration - for embedded cache interaction configuration; |  | Configuration
+| *cacheContainerConfiguration* (advanced) | *Autowired* The CacheContainer configuration. Used if the cacheContainer is not defined. |  | Configuration
 | *configurationProperties* (advanced) | Implementation specific properties for the CacheManager |  | Map
 | *configurationUri* (advanced) | An implementation specific URI for the CacheManager |  | String
-| *flags* (advanced) | A comma separated list of Flag to be applied by default on each cache invocation, not applicable to remote caches. |  | String
+| *flags* (advanced) | A comma separated list of org.infinispan.client.hotrod.Flag to be applied by default on each cache invocation. |  | String
 | *remappingFunction* (advanced) | Set a specific remappingFunction to use in a compute operation. |  | BiFunction
 | *resultHeader* (advanced) | Store the operation result in a header instead of the message body. By default, resultHeader == null and the query result is stored in the message body, any existing content in the message body is discarded. If resultHeader is set, the value is used as the name of the header to store the query result and the original message body is preserved. This value can be overridden by an in message header named: CamelInfinispanOperationResultHeader |  | String
 |===
@@ -126,10 +126,10 @@ with the following path and query parameters:
 | *securityServerName* ( security) | Define the security server name to access the infinispan instance |  | String
 | *username* ( security) | Define the username to access the infinispan instance |  | String
 | *cacheContainer* (advanced) | *Autowired* Specifies the cache Container to connect |  | RemoteCacheManager
-| *cacheContainerConfiguration* (advanced) | *Autowired* The CacheContainer configuration. Uses if the cacheContainer is not defined. Must be the following types: org.infinispan.client.hotrod.configuration.Configuration - for remote cache interaction configuration; org.infinispan.configuration.cache.Configuration - for embedded cache interaction configuration; |  | Configuration
+| *cacheContainerConfiguration* (advanced) | *Autowired* The CacheContainer configuration. Used if the cacheContainer is not defined. |  | Configuration
 | *configurationProperties* (advanced) | Implementation specific properties for the CacheManager |  | Map
 | *configurationUri* (advanced) | An implementation specific URI for the CacheManager |  | String
-| *flags* (advanced) | A comma separated list of Flag to be applied by default on each cache invocation, not applicable to remote caches. |  | String
+| *flags* (advanced) | A comma separated list of org.infinispan.client.hotrod.Flag to be applied by default on each cache invocation. |  | String
 | *remappingFunction* (advanced) | Set a specific remappingFunction to use in a compute operation. |  | BiFunction
 | *resultHeader* (advanced) | Store the operation result in a header instead of the message body. By default, resultHeader == null and the query result is stored in the message body, any existing content in the message body is discarded. If resultHeader is set, the value is used as the name of the header to store the query result and the original message body is preserved. This value can be overridden by an in message header named: CamelInfinispanOperationResultHeader |  | String
 |===
diff --git a/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteConfiguration.java b/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteConfiguration.java
index b06debb..eaf387b 100644
--- a/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteConfiguration.java
+++ b/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteConfiguration.java
@@ -64,9 +64,7 @@ public class InfinispanRemoteConfiguration extends InfinispanConfiguration imple
     }
 
     /**
-     * The CacheContainer configuration. Uses if the cacheContainer is not defined. Must be the following types:
-     * org.infinispan.client.hotrod.configuration.Configuration - for remote cache interaction configuration;
-     * org.infinispan.configuration.cache.Configuration - for embedded cache interaction configuration;
+     * The CacheContainer configuration. Used if the cacheContainer is not defined.
      */
     public void setCacheContainerConfiguration(Configuration cacheContainerConfiguration) {
         this.cacheContainerConfiguration = cacheContainerConfiguration;
@@ -216,8 +214,7 @@ public class InfinispanRemoteConfiguration extends InfinispanConfiguration imple
     }
 
     /**
-     * A comma separated list of Flag to be applied by default on each cache invocation, not applicable to remote
-     * caches.
+     * A comma separated list of org.infinispan.client.hotrod.Flag to be applied by default on each cache invocation.
      */
     public void setFlags(String flagsAsString) {
         String[] flagsArray = flagsAsString.split(",");
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/InfinispanComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/InfinispanComponentBuilderFactory.java
index 92f37dc..1bd7470 100644
--- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/InfinispanComponentBuilderFactory.java
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/InfinispanComponentBuilderFactory.java
@@ -378,12 +378,8 @@ public interface InfinispanComponentBuilderFactory {
             return this;
         }
         /**
-         * The CacheContainer configuration. Uses if the cacheContainer is not
-         * defined. Must be the following types:
-         * org.infinispan.client.hotrod.configuration.Configuration - for remote
-         * cache interaction configuration;
-         * org.infinispan.configuration.cache.Configuration - for embedded cache
-         * interaction configuration;.
+         * The CacheContainer configuration. Used if the cacheContainer is not
+         * defined.
          * 
          * The option is a:
          * &lt;code&gt;org.infinispan.client.hotrod.configuration.Configuration&lt;/code&gt; type.
@@ -430,8 +426,8 @@ public interface InfinispanComponentBuilderFactory {
             return this;
         }
         /**
-         * A comma separated list of Flag to be applied by default on each cache
-         * invocation, not applicable to remote caches.
+         * A comma separated list of org.infinispan.client.hotrod.Flag to be
+         * applied by default on each cache invocation.
          * 
          * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
          * 
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/InfinispanEmbeddedComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/InfinispanEmbeddedComponentBuilderFactory.java
index ab203d2..376f466 100644
--- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/InfinispanEmbeddedComponentBuilderFactory.java
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/InfinispanEmbeddedComponentBuilderFactory.java
@@ -312,12 +312,8 @@ public interface InfinispanEmbeddedComponentBuilderFactory {
             return this;
         }
         /**
-         * The CacheContainer configuration. Uses if the cacheContainer is not
-         * defined. Must be the following types:
-         * org.infinispan.client.hotrod.configuration.Configuration - for remote
-         * cache interaction configuration;
-         * org.infinispan.configuration.cache.Configuration - for embedded cache
-         * interaction configuration;.
+         * The CacheContainer configuration. Used if the cacheContainer is not
+         * defined.
          * 
          * The option is a:
          * &lt;code&gt;org.infinispan.configuration.cache.Configuration&lt;/code&gt; type.
@@ -348,8 +344,8 @@ public interface InfinispanEmbeddedComponentBuilderFactory {
             return this;
         }
         /**
-         * A comma separated list of Flag to be applied by default on each cache
-         * invocation, not applicable to remote caches.
+         * A comma separated list of org.infinispan.context.Flag to be applied
+         * by default on each cache invocation.
          * 
          * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
          * 
diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/InfinispanEmbeddedEndpointBuilderFactory.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/InfinispanEmbeddedEndpointBuilderFactory.java
index a8fe216..497fb6b 100644
--- a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/InfinispanEmbeddedEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/InfinispanEmbeddedEndpointBuilderFactory.java
@@ -354,12 +354,8 @@ public interface InfinispanEmbeddedEndpointBuilderFactory {
             return this;
         }
         /**
-         * The CacheContainer configuration. Uses if the cacheContainer is not
-         * defined. Must be the following types:
-         * org.infinispan.client.hotrod.configuration.Configuration - for remote
-         * cache interaction configuration;
-         * org.infinispan.configuration.cache.Configuration - for embedded cache
-         * interaction configuration;.
+         * The CacheContainer configuration. Used if the cacheContainer is not
+         * defined.
          * 
          * The option is a:
          * &lt;code&gt;org.infinispan.configuration.cache.Configuration&lt;/code&gt; type.
@@ -375,12 +371,8 @@ public interface InfinispanEmbeddedEndpointBuilderFactory {
             return this;
         }
         /**
-         * The CacheContainer configuration. Uses if the cacheContainer is not
-         * defined. Must be the following types:
-         * org.infinispan.client.hotrod.configuration.Configuration - for remote
-         * cache interaction configuration;
-         * org.infinispan.configuration.cache.Configuration - for embedded cache
-         * interaction configuration;.
+         * The CacheContainer configuration. Used if the cacheContainer is not
+         * defined.
          * 
          * The option will be converted to a
          * &lt;code&gt;org.infinispan.configuration.cache.Configuration&lt;/code&gt; type.
@@ -411,8 +403,8 @@ public interface InfinispanEmbeddedEndpointBuilderFactory {
             return this;
         }
         /**
-         * A comma separated list of Flag to be applied by default on each cache
-         * invocation, not applicable to remote caches.
+         * A comma separated list of org.infinispan.context.Flag to be applied
+         * by default on each cache invocation.
          * 
          * The option is a:
          * &lt;code&gt;org.infinispan.context.Flag[]&lt;/code&gt; type.
@@ -428,8 +420,8 @@ public interface InfinispanEmbeddedEndpointBuilderFactory {
             return this;
         }
         /**
-         * A comma separated list of Flag to be applied by default on each cache
-         * invocation, not applicable to remote caches.
+         * A comma separated list of org.infinispan.context.Flag to be applied
+         * by default on each cache invocation.
          * 
          * The option will be converted to a
          * &lt;code&gt;org.infinispan.context.Flag[]&lt;/code&gt; type.
@@ -790,12 +782,8 @@ public interface InfinispanEmbeddedEndpointBuilderFactory {
             return this;
         }
         /**
-         * The CacheContainer configuration. Uses if the cacheContainer is not
-         * defined. Must be the following types:
-         * org.infinispan.client.hotrod.configuration.Configuration - for remote
-         * cache interaction configuration;
-         * org.infinispan.configuration.cache.Configuration - for embedded cache
-         * interaction configuration;.
+         * The CacheContainer configuration. Used if the cacheContainer is not
+         * defined.
          * 
          * The option is a:
          * &lt;code&gt;org.infinispan.configuration.cache.Configuration&lt;/code&gt; type.
@@ -811,12 +799,8 @@ public interface InfinispanEmbeddedEndpointBuilderFactory {
             return this;
         }
         /**
-         * The CacheContainer configuration. Uses if the cacheContainer is not
-         * defined. Must be the following types:
-         * org.infinispan.client.hotrod.configuration.Configuration - for remote
-         * cache interaction configuration;
-         * org.infinispan.configuration.cache.Configuration - for embedded cache
-         * interaction configuration;.
+         * The CacheContainer configuration. Used if the cacheContainer is not
+         * defined.
          * 
          * The option will be converted to a
          * &lt;code&gt;org.infinispan.configuration.cache.Configuration&lt;/code&gt; type.
@@ -847,8 +831,8 @@ public interface InfinispanEmbeddedEndpointBuilderFactory {
             return this;
         }
         /**
-         * A comma separated list of Flag to be applied by default on each cache
-         * invocation, not applicable to remote caches.
+         * A comma separated list of org.infinispan.context.Flag to be applied
+         * by default on each cache invocation.
          * 
          * The option is a:
          * &lt;code&gt;org.infinispan.context.Flag[]&lt;/code&gt; type.
@@ -864,8 +848,8 @@ public interface InfinispanEmbeddedEndpointBuilderFactory {
             return this;
         }
         /**
-         * A comma separated list of Flag to be applied by default on each cache
-         * invocation, not applicable to remote caches.
+         * A comma separated list of org.infinispan.context.Flag to be applied
+         * by default on each cache invocation.
          * 
          * The option will be converted to a
          * &lt;code&gt;org.infinispan.context.Flag[]&lt;/code&gt; type.
@@ -1024,12 +1008,8 @@ public interface InfinispanEmbeddedEndpointBuilderFactory {
             return this;
         }
         /**
-         * The CacheContainer configuration. Uses if the cacheContainer is not
-         * defined. Must be the following types:
-         * org.infinispan.client.hotrod.configuration.Configuration - for remote
-         * cache interaction configuration;
-         * org.infinispan.configuration.cache.Configuration - for embedded cache
-         * interaction configuration;.
+         * The CacheContainer configuration. Used if the cacheContainer is not
+         * defined.
          * 
          * The option is a:
          * &lt;code&gt;org.infinispan.configuration.cache.Configuration&lt;/code&gt; type.
@@ -1045,12 +1025,8 @@ public interface InfinispanEmbeddedEndpointBuilderFactory {
             return this;
         }
         /**
-         * The CacheContainer configuration. Uses if the cacheContainer is not
-         * defined. Must be the following types:
-         * org.infinispan.client.hotrod.configuration.Configuration - for remote
-         * cache interaction configuration;
-         * org.infinispan.configuration.cache.Configuration - for embedded cache
-         * interaction configuration;.
+         * The CacheContainer configuration. Used if the cacheContainer is not
+         * defined.
          * 
          * The option will be converted to a
          * &lt;code&gt;org.infinispan.configuration.cache.Configuration&lt;/code&gt; type.
@@ -1081,8 +1057,8 @@ public interface InfinispanEmbeddedEndpointBuilderFactory {
             return this;
         }
         /**
-         * A comma separated list of Flag to be applied by default on each cache
-         * invocation, not applicable to remote caches.
+         * A comma separated list of org.infinispan.context.Flag to be applied
+         * by default on each cache invocation.
          * 
          * The option is a:
          * &lt;code&gt;org.infinispan.context.Flag[]&lt;/code&gt; type.
@@ -1097,8 +1073,8 @@ public interface InfinispanEmbeddedEndpointBuilderFactory {
             return this;
         }
         /**
-         * A comma separated list of Flag to be applied by default on each cache
-         * invocation, not applicable to remote caches.
+         * A comma separated list of org.infinispan.context.Flag to be applied
+         * by default on each cache invocation.
          * 
          * The option will be converted to a
          * &lt;code&gt;org.infinispan.context.Flag[]&lt;/code&gt; type.
diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/InfinispanRemoteEndpointBuilderFactory.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/InfinispanRemoteEndpointBuilderFactory.java
index 0b4f9ab..d33655f 100644
--- a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/InfinispanRemoteEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/InfinispanRemoteEndpointBuilderFactory.java
@@ -403,12 +403,8 @@ public interface InfinispanRemoteEndpointBuilderFactory {
             return this;
         }
         /**
-         * The CacheContainer configuration. Uses if the cacheContainer is not
-         * defined. Must be the following types:
-         * org.infinispan.client.hotrod.configuration.Configuration - for remote
-         * cache interaction configuration;
-         * org.infinispan.configuration.cache.Configuration - for embedded cache
-         * interaction configuration;.
+         * The CacheContainer configuration. Used if the cacheContainer is not
+         * defined.
          * 
          * The option is a:
          * &lt;code&gt;org.infinispan.client.hotrod.configuration.Configuration&lt;/code&gt; type.
@@ -424,12 +420,8 @@ public interface InfinispanRemoteEndpointBuilderFactory {
             return this;
         }
         /**
-         * The CacheContainer configuration. Uses if the cacheContainer is not
-         * defined. Must be the following types:
-         * org.infinispan.client.hotrod.configuration.Configuration - for remote
-         * cache interaction configuration;
-         * org.infinispan.configuration.cache.Configuration - for embedded cache
-         * interaction configuration;.
+         * The CacheContainer configuration. Used if the cacheContainer is not
+         * defined.
          * 
          * The option will be converted to a
          * &lt;code&gt;org.infinispan.client.hotrod.configuration.Configuration&lt;/code&gt; type.
@@ -493,8 +485,8 @@ public interface InfinispanRemoteEndpointBuilderFactory {
             return this;
         }
         /**
-         * A comma separated list of Flag to be applied by default on each cache
-         * invocation, not applicable to remote caches.
+         * A comma separated list of org.infinispan.client.hotrod.Flag to be
+         * applied by default on each cache invocation.
          * 
          * The option is a:
          * &lt;code&gt;org.infinispan.client.hotrod.Flag[]&lt;/code&gt; type.
@@ -510,8 +502,8 @@ public interface InfinispanRemoteEndpointBuilderFactory {
             return this;
         }
         /**
-         * A comma separated list of Flag to be applied by default on each cache
-         * invocation, not applicable to remote caches.
+         * A comma separated list of org.infinispan.client.hotrod.Flag to be
+         * applied by default on each cache invocation.
          * 
          * The option will be converted to a
          * &lt;code&gt;org.infinispan.client.hotrod.Flag[]&lt;/code&gt; type.
@@ -985,12 +977,8 @@ public interface InfinispanRemoteEndpointBuilderFactory {
             return this;
         }
         /**
-         * The CacheContainer configuration. Uses if the cacheContainer is not
-         * defined. Must be the following types:
-         * org.infinispan.client.hotrod.configuration.Configuration - for remote
-         * cache interaction configuration;
-         * org.infinispan.configuration.cache.Configuration - for embedded cache
-         * interaction configuration;.
+         * The CacheContainer configuration. Used if the cacheContainer is not
+         * defined.
          * 
          * The option is a:
          * &lt;code&gt;org.infinispan.client.hotrod.configuration.Configuration&lt;/code&gt; type.
@@ -1006,12 +994,8 @@ public interface InfinispanRemoteEndpointBuilderFactory {
             return this;
         }
         /**
-         * The CacheContainer configuration. Uses if the cacheContainer is not
-         * defined. Must be the following types:
-         * org.infinispan.client.hotrod.configuration.Configuration - for remote
-         * cache interaction configuration;
-         * org.infinispan.configuration.cache.Configuration - for embedded cache
-         * interaction configuration;.
+         * The CacheContainer configuration. Used if the cacheContainer is not
+         * defined.
          * 
          * The option will be converted to a
          * &lt;code&gt;org.infinispan.client.hotrod.configuration.Configuration&lt;/code&gt; type.
@@ -1075,8 +1059,8 @@ public interface InfinispanRemoteEndpointBuilderFactory {
             return this;
         }
         /**
-         * A comma separated list of Flag to be applied by default on each cache
-         * invocation, not applicable to remote caches.
+         * A comma separated list of org.infinispan.client.hotrod.Flag to be
+         * applied by default on each cache invocation.
          * 
          * The option is a:
          * &lt;code&gt;org.infinispan.client.hotrod.Flag[]&lt;/code&gt; type.
@@ -1092,8 +1076,8 @@ public interface InfinispanRemoteEndpointBuilderFactory {
             return this;
         }
         /**
-         * A comma separated list of Flag to be applied by default on each cache
-         * invocation, not applicable to remote caches.
+         * A comma separated list of org.infinispan.client.hotrod.Flag to be
+         * applied by default on each cache invocation.
          * 
          * The option will be converted to a
          * &lt;code&gt;org.infinispan.client.hotrod.Flag[]&lt;/code&gt; type.
@@ -1366,12 +1350,8 @@ public interface InfinispanRemoteEndpointBuilderFactory {
             return this;
         }
         /**
-         * The CacheContainer configuration. Uses if the cacheContainer is not
-         * defined. Must be the following types:
-         * org.infinispan.client.hotrod.configuration.Configuration - for remote
-         * cache interaction configuration;
-         * org.infinispan.configuration.cache.Configuration - for embedded cache
-         * interaction configuration;.
+         * The CacheContainer configuration. Used if the cacheContainer is not
+         * defined.
          * 
          * The option is a:
          * &lt;code&gt;org.infinispan.client.hotrod.configuration.Configuration&lt;/code&gt; type.
@@ -1387,12 +1367,8 @@ public interface InfinispanRemoteEndpointBuilderFactory {
             return this;
         }
         /**
-         * The CacheContainer configuration. Uses if the cacheContainer is not
-         * defined. Must be the following types:
-         * org.infinispan.client.hotrod.configuration.Configuration - for remote
-         * cache interaction configuration;
-         * org.infinispan.configuration.cache.Configuration - for embedded cache
-         * interaction configuration;.
+         * The CacheContainer configuration. Used if the cacheContainer is not
+         * defined.
          * 
          * The option will be converted to a
          * &lt;code&gt;org.infinispan.client.hotrod.configuration.Configuration&lt;/code&gt; type.
@@ -1456,8 +1432,8 @@ public interface InfinispanRemoteEndpointBuilderFactory {
             return this;
         }
         /**
-         * A comma separated list of Flag to be applied by default on each cache
-         * invocation, not applicable to remote caches.
+         * A comma separated list of org.infinispan.client.hotrod.Flag to be
+         * applied by default on each cache invocation.
          * 
          * The option is a:
          * &lt;code&gt;org.infinispan.client.hotrod.Flag[]&lt;/code&gt; type.
@@ -1472,8 +1448,8 @@ public interface InfinispanRemoteEndpointBuilderFactory {
             return this;
         }
         /**
-         * A comma separated list of Flag to be applied by default on each cache
-         * invocation, not applicable to remote caches.
+         * A comma separated list of org.infinispan.client.hotrod.Flag to be
+         * applied by default on each cache invocation.
          * 
          * The option will be converted to a
          * &lt;code&gt;org.infinispan.client.hotrod.Flag[]&lt;/code&gt; type.
diff --git a/docs/components/modules/ROOT/pages/infinispan-component.adoc b/docs/components/modules/ROOT/pages/infinispan-component.adoc
index 01f2103..93c21dc 100644
--- a/docs/components/modules/ROOT/pages/infinispan-component.adoc
+++ b/docs/components/modules/ROOT/pages/infinispan-component.adoc
@@ -71,10 +71,10 @@ The Infinispan component supports 26 options, which are listed below.
 | *username* ( security) | Define the username to access the infinispan instance |  | String
 | *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
 | *cacheContainer* (advanced) | *Autowired* Specifies the cache Container to connect |  | RemoteCacheManager
-| *cacheContainerConfiguration* (advanced) | *Autowired* The CacheContainer configuration. Uses if the cacheContainer is not defined. Must be the following types: org.infinispan.client.hotrod.configuration.Configuration - for remote cache interaction configuration; org.infinispan.configuration.cache.Configuration - for embedded cache interaction configuration; |  | Configuration
+| *cacheContainerConfiguration* (advanced) | *Autowired* The CacheContainer configuration. Used if the cacheContainer is not defined. |  | Configuration
 | *configurationProperties* (advanced) | Implementation specific properties for the CacheManager |  | Map
 | *configurationUri* (advanced) | An implementation specific URI for the CacheManager |  | String
-| *flags* (advanced) | A comma separated list of Flag to be applied by default on each cache invocation, not applicable to remote caches. |  | String
+| *flags* (advanced) | A comma separated list of org.infinispan.client.hotrod.Flag to be applied by default on each cache invocation. |  | String
 | *remappingFunction* (advanced) | Set a specific remappingFunction to use in a compute operation. |  | BiFunction
 | *resultHeader* (advanced) | Store the operation result in a header instead of the message body. By default, resultHeader == null and the query result is stored in the message body, any existing content in the message body is discarded. If resultHeader is set, the value is used as the name of the header to store the query result and the original message body is preserved. This value can be overridden by an in message header named: CamelInfinispanOperationResultHeader |  | String
 |===
@@ -128,10 +128,10 @@ with the following path and query parameters:
 | *securityServerName* ( security) | Define the security server name to access the infinispan instance |  | String
 | *username* ( security) | Define the username to access the infinispan instance |  | String
 | *cacheContainer* (advanced) | *Autowired* Specifies the cache Container to connect |  | RemoteCacheManager
-| *cacheContainerConfiguration* (advanced) | *Autowired* The CacheContainer configuration. Uses if the cacheContainer is not defined. Must be the following types: org.infinispan.client.hotrod.configuration.Configuration - for remote cache interaction configuration; org.infinispan.configuration.cache.Configuration - for embedded cache interaction configuration; |  | Configuration
+| *cacheContainerConfiguration* (advanced) | *Autowired* The CacheContainer configuration. Used if the cacheContainer is not defined. |  | Configuration
 | *configurationProperties* (advanced) | Implementation specific properties for the CacheManager |  | Map
 | *configurationUri* (advanced) | An implementation specific URI for the CacheManager |  | String
-| *flags* (advanced) | A comma separated list of Flag to be applied by default on each cache invocation, not applicable to remote caches. |  | String
+| *flags* (advanced) | A comma separated list of org.infinispan.client.hotrod.Flag to be applied by default on each cache invocation. |  | String
 | *remappingFunction* (advanced) | Set a specific remappingFunction to use in a compute operation. |  | BiFunction
 | *resultHeader* (advanced) | Store the operation result in a header instead of the message body. By default, resultHeader == null and the query result is stored in the message body, any existing content in the message body is discarded. If resultHeader is set, the value is used as the name of the header to store the query result and the original message body is preserved. This value can be overridden by an in message header named: CamelInfinispanOperationResultHeader |  | String
 |===
diff --git a/docs/components/modules/ROOT/pages/infinispan-embedded-component.adoc b/docs/components/modules/ROOT/pages/infinispan-embedded-component.adoc
index 0d2a807..eb8252c 100644
--- a/docs/components/modules/ROOT/pages/infinispan-embedded-component.adoc
+++ b/docs/components/modules/ROOT/pages/infinispan-embedded-component.adoc
@@ -21,7 +21,7 @@ store and data grid platform written in Java.
 
 Infinispan requires at least Java 8.
 
-The `camel-infinispan` component includes the following features:
+The `camel-infinispan-embedded` component includes the following features:
 
 * *Local Camel Consumer* - Receives cache change notifications and sends them to be processed.
 This can be done synchronously or asynchronously, and is also supported with a replicated or distributed cache.
@@ -53,14 +53,11 @@ infinispan-embedded://cacheName?[options]
 
 == URI Options
 
-The producer allows sending messages to a local infinispan cache
-configured in the registry, or to a remote cache using the HotRod
-protocol. The consumer allows listening for events from local infinispan cache
-accessible from the registry.
+The producer allows sending messages to a local infinispan cache.
+The consumer allows listening for events from local infinispan cache.
 
 If no cache configuration is provided, embedded cacheContainer is created directly in the component.
 
-
 // component options: START
 The Infinispan Embedded component supports 20 options, which are listed below.
 
@@ -84,9 +81,9 @@ The Infinispan Embedded component supports 20 options, which are listed below.
 | *value* (producer) | Set a specific value for producer operations |  | Object
 | *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
 | *cacheContainer* (advanced) | *Autowired* Specifies the cache Container to connect |  | EmbeddedCacheManager
-| *cacheContainerConfiguration* (advanced) | *Autowired* The CacheContainer configuration. Uses if the cacheContainer is not defined. Must be the following types: org.infinispan.client.hotrod.configuration.Configuration - for remote cache interaction configuration; org.infinispan.configuration.cache.Configuration - for embedded cache interaction configuration; |  | Configuration
+| *cacheContainerConfiguration* (advanced) | *Autowired* The CacheContainer configuration. Used if the cacheContainer is not defined. |  | Configuration
 | *configurationUri* (advanced) | An implementation specific URI for the CacheManager |  | String
-| *flags* (advanced) | A comma separated list of Flag to be applied by default on each cache invocation, not applicable to remote caches. |  | String
+| *flags* (advanced) | A comma separated list of org.infinispan.context.Flag to be applied by default on each cache invocation |  | String
 | *remappingFunction* (advanced) | Set a specific remappingFunction to use in a compute operation. |  | BiFunction
 | *resultHeader* (advanced) | Store the operation result in a header instead of the message body. By default, resultHeader == null and the query result is stored in the message body, any existing content in the message body is discarded. If resultHeader is set, the value is used as the name of the header to store the query result and the original message body is preserved. This value can be overridden by an in message header named: CamelInfinispanOperationResultHeader |  | String
 |===
@@ -135,268 +132,169 @@ with the following path and query parameters:
 | *operation* (producer) | The operation to perform. There are 21 enums and the value can be one of: PUT, PUTASYNC, PUTALL, PUTALLASYNC, PUTIFABSENT, PUTIFABSENTASYNC, GET, GETORDEFAULT, CONTAINSKEY, CONTAINSVALUE, REMOVE, REMOVEASYNC, REPLACE, REPLACEASYNC, SIZE, CLEAR, CLEARASYNC, QUERY, STATS, COMPUTE, COMPUTEASYNC | PUT | InfinispanOperation
 | *value* (producer) | Set a specific value for producer operations |  | Object
 | *cacheContainer* (advanced) | *Autowired* Specifies the cache Container to connect |  | EmbeddedCacheManager
-| *cacheContainerConfiguration* (advanced) | *Autowired* The CacheContainer configuration. Uses if the cacheContainer is not defined. Must be the following types: org.infinispan.client.hotrod.configuration.Configuration - for remote cache interaction configuration; org.infinispan.configuration.cache.Configuration - for embedded cache interaction configuration; |  | Configuration
+| *cacheContainerConfiguration* (advanced) | *Autowired* The CacheContainer configuration. Used if the cacheContainer is not defined. |  | Configuration
 | *configurationUri* (advanced) | An implementation specific URI for the CacheManager |  | String
-| *flags* (advanced) | A comma separated list of Flag to be applied by default on each cache invocation, not applicable to remote caches. |  | String
+| *flags* (advanced) | A comma separated list of org.infinispan.context.Flag to be applied by default on each cache invocation |  | String
 | *remappingFunction* (advanced) | Set a specific remappingFunction to use in a compute operation. |  | BiFunction
 | *resultHeader* (advanced) | Store the operation result in a header instead of the message body. By default, resultHeader == null and the query result is stored in the message body, any existing content in the message body is discarded. If resultHeader is set, the value is used as the name of the header to store the query result and the original message body is preserved. This value can be overridden by an in message header named: CamelInfinispanOperationResultHeader |  | String
 |===
 // endpoint options: END
 
+
 == Camel Operations
 This section lists all available operations, along with their header information.
 
 .Put Operations
-[cols="40%,60%", frame="all", options="header"]
+[cols="40%,60%a", frame="all", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.PUT
-| *Context*: Embedded / Remote
-
-*Description*: Puts a key/value pair in the cache, optionally with expiration
-
-*Required Headers*: CamelInfinispanKey, CamelInfinispanValue
-
-*Optional Headers*: CamelInfinispanLifespanTime, CamelInfinispanLifespanTimeUnit, CamelInfinispanMaxIdleTime, CamelInfinispanMaxIdleTimeUnit, CamelInfinispanIgnoreReturnValues
-
-*Result Header*: CamelInfinispanOperationResult
-
-| InfinispanOperation.PUTASYNC
-| *Description*: Asynchronously puts a key/value pair in the cache, optionally with expiration
-
-
-| InfinispanOperation.PUTIFABSENT
-| *Description*: Puts a key/value pair in the cache if it did not exist, optionally with expiration
-
-
-| InfinispanOperation.PUTIFABSENTASYNC
-| *Description*: Asynchronously puts a key/value pair in the cache if it did not exist, optionally with expiration
-
+| Operation Name | Description
+| InfinispanOperation.PUT | Puts a key/value pair in the cache, optionally with expiration
+| InfinispanOperation.PUTASYNC | Asynchronously puts a key/value pair in the cache, optionally with expiration
+| InfinispanOperation.PUTIFABSENT | Puts a key/value pair in the cache if it did not exist, optionally with expiration
+| InfinispanOperation.PUTIFABSENTASYNC | Asynchronously puts a key/value pair in the cache if it did not exist, optionally with expiration
 |===
 
+* *Required Headers*:
+** CamelInfinispanKey
+** CamelInfinispanValue
+* *Optional Headers*:
+** CamelInfinispanLifespanTime
+** CamelInfinispanLifespanTimeUnit
+** CamelInfinispanMaxIdleTime
+** CamelInfinispanMaxIdleTimeUnit
+* *Result Header*:
+** CamelInfinispanOperationResult
+
 .Put All Operations
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.PUTALL
-| *Context*: Embedded / Remote
-
-*Description*: Adds multiple entries to a cache, optionally with expiration
-
-*Required Headers*: CamelInfinispanMap
-
-*Optional Headers*: CamelInfinispanLifespanTime, CamelInfinispanLifespanTimeUnit, CamelInfinispanMaxIdleTime, CamelInfinispanMaxIdleTimeUnit
-
-*Result Header*: None
-
-| CamelInfinispanOperation.PUTALLASYNC
-| *Description*: Asynchronously adds multiple entries to a cache, optionally with expiration
-
+| Operation Name | Description
+| InfinispanOperation.PUTALL | Adds multiple entries to a cache, optionally with expiration
+| CamelInfinispanOperation.PUTALLASYNC | Asynchronously adds multiple entries to a cache, optionally with expiration
 |===
 
+* *Required Headers*:
+** CamelInfinispanMap
+* *Optional Headers*:
+** CamelInfinispanLifespanTime
+** CamelInfinispanLifespanTimeUnit
+** CamelInfinispanMaxIdleTime
+** CamelInfinispanMaxIdleTimeUnit
+
 .Get Operations
-[cols="40%,60%", frame="all", options="header"]
+[cols="40%,60%a", frame="all", options="header"]
 |===
-|Operation Name
-|Description
-
-| InfinispanOperation.GET
-| *Context*: Embedded / Remote
-
-*Description*: Retrieves the value associated with a specific key from the cache
-
-*Required Headers*: CamelInfinispanKey
-
-*Optional Headers*: None
-
-*Result Header*: None
-
-| InfinispanOperation.GETORDEFAULT
-| *Context*: Embedded / Remote
-
-*Description*: Retrieves the value, or default value, associated with a specific key from the cache
-
-*Required Headers*: CamelInfinispanKey
-
-*Optional Headers*: None
-
-*Result Header*: None
+|Operation Name |Description
+| InfinispanOperation.GET | Retrieves the value associated with a specific key from the cache
+| InfinispanOperation.GETORDEFAULT | Retrieves the value, or default value, associated with a specific key from the cache
 |===
 
+* *Required Headers*:
+** CamelInfinispanKey
+
 .Contains Key Operation
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.CONTAINSKEY
-| *Context*: Embedded / Remote
-
-*Description*: Determines whether a cache contains a specific key
-
-*Required Headers*: CamelInfinispanKey
-
-*Optional Headers*: None
-
-*Result Header*: CamelInfinispanOperationResult
+| Operation Name | Description
+| InfinispanOperation.CONTAINSKEY | Determines whether a cache contains a specific key
 |===
 
+* *Required Headers*
+** CamelInfinispanKey
+* *Result Header*
+** CamelInfinispanOperationResult
+
 .Contains Value Operation
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
+|===
+| Operation Name | Description
+| InfinispanOperation.CONTAINSVALUE | Determines whether a cache contains a specific value
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.CONTAINSVALUE
-| *Context*: Embedded / Remote
-
-*Description*: Determines whether a cache contains a specific value
-
-*Required Headers*: CamelInfinispanKey
 
-*Optional Headers*: None
+* *Required Headers*:
+** CamelInfinispanKey
 
-*Result Headers*: None
-|===
 
 .Remove Operations
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.REMOVE
-| *Context*: Embedded / Remote
-
-*Description*: Removes an entry from a cache, optionally only if the value matches a given one
-
-*Required Headers*: CamelInfinispanKey
-
-*Optional Headers*: CamelInfinispanValue
-
-*Result Header*: CamelInfinispanOperationResult
-
-| InfinispanOperation.REMOVEASYNC
-| *Description*: Asynchronously removes an entry from a cache, optionally only if the value matches a given one
-
+| Operation Name | Description
+| InfinispanOperation.REMOVE | Removes an entry from a cache, optionally only if the value matches a given one
+| InfinispanOperation.REMOVEASYNC | Asynchronously removes an entry from a cache, optionally only if the value matches a given one
 |===
 
+* *Required Headers*:
+** CamelInfinispanKey
+* *Optional Headers*:
+** CamelInfinispanValue
+* *Result Header*:
+** CamelInfinispanOperationResult
+
 .Replace Operations
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.REPLACE
-| *Context*: Embedded / Remote
-
-*Description*: Conditionally replaces an entry in the cache, optionally with expiration
-
-*Required Headers*: CamelInfinispanKey, CamelInfinispanValue, CamelInfinispanOldValue
-
-*Optional Headers*: CamelInfinispanLifespanTime, CamelInfinispanLifespanTimeUnit, CamelInfinispanMaxIdleTime, CamelInfinispanMaxIdleTimeUnit, CamelInfinispanIgnoreReturnValues
-
-*Result Header*: CamelInfinispanOperationResult
-
-| InfinispanOperation.REPLACEASYNC
-| *Description*: Asynchronously conditionally replaces an entry in the cache, optionally with expiration
-
+| Operation Name | Description
+| InfinispanOperation.REPLACE | Conditionally replaces an entry in the cache, optionally with expiration
+| InfinispanOperation.REPLACEASYNC |  Asynchronously conditionally replaces an entry in the cache, optionally with expiration
 |===
 
+* *Required Headers*:
+** CamelInfinispanKey
+** CamelInfinispanValue
+** CamelInfinispanOldValue
+* *Optional Headers*:
+** CamelInfinispanLifespanTime
+** CamelInfinispanLifespanTimeUnit
+** CamelInfinispanMaxIdleTime
+** CamelInfinispanMaxIdleTimeUnit
+* *Result Header*:
+** CamelInfinispanOperationResult
+
 .Clear Operations
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.CLEAR
-| *Context*: Embedded / Remote
-
-*Description*: Clears the cache
-
-*Required Headers*: None
-
-*Optional Headers*: None
-
-*Result Header*: None
-
-| InfinispanOperation.CLEARASYNC
-| *Context*: Embedded / Remote
-
-*Description*: Asynchronously clears the cache
-
-*Required Headers*: None
-
-*Optional Headers*: None
-
-*Result Header*: None
+| Operation Name | Description
+| InfinispanOperation.CLEAR | Clears the cache
+| InfinispanOperation.CLEARASYNC | Asynchronously clears the cache
 |===
 
 .Size Operation
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.SIZE
-| *Context*: Embedded / Remote
-
-*Description*: Returns the number of entries in the cache
-
-*Required Headers*: None
-
-*Optional Headers*: None
-
-*Result Header*: CamelInfinispanOperationResult
+| Operation Name | Description
+| InfinispanOperation.SIZE | Returns the number of entries in the cache
 |===
 
+* *Result Header*
+** CamelInfinispanOperationResult
+
 .Stats Operation
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.STATS
-| *Context*: Embedded / Remote
-
-*Description*: Returns statistics about the cache
-
-*Required Headers*: None
-
-*Optional Headers*: None
-
-*Result Header*: CamelInfinispanOperationResult
+| Operation Name | Description
+| InfinispanOperation.STATS | Returns statistics about the cache
 |===
 
+* *Result Header*:
+** CamelInfinispanOperationResult
+
 .Query Operation
-[cols="40%,60%", options="header"]
+[cols="40%,60%a", options="header"]
 |===
-| Operation Name
-| Description
-
-| InfinispanOperation.QUERY
-| *Context*: Remote
-
-*Description*: Executes a query on the cache
-
-*Required Headers*: CamelInfinispanQueryBuilder
-
-*Optional Headers*: None
-
-*Result Header*: CamelInfinispanOperationResult
+| Operation Name | Description
+| InfinispanOperation.QUERY | Executes a query on the cache
 |===
 
+* *Required Headers*:
+** CamelInfinispanQueryBuilder
+* *Result Header*:
+** CamelInfinispanOperationResult
+
 [NOTE]
 ====
-Any operations that take `CamelInfinispanIgnoreReturnValues` will receive a null result.
+Write methods like put(key, value) and remove(key) do not return the previous value by default.
 ====
 
-
-
 == Message Headers
 
 [width="100%",cols="10%,10%,10%,10%,60%",options="header",]
@@ -407,439 +305,188 @@ Any operations that take `CamelInfinispanIgnoreReturnValues` will receive a null
 |CamelInfinispanMap |`null` |Map |Producer |A Map to use in case of CamelInfinispanOperationPutAll operation
 |CamelInfinispanKey |`null` |Object |Shared |The key to perform the operation to or the key generating the event.
 |CamelInfinispanValue |`null` |Object |Producer |The value to use for the operation.
-|CamelInfinispanEventType |`null` |String |Consumer |The type of the received event. Possible values defined here org.infinispan.notifications.cachelistener.event.Event.Type
-|CamelInfinispanIsPre |`null` |Boolean |Consumer |Infinispan fires two events for each operation: one before and one after the operation.
+|CamelInfinispanEventType |`null` |String |Consumer |The type of the received event.
 |CamelInfinispanLifespanTime |`null` |long |Producer |The Lifespan time of a value inside the cache. Negative values are interpreted as infinity.
 |CamelInfinispanTimeUnit |`null` |String |Producer |The Time Unit of an entry Lifespan Time.
 |CamelInfinispanMaxIdleTime |`null` |long |Producer |The maximum amount of time an entry is allowed to be idle for before it is considered as expired.
 |CamelInfinispanMaxIdleTimeUnit |`null` |String |Producer |The Time Unit of an entry Max Idle Time.
 |CamelInfinispanQueryBuilder |null |InfinispanQueryBuilder |Producer |The QueryBuilde to use for QUERY command, if not present the command defaults to InifinispanConfiguration's one
-|CamelInfinispanIgnoreReturnValues |null |Boolean |Producer |If this header is set, the return value for cache operation returning something is ignored by the client application
 |CamelInfinispanOperationResultHeader |null |String |Producer |Store the operation result in a header instead of the message body
 |=======================================================================
 
-== Examples
-
-* Retrieve a specific key from the default cache using a custom cache container:
-
-[source,java]
-----
-from("direct:start")
-    .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.GET)
-    .setHeader(InfinispanConstants.KEY).constant("123")
-    .to("infinispan?cacheContainer=#cacheContainer");
-----
 
+== Examples
 
 * Put a key/value into a named cache:
 +
 [source,java]
 ----
 from("direct:start")
-    .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.PUT)
-    .setHeader(InfinispanConstants.KEY).constant("123")
-    .to("infinispan:myCacheName");
+    .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.PUT) // <1>
+    .setHeader(InfinispanConstants.KEY).constant("123") // <2>
+    .to("infinispan:myCacheName&cacheContainer=#cacheContainer"); // <3>
 ----
-
-* Put a value with lifespan
-
-[source,java]
+<1> Set the operation to perform
+<2> Set the key used to identify the element in the cache
+<3> Use the configured cache manager `cacheContainer` from the registry to put an element to the cache named `myCacheName`
++
+It is possible to configure the lifetime and/or the idle time before the entry expires and gets evicted from the cache, as example:
++
+[source,java,options="nowrap"]
 ----
 from("direct:start")
     .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.GET)
     .setHeader(InfinispanConstants.KEY).constant("123")
-    .setHeader(InfinispanConstants.LIFESPAN_TIME).constant(100L)
-    .setHeader(InfinispanConstants.LIFESPAN_TIME_UNIT.constant(TimeUnit.MILLISECONDS.toString())
+    .setHeader(InfinispanConstants.LIFESPAN_TIME).constant(100L) // <1>
+    .setHeader(InfinispanConstants.LIFESPAN_TIME_UNIT.constant(TimeUnit.MILLISECONDS.toString()) // <2>
     .to("infinispan:myCacheName");
 ----
+<1> Set the lifespan of the entry
+<2> Set the time unit for the lifespan
 
-* Compute operation through a remapping function on the default cache using a custom cache container:
-
-[source,java]
-----
-@BindToRegistry("mappingFunction")
-BiFunction<String, String, String> comp = (k, v) -> v + "replay";
-
-from("direct:start")
-    .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.COMPUTE)
-    .setHeader(InfinispanConstants.KEY).constant("123")
-    .to("infinispan?cacheContainer=#cacheContainer&remappingFunction=#mappingFunction");
-----
-
-This will return oldValue + "replay".
-
-This can be done also as async operation, with the `InfinispanOperation.COMPUTEASYNC` operation
-
-* Retrieve a specific key from the remote cache using a cache container configuration with additional parameters (host, port and protocol version):
-
-[source,java]
-----
-org.infinispan.client.hotrod.configuration.Configuration cacheContainerConfiguration = new org.infinispan.client.hotrod.configuration.ConfigurationBuilder()
-    .addServer()
-        .host("localhost")
-        .port(9999)
-        .version(org.infinispan.client.hotrod.ProtocolVersion.PROTOCOL_VERSION_25)
-    .build();
-...
-
-from("direct:start")
-    .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.GET)
-    .setHeader(InfinispanConstants.KEY).constant("123")
-    .to("infinispan?cacheContainerConfiguration=#cacheContainerConfiguration");
-----
-
-
-
-=== XML examples
-
-Routing can also be performed using XML configuration.
-The following example demonstrates `camel-infinispan` `local-camel-producer`, a camel route that sends data to an embedded cache created by the `local-cache` module.
-
-[source,java,options="nowrap"]
-----
-<camelContext id="local-producer" xmlns="http://camel.apache.org/schema/blueprint">
-    <route>
-        <from uri="timer://local?fixedRate=true&amp;period=5000"/>
-        <setHeader headerName="CamelInfinispanKey">
-            <constant>CamelTimerCounter</constant>
-        </setHeader>
-        <setHeader headerName="CamelInfinispanValue">
-            <constant>CamelTimerCounter</constant>
-        </setHeader>
-        <to uri="infinispan://foo?cacheContainer=#cacheManager"/>
-        <to uri="log:local-put?showAll=true"/>
-    </route>
-</camelContext>
-----
-
-
-The provided example requires you to instantiate the [class]``cacheManager``.
-
-You can instantiate the [class]``cacheManager`` bean for Spring XML as follows:
-
-[source,xml,options="nowrap"]
-----
-<bean id="cacheManager" class="org.infinispan.manager.DefaultCacheManager" init-method="start" destroy-method="stop">
-    <constructor-arg type="java.lang.String" value="infinispan.xml"/>
-</bean>
-----
-
-
-The following demonstrates how to instantiate the [class]``cacheManager`` bean using Blueprint XML.
-
-[source,xml,options="nowrap"]
-----
-<bean id="cacheManager" class="org.infinispan.manager.DefaultCacheManager" init-method="start" destroy-method="stop">
-    <argument value="infinispan.xml" />
-</bean>
-----
-
-[NOTE]
-====
-Both the Spring XML and Blueprint XML examples use the configuration file [path]_infinispan.xml_
- for configuration of the cache. This file must be present on the classpath.
-====
-
-
-== Remote Query
-
-When executing remote queries the cacheManager must be an instance of ``RemoteCacheManager``, and an example configuration utilizing a `RemoteCacheManager` is found below for both Java and blueprint.xml:
-
-.Using only Java
-====
+* Queries
++
 [source,java,options="nowrap"]
 ----
 from("direct:start")
     .setHeader(InfinispanConstants.OPERATION, InfinispanConstants.QUERY)
-    .setHeader(InfinispanConstants.QUERY_BUILDER,
-      new InfinispanQueryBuilder() {
-        public Query build(QueryFactory<Query> queryFactory) {
-          return queryFactory.from(User.class).having("name").like("%abc%")
-                      .build();
-        }
-      })
-    .to("infinispan://localhost?cacheContainer=#cacheManager&cacheName=remote_query_cache") ;
-----
-====
-
-.Using Blueprint and Java
-====
-.Java [class]``RemoteCacheManagerFactory`` class:
-[source,java,options="nowrap"]
-----
-public class RemoteCacheManagerFactory {
-    ConfigurationBuilder clientBuilder;
-    public RemoteCacheManagerFactory(String hostname, int port) {
-        clientBuilder = new ConfigurationBuilder();
-        clientBuilder.addServer()
-            .host(hostname).port(port);
-    }
-    public RemoteCacheManager newRemoteCacheManager() {
-        return new RemoteCacheManager(clientBuilder.build());
-    }
-}
-----
-.Java [class]``InfinispanQueryExample`` class:
-[source,java,options="nowrap"]
-----
-public class InfinispanQueryExample {
-    public InfinispanQueryBuilder getBuilder() {
-        return new InfinispanQueryBuilder() {
-            public Query build(QueryFactory<Query> queryFactory) {
-                return queryFactory.from(User.class)
-                         .having("name")
-                         .like("%abc%")
-                         .build();
-            }
+    .setHeader(InfinispanConstants.QUERY_BUILDER, new InfinispanQueryBuilder() {
+        @Override
+        public Query build(QueryFactory<Query> qf) {
+            return qf.from(User.class).having("name").like("%abc%").build();
         }
-    }
-}
-----
-.blueprint.xml:
-[source,xml,options="nowrap"]
+    })
+    .to("infinispan:myCacheName?cacheContainer=#cacheManager") ;
 ----
-<bean id=”remoteCacheManagerFactory” class=“com.datagrid.RemoteCacheManagerFactory”>
-    <argument value=”localhost”/>
-    <argument value="11222”/>
-</bean>
-
-<bean id=”cacheManager”
-    factory-ref=”remoteCacheManagerFactory”
-    factory-method=“newRemoteCacheManager”>
-</bean>
-
-<bean id="queryBuilder" class="org.example.com.InfinispanQueryExample"/>
-
-<camelContext id="route" xmlns="http://camel.apache.org/schema/blueprint">
-    <route>
-        <from uri="direct:start"/>
-            <setHeader headerName="CamelInfinispanOperation">
-                <constant>CamelInfinispanOperationQuery</constant>
-            </setHeader>
-            <setHeader headerName="CamelInfinispanQueryBuilder">
-                <method ref="queryBuilder" method="getBuilder"/>
-            </setHeader>
-        <to uri="infinispan://localhost?cacheContainer=#cacheManager&cacheName=remote_query_cache"/>
-    </route>
-</camelContext>
-----
-====
-
-The `remote_query_cache` is an arbitrary name for a cache that holds the data, and the results of the query will be a list of domain objects stored as a `CamelInfinispanOperationResult` header.
-
-In addition, there are the following requirements:
-
-* The [class]``RemoteCacheManager`` must be configured to use [class]``ProtoStreamMarshaller``.
-* The [class]``ProtoStreamMarshaller`` must be registered with the [class]``RemoteCacheManager``'s serialization context.
-* The .proto descriptors for domain objects must be registered with the remote Data Grid server.
-
-
-== Custom Listeners for Embedded Cache
-
-Custom Listeners for an embedded cache can be registered through the [parameter]``customListener`` parameter as shown below:
-
-.Using Java
++
 
+* Custom Listeners
++
 [source,java,options="nowrap"]
 ----
-from("infinispan://?cacheContainer=#myCustomContainer&cacheName=customCacheName&customListener=#myCustomListener")
+from("infinispan://?cacheContainer=#cacheManager&customListener=#myCustomListener")
   .to("mock:result");
 ----
-
-.Using Blueprint
-
-[source,xml,options="nowrap"]
-----
-<bean id="myCustomContainer" org.infinispan.manager.DefaultCacheManager"
-      init-method="start" destroy-method="stop">
-      <argument value="infinispan.xml" />
-</bean>
-
-<bean id="myCustomListener" class="org.example.com.CustomListener"/>
-
-<camelContext id="route" xmlns="http://camel.apache.org/schema/blueprint">
-    <route>
-        <from uri="infinispan://?cacheContainer=#myCustomContainer&cacheName=customCacheName&customListener=#myCustomListener"/>
-        <to uri="mock:result"/>
-    </route>
-</camelContext>
-----
-
-
-The instance of [class]``myCustomListener`` must exist.
-Users are encouraged to extend the [class]``org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedCustomListener`` and annotate the resulting class with the `@Listener` annotation from [package]#org.infinispan.notifications#
-.
-
-[NOTE]
-====
-Custom filters and converters for embedded caches are currently not supported.
-====
++
+The instance of `myCustomListener` must exist and Camel should be able to look it up from the  `Registry`.
+Users are encouraged to extend the `org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedCustomListener` class and annotate the resulting class with `@Listener` which can be found found in package `org.infinispan.notifications`.
 
 
-== Custom Listeners for Remote Cache
+== Using the Infinispan based idempotent repository
 
-Custom listeners for a remote cache can be registered in the same way as an embedded cache, with the exception that [parameter]``sync=false`` must be present.
-For instance:
+In this section we will use the Infinispan based idempotent repository.
 
-.Using only Java
-====
-[source,java,options="nowrap"]
-----
-from(infinispan://?cacheContainer=#cacheManager&sync=false&customListener=#myCustomListener")
-  .to(mock:result);
+.Java Example
+[source,java]
 ----
-====
+InfinispanEmbeddedConfiguration conf = new InfinispanEmbeddedConfiguration(); // <1>
+conf.setConfigurationUri("classpath:infinispan.xml")
 
-.Using Blueprint and Java
-====
-.Java class:
-[source,java,options="nowrap"]
-----
+InfinispanEmbeddedIdempotentRepository repo = new InfinispanEmbeddedIdempotentRepository("idempotent");  // <2>
+repo.setConfiguration(conf);
 
-public class RemoteCacheManagerFactory {
-    ConfigurationBuilder clientBuilder;
-    public RemoteCacheManagerFactory(String hostname, int port) {
-        clientBuilder = new ConfigurationBuilder();
-        clientBuilder.addServer()
-            .host(hostname).port(port);
-    }
-    public RemoteCacheManager newRemoteCacheManager() {
-        return new RemoteCacheManager(clientBuilder.build());
+context.addRoutes(new RouteBuilder() {
+    @Override
+    public void configure() {
+        from("direct:start")
+            .idempotentConsumer(header("MessageID"), repo) // <3>
+            .to("mock:result");
     }
-}
+});
 ----
-.blueprint.xml:
-[source,xml,options="nowrap"]
-----
-<bean id=”remoteCacheManagerFactory” class=“com.datagrid.RemoteCacheManagerFactory”>
-    <argument value=”localhost”/>
-    <argument value="11222”/>
-</bean>
+<1> Configure the cache
+<2> Configure the repository bean
+<3> Set the repository to the route
 
-<bean id=”cacheManager”
-    factory-ref=”remoteCacheManagerFactory”
-    factory-method=“newRemoteCacheManager”>
+.XML Example
+[source,xml]
+----
+<bean id="infinispanRepo" class="org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedIdempotentRepository" destroy-method="stop">
+  <constructor-arg value="idempotent"/> <1>
+  <property name="configuration"> <2>
+    <bean class="org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration">
+      <property name="configurationUrl" value="classpath:infinispan.xml"/>
+    </bean>
+  </property>
 </bean>
 
-<bean id="myCustomListener" class="org.example.com.CustomListener"/>
-
-<camelContext id="route" xmlns="http://camel.apache.org/schema/blueprint">
+<camelContext xmlns="http://camel.apache.org/schema/spring">
     <route>
-        <from uri="infinispan://?cacheContainer=#cacheManager&sync=false&customListener=#myCustomListener"/>
-        <to uri="mock:result"/>
+        <from uri="direct:start" />
+        <idempotentConsumer messageIdRepositoryRef="infinispanRepo"> <3>
+            <header>MessageID</header>
+            <to uri="mock:result" />
+        </idempotentConsumer>
     </route>
 </camelContext>
 ----
-====
+<1> Set the name of the cache that will be used by the repository
+<2> Configure the repository bean
+<3> Set the repository to the route
 
-The instance of [class]``myCustomListener`` must exist.
-Users are encouraged to extend the [class]``org.apache.camel.component.infinispan.remote.InfinispanRemoteCustomListener`` class and annotate the resulting class with ``@ClientListener``; this annotation is found in [package]#org.infinispan.client.hotrod.annotation#
-.
+== Using the Infinispan based aggregation repository
 
-Remote listeners may also be associated with custom filters and converters as shown below:
-[source,java,options="nowrap"]
-----
-@ClientListener(includeCurrentState=true, filterFactoryName = "static-filter-factory", converterFactoryName = "static-converter-factory")
-  private static class MyCustomListener extends InfinispanRemoteCustomListener {
-}
-----
+In this section we will use the Infinispan based aggregation repository.
 
-In order to use custom filters or converters classes annotated with `@NamedFactory` must be implemented.
-A skeleton that implements the necessary methods is shown below:
-[source,java,options="nowrap"]
+.Java Example
+[source,java]
 ----
-import org.infinispan.notifications.cachelistener.filter;
-
-@NamedFactory(name = "static-converter-factory")
-public static class StaticConverterFactory implements CacheEventConverterFactory {
-  @Override
-  public CacheEventConverter<Integer, String, CustomEvent> getConverter(Object[] params) {
-    ...
-  }
-
-  static class StaticConverter implements CacheEventConverter<Integer, String, CustomEvent>, Serializable {
-    @Override
-    public CustomEvent convert(Integer key, String previousValue, Metadata previousMetadata,
-                               String value, Metadata metadata, EventType eventType) {
-      ...
-    }
-  }
-}
+InfinispanEmbeddedConfiguration conf = new InfinispanEmbeddedConfiguration(); // <1>
+conf.setConfigurationUri("classpath:infinispan.xml")
 
-@NamedFactory(name = "static-filter-factory")
-public static class StaticCacheEventFilterFactory implements CacheEventFilterFactory {
-  @Override
-  public CacheEventFilter<Integer, String> getFilter(final Object[] params) {
-    ...
-  }
+InfinispanEmbeddedAggregationRepository repo = new InfinispanEmbeddedAggregationRepository("aggregation");  // <2>
+repo.setConfiguration(conf);
 
-  static class StaticCacheEventFilter implements CacheEventFilter<Integer, String>, Serializable {
+context.addRoutes(new RouteBuilder() {
     @Override
-    public boolean accept(Integer key, String previousValue, Metadata previousMetadata,
-                          String value, Metadata metadata, EventType eventType) {
-      ...
+    public void configure() {
+        from("direct:start")
+                .aggregate(header("MessageID"))
+                .completionSize(3)
+                .aggregationRepository(repo) // <3>
+                .aggregationStrategyRef("myStrategy")
+                .to("mock:result");
     }
-  }
-}
-----
-
-Custom filters and converters must be registered with the server.
-.
-
-[NOTE]
-====
-In order to listen for remote HotRod events the cacheManager must be of type [class]``RemoteCacheManager`` and instantiated.
-====
-
-[NOTE]
-====
-With the release of Infinispan 11, it is required to set the encoding configuration on any cache created. This is critical for consuming events too.
-For more information have a look at https://infinispan.org/docs/stable/titles/developing/developing.html#data_encoding[Data Encoding and MediaTypes] in the official Infinispan documentation.
-====
-
-== Using the Infinispan based idempotent repository
-
-In this section we will use the Infinispan based idempotent repository.
-
-First, we need to create a cacheManager and then configure our
-
-[source,java]
-----
-org.apache.camel.component.infinispan.processor.idempotent.InfinispanIdempotentRepository:
+});
 ----
+<1> Configure the cache
+<2> Create the repository bean
+<3> Set the repository to the route
 
+.XML Example
 [source,xml]
 ----
-<!-- set up the cache manager -->
-<bean id="cacheManager"
-      class="org.infinispan.manager.DefaultCacheManager"
-      init-method="start"
-      destroy-method="stop"/>
-
-<!-- set up the repository -->
-<bean id="infinispanRepo"
-      class="org.apache.camel.component.infinispan.InfinispanIdempotentRepository"
-      factory-method="infinispanIdempotentRepository">
-    <argument ref="cacheManager"/>
-    <argument value="idempotent"/>
+<bean id="infinispanRepo" class="org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedAggregationRepository" destroy-method="stop">
+  <constructor-arg value="aggregation"/> <1>
+  <property name="configuration"> <2>
+    <bean class="org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration">
+      <property name="configurationUrl" value="classpath:infinispan.xml"/>
+    </bean>
+  </property>
 </bean>
-----
-
-Then we can create our Infinispan idempotent repository in the spring
-XML file as well:
 
-[source,xml]
-----
 <camelContext xmlns="http://camel.apache.org/schema/spring">
-    <route id="JpaMessageIdRepositoryTest">
+    <route>
         <from uri="direct:start" />
-        <idempotentConsumer messageIdRepositoryRef="infinispanStore">
-            <header>messageId</header>
-            <to uri="mock:result" />
-        </idempotentConsumer>
+        <aggregate strategyRef="myStrategy"
+                   completionSize="3"
+                   aggregationRepositoryRef="infinispanRepo"> <3>
+            <correlationExpression>
+                <header>MessageID</header>
+            </correlationExpression>
+            <to uri="mock:result"/>
+        </aggregate>
     </route>
 </camelContext>
 ----
+<1> Set the name of the cache that will be used by the repository
+<2> Configure the repository bean
+<3> Set the repository to the route
 
+[NOTE]
+====
+With the release of Infinispan 11, it is required to set the encoding configuration on any cache created. This is critical for consuming events too.
+For more information have a look at https://infinispan.org/docs/stable/titles/developing/developing.html#data_encoding[Data Encoding and MediaTypes] in the official Infinispan documentation.
+====
 
-include::camel-spring-boot::page$infinispan-starter.adoc[]
+include::camel-spring-boot::page$infinispan-embedded-starter.adoc[]