You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2020/10/01 17:16:37 UTC

[camel] branch master updated (ffcba31 -> 4341a92)

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

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


    from ffcba31  Camel-AWS2-Lambda: Added localstack test for GetFunction
     new 55c5e7b  CAMEL-15609 - Camel-Infinispan: Add an explicit key uri parameter for producer
     new 31cbccd  CAMEL-15609 - Camel-Infinispan: Add an explicit key uri parameter for producer
     new c022730  CAMEL-15609 - Camel-Infinispan: Add an explicit key uri parameter for producer, added tests
     new 4341a92  CAMEL-15609 - Camel-Infinispan: Add an explicit key uri parameter for producer, added tests

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../camel/catalog/components/infinispan.json       |   8 +
 .../camel/catalog/docs/infinispan-component.adoc   |  12 +-
 .../infinispan/InfinispanComponentConfigurer.java  |  16 ++
 .../infinispan/InfinispanEndpointConfigurer.java   |  16 ++
 .../infinispan/InfinispanEndpointUriFactory.java   |   6 +-
 .../camel/component/infinispan/infinispan.json     |   8 +
 .../src/main/docs/infinispan-component.adoc        |  12 +-
 .../infinispan/InfinispanConfiguration.java        |  53 +++++++
 .../component/infinispan/InfinispanProducer.java   | 175 ++++++++++++++++++---
 .../infinispan/InfinispanProducerTest.java         |  30 ++++
 .../dsl/InfinispanComponentBuilderFactory.java     |  49 ++++++
 .../dsl/InfinispanEndpointBuilderFactory.java      |  90 +++++++++++
 .../modules/ROOT/pages/infinispan-component.adoc   |  12 +-
 13 files changed, 455 insertions(+), 32 deletions(-)


[camel] 02/04: CAMEL-15609 - Camel-Infinispan: Add an explicit key uri parameter for producer

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 31cbccd226fdb4f4071a301218fcae7a6f679d32
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Oct 1 17:16:38 2020 +0200

    CAMEL-15609 - Camel-Infinispan: Add an explicit key uri parameter for producer
---
 .../resources/org/apache/camel/catalog/components/infinispan.json | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/infinispan.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/infinispan.json
index 7d00baf..e7d0613 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/infinispan.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/infinispan.json
@@ -31,8 +31,12 @@
     "customListener": { "kind": "property", "displayName": "Custom Listener", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.infinispan.InfinispanCustomListener", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "Returns the custom listener in use, if provided" },
     "eventTypes": { "kind": "property", "displayName": "Event Types", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "Specifies the set of event types to register by the consumer. Multiple event can be separated by comma. The possible event types ar [...]
     "sync": { "kind": "property", "displayName": "Sync", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "If true, the consumer will receive notifications synchronously" },
+    "defaultValue": { "kind": "property", "displayName": "Default Value", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "Set a specific default value for some producer operations" },
+    "key": { "kind": "property", "displayName": "Key", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "Set a specific key for producer operations" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "oldValue": { "kind": "property", "displayName": "Old Value", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "Set a specific old value for some producer operations" },
     "operation": { "kind": "property", "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": "property", "displayName": "Value", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "Set a specific value for producer operations" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": true, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "cacheContainer": { "kind": "property", "displayName": "Cache Container", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.infinispan.commons.api.BasicCacheContainer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "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": "java.lang.Object", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "The CacheContainer configuration. Uses if the cacheContainer is not defined. Must be the followi [...]
@@ -54,8 +58,12 @@
     "sync": { "kind": "parameter", "displayName": "Sync", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "If true, the consumer will receive notifications synchronously" },
     "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with [...]
     "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "defaultValue": { "kind": "parameter", "displayName": "Default Value", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "Set a specific default value for some producer operations" },
+    "key": { "kind": "parameter", "displayName": "Key", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "Set a specific key for producer operations" },
     "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the  [...]
+    "oldValue": { "kind": "parameter", "displayName": "Old Value", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "Set a specific old value for some producer operations" },
     "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, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "Set a specific value for producer operations" },
     "basicPropertyBinding": { "kind": "parameter", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "cacheContainer": { "kind": "parameter", "displayName": "Cache Container", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.infinispan.commons.api.BasicCacheContainer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "Specifies the cache Container to connect" },
     "cacheContainerConfiguration": { "kind": "parameter", "displayName": "Cache Container Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "The CacheContainer configuration. Uses if the cacheContainer is not defined. Must be the follow [...]


[camel] 01/04: CAMEL-15609 - Camel-Infinispan: Add an explicit key uri parameter for producer

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 55c5e7be5ae8c2c1b4a36593da2df6701dd5490b
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Oct 1 16:03:36 2020 +0200

    CAMEL-15609 - Camel-Infinispan: Add an explicit key uri parameter for producer
---
 .../camel/catalog/docs/infinispan-component.adoc   |  12 +-
 .../infinispan/InfinispanComponentConfigurer.java  |  16 ++
 .../infinispan/InfinispanEndpointConfigurer.java   |  16 ++
 .../infinispan/InfinispanEndpointUriFactory.java   |   6 +-
 .../camel/component/infinispan/infinispan.json     |   8 +
 .../src/main/docs/infinispan-component.adoc        |  12 +-
 .../infinispan/InfinispanConfiguration.java        |  53 +++++++
 .../component/infinispan/InfinispanProducer.java   | 175 ++++++++++++++++++---
 .../dsl/InfinispanComponentBuilderFactory.java     |  49 ++++++
 .../dsl/InfinispanEndpointBuilderFactory.java      |  90 +++++++++++
 .../modules/ROOT/pages/infinispan-component.adoc   |  12 +-
 11 files changed, 417 insertions(+), 32 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 6efd241..32f9729 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
@@ -63,7 +63,7 @@ If no cache configuration is provided, embedded cacheContainer is created direct
 
 
 // component options: START
-The Infinispan component supports 19 options, which are listed below.
+The Infinispan component supports 23 options, which are listed below.
 
 
 
@@ -79,8 +79,12 @@ The Infinispan component supports 19 options, which are listed below.
 | *customListener* (consumer) | Returns the custom listener in use, if provided |  | InfinispanCustomListener
 | *eventTypes* (consumer) | Specifies the set of event types to register by the consumer. Multiple event can be separated by comma. The possible event types are: CACHE_ENTRY_ACTIVATED, CACHE_ENTRY_PASSIVATED, CACHE_ENTRY_VISITED, CACHE_ENTRY_LOADED, CACHE_ENTRY_EVICTED, CACHE_ENTRY_CREATED, CACHE_ENTRY_REMOVED, CACHE_ENTRY_MODIFIED, TRANSACTION_COMPLETED, TRANSACTION_REGISTERED, CACHE_ENTRY_INVALIDATED, DATA_REHASHED, TOPOLOGY_CHANGED, PARTITION_STATUS_CHANGED |  | String
 | *sync* (consumer) | If true, the consumer will receive notifications synchronously | true | boolean
+| *defaultValue* (producer) | Set a specific default value for some producer operations |  | Object
+| *key* (producer) | Set a specific key for producer operations |  | Object
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *oldValue* (producer) | Set a specific old value for some producer operations |  | Object
 | *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
 | *basicPropertyBinding* (advanced) | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *cacheContainer* (advanced) | Specifies the cache Container to connect |  | BasicCacheContainer
 | *cacheContainerConfiguration* (advanced) | 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; |  | Object
@@ -114,7 +118,7 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (21 parameters):
+=== Query Parameters (25 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -130,8 +134,12 @@ with the following path and query parameters:
 | *sync* (consumer) | If true, the consumer will receive notifications synchronously | true | boolean
 | *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
 | *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
+| *defaultValue* (producer) | Set a specific default value for some producer operations |  | Object
+| *key* (producer) | Set a specific key for producer operations |  | Object
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *oldValue* (producer) | Set a specific old value for some producer operations |  | Object
 | *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
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *cacheContainer* (advanced) | Specifies the cache Container to connect |  | BasicCacheContainer
 | *cacheContainerConfiguration* (advanced) | 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; |  | Object
diff --git a/components/camel-infinispan/src/generated/java/org/apache/camel/component/infinispan/InfinispanComponentConfigurer.java b/components/camel-infinispan/src/generated/java/org/apache/camel/component/infinispan/InfinispanComponentConfigurer.java
index 553da15..85eca9a 100644
--- a/components/camel-infinispan/src/generated/java/org/apache/camel/component/infinispan/InfinispanComponentConfigurer.java
+++ b/components/camel-infinispan/src/generated/java/org/apache/camel/component/infinispan/InfinispanComponentConfigurer.java
@@ -27,8 +27,12 @@ public class InfinispanComponentConfigurer extends PropertyConfigurerSupport imp
         map.put("customListener", org.apache.camel.component.infinispan.InfinispanCustomListener.class);
         map.put("eventTypes", java.lang.String.class);
         map.put("sync", boolean.class);
+        map.put("defaultValue", java.lang.Object.class);
+        map.put("key", java.lang.Object.class);
         map.put("lazyStartProducer", boolean.class);
+        map.put("oldValue", java.lang.Object.class);
         map.put("operation", org.apache.camel.component.infinispan.InfinispanOperation.class);
+        map.put("value", java.lang.Object.class);
         map.put("basicPropertyBinding", boolean.class);
         map.put("cacheContainer", org.infinispan.commons.api.BasicCacheContainer.class);
         map.put("cacheContainerConfiguration", java.lang.Object.class);
@@ -69,12 +73,17 @@ public class InfinispanComponentConfigurer extends PropertyConfigurerSupport imp
         case "configurationUri": getOrCreateConfiguration(target).setConfigurationUri(property(camelContext, java.lang.String.class, value)); return true;
         case "customlistener":
         case "customListener": getOrCreateConfiguration(target).setCustomListener(property(camelContext, org.apache.camel.component.infinispan.InfinispanCustomListener.class, value)); return true;
+        case "defaultvalue":
+        case "defaultValue": getOrCreateConfiguration(target).setDefaultValue(property(camelContext, java.lang.Object.class, value)); return true;
         case "eventtypes":
         case "eventTypes": getOrCreateConfiguration(target).setEventTypes(property(camelContext, java.lang.String.class, value)); return true;
         case "flags": getOrCreateConfiguration(target).setFlags(property(camelContext, java.lang.String.class, value)); return true;
         case "hosts": getOrCreateConfiguration(target).setHosts(property(camelContext, java.lang.String.class, value)); return true;
+        case "key": getOrCreateConfiguration(target).setKey(property(camelContext, java.lang.Object.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "oldvalue":
+        case "oldValue": getOrCreateConfiguration(target).setOldValue(property(camelContext, java.lang.Object.class, value)); return true;
         case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.infinispan.InfinispanOperation.class, value)); return true;
         case "querybuilder":
         case "queryBuilder": getOrCreateConfiguration(target).setQueryBuilder(property(camelContext, org.apache.camel.component.infinispan.InfinispanQueryBuilder.class, value)); return true;
@@ -83,6 +92,7 @@ public class InfinispanComponentConfigurer extends PropertyConfigurerSupport imp
         case "resultheader":
         case "resultHeader": getOrCreateConfiguration(target).setResultHeader(property(camelContext, java.lang.Object.class, value)); return true;
         case "sync": getOrCreateConfiguration(target).setSync(property(camelContext, boolean.class, value)); return true;
+        case "value": getOrCreateConfiguration(target).setValue(property(camelContext, java.lang.Object.class, value)); return true;
         default: return false;
         }
     }
@@ -114,12 +124,17 @@ public class InfinispanComponentConfigurer extends PropertyConfigurerSupport imp
         case "configurationUri": return getOrCreateConfiguration(target).getConfigurationUri();
         case "customlistener":
         case "customListener": return getOrCreateConfiguration(target).getCustomListener();
+        case "defaultvalue":
+        case "defaultValue": return getOrCreateConfiguration(target).getDefaultValue();
         case "eventtypes":
         case "eventTypes": return getOrCreateConfiguration(target).getEventTypes();
         case "flags": return getOrCreateConfiguration(target).getFlags();
         case "hosts": return getOrCreateConfiguration(target).getHosts();
+        case "key": return getOrCreateConfiguration(target).getKey();
         case "lazystartproducer":
         case "lazyStartProducer": return target.isLazyStartProducer();
+        case "oldvalue":
+        case "oldValue": return getOrCreateConfiguration(target).getOldValue();
         case "operation": return getOrCreateConfiguration(target).getOperation();
         case "querybuilder":
         case "queryBuilder": return getOrCreateConfiguration(target).getQueryBuilder();
@@ -128,6 +143,7 @@ public class InfinispanComponentConfigurer extends PropertyConfigurerSupport imp
         case "resultheader":
         case "resultHeader": return getOrCreateConfiguration(target).getResultHeader();
         case "sync": return getOrCreateConfiguration(target).isSync();
+        case "value": return getOrCreateConfiguration(target).getValue();
         default: return null;
         }
     }
diff --git a/components/camel-infinispan/src/generated/java/org/apache/camel/component/infinispan/InfinispanEndpointConfigurer.java b/components/camel-infinispan/src/generated/java/org/apache/camel/component/infinispan/InfinispanEndpointConfigurer.java
index be0d21f..a86afa0 100644
--- a/components/camel-infinispan/src/generated/java/org/apache/camel/component/infinispan/InfinispanEndpointConfigurer.java
+++ b/components/camel-infinispan/src/generated/java/org/apache/camel/component/infinispan/InfinispanEndpointConfigurer.java
@@ -29,8 +29,12 @@ public class InfinispanEndpointConfigurer extends PropertyConfigurerSupport impl
         map.put("sync", boolean.class);
         map.put("exceptionHandler", org.apache.camel.spi.ExceptionHandler.class);
         map.put("exchangePattern", org.apache.camel.ExchangePattern.class);
+        map.put("defaultValue", java.lang.Object.class);
+        map.put("key", java.lang.Object.class);
         map.put("lazyStartProducer", boolean.class);
+        map.put("oldValue", java.lang.Object.class);
         map.put("operation", org.apache.camel.component.infinispan.InfinispanOperation.class);
+        map.put("value", java.lang.Object.class);
         map.put("basicPropertyBinding", boolean.class);
         map.put("cacheContainer", org.infinispan.commons.api.BasicCacheContainer.class);
         map.put("cacheContainerConfiguration", java.lang.Object.class);
@@ -64,6 +68,8 @@ public class InfinispanEndpointConfigurer extends PropertyConfigurerSupport impl
         case "configurationUri": target.getConfiguration().setConfigurationUri(property(camelContext, java.lang.String.class, value)); return true;
         case "customlistener":
         case "customListener": target.getConfiguration().setCustomListener(property(camelContext, org.apache.camel.component.infinispan.InfinispanCustomListener.class, value)); return true;
+        case "defaultvalue":
+        case "defaultValue": target.getConfiguration().setDefaultValue(property(camelContext, java.lang.Object.class, value)); return true;
         case "eventtypes":
         case "eventTypes": target.getConfiguration().setEventTypes(property(camelContext, java.lang.String.class, value)); return true;
         case "exceptionhandler":
@@ -72,8 +78,11 @@ public class InfinispanEndpointConfigurer extends PropertyConfigurerSupport impl
         case "exchangePattern": target.setExchangePattern(property(camelContext, org.apache.camel.ExchangePattern.class, value)); return true;
         case "flags": target.getConfiguration().setFlags(property(camelContext, java.lang.String.class, value)); return true;
         case "hosts": target.getConfiguration().setHosts(property(camelContext, java.lang.String.class, value)); return true;
+        case "key": target.getConfiguration().setKey(property(camelContext, java.lang.Object.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "oldvalue":
+        case "oldValue": target.getConfiguration().setOldValue(property(camelContext, java.lang.Object.class, value)); return true;
         case "operation": target.getConfiguration().setOperation(property(camelContext, org.apache.camel.component.infinispan.InfinispanOperation.class, value)); return true;
         case "querybuilder":
         case "queryBuilder": target.getConfiguration().setQueryBuilder(property(camelContext, org.apache.camel.component.infinispan.InfinispanQueryBuilder.class, value)); return true;
@@ -83,6 +92,7 @@ public class InfinispanEndpointConfigurer extends PropertyConfigurerSupport impl
         case "resultHeader": target.getConfiguration().setResultHeader(property(camelContext, java.lang.Object.class, value)); return true;
         case "sync": target.getConfiguration().setSync(property(camelContext, boolean.class, value)); return true;
         case "synchronous": target.setSynchronous(property(camelContext, boolean.class, value)); return true;
+        case "value": target.getConfiguration().setValue(property(camelContext, java.lang.Object.class, value)); return true;
         default: return false;
         }
     }
@@ -113,6 +123,8 @@ public class InfinispanEndpointConfigurer extends PropertyConfigurerSupport impl
         case "configurationUri": return target.getConfiguration().getConfigurationUri();
         case "customlistener":
         case "customListener": return target.getConfiguration().getCustomListener();
+        case "defaultvalue":
+        case "defaultValue": return target.getConfiguration().getDefaultValue();
         case "eventtypes":
         case "eventTypes": return target.getConfiguration().getEventTypes();
         case "exceptionhandler":
@@ -121,8 +133,11 @@ public class InfinispanEndpointConfigurer extends PropertyConfigurerSupport impl
         case "exchangePattern": return target.getExchangePattern();
         case "flags": return target.getConfiguration().getFlags();
         case "hosts": return target.getConfiguration().getHosts();
+        case "key": return target.getConfiguration().getKey();
         case "lazystartproducer":
         case "lazyStartProducer": return target.isLazyStartProducer();
+        case "oldvalue":
+        case "oldValue": return target.getConfiguration().getOldValue();
         case "operation": return target.getConfiguration().getOperation();
         case "querybuilder":
         case "queryBuilder": return target.getConfiguration().getQueryBuilder();
@@ -132,6 +147,7 @@ public class InfinispanEndpointConfigurer extends PropertyConfigurerSupport impl
         case "resultHeader": return target.getConfiguration().getResultHeader();
         case "sync": return target.getConfiguration().isSync();
         case "synchronous": return target.isSynchronous();
+        case "value": return target.getConfiguration().getValue();
         default: return null;
         }
     }
diff --git a/components/camel-infinispan/src/generated/java/org/apache/camel/component/infinispan/InfinispanEndpointUriFactory.java b/components/camel-infinispan/src/generated/java/org/apache/camel/component/infinispan/InfinispanEndpointUriFactory.java
index 139daff..8ea5c26 100644
--- a/components/camel-infinispan/src/generated/java/org/apache/camel/component/infinispan/InfinispanEndpointUriFactory.java
+++ b/components/camel-infinispan/src/generated/java/org/apache/camel/component/infinispan/InfinispanEndpointUriFactory.java
@@ -18,7 +18,7 @@ public class InfinispanEndpointUriFactory extends org.apache.camel.support.compo
 
     private static final Set<String> PROPERTY_NAMES;
     static {
-        Set<String> set = new HashSet<>(22);
+        Set<String> set = new HashSet<>(26);
         set.add("cacheName");
         set.add("hosts");
         set.add("queryBuilder");
@@ -30,8 +30,12 @@ public class InfinispanEndpointUriFactory extends org.apache.camel.support.compo
         set.add("sync");
         set.add("exceptionHandler");
         set.add("exchangePattern");
+        set.add("defaultValue");
+        set.add("key");
         set.add("lazyStartProducer");
+        set.add("oldValue");
         set.add("operation");
+        set.add("value");
         set.add("basicPropertyBinding");
         set.add("cacheContainer");
         set.add("cacheContainerConfiguration");
diff --git a/components/camel-infinispan/src/generated/resources/org/apache/camel/component/infinispan/infinispan.json b/components/camel-infinispan/src/generated/resources/org/apache/camel/component/infinispan/infinispan.json
index 7d00baf..e7d0613 100644
--- a/components/camel-infinispan/src/generated/resources/org/apache/camel/component/infinispan/infinispan.json
+++ b/components/camel-infinispan/src/generated/resources/org/apache/camel/component/infinispan/infinispan.json
@@ -31,8 +31,12 @@
     "customListener": { "kind": "property", "displayName": "Custom Listener", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.infinispan.InfinispanCustomListener", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "Returns the custom listener in use, if provided" },
     "eventTypes": { "kind": "property", "displayName": "Event Types", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "Specifies the set of event types to register by the consumer. Multiple event can be separated by comma. The possible event types ar [...]
     "sync": { "kind": "property", "displayName": "Sync", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "If true, the consumer will receive notifications synchronously" },
+    "defaultValue": { "kind": "property", "displayName": "Default Value", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "Set a specific default value for some producer operations" },
+    "key": { "kind": "property", "displayName": "Key", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "Set a specific key for producer operations" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "oldValue": { "kind": "property", "displayName": "Old Value", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "Set a specific old value for some producer operations" },
     "operation": { "kind": "property", "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": "property", "displayName": "Value", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "Set a specific value for producer operations" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": true, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "cacheContainer": { "kind": "property", "displayName": "Cache Container", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.infinispan.commons.api.BasicCacheContainer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "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": "java.lang.Object", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "The CacheContainer configuration. Uses if the cacheContainer is not defined. Must be the followi [...]
@@ -54,8 +58,12 @@
     "sync": { "kind": "parameter", "displayName": "Sync", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "If true, the consumer will receive notifications synchronously" },
     "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with [...]
     "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "defaultValue": { "kind": "parameter", "displayName": "Default Value", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "Set a specific default value for some producer operations" },
+    "key": { "kind": "parameter", "displayName": "Key", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "Set a specific key for producer operations" },
     "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the  [...]
+    "oldValue": { "kind": "parameter", "displayName": "Old Value", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "Set a specific old value for some producer operations" },
     "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, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "Set a specific value for producer operations" },
     "basicPropertyBinding": { "kind": "parameter", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "cacheContainer": { "kind": "parameter", "displayName": "Cache Container", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.infinispan.commons.api.BasicCacheContainer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "Specifies the cache Container to connect" },
     "cacheContainerConfiguration": { "kind": "parameter", "displayName": "Cache Container Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.InfinispanConfiguration", "configurationField": "configuration", "description": "The CacheContainer configuration. Uses if the cacheContainer is not defined. Must be the follow [...]
diff --git a/components/camel-infinispan/src/main/docs/infinispan-component.adoc b/components/camel-infinispan/src/main/docs/infinispan-component.adoc
index 6efd241..32f9729 100644
--- a/components/camel-infinispan/src/main/docs/infinispan-component.adoc
+++ b/components/camel-infinispan/src/main/docs/infinispan-component.adoc
@@ -63,7 +63,7 @@ If no cache configuration is provided, embedded cacheContainer is created direct
 
 
 // component options: START
-The Infinispan component supports 19 options, which are listed below.
+The Infinispan component supports 23 options, which are listed below.
 
 
 
@@ -79,8 +79,12 @@ The Infinispan component supports 19 options, which are listed below.
 | *customListener* (consumer) | Returns the custom listener in use, if provided |  | InfinispanCustomListener
 | *eventTypes* (consumer) | Specifies the set of event types to register by the consumer. Multiple event can be separated by comma. The possible event types are: CACHE_ENTRY_ACTIVATED, CACHE_ENTRY_PASSIVATED, CACHE_ENTRY_VISITED, CACHE_ENTRY_LOADED, CACHE_ENTRY_EVICTED, CACHE_ENTRY_CREATED, CACHE_ENTRY_REMOVED, CACHE_ENTRY_MODIFIED, TRANSACTION_COMPLETED, TRANSACTION_REGISTERED, CACHE_ENTRY_INVALIDATED, DATA_REHASHED, TOPOLOGY_CHANGED, PARTITION_STATUS_CHANGED |  | String
 | *sync* (consumer) | If true, the consumer will receive notifications synchronously | true | boolean
+| *defaultValue* (producer) | Set a specific default value for some producer operations |  | Object
+| *key* (producer) | Set a specific key for producer operations |  | Object
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *oldValue* (producer) | Set a specific old value for some producer operations |  | Object
 | *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
 | *basicPropertyBinding* (advanced) | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *cacheContainer* (advanced) | Specifies the cache Container to connect |  | BasicCacheContainer
 | *cacheContainerConfiguration* (advanced) | 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; |  | Object
@@ -114,7 +118,7 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (21 parameters):
+=== Query Parameters (25 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -130,8 +134,12 @@ with the following path and query parameters:
 | *sync* (consumer) | If true, the consumer will receive notifications synchronously | true | boolean
 | *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
 | *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
+| *defaultValue* (producer) | Set a specific default value for some producer operations |  | Object
+| *key* (producer) | Set a specific key for producer operations |  | Object
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *oldValue* (producer) | Set a specific old value for some producer operations |  | Object
 | *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
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *cacheContainer* (advanced) | Specifies the cache Container to connect |  | BasicCacheContainer
 | *cacheContainerConfiguration* (advanced) | 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; |  | Object
diff --git a/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanConfiguration.java b/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanConfiguration.java
index 3e920c3..5c6a634 100644
--- a/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanConfiguration.java
+++ b/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanConfiguration.java
@@ -35,6 +35,14 @@ public class InfinispanConfiguration implements Cloneable {
     private String hosts;
     @UriParam(label = "producer", defaultValue = "PUT")
     private InfinispanOperation operation = InfinispanOperation.PUT;
+    @UriParam(label = "producer")
+    private Object key;
+    @UriParam(label = "producer")
+    private Object value;
+    @UriParam(label = "producer")
+    private Object oldValue;
+    @UriParam(label = "producer")
+    private Object defaultValue;
     @Deprecated
     @UriParam(label = "consumer", defaultValue = "PUT")
     private String command = "PUT";
@@ -302,4 +310,49 @@ public class InfinispanConfiguration implements Cloneable {
     public void setRemappingFunction(BiFunction remappingFunction) {
         this.remappingFunction = remappingFunction;
     }
+
+    public Object getKey() {
+        return key;
+    }
+
+    /**
+     * Set a specific key for producer operations
+     */
+    public void setKey(Object key) {
+        this.key = key;
+    }
+
+    public Object getValue() {
+        return value;
+    }
+
+    /**
+     * Set a specific value for producer operations
+     */
+    public void setValue(Object value) {
+        this.value = value;
+    }
+
+    public Object getOldValue() {
+        return oldValue;
+    }
+
+    /**
+     * Set a specific old value for some producer operations
+     */
+    public void setOldValue(Object oldValue) {
+        this.oldValue = oldValue;
+    }
+
+    public Object getDefaultValue() {
+        return defaultValue;
+    }
+
+    /**
+     * Set a specific default value for some producer operations
+     */
+    public void setDefaultValue(Object defaultValue) {
+        this.defaultValue = defaultValue;
+    }
+
 }
diff --git a/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanProducer.java b/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanProducer.java
index a415df9..44b2fc3 100644
--- a/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanProducer.java
+++ b/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanProducer.java
@@ -49,8 +49,18 @@ public class InfinispanProducer extends HeaderSelectorProducer {
     @InvokeOnHeader("PUT")
     void onPut(Message message) {
         final BasicCache<Object, Object> cache = manager.getCache(message, this.cacheName);
-        final Object key = message.getHeader(InfinispanConstants.KEY);
-        final Object value = message.getHeader(InfinispanConstants.VALUE);
+        final Object key;
+        final Object value;
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.KEY))) {
+            key = message.getHeader(InfinispanConstants.KEY);
+        } else {
+            key = configuration.getKey();
+        }
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.VALUE))) {
+            value = message.getHeader(InfinispanConstants.VALUE);
+        } else {
+            value = configuration.getValue();
+        }
         final Object result;
 
         if (hasLifespan(message)) {
@@ -75,8 +85,18 @@ public class InfinispanProducer extends HeaderSelectorProducer {
     @InvokeOnHeader("PUTASYNC")
     void onPutAsync(Message message) {
         final BasicCache<Object, Object> cache = manager.getCache(message, this.cacheName);
-        final Object key = message.getHeader(InfinispanConstants.KEY);
-        final Object value = message.getHeader(InfinispanConstants.VALUE);
+        final Object key;
+        final Object value;
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.KEY))) {
+            key = message.getHeader(InfinispanConstants.KEY);
+        } else {
+            key = configuration.getKey();
+        }
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.VALUE))) {
+            value = message.getHeader(InfinispanConstants.VALUE);
+        } else {
+            value = configuration.getValue();
+        }
         final CompletableFuture<Object> result;
 
         if (hasLifespan(message)) {
@@ -148,8 +168,18 @@ public class InfinispanProducer extends HeaderSelectorProducer {
     @InvokeOnHeader("PUTIFABSENT")
     void onPutIfAbsent(Message message) {
         final BasicCache<Object, Object> cache = manager.getCache(message, this.cacheName);
-        final Object key = message.getHeader(InfinispanConstants.KEY);
-        final Object value = message.getHeader(InfinispanConstants.VALUE);
+        final Object key;
+        final Object value;
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.KEY))) {
+            key = message.getHeader(InfinispanConstants.KEY);
+        } else {
+            key = configuration.getKey();
+        }
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.VALUE))) {
+            value = message.getHeader(InfinispanConstants.VALUE);
+        } else {
+            value = configuration.getValue();
+        }
         final Object result;
 
         if (hasLifespan(message)) {
@@ -174,8 +204,18 @@ public class InfinispanProducer extends HeaderSelectorProducer {
     @InvokeOnHeader("PUTIFABSENTASYNC")
     void onPutIfAbsentAsync(Message message) {
         final BasicCache<Object, Object> cache = manager.getCache(message, this.cacheName);
-        final Object key = message.getHeader(InfinispanConstants.KEY);
-        final Object value = message.getHeader(InfinispanConstants.VALUE);
+        final Object key;
+        final Object value;
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.KEY))) {
+            key = message.getHeader(InfinispanConstants.KEY);
+        } else {
+            key = configuration.getKey();
+        }
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.VALUE))) {
+            value = message.getHeader(InfinispanConstants.VALUE);
+        } else {
+            value = configuration.getValue();
+        }
         final CompletableFuture<Object> result;
 
         if (hasLifespan(message)) {
@@ -200,7 +240,12 @@ public class InfinispanProducer extends HeaderSelectorProducer {
     @InvokeOnHeader("GET")
     void onGet(Message message) {
         final BasicCache<Object, Object> cache = manager.getCache(message, this.cacheName);
-        final Object key = message.getHeader(InfinispanConstants.KEY);
+        final Object key;
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.KEY))) {
+            key = message.getHeader(InfinispanConstants.KEY);
+        } else {
+            key = configuration.getKey();
+        }
         final Object result = cache.get(key);
 
         setResult(message, result);
@@ -209,8 +254,18 @@ public class InfinispanProducer extends HeaderSelectorProducer {
     @InvokeOnHeader("GETORDEFAULT")
     void onGetOrDefault(Message message) {
         final BasicCache<Object, Object> cache = manager.getCache(message, this.cacheName);
-        final Object key = message.getHeader(InfinispanConstants.KEY);
-        final Object defaultValue = message.getHeader(InfinispanConstants.DEFAULT_VALUE);
+        final Object key;
+        final Object defaultValue;
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.KEY))) {
+            key = message.getHeader(InfinispanConstants.KEY);
+        } else {
+            key = configuration.getKey();
+        }
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.DEFAULT_VALUE))) {
+            defaultValue = message.getHeader(InfinispanConstants.DEFAULT_VALUE);
+        } else {
+            defaultValue = configuration.getDefaultValue();
+        }
         final Object result = cache.getOrDefault(key, defaultValue);
 
         setResult(message, result);
@@ -219,7 +274,12 @@ public class InfinispanProducer extends HeaderSelectorProducer {
     @InvokeOnHeader("CONTAINSKEY")
     void onContainsKey(Message message) {
         final BasicCache<Object, Object> cache = manager.getCache(message, this.cacheName);
-        final Object key = message.getHeader(InfinispanConstants.KEY);
+        final Object key;
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.KEY))) {
+            key = message.getHeader(InfinispanConstants.KEY);
+        } else {
+            key = configuration.getKey();
+        }
         final Object result = cache.containsKey(key);
 
         setResult(message, result);
@@ -228,7 +288,12 @@ public class InfinispanProducer extends HeaderSelectorProducer {
     @InvokeOnHeader("CONTAINSVALUE")
     void onContainsValue(Message message) {
         final BasicCache<Object, Object> cache = manager.getCache(message, this.cacheName);
-        final Object value = message.getHeader(InfinispanConstants.VALUE);
+        final Object value;
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.VALUE))) {
+            value = message.getHeader(InfinispanConstants.VALUE);
+        } else {
+            value = configuration.getValue();
+        }
         final Object result = cache.containsValue(value);
 
         setResult(message, result);
@@ -237,8 +302,18 @@ public class InfinispanProducer extends HeaderSelectorProducer {
     @InvokeOnHeader("REMOVE")
     void onRemove(Message message) {
         final BasicCache<Object, Object> cache = manager.getCache(message, this.cacheName);
-        final Object key = message.getHeader(InfinispanConstants.KEY);
-        final Object value = message.getHeader(InfinispanConstants.VALUE);
+        final Object key;
+        final Object value;
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.KEY))) {
+            key = message.getHeader(InfinispanConstants.KEY);
+        } else {
+            key = configuration.getKey();
+        }
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.VALUE))) {
+            value = message.getHeader(InfinispanConstants.VALUE);
+        } else {
+            value = configuration.getValue();
+        }
         final Object result;
 
         if (ObjectHelper.isEmpty(value)) {
@@ -253,8 +328,18 @@ public class InfinispanProducer extends HeaderSelectorProducer {
     @InvokeOnHeader("REMOVEASYNC")
     void onRemoveAsync(Message message) {
         final BasicCache<Object, Object> cache = manager.getCache(message, this.cacheName);
-        final Object key = message.getHeader(InfinispanConstants.KEY);
-        final Object value = message.getHeader(InfinispanConstants.VALUE);
+        final Object key;
+        final Object value;
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.KEY))) {
+            key = message.getHeader(InfinispanConstants.KEY);
+        } else {
+            key = configuration.getKey();
+        }
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.VALUE))) {
+            value = message.getHeader(InfinispanConstants.VALUE);
+        } else {
+            value = configuration.getValue();
+        }
         final CompletableFuture<Object> resultRemoveAsyncKey;
         final CompletableFuture<Boolean> resultRemoveAsyncKeyValue;
 
@@ -270,9 +355,24 @@ public class InfinispanProducer extends HeaderSelectorProducer {
     @InvokeOnHeader("REPLACE")
     void onReplace(Message message) {
         final BasicCache<Object, Object> cache = manager.getCache(message, this.cacheName);
-        final Object key = message.getHeader(InfinispanConstants.KEY);
-        final Object value = message.getHeader(InfinispanConstants.VALUE);
-        final Object oldValue = message.getHeader(InfinispanConstants.OLD_VALUE);
+        final Object key;
+        final Object value;
+        final Object oldValue;
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.KEY))) {
+            key = message.getHeader(InfinispanConstants.KEY);
+        } else {
+            key = configuration.getKey();
+        }
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.VALUE))) {
+            value = message.getHeader(InfinispanConstants.VALUE);
+        } else {
+            value = configuration.getValue();
+        }
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.OLD_VALUE))) {
+            oldValue = message.getHeader(InfinispanConstants.OLD_VALUE);
+        } else {
+            oldValue = configuration.getOldValue();
+        }
         final Object result;
 
         if (hasLifespan(message)) {
@@ -309,9 +409,24 @@ public class InfinispanProducer extends HeaderSelectorProducer {
     @InvokeOnHeader("REPLACEASYNC")
     void onReplaceAsync(Message message) {
         final BasicCache<Object, Object> cache = manager.getCache(message, this.cacheName);
-        final Object key = message.getHeader(InfinispanConstants.KEY);
-        final Object value = message.getHeader(InfinispanConstants.VALUE);
-        final Object oldValue = message.getHeader(InfinispanConstants.OLD_VALUE);
+        final Object key;
+        final Object value;
+        final Object oldValue;
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.KEY))) {
+            key = message.getHeader(InfinispanConstants.KEY);
+        } else {
+            key = configuration.getKey();
+        }
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.VALUE))) {
+            value = message.getHeader(InfinispanConstants.VALUE);
+        } else {
+            value = configuration.getValue();
+        }
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.OLD_VALUE))) {
+            oldValue = message.getHeader(InfinispanConstants.OLD_VALUE);
+        } else {
+            oldValue = configuration.getOldValue();
+        }
         final CompletableFuture<Object> resultWithNewValue;
         final CompletableFuture<Boolean> resultWithNewAndOldValue;
 
@@ -399,7 +514,12 @@ public class InfinispanProducer extends HeaderSelectorProducer {
     @InvokeOnHeader("COMPUTE")
     void onCompute(Message message) {
         final BasicCache<Object, Object> cache = manager.getCache(message, this.cacheName);
-        final Object key = message.getHeader(InfinispanConstants.KEY);
+        final Object key;
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.KEY))) {
+            key = message.getHeader(InfinispanConstants.KEY);
+        } else {
+            key = configuration.getKey();
+        }
         final Object result = cache.compute(key, configuration.getRemappingFunction());
         setResult(message, result);
     }
@@ -407,7 +527,12 @@ public class InfinispanProducer extends HeaderSelectorProducer {
     @InvokeOnHeader("COMPUTEASYNC")
     void onComputeAsync(Message message) {
         final BasicCache<Object, Object> cache = manager.getCache(message, this.cacheName);
-        final Object key = message.getHeader(InfinispanConstants.KEY);
+        final Object key;
+        if (ObjectHelper.isNotEmpty(message.getHeader(InfinispanConstants.KEY))) {
+            key = message.getHeader(InfinispanConstants.KEY);
+        } else {
+            key = configuration.getKey();
+        }
         final CompletableFuture<Object> result = cache.computeAsync(key, configuration.getRemappingFunction());
         setResult(message, result);
     }
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 4031e27..ab00d26 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
@@ -176,6 +176,29 @@ public interface InfinispanComponentBuilderFactory {
             return this;
         }
         /**
+         * Set a specific default value for some producer operations.
+         * 
+         * The option is a: <code>java.lang.Object</code> type.
+         * 
+         * Group: producer
+         */
+        default InfinispanComponentBuilder defaultValue(
+                java.lang.Object defaultValue) {
+            doSetProperty("defaultValue", defaultValue);
+            return this;
+        }
+        /**
+         * Set a specific key for producer operations.
+         * 
+         * The option is a: <code>java.lang.Object</code> type.
+         * 
+         * Group: producer
+         */
+        default InfinispanComponentBuilder key(java.lang.Object key) {
+            doSetProperty("key", key);
+            return this;
+        }
+        /**
          * Whether the producer should be started lazy (on the first message).
          * By starting lazy you can use this to allow CamelContext and routes to
          * startup in situations where a producer may otherwise fail during
@@ -197,6 +220,17 @@ public interface InfinispanComponentBuilderFactory {
             return this;
         }
         /**
+         * Set a specific old value for some producer operations.
+         * 
+         * The option is a: <code>java.lang.Object</code> type.
+         * 
+         * Group: producer
+         */
+        default InfinispanComponentBuilder oldValue(java.lang.Object oldValue) {
+            doSetProperty("oldValue", oldValue);
+            return this;
+        }
+        /**
          * The operation to perform.
          * 
          * The option is a:
@@ -211,6 +245,17 @@ public interface InfinispanComponentBuilderFactory {
             return this;
         }
         /**
+         * Set a specific value for producer operations.
+         * 
+         * The option is a: <code>java.lang.Object</code> type.
+         * 
+         * Group: producer
+         */
+        default InfinispanComponentBuilder value(java.lang.Object value) {
+            doSetProperty("value", value);
+            return this;
+        }
+        /**
          * Whether the component should use basic property binding (Camel 2.x)
          * or the newer property binding with additional capabilities.
          * 
@@ -355,8 +400,12 @@ public interface InfinispanComponentBuilderFactory {
             case "customListener": getOrCreateConfiguration((InfinispanComponent) component).setCustomListener((org.apache.camel.component.infinispan.InfinispanCustomListener) value); return true;
             case "eventTypes": getOrCreateConfiguration((InfinispanComponent) component).setEventTypes((java.lang.String) value); return true;
             case "sync": getOrCreateConfiguration((InfinispanComponent) component).setSync((boolean) value); return true;
+            case "defaultValue": getOrCreateConfiguration((InfinispanComponent) component).setDefaultValue((java.lang.Object) value); return true;
+            case "key": getOrCreateConfiguration((InfinispanComponent) component).setKey((java.lang.Object) value); return true;
             case "lazyStartProducer": ((InfinispanComponent) component).setLazyStartProducer((boolean) value); return true;
+            case "oldValue": getOrCreateConfiguration((InfinispanComponent) component).setOldValue((java.lang.Object) value); return true;
             case "operation": getOrCreateConfiguration((InfinispanComponent) component).setOperation((org.apache.camel.component.infinispan.InfinispanOperation) value); return true;
+            case "value": getOrCreateConfiguration((InfinispanComponent) component).setValue((java.lang.Object) value); return true;
             case "basicPropertyBinding": ((InfinispanComponent) component).setBasicPropertyBinding((boolean) value); return true;
             case "cacheContainer": getOrCreateConfiguration((InfinispanComponent) component).setCacheContainer((org.infinispan.commons.api.BasicCacheContainer) value); return true;
             case "cacheContainerConfiguration": getOrCreateConfiguration((InfinispanComponent) component).setCacheContainerConfiguration((java.lang.Object) value); return true;
diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/InfinispanEndpointBuilderFactory.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/InfinispanEndpointBuilderFactory.java
index ba888cb..3f82286 100644
--- a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/InfinispanEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/InfinispanEndpointBuilderFactory.java
@@ -605,6 +605,52 @@ public interface InfinispanEndpointBuilderFactory {
             return this;
         }
         /**
+         * Set a specific default value for some producer operations.
+         * 
+         * The option is a: <code>java.lang.Object</code> type.
+         * 
+         * Group: producer
+         */
+        default InfinispanEndpointProducerBuilder defaultValue(
+                Object defaultValue) {
+            doSetProperty("defaultValue", defaultValue);
+            return this;
+        }
+        /**
+         * Set a specific default value for some producer operations.
+         * 
+         * The option will be converted to a <code>java.lang.Object</code> type.
+         * 
+         * Group: producer
+         */
+        default InfinispanEndpointProducerBuilder defaultValue(
+                String defaultValue) {
+            doSetProperty("defaultValue", defaultValue);
+            return this;
+        }
+        /**
+         * Set a specific key for producer operations.
+         * 
+         * The option is a: <code>java.lang.Object</code> type.
+         * 
+         * Group: producer
+         */
+        default InfinispanEndpointProducerBuilder key(Object key) {
+            doSetProperty("key", key);
+            return this;
+        }
+        /**
+         * Set a specific key for producer operations.
+         * 
+         * The option will be converted to a <code>java.lang.Object</code> type.
+         * 
+         * Group: producer
+         */
+        default InfinispanEndpointProducerBuilder key(String key) {
+            doSetProperty("key", key);
+            return this;
+        }
+        /**
          * Whether the producer should be started lazy (on the first message).
          * By starting lazy you can use this to allow CamelContext and routes to
          * startup in situations where a producer may otherwise fail during
@@ -647,6 +693,28 @@ public interface InfinispanEndpointBuilderFactory {
             return this;
         }
         /**
+         * Set a specific old value for some producer operations.
+         * 
+         * The option is a: <code>java.lang.Object</code> type.
+         * 
+         * Group: producer
+         */
+        default InfinispanEndpointProducerBuilder oldValue(Object oldValue) {
+            doSetProperty("oldValue", oldValue);
+            return this;
+        }
+        /**
+         * Set a specific old value for some producer operations.
+         * 
+         * The option will be converted to a <code>java.lang.Object</code> type.
+         * 
+         * Group: producer
+         */
+        default InfinispanEndpointProducerBuilder oldValue(String oldValue) {
+            doSetProperty("oldValue", oldValue);
+            return this;
+        }
+        /**
          * The operation to perform.
          * 
          * The option is a:
@@ -673,6 +741,28 @@ public interface InfinispanEndpointBuilderFactory {
             doSetProperty("operation", operation);
             return this;
         }
+        /**
+         * Set a specific value for producer operations.
+         * 
+         * The option is a: <code>java.lang.Object</code> type.
+         * 
+         * Group: producer
+         */
+        default InfinispanEndpointProducerBuilder value(Object value) {
+            doSetProperty("value", value);
+            return this;
+        }
+        /**
+         * Set a specific value for producer operations.
+         * 
+         * The option will be converted to a <code>java.lang.Object</code> type.
+         * 
+         * Group: producer
+         */
+        default InfinispanEndpointProducerBuilder value(String value) {
+            doSetProperty("value", value);
+            return this;
+        }
     }
 
     /**
diff --git a/docs/components/modules/ROOT/pages/infinispan-component.adoc b/docs/components/modules/ROOT/pages/infinispan-component.adoc
index 210362b..7d81001 100644
--- a/docs/components/modules/ROOT/pages/infinispan-component.adoc
+++ b/docs/components/modules/ROOT/pages/infinispan-component.adoc
@@ -65,7 +65,7 @@ If no cache configuration is provided, embedded cacheContainer is created direct
 
 
 // component options: START
-The Infinispan component supports 19 options, which are listed below.
+The Infinispan component supports 23 options, which are listed below.
 
 
 
@@ -81,8 +81,12 @@ The Infinispan component supports 19 options, which are listed below.
 | *customListener* (consumer) | Returns the custom listener in use, if provided |  | InfinispanCustomListener
 | *eventTypes* (consumer) | Specifies the set of event types to register by the consumer. Multiple event can be separated by comma. The possible event types are: CACHE_ENTRY_ACTIVATED, CACHE_ENTRY_PASSIVATED, CACHE_ENTRY_VISITED, CACHE_ENTRY_LOADED, CACHE_ENTRY_EVICTED, CACHE_ENTRY_CREATED, CACHE_ENTRY_REMOVED, CACHE_ENTRY_MODIFIED, TRANSACTION_COMPLETED, TRANSACTION_REGISTERED, CACHE_ENTRY_INVALIDATED, DATA_REHASHED, TOPOLOGY_CHANGED, PARTITION_STATUS_CHANGED |  | String
 | *sync* (consumer) | If true, the consumer will receive notifications synchronously | true | boolean
+| *defaultValue* (producer) | Set a specific default value for some producer operations |  | Object
+| *key* (producer) | Set a specific key for producer operations |  | Object
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *oldValue* (producer) | Set a specific old value for some producer operations |  | Object
 | *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
 | *basicPropertyBinding* (advanced) | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *cacheContainer* (advanced) | Specifies the cache Container to connect |  | BasicCacheContainer
 | *cacheContainerConfiguration* (advanced) | 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; |  | Object
@@ -116,7 +120,7 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (21 parameters):
+=== Query Parameters (25 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -132,8 +136,12 @@ with the following path and query parameters:
 | *sync* (consumer) | If true, the consumer will receive notifications synchronously | true | boolean
 | *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
 | *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
+| *defaultValue* (producer) | Set a specific default value for some producer operations |  | Object
+| *key* (producer) | Set a specific key for producer operations |  | Object
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *oldValue* (producer) | Set a specific old value for some producer operations |  | Object
 | *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
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *cacheContainer* (advanced) | Specifies the cache Container to connect |  | BasicCacheContainer
 | *cacheContainerConfiguration* (advanced) | 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; |  | Object


[camel] 04/04: CAMEL-15609 - Camel-Infinispan: Add an explicit key uri parameter for producer, added tests

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 4341a920aaeb914d4a21dfc522b7797cb0bc218a
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Oct 1 18:27:15 2020 +0200

    CAMEL-15609 - Camel-Infinispan: Add an explicit key uri parameter for producer, added tests
---
 .../apache/camel/component/infinispan/InfinispanProducerTest.java | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/components/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/InfinispanProducerTest.java b/components/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/InfinispanProducerTest.java
index e6ff2de..26f5b5a 100644
--- a/components/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/InfinispanProducerTest.java
+++ b/components/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/InfinispanProducerTest.java
@@ -1071,7 +1071,7 @@ public class InfinispanProducerTest extends InfinispanTestSupport {
         Stats resultStats = exchange.getIn().getBody(Stats.class);
         assertEquals(2L, resultStats.getTotalNumberOfEntries());
     }
-    
+
     @Test
     public void publishKeyAndValueByExplicitlySpecifyingTheKeyAndValueOptions() throws Exception {
         template.send("direct:explicitput", new Processor() {
@@ -1084,7 +1084,7 @@ public class InfinispanProducerTest extends InfinispanTestSupport {
         Object value = currentCache().get("a");
         assertEquals("3", value.toString());
     }
-    
+
     @Test
     public void publishKeyAndValueByExplicitlySpecifyingTheKeyAndValueOptionsHeaderHavePriorities() throws Exception {
         template.send("direct:explicitput", new Processor() {
@@ -1096,8 +1096,8 @@ public class InfinispanProducerTest extends InfinispanTestSupport {
             }
         });
 
-        Object value = currentCache().get("a");
-        assertEquals("3", value.toString());
+        Object value = currentCache().get(KEY_ONE);
+        assertEquals(VALUE_ONE, value.toString());
     }
 
     @Override


[camel] 03/04: CAMEL-15609 - Camel-Infinispan: Add an explicit key uri parameter for producer, added tests

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit c022730a55963968f039d2a9d041738bc20f31cf
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Oct 1 18:13:34 2020 +0200

    CAMEL-15609 - Camel-Infinispan: Add an explicit key uri parameter for producer, added tests
---
 .../infinispan/InfinispanProducerTest.java         | 30 ++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/components/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/InfinispanProducerTest.java b/components/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/InfinispanProducerTest.java
index fe9a2c8..e6ff2de 100644
--- a/components/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/InfinispanProducerTest.java
+++ b/components/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/InfinispanProducerTest.java
@@ -1071,6 +1071,34 @@ public class InfinispanProducerTest extends InfinispanTestSupport {
         Stats resultStats = exchange.getIn().getBody(Stats.class);
         assertEquals(2L, resultStats.getTotalNumberOfEntries());
     }
+    
+    @Test
+    public void publishKeyAndValueByExplicitlySpecifyingTheKeyAndValueOptions() throws Exception {
+        template.send("direct:explicitput", new Processor() {
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(InfinispanConstants.OPERATION, InfinispanOperation.PUT);
+            }
+        });
+
+        Object value = currentCache().get("a");
+        assertEquals("3", value.toString());
+    }
+    
+    @Test
+    public void publishKeyAndValueByExplicitlySpecifyingTheKeyAndValueOptionsHeaderHavePriorities() throws Exception {
+        template.send("direct:explicitput", new Processor() {
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(InfinispanConstants.KEY, KEY_ONE);
+                exchange.getIn().setHeader(InfinispanConstants.VALUE, VALUE_ONE);
+                exchange.getIn().setHeader(InfinispanConstants.OPERATION, InfinispanOperation.PUT);
+            }
+        });
+
+        Object value = currentCache().get("a");
+        assertEquals("3", value.toString());
+    }
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
@@ -1121,6 +1149,8 @@ public class InfinispanProducerTest extends InfinispanTestSupport {
                         .to("infinispan:default?cacheContainer=#cacheContainer&operation=COMPUTE&remappingFunction=#mappingFunction");
                 from("direct:computeAsync")
                         .to("infinispan:default?cacheContainer=#cacheContainer&operation=COMPUTEASYNC&remappingFunction=#mappingFunction");
+                from("direct:explicitput")
+                        .to("infinispan:default?cacheContainer=#cacheContainer&operation=PUT&key=a&value=3");
             }
         };
     }