You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2022/08/31 13:31:21 UTC

[camel] 02/02: CAMEL-18444: Regen

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

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

commit f6162402d132a902aaeacd8ee862258f01e7ae1a
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Aug 31 15:30:05 2022 +0200

    CAMEL-18444: Regen
---
 .../camel/catalog/components/caffeine-cache.json   |  50 ++--
 .../catalog/components/caffeine-loadcache.json     |  48 +--
 .../dsl/CaffeineCacheComponentBuilderFactory.java  | 178 ++++++-----
 .../CaffeineLoadcacheComponentBuilderFactory.java  | 182 ++++++------
 .../builder/endpoint/StaticEndpointBuilders.java   |   4 +-
 .../dsl/CaffeineCacheEndpointBuilderFactory.java   | 327 ++++++++++++---------
 .../CaffeineLoadCacheEndpointBuilderFactory.java   | 319 +++++++++++---------
 7 files changed, 605 insertions(+), 503 deletions(-)

diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/caffeine-cache.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/caffeine-cache.json
index 980c56770bd..4346c3225cc 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/caffeine-cache.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/caffeine-cache.json
@@ -22,22 +22,22 @@
     "lenientProperties": false
   },
   "componentProperties": {
-    "action": { "kind": "property", "displayName": "Action", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure the default cache action. If an action is set in the message header, then the operation from the header takes p [...]
-    "cacheLoader": { "kind": "property", "displayName": "Cache Loader", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.CacheLoader", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure a CacheLoader in case of a LoadCache use" },
-    "createCacheIfNotExist": { "kind": "property", "displayName": "Create Cache If Not Exist", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Configure if a cache need to be created if it does exist or can't be pre-configured." },
-    "evictionType": { "kind": "property", "displayName": "Eviction Type", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.caffeine.EvictionType", "enum": [ "size_based", "time_based" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "SIZE_BASED", "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the e [...]
-    "expireAfterAccessTime": { "kind": "property", "displayName": "Expire After Access Time", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 300, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the expire After Access Time in case of time based Eviction (in seconds)" },
-    "expireAfterWriteTime": { "kind": "property", "displayName": "Expire After Write Time", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 300, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the expire After Access Write in case of time based Eviction (in seconds)" },
-    "initialCapacity": { "kind": "property", "displayName": "Initial Capacity", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10000, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the initial Capacity for the cache" },
-    "key": { "kind": "property", "displayName": "Key", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure the default action key. If a key is set in the message header, then the key from the header takes precedence." },
+    "action": { "kind": "property", "displayName": "Action", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "GET", "GET_ALL", "PUT", "PUT_ALL", "INVALIDATE", "INVALIDATE_ALL", "CLEANUP", "AS_MAP" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure the default cache  [...]
+    "createCacheIfNotExist": { "kind": "property", "displayName": "Create Cache If Not Exist", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Automatic create the Caffeine cache if none has been configured or exists in the reg [...]
+    "evictionType": { "kind": "property", "displayName": "Eviction Type", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.caffeine.EvictionType", "enum": [ "size_based", "time_based" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "SIZE_BASED", "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the eviction  [...]
+    "expireAfterAccessTime": { "kind": "property", "displayName": "Expire After Access Time", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 300, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Specifies that each entry should be automatically removed from the cache once a fixed dura [...]
+    "expireAfterWriteTime": { "kind": "property", "displayName": "Expire After Write Time", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 300, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Specifies that each entry should be automatically removed from the cache once a fixed durati [...]
+    "initialCapacity": { "kind": "property", "displayName": "Initial Capacity", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Sets the minimum total size for the internal data structures. Providing a large enough estimate at construction [...]
+    "key": { "kind": "property", "displayName": "Key", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure the default action key. If a key is set in the message header, then the key from the header takes precedence." },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 star [...]
-    "maximumSize": { "kind": "property", "displayName": "Maximum Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10000, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the maximum size for the cache" },
-    "removalListener": { "kind": "property", "displayName": "Removal Listener", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.RemovalListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set a specific removal Listener for the cache" },
-    "statsCounter": { "kind": "property", "displayName": "Stats Counter", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.stats.StatsCounter", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set a specific Stats Counter for the cache stats" },
-    "statsEnabled": { "kind": "property", "displayName": "Stats Enabled", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To enable stats on the cache" },
+    "maximumSize": { "kind": "property", "displayName": "Maximum Size", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of entries the cache may contain. Note that the cache may evict an entry before this limit [...]
     "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 [...]
+    "cacheLoader": { "kind": "property", "displayName": "Cache Loader", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.CacheLoader", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure a CacheLoader in case of a LoadCache use" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.caffeine.CaffeineConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the global component configuration" },
     "keyType": { "kind": "property", "displayName": "Key Type", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "The cache key type, default java.lang.Object" },
+    "removalListener": { "kind": "property", "displayName": "Removal Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.RemovalListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set a specific removal Listener for the cache" },
+    "statsCounter": { "kind": "property", "displayName": "Stats Counter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.stats.StatsCounter", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set a specific Stats Counter for the cache stats" },
+    "statsEnabled": { "kind": "property", "displayName": "Stats Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To enable stats on the cache" },
     "valueType": { "kind": "property", "displayName": "Value Type", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "The cache value type, default java.lang.Object" }
   },
   "headers": {
@@ -50,21 +50,21 @@
     "CamelCaffeineOldValue": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The old value returned according to the action.", "constantName": "org.apache.camel.component.caffeine.CaffeineConstants#OLD_VALUE" }
   },
   "properties": {
-    "cacheName": { "kind": "path", "displayName": "Cache Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "the cache name" },
-    "action": { "kind": "parameter", "displayName": "Action", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure the default cache action. If an action is set in the message header, then the operation from the header takes  [...]
-    "cacheLoader": { "kind": "parameter", "displayName": "Cache Loader", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.CacheLoader", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure a CacheLoader in case of a LoadCache use" },
-    "createCacheIfNotExist": { "kind": "parameter", "displayName": "Create Cache If Not Exist", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Configure if a cache need to be created if it does exist or can't be pre-configured." },
-    "evictionType": { "kind": "parameter", "displayName": "Eviction Type", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.caffeine.EvictionType", "enum": [ "size_based", "time_based" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "SIZE_BASED", "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the  [...]
-    "expireAfterAccessTime": { "kind": "parameter", "displayName": "Expire After Access Time", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 300, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the expire After Access Time in case of time based Eviction (in seconds)" },
-    "expireAfterWriteTime": { "kind": "parameter", "displayName": "Expire After Write Time", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 300, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the expire After Access Write in case of time based Eviction (in seconds)" },
-    "initialCapacity": { "kind": "parameter", "displayName": "Initial Capacity", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10000, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the initial Capacity for the cache" },
-    "key": { "kind": "parameter", "displayName": "Key", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure the default action key. If a key is set in the message header, then the key from the header takes precedence." },
-    "maximumSize": { "kind": "parameter", "displayName": "Maximum Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10000, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the maximum size for the cache" },
-    "removalListener": { "kind": "parameter", "displayName": "Removal Listener", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.RemovalListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set a specific removal Listener for the cache" },
-    "statsCounter": { "kind": "parameter", "displayName": "Stats Counter", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.stats.StatsCounter", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set a specific Stats Counter for the cache stats" },
-    "statsEnabled": { "kind": "parameter", "displayName": "Stats Enabled", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To enable stats on the cache" },
+    "cacheName": { "kind": "path", "displayName": "Cache Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Cache name" },
+    "action": { "kind": "parameter", "displayName": "Action", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "GET", "GET_ALL", "PUT", "PUT_ALL", "INVALIDATE", "INVALIDATE_ALL", "CLEANUP", "AS_MAP" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure the default cache [...]
+    "createCacheIfNotExist": { "kind": "parameter", "displayName": "Create Cache If Not Exist", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Automatic create the Caffeine cache if none has been configured or exists in the re [...]
+    "evictionType": { "kind": "parameter", "displayName": "Eviction Type", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.caffeine.EvictionType", "enum": [ "size_based", "time_based" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "SIZE_BASED", "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the eviction [...]
+    "expireAfterAccessTime": { "kind": "parameter", "displayName": "Expire After Access Time", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 300, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Specifies that each entry should be automatically removed from the cache once a fixed dur [...]
+    "expireAfterWriteTime": { "kind": "parameter", "displayName": "Expire After Write Time", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 300, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Specifies that each entry should be automatically removed from the cache once a fixed durat [...]
+    "initialCapacity": { "kind": "parameter", "displayName": "Initial Capacity", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Sets the minimum total size for the internal data structures. Providing a large enough estimate at constructio [...]
+    "key": { "kind": "parameter", "displayName": "Key", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure the default action key. If a key is set in the message header, then the key from the header takes precedence." },
+    "maximumSize": { "kind": "parameter", "displayName": "Maximum Size", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of entries the cache may contain. Note that the cache may evict an entry before this limi [...]
     "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 other [...]
+    "cacheLoader": { "kind": "parameter", "displayName": "Cache Loader", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.CacheLoader", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure a CacheLoader in case of a LoadCache use" },
     "keyType": { "kind": "parameter", "displayName": "Key Type", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "The cache key type, default java.lang.Object" },
+    "removalListener": { "kind": "parameter", "displayName": "Removal Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.RemovalListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set a specific removal Listener for the cache" },
+    "statsCounter": { "kind": "parameter", "displayName": "Stats Counter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.stats.StatsCounter", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set a specific Stats Counter for the cache stats" },
+    "statsEnabled": { "kind": "parameter", "displayName": "Stats Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To enable stats on the cache" },
     "valueType": { "kind": "parameter", "displayName": "Value Type", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "The cache value type, default java.lang.Object" }
   }
 }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/caffeine-loadcache.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/caffeine-loadcache.json
index 491c28a939f..42043fa2ba8 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/caffeine-loadcache.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/caffeine-loadcache.json
@@ -22,22 +22,22 @@
     "lenientProperties": false
   },
   "componentProperties": {
-    "action": { "kind": "property", "displayName": "Action", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure the default cache action. If an action is set in the message header, then the operation from the header takes p [...]
-    "cacheLoader": { "kind": "property", "displayName": "Cache Loader", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.CacheLoader", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure a CacheLoader in case of a LoadCache use" },
-    "createCacheIfNotExist": { "kind": "property", "displayName": "Create Cache If Not Exist", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Configure if a cache need to be created if it does exist or can't be pre-configured." },
-    "evictionType": { "kind": "property", "displayName": "Eviction Type", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.caffeine.EvictionType", "enum": [ "size_based", "time_based" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "SIZE_BASED", "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the e [...]
-    "expireAfterAccessTime": { "kind": "property", "displayName": "Expire After Access Time", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 300, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the expire After Access Time in case of time based Eviction (in seconds)" },
-    "expireAfterWriteTime": { "kind": "property", "displayName": "Expire After Write Time", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 300, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the expire After Access Write in case of time based Eviction (in seconds)" },
-    "initialCapacity": { "kind": "property", "displayName": "Initial Capacity", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10000, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the initial Capacity for the cache" },
-    "key": { "kind": "property", "displayName": "Key", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure the default action key. If a key is set in the message header, then the key from the header takes precedence." },
+    "action": { "kind": "property", "displayName": "Action", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "GET", "GET_ALL", "PUT", "PUT_ALL", "INVALIDATE", "INVALIDATE_ALL", "CLEANUP", "AS_MAP" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure the default cache  [...]
+    "createCacheIfNotExist": { "kind": "property", "displayName": "Create Cache If Not Exist", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Automatic create the Caffeine cache if none has been configured or exists in the reg [...]
+    "evictionType": { "kind": "property", "displayName": "Eviction Type", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.caffeine.EvictionType", "enum": [ "size_based", "time_based" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "SIZE_BASED", "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the eviction  [...]
+    "expireAfterAccessTime": { "kind": "property", "displayName": "Expire After Access Time", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 300, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Specifies that each entry should be automatically removed from the cache once a fixed dura [...]
+    "expireAfterWriteTime": { "kind": "property", "displayName": "Expire After Write Time", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 300, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Specifies that each entry should be automatically removed from the cache once a fixed durati [...]
+    "initialCapacity": { "kind": "property", "displayName": "Initial Capacity", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Sets the minimum total size for the internal data structures. Providing a large enough estimate at construction [...]
+    "key": { "kind": "property", "displayName": "Key", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure the default action key. If a key is set in the message header, then the key from the header takes precedence." },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 star [...]
-    "maximumSize": { "kind": "property", "displayName": "Maximum Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10000, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the maximum size for the cache" },
-    "removalListener": { "kind": "property", "displayName": "Removal Listener", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.RemovalListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set a specific removal Listener for the cache" },
-    "statsCounter": { "kind": "property", "displayName": "Stats Counter", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.stats.StatsCounter", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set a specific Stats Counter for the cache stats" },
-    "statsEnabled": { "kind": "property", "displayName": "Stats Enabled", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To enable stats on the cache" },
+    "maximumSize": { "kind": "property", "displayName": "Maximum Size", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of entries the cache may contain. Note that the cache may evict an entry before this limit [...]
     "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 [...]
+    "cacheLoader": { "kind": "property", "displayName": "Cache Loader", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.CacheLoader", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure a CacheLoader in case of a LoadCache use" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.caffeine.CaffeineConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the global component configuration" },
     "keyType": { "kind": "property", "displayName": "Key Type", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "The cache key type, default java.lang.Object" },
+    "removalListener": { "kind": "property", "displayName": "Removal Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.RemovalListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set a specific removal Listener for the cache" },
+    "statsCounter": { "kind": "property", "displayName": "Stats Counter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.stats.StatsCounter", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set a specific Stats Counter for the cache stats" },
+    "statsEnabled": { "kind": "property", "displayName": "Stats Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To enable stats on the cache" },
     "valueType": { "kind": "property", "displayName": "Value Type", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "The cache value type, default java.lang.Object" }
   },
   "headers": {
@@ -51,20 +51,20 @@
   },
   "properties": {
     "cacheName": { "kind": "path", "displayName": "Cache Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "the cache name" },
-    "action": { "kind": "parameter", "displayName": "Action", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure the default cache action. If an action is set in the message header, then the operation from the header takes  [...]
-    "cacheLoader": { "kind": "parameter", "displayName": "Cache Loader", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.CacheLoader", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure a CacheLoader in case of a LoadCache use" },
-    "createCacheIfNotExist": { "kind": "parameter", "displayName": "Create Cache If Not Exist", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Configure if a cache need to be created if it does exist or can't be pre-configured." },
-    "evictionType": { "kind": "parameter", "displayName": "Eviction Type", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.caffeine.EvictionType", "enum": [ "size_based", "time_based" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "SIZE_BASED", "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the  [...]
-    "expireAfterAccessTime": { "kind": "parameter", "displayName": "Expire After Access Time", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 300, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the expire After Access Time in case of time based Eviction (in seconds)" },
-    "expireAfterWriteTime": { "kind": "parameter", "displayName": "Expire After Write Time", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 300, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the expire After Access Write in case of time based Eviction (in seconds)" },
-    "initialCapacity": { "kind": "parameter", "displayName": "Initial Capacity", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10000, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the initial Capacity for the cache" },
-    "key": { "kind": "parameter", "displayName": "Key", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure the default action key. If a key is set in the message header, then the key from the header takes precedence." },
-    "maximumSize": { "kind": "parameter", "displayName": "Maximum Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10000, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the maximum size for the cache" },
-    "removalListener": { "kind": "parameter", "displayName": "Removal Listener", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.RemovalListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set a specific removal Listener for the cache" },
-    "statsCounter": { "kind": "parameter", "displayName": "Stats Counter", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.stats.StatsCounter", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set a specific Stats Counter for the cache stats" },
-    "statsEnabled": { "kind": "parameter", "displayName": "Stats Enabled", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To enable stats on the cache" },
+    "action": { "kind": "parameter", "displayName": "Action", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "GET", "GET_ALL", "PUT", "PUT_ALL", "INVALIDATE", "INVALIDATE_ALL", "CLEANUP", "AS_MAP" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure the default cache [...]
+    "createCacheIfNotExist": { "kind": "parameter", "displayName": "Create Cache If Not Exist", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Automatic create the Caffeine cache if none has been configured or exists in the re [...]
+    "evictionType": { "kind": "parameter", "displayName": "Eviction Type", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.caffeine.EvictionType", "enum": [ "size_based", "time_based" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "SIZE_BASED", "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the eviction [...]
+    "expireAfterAccessTime": { "kind": "parameter", "displayName": "Expire After Access Time", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 300, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Specifies that each entry should be automatically removed from the cache once a fixed dur [...]
+    "expireAfterWriteTime": { "kind": "parameter", "displayName": "Expire After Write Time", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 300, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Specifies that each entry should be automatically removed from the cache once a fixed durat [...]
+    "initialCapacity": { "kind": "parameter", "displayName": "Initial Capacity", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Sets the minimum total size for the internal data structures. Providing a large enough estimate at constructio [...]
+    "key": { "kind": "parameter", "displayName": "Key", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure the default action key. If a key is set in the message header, then the key from the header takes precedence." },
+    "maximumSize": { "kind": "parameter", "displayName": "Maximum Size", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of entries the cache may contain. Note that the cache may evict an entry before this limi [...]
     "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 other [...]
+    "cacheLoader": { "kind": "parameter", "displayName": "Cache Loader", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.CacheLoader", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure a CacheLoader in case of a LoadCache use" },
     "keyType": { "kind": "parameter", "displayName": "Key Type", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "The cache key type, default java.lang.Object" },
+    "removalListener": { "kind": "parameter", "displayName": "Removal Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.RemovalListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set a specific removal Listener for the cache" },
+    "statsCounter": { "kind": "parameter", "displayName": "Stats Counter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.stats.StatsCounter", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set a specific Stats Counter for the cache stats" },
+    "statsEnabled": { "kind": "parameter", "displayName": "Stats Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To enable stats on the cache" },
     "valueType": { "kind": "parameter", "displayName": "Value Type", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "The cache value type, default java.lang.Object" }
   }
 }
diff --git a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CaffeineCacheComponentBuilderFactory.java b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CaffeineCacheComponentBuilderFactory.java
index 1b27587491c..a54ba6fdd0c 100644
--- a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CaffeineCacheComponentBuilderFactory.java
+++ b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CaffeineCacheComponentBuilderFactory.java
@@ -66,24 +66,8 @@ public interface CaffeineCacheComponentBuilderFactory {
             return this;
         }
         /**
-         * To configure a CacheLoader in case of a LoadCache use.
-         * 
-         * The option is a:
-         * &lt;code&gt;com.github.benmanes.caffeine.cache.CacheLoader&lt;/code&gt; type.
-         * 
-         * Group: producer
-         * 
-         * @param cacheLoader the value to set
-         * @return the dsl builder
-         */
-        default CaffeineCacheComponentBuilder cacheLoader(
-                com.github.benmanes.caffeine.cache.CacheLoader cacheLoader) {
-            doSetProperty("cacheLoader", cacheLoader);
-            return this;
-        }
-        /**
-         * Configure if a cache need to be created if it does exist or can't be
-         * pre-configured.
+         * Automatic create the Caffeine cache if none has been configured or
+         * exists in the registry.
          * 
          * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
          * 
@@ -116,8 +100,11 @@ public interface CaffeineCacheComponentBuilderFactory {
             return this;
         }
         /**
-         * Set the expire After Access Time in case of time based Eviction (in
-         * seconds).
+         * Specifies that each entry should be automatically removed from the
+         * cache once a fixed duration has elapsed after the entry's creation,
+         * the most recent replacement of its value, or its last read. Access
+         * time is reset by all cache read and write operations. The unit is in
+         * seconds.
          * 
          * The option is a: &lt;code&gt;int&lt;/code&gt; type.
          * 
@@ -133,8 +120,9 @@ public interface CaffeineCacheComponentBuilderFactory {
             return this;
         }
         /**
-         * Set the expire After Access Write in case of time based Eviction (in
-         * seconds).
+         * Specifies that each entry should be automatically removed from the
+         * cache once a fixed duration has elapsed after the entry's creation,
+         * or the most recent replacement of its value. The unit is in seconds.
          * 
          * The option is a: &lt;code&gt;int&lt;/code&gt; type.
          * 
@@ -150,18 +138,20 @@ public interface CaffeineCacheComponentBuilderFactory {
             return this;
         }
         /**
-         * Set the initial Capacity for the cache.
+         * Sets the minimum total size for the internal data structures.
+         * Providing a large enough estimate at construction time avoids the
+         * need for expensive resizing operations later, but setting this value
+         * unnecessarily high wastes memory.
          * 
-         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
+         * The option is a: &lt;code&gt;java.lang.Integer&lt;/code&gt; type.
          * 
-         * Default: 10000
          * Group: producer
          * 
          * @param initialCapacity the value to set
          * @return the dsl builder
          */
         default CaffeineCacheComponentBuilder initialCapacity(
-                int initialCapacity) {
+                java.lang.Integer initialCapacity) {
             doSetProperty("initialCapacity", initialCapacity);
             return this;
         }
@@ -205,116 +195,142 @@ public interface CaffeineCacheComponentBuilderFactory {
             return this;
         }
         /**
-         * Set the maximum size for the cache.
+         * Specifies the maximum number of entries the cache may contain. Note
+         * that the cache may evict an entry before this limit is exceeded or
+         * temporarily exceed the threshold while evicting. As the cache size
+         * grows close to the maximum, the cache evicts entries that are less
+         * likely to be used again. For example, the cache may evict an entry
+         * because it hasn't been used recently or very often. When size is
+         * zero, elements will be evicted immediately after being loaded into
+         * the cache. This can be useful in testing, or to disable caching
+         * temporarily without a code change. As eviction is scheduled on the
+         * configured executor, tests may instead prefer to configure the cache
+         * to execute tasks directly on the same thread.
+         * 
+         * The option is a: &lt;code&gt;java.lang.Integer&lt;/code&gt; type.
          * 
-         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
-         * 
-         * Default: 10000
          * Group: producer
          * 
          * @param maximumSize the value to set
          * @return the dsl builder
          */
-        default CaffeineCacheComponentBuilder maximumSize(int maximumSize) {
+        default CaffeineCacheComponentBuilder maximumSize(
+                java.lang.Integer maximumSize) {
             doSetProperty("maximumSize", maximumSize);
             return this;
         }
         /**
-         * Set a specific removal Listener for the cache.
+         * 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.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: advanced
+         * 
+         * @param autowiredEnabled the value to set
+         * @return the dsl builder
+         */
+        default CaffeineCacheComponentBuilder autowiredEnabled(
+                boolean autowiredEnabled) {
+            doSetProperty("autowiredEnabled", autowiredEnabled);
+            return this;
+        }
+        /**
+         * To configure a CacheLoader in case of a LoadCache use.
          * 
          * The option is a:
-         * &lt;code&gt;com.github.benmanes.caffeine.cache.RemovalListener&lt;/code&gt; type.
+         * &lt;code&gt;com.github.benmanes.caffeine.cache.CacheLoader&lt;/code&gt; type.
          * 
-         * Group: producer
+         * Group: advanced
          * 
-         * @param removalListener the value to set
+         * @param cacheLoader the value to set
          * @return the dsl builder
          */
-        default CaffeineCacheComponentBuilder removalListener(
-                com.github.benmanes.caffeine.cache.RemovalListener removalListener) {
-            doSetProperty("removalListener", removalListener);
+        default CaffeineCacheComponentBuilder cacheLoader(
+                com.github.benmanes.caffeine.cache.CacheLoader cacheLoader) {
+            doSetProperty("cacheLoader", cacheLoader);
             return this;
         }
         /**
-         * Set a specific Stats Counter for the cache stats.
+         * Sets the global component configuration.
          * 
          * The option is a:
-         * &lt;code&gt;com.github.benmanes.caffeine.cache.stats.StatsCounter&lt;/code&gt; type.
+         * &lt;code&gt;org.apache.camel.component.caffeine.CaffeineConfiguration&lt;/code&gt; type.
          * 
-         * Group: producer
+         * Group: advanced
          * 
-         * @param statsCounter the value to set
+         * @param configuration the value to set
          * @return the dsl builder
          */
-        default CaffeineCacheComponentBuilder statsCounter(
-                com.github.benmanes.caffeine.cache.stats.StatsCounter statsCounter) {
-            doSetProperty("statsCounter", statsCounter);
+        default CaffeineCacheComponentBuilder configuration(
+                org.apache.camel.component.caffeine.CaffeineConfiguration configuration) {
+            doSetProperty("configuration", configuration);
             return this;
         }
         /**
-         * To enable stats on the cache.
+         * The cache key type, default java.lang.Object.
          * 
-         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
          * 
-         * Default: false
-         * Group: producer
+         * Group: advanced
          * 
-         * @param statsEnabled the value to set
+         * @param keyType the value to set
          * @return the dsl builder
          */
-        default CaffeineCacheComponentBuilder statsEnabled(boolean statsEnabled) {
-            doSetProperty("statsEnabled", statsEnabled);
+        default CaffeineCacheComponentBuilder keyType(java.lang.String keyType) {
+            doSetProperty("keyType", keyType);
             return this;
         }
         /**
-         * 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.
+         * Set a specific removal Listener for the cache.
          * 
-         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * The option is a:
+         * &lt;code&gt;com.github.benmanes.caffeine.cache.RemovalListener&lt;/code&gt; type.
          * 
-         * Default: true
          * Group: advanced
          * 
-         * @param autowiredEnabled the value to set
+         * @param removalListener the value to set
          * @return the dsl builder
          */
-        default CaffeineCacheComponentBuilder autowiredEnabled(
-                boolean autowiredEnabled) {
-            doSetProperty("autowiredEnabled", autowiredEnabled);
+        default CaffeineCacheComponentBuilder removalListener(
+                com.github.benmanes.caffeine.cache.RemovalListener removalListener) {
+            doSetProperty("removalListener", removalListener);
             return this;
         }
         /**
-         * Sets the global component configuration.
+         * Set a specific Stats Counter for the cache stats.
          * 
          * The option is a:
-         * &lt;code&gt;org.apache.camel.component.caffeine.CaffeineConfiguration&lt;/code&gt; type.
+         * &lt;code&gt;com.github.benmanes.caffeine.cache.stats.StatsCounter&lt;/code&gt; type.
          * 
          * Group: advanced
          * 
-         * @param configuration the value to set
+         * @param statsCounter the value to set
          * @return the dsl builder
          */
-        default CaffeineCacheComponentBuilder configuration(
-                org.apache.camel.component.caffeine.CaffeineConfiguration configuration) {
-            doSetProperty("configuration", configuration);
+        default CaffeineCacheComponentBuilder statsCounter(
+                com.github.benmanes.caffeine.cache.stats.StatsCounter statsCounter) {
+            doSetProperty("statsCounter", statsCounter);
             return this;
         }
         /**
-         * The cache key type, default java.lang.Object.
+         * To enable stats on the cache.
          * 
-         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
          * 
+         * Default: false
          * Group: advanced
          * 
-         * @param keyType the value to set
+         * @param statsEnabled the value to set
          * @return the dsl builder
          */
-        default CaffeineCacheComponentBuilder keyType(java.lang.String keyType) {
-            doSetProperty("keyType", keyType);
+        default CaffeineCacheComponentBuilder statsEnabled(boolean statsEnabled) {
+            doSetProperty("statsEnabled", statsEnabled);
             return this;
         }
         /**
@@ -357,21 +373,21 @@ public interface CaffeineCacheComponentBuilderFactory {
                 Object value) {
             switch (name) {
             case "action": getOrCreateConfiguration((CaffeineCacheComponent) component).setAction((java.lang.String) value); return true;
-            case "cacheLoader": getOrCreateConfiguration((CaffeineCacheComponent) component).setCacheLoader((com.github.benmanes.caffeine.cache.CacheLoader) value); return true;
             case "createCacheIfNotExist": getOrCreateConfiguration((CaffeineCacheComponent) component).setCreateCacheIfNotExist((boolean) value); return true;
             case "evictionType": getOrCreateConfiguration((CaffeineCacheComponent) component).setEvictionType((org.apache.camel.component.caffeine.EvictionType) value); return true;
             case "expireAfterAccessTime": getOrCreateConfiguration((CaffeineCacheComponent) component).setExpireAfterAccessTime((int) value); return true;
             case "expireAfterWriteTime": getOrCreateConfiguration((CaffeineCacheComponent) component).setExpireAfterWriteTime((int) value); return true;
-            case "initialCapacity": getOrCreateConfiguration((CaffeineCacheComponent) component).setInitialCapacity((int) value); return true;
+            case "initialCapacity": getOrCreateConfiguration((CaffeineCacheComponent) component).setInitialCapacity((java.lang.Integer) value); return true;
             case "key": getOrCreateConfiguration((CaffeineCacheComponent) component).setKey((java.lang.Object) value); return true;
             case "lazyStartProducer": ((CaffeineCacheComponent) component).setLazyStartProducer((boolean) value); return true;
-            case "maximumSize": getOrCreateConfiguration((CaffeineCacheComponent) component).setMaximumSize((int) value); return true;
-            case "removalListener": getOrCreateConfiguration((CaffeineCacheComponent) component).setRemovalListener((com.github.benmanes.caffeine.cache.RemovalListener) value); return true;
-            case "statsCounter": getOrCreateConfiguration((CaffeineCacheComponent) component).setStatsCounter((com.github.benmanes.caffeine.cache.stats.StatsCounter) value); return true;
-            case "statsEnabled": getOrCreateConfiguration((CaffeineCacheComponent) component).setStatsEnabled((boolean) value); return true;
+            case "maximumSize": getOrCreateConfiguration((CaffeineCacheComponent) component).setMaximumSize((java.lang.Integer) value); return true;
             case "autowiredEnabled": ((CaffeineCacheComponent) component).setAutowiredEnabled((boolean) value); return true;
+            case "cacheLoader": getOrCreateConfiguration((CaffeineCacheComponent) component).setCacheLoader((com.github.benmanes.caffeine.cache.CacheLoader) value); return true;
             case "configuration": ((CaffeineCacheComponent) component).setConfiguration((org.apache.camel.component.caffeine.CaffeineConfiguration) value); return true;
             case "keyType": getOrCreateConfiguration((CaffeineCacheComponent) component).setKeyType((java.lang.String) value); return true;
+            case "removalListener": getOrCreateConfiguration((CaffeineCacheComponent) component).setRemovalListener((com.github.benmanes.caffeine.cache.RemovalListener) value); return true;
+            case "statsCounter": getOrCreateConfiguration((CaffeineCacheComponent) component).setStatsCounter((com.github.benmanes.caffeine.cache.stats.StatsCounter) value); return true;
+            case "statsEnabled": getOrCreateConfiguration((CaffeineCacheComponent) component).setStatsEnabled((boolean) value); return true;
             case "valueType": getOrCreateConfiguration((CaffeineCacheComponent) component).setValueType((java.lang.String) value); return true;
             default: return false;
             }
diff --git a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CaffeineLoadcacheComponentBuilderFactory.java b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CaffeineLoadcacheComponentBuilderFactory.java
index c9a02726df4..1a8b2c799cd 100644
--- a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CaffeineLoadcacheComponentBuilderFactory.java
+++ b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CaffeineLoadcacheComponentBuilderFactory.java
@@ -67,24 +67,8 @@ public interface CaffeineLoadcacheComponentBuilderFactory {
             return this;
         }
         /**
-         * To configure a CacheLoader in case of a LoadCache use.
-         * 
-         * The option is a:
-         * &lt;code&gt;com.github.benmanes.caffeine.cache.CacheLoader&lt;/code&gt; type.
-         * 
-         * Group: producer
-         * 
-         * @param cacheLoader the value to set
-         * @return the dsl builder
-         */
-        default CaffeineLoadcacheComponentBuilder cacheLoader(
-                com.github.benmanes.caffeine.cache.CacheLoader cacheLoader) {
-            doSetProperty("cacheLoader", cacheLoader);
-            return this;
-        }
-        /**
-         * Configure if a cache need to be created if it does exist or can't be
-         * pre-configured.
+         * Automatic create the Caffeine cache if none has been configured or
+         * exists in the registry.
          * 
          * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
          * 
@@ -117,8 +101,11 @@ public interface CaffeineLoadcacheComponentBuilderFactory {
             return this;
         }
         /**
-         * Set the expire After Access Time in case of time based Eviction (in
-         * seconds).
+         * Specifies that each entry should be automatically removed from the
+         * cache once a fixed duration has elapsed after the entry's creation,
+         * the most recent replacement of its value, or its last read. Access
+         * time is reset by all cache read and write operations. The unit is in
+         * seconds.
          * 
          * The option is a: &lt;code&gt;int&lt;/code&gt; type.
          * 
@@ -134,8 +121,9 @@ public interface CaffeineLoadcacheComponentBuilderFactory {
             return this;
         }
         /**
-         * Set the expire After Access Write in case of time based Eviction (in
-         * seconds).
+         * Specifies that each entry should be automatically removed from the
+         * cache once a fixed duration has elapsed after the entry's creation,
+         * or the most recent replacement of its value. The unit is in seconds.
          * 
          * The option is a: &lt;code&gt;int&lt;/code&gt; type.
          * 
@@ -151,18 +139,20 @@ public interface CaffeineLoadcacheComponentBuilderFactory {
             return this;
         }
         /**
-         * Set the initial Capacity for the cache.
+         * Sets the minimum total size for the internal data structures.
+         * Providing a large enough estimate at construction time avoids the
+         * need for expensive resizing operations later, but setting this value
+         * unnecessarily high wastes memory.
          * 
-         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
+         * The option is a: &lt;code&gt;java.lang.Integer&lt;/code&gt; type.
          * 
-         * Default: 10000
          * Group: producer
          * 
          * @param initialCapacity the value to set
          * @return the dsl builder
          */
         default CaffeineLoadcacheComponentBuilder initialCapacity(
-                int initialCapacity) {
+                java.lang.Integer initialCapacity) {
             doSetProperty("initialCapacity", initialCapacity);
             return this;
         }
@@ -206,118 +196,144 @@ public interface CaffeineLoadcacheComponentBuilderFactory {
             return this;
         }
         /**
-         * Set the maximum size for the cache.
+         * Specifies the maximum number of entries the cache may contain. Note
+         * that the cache may evict an entry before this limit is exceeded or
+         * temporarily exceed the threshold while evicting. As the cache size
+         * grows close to the maximum, the cache evicts entries that are less
+         * likely to be used again. For example, the cache may evict an entry
+         * because it hasn't been used recently or very often. When size is
+         * zero, elements will be evicted immediately after being loaded into
+         * the cache. This can be useful in testing, or to disable caching
+         * temporarily without a code change. As eviction is scheduled on the
+         * configured executor, tests may instead prefer to configure the cache
+         * to execute tasks directly on the same thread.
+         * 
+         * The option is a: &lt;code&gt;java.lang.Integer&lt;/code&gt; type.
          * 
-         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
-         * 
-         * Default: 10000
          * Group: producer
          * 
          * @param maximumSize the value to set
          * @return the dsl builder
          */
-        default CaffeineLoadcacheComponentBuilder maximumSize(int maximumSize) {
+        default CaffeineLoadcacheComponentBuilder maximumSize(
+                java.lang.Integer maximumSize) {
             doSetProperty("maximumSize", maximumSize);
             return this;
         }
         /**
-         * Set a specific removal Listener for the cache.
+         * 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.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: advanced
+         * 
+         * @param autowiredEnabled the value to set
+         * @return the dsl builder
+         */
+        default CaffeineLoadcacheComponentBuilder autowiredEnabled(
+                boolean autowiredEnabled) {
+            doSetProperty("autowiredEnabled", autowiredEnabled);
+            return this;
+        }
+        /**
+         * To configure a CacheLoader in case of a LoadCache use.
          * 
          * The option is a:
-         * &lt;code&gt;com.github.benmanes.caffeine.cache.RemovalListener&lt;/code&gt; type.
+         * &lt;code&gt;com.github.benmanes.caffeine.cache.CacheLoader&lt;/code&gt; type.
          * 
-         * Group: producer
+         * Group: advanced
          * 
-         * @param removalListener the value to set
+         * @param cacheLoader the value to set
          * @return the dsl builder
          */
-        default CaffeineLoadcacheComponentBuilder removalListener(
-                com.github.benmanes.caffeine.cache.RemovalListener removalListener) {
-            doSetProperty("removalListener", removalListener);
+        default CaffeineLoadcacheComponentBuilder cacheLoader(
+                com.github.benmanes.caffeine.cache.CacheLoader cacheLoader) {
+            doSetProperty("cacheLoader", cacheLoader);
             return this;
         }
         /**
-         * Set a specific Stats Counter for the cache stats.
+         * Sets the global component configuration.
          * 
          * The option is a:
-         * &lt;code&gt;com.github.benmanes.caffeine.cache.stats.StatsCounter&lt;/code&gt; type.
+         * &lt;code&gt;org.apache.camel.component.caffeine.CaffeineConfiguration&lt;/code&gt; type.
          * 
-         * Group: producer
+         * Group: advanced
          * 
-         * @param statsCounter the value to set
+         * @param configuration the value to set
          * @return the dsl builder
          */
-        default CaffeineLoadcacheComponentBuilder statsCounter(
-                com.github.benmanes.caffeine.cache.stats.StatsCounter statsCounter) {
-            doSetProperty("statsCounter", statsCounter);
+        default CaffeineLoadcacheComponentBuilder configuration(
+                org.apache.camel.component.caffeine.CaffeineConfiguration configuration) {
+            doSetProperty("configuration", configuration);
             return this;
         }
         /**
-         * To enable stats on the cache.
+         * The cache key type, default java.lang.Object.
          * 
-         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
          * 
-         * Default: false
-         * Group: producer
+         * Group: advanced
          * 
-         * @param statsEnabled the value to set
+         * @param keyType the value to set
          * @return the dsl builder
          */
-        default CaffeineLoadcacheComponentBuilder statsEnabled(
-                boolean statsEnabled) {
-            doSetProperty("statsEnabled", statsEnabled);
+        default CaffeineLoadcacheComponentBuilder keyType(
+                java.lang.String keyType) {
+            doSetProperty("keyType", keyType);
             return this;
         }
         /**
-         * 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.
+         * Set a specific removal Listener for the cache.
          * 
-         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * The option is a:
+         * &lt;code&gt;com.github.benmanes.caffeine.cache.RemovalListener&lt;/code&gt; type.
          * 
-         * Default: true
          * Group: advanced
          * 
-         * @param autowiredEnabled the value to set
+         * @param removalListener the value to set
          * @return the dsl builder
          */
-        default CaffeineLoadcacheComponentBuilder autowiredEnabled(
-                boolean autowiredEnabled) {
-            doSetProperty("autowiredEnabled", autowiredEnabled);
+        default CaffeineLoadcacheComponentBuilder removalListener(
+                com.github.benmanes.caffeine.cache.RemovalListener removalListener) {
+            doSetProperty("removalListener", removalListener);
             return this;
         }
         /**
-         * Sets the global component configuration.
+         * Set a specific Stats Counter for the cache stats.
          * 
          * The option is a:
-         * &lt;code&gt;org.apache.camel.component.caffeine.CaffeineConfiguration&lt;/code&gt; type.
+         * &lt;code&gt;com.github.benmanes.caffeine.cache.stats.StatsCounter&lt;/code&gt; type.
          * 
          * Group: advanced
          * 
-         * @param configuration the value to set
+         * @param statsCounter the value to set
          * @return the dsl builder
          */
-        default CaffeineLoadcacheComponentBuilder configuration(
-                org.apache.camel.component.caffeine.CaffeineConfiguration configuration) {
-            doSetProperty("configuration", configuration);
+        default CaffeineLoadcacheComponentBuilder statsCounter(
+                com.github.benmanes.caffeine.cache.stats.StatsCounter statsCounter) {
+            doSetProperty("statsCounter", statsCounter);
             return this;
         }
         /**
-         * The cache key type, default java.lang.Object.
+         * To enable stats on the cache.
          * 
-         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
          * 
+         * Default: false
          * Group: advanced
          * 
-         * @param keyType the value to set
+         * @param statsEnabled the value to set
          * @return the dsl builder
          */
-        default CaffeineLoadcacheComponentBuilder keyType(
-                java.lang.String keyType) {
-            doSetProperty("keyType", keyType);
+        default CaffeineLoadcacheComponentBuilder statsEnabled(
+                boolean statsEnabled) {
+            doSetProperty("statsEnabled", statsEnabled);
             return this;
         }
         /**
@@ -360,21 +376,21 @@ public interface CaffeineLoadcacheComponentBuilderFactory {
                 Object value) {
             switch (name) {
             case "action": getOrCreateConfiguration((CaffeineLoadCacheComponent) component).setAction((java.lang.String) value); return true;
-            case "cacheLoader": getOrCreateConfiguration((CaffeineLoadCacheComponent) component).setCacheLoader((com.github.benmanes.caffeine.cache.CacheLoader) value); return true;
             case "createCacheIfNotExist": getOrCreateConfiguration((CaffeineLoadCacheComponent) component).setCreateCacheIfNotExist((boolean) value); return true;
             case "evictionType": getOrCreateConfiguration((CaffeineLoadCacheComponent) component).setEvictionType((org.apache.camel.component.caffeine.EvictionType) value); return true;
             case "expireAfterAccessTime": getOrCreateConfiguration((CaffeineLoadCacheComponent) component).setExpireAfterAccessTime((int) value); return true;
             case "expireAfterWriteTime": getOrCreateConfiguration((CaffeineLoadCacheComponent) component).setExpireAfterWriteTime((int) value); return true;
-            case "initialCapacity": getOrCreateConfiguration((CaffeineLoadCacheComponent) component).setInitialCapacity((int) value); return true;
+            case "initialCapacity": getOrCreateConfiguration((CaffeineLoadCacheComponent) component).setInitialCapacity((java.lang.Integer) value); return true;
             case "key": getOrCreateConfiguration((CaffeineLoadCacheComponent) component).setKey((java.lang.Object) value); return true;
             case "lazyStartProducer": ((CaffeineLoadCacheComponent) component).setLazyStartProducer((boolean) value); return true;
-            case "maximumSize": getOrCreateConfiguration((CaffeineLoadCacheComponent) component).setMaximumSize((int) value); return true;
-            case "removalListener": getOrCreateConfiguration((CaffeineLoadCacheComponent) component).setRemovalListener((com.github.benmanes.caffeine.cache.RemovalListener) value); return true;
-            case "statsCounter": getOrCreateConfiguration((CaffeineLoadCacheComponent) component).setStatsCounter((com.github.benmanes.caffeine.cache.stats.StatsCounter) value); return true;
-            case "statsEnabled": getOrCreateConfiguration((CaffeineLoadCacheComponent) component).setStatsEnabled((boolean) value); return true;
+            case "maximumSize": getOrCreateConfiguration((CaffeineLoadCacheComponent) component).setMaximumSize((java.lang.Integer) value); return true;
             case "autowiredEnabled": ((CaffeineLoadCacheComponent) component).setAutowiredEnabled((boolean) value); return true;
+            case "cacheLoader": getOrCreateConfiguration((CaffeineLoadCacheComponent) component).setCacheLoader((com.github.benmanes.caffeine.cache.CacheLoader) value); return true;
             case "configuration": ((CaffeineLoadCacheComponent) component).setConfiguration((org.apache.camel.component.caffeine.CaffeineConfiguration) value); return true;
             case "keyType": getOrCreateConfiguration((CaffeineLoadCacheComponent) component).setKeyType((java.lang.String) value); return true;
+            case "removalListener": getOrCreateConfiguration((CaffeineLoadCacheComponent) component).setRemovalListener((com.github.benmanes.caffeine.cache.RemovalListener) value); return true;
+            case "statsCounter": getOrCreateConfiguration((CaffeineLoadCacheComponent) component).setStatsCounter((com.github.benmanes.caffeine.cache.stats.StatsCounter) value); return true;
+            case "statsEnabled": getOrCreateConfiguration((CaffeineLoadCacheComponent) component).setStatsEnabled((boolean) value); return true;
             case "valueType": getOrCreateConfiguration((CaffeineLoadCacheComponent) component).setValueType((java.lang.String) value); return true;
             default: return false;
             }
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
index b72cc1a37a0..17358754c86 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
@@ -2282,7 +2282,7 @@ public class StaticEndpointBuilders {
      * Syntax: <code>caffeine-cache:cacheName</code>
      * 
      * Path parameter: cacheName (required)
-     * the cache name
+     * Cache name
      * 
      * @param path cacheName
      * @return the dsl builder
@@ -2302,7 +2302,7 @@ public class StaticEndpointBuilders {
      * Syntax: <code>caffeine-cache:cacheName</code>
      * 
      * Path parameter: cacheName (required)
-     * the cache name
+     * Cache name
      * 
      * @param componentName to use a custom component name for the endpoint
      * instead of the default name
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/CaffeineCacheEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/CaffeineCacheEndpointBuilderFactory.java
index c6754c0f8ed..ad037f9922c 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/CaffeineCacheEndpointBuilderFactory.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/CaffeineCacheEndpointBuilderFactory.java
@@ -59,39 +59,8 @@ public interface CaffeineCacheEndpointBuilderFactory {
             return this;
         }
         /**
-         * To configure a CacheLoader in case of a LoadCache use.
-         * 
-         * The option is a:
-         * &lt;code&gt;com.github.benmanes.caffeine.cache.CacheLoader&lt;/code&gt; type.
-         * 
-         * Group: producer
-         * 
-         * @param cacheLoader the value to set
-         * @return the dsl builder
-         */
-        default CaffeineCacheEndpointBuilder cacheLoader(
-                com.github.benmanes.caffeine.cache.CacheLoader cacheLoader) {
-            doSetProperty("cacheLoader", cacheLoader);
-            return this;
-        }
-        /**
-         * To configure a CacheLoader in case of a LoadCache use.
-         * 
-         * The option will be converted to a
-         * &lt;code&gt;com.github.benmanes.caffeine.cache.CacheLoader&lt;/code&gt; type.
-         * 
-         * Group: producer
-         * 
-         * @param cacheLoader the value to set
-         * @return the dsl builder
-         */
-        default CaffeineCacheEndpointBuilder cacheLoader(String cacheLoader) {
-            doSetProperty("cacheLoader", cacheLoader);
-            return this;
-        }
-        /**
-         * Configure if a cache need to be created if it does exist or can't be
-         * pre-configured.
+         * Automatic create the Caffeine cache if none has been configured or
+         * exists in the registry.
          * 
          * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
          * 
@@ -107,8 +76,8 @@ public interface CaffeineCacheEndpointBuilderFactory {
             return this;
         }
         /**
-         * Configure if a cache need to be created if it does exist or can't be
-         * pre-configured.
+         * Automatic create the Caffeine cache if none has been configured or
+         * exists in the registry.
          * 
          * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
          * type.
@@ -158,8 +127,11 @@ public interface CaffeineCacheEndpointBuilderFactory {
             return this;
         }
         /**
-         * Set the expire After Access Time in case of time based Eviction (in
-         * seconds).
+         * Specifies that each entry should be automatically removed from the
+         * cache once a fixed duration has elapsed after the entry's creation,
+         * the most recent replacement of its value, or its last read. Access
+         * time is reset by all cache read and write operations. The unit is in
+         * seconds.
          * 
          * The option is a: &lt;code&gt;int&lt;/code&gt; type.
          * 
@@ -175,8 +147,11 @@ public interface CaffeineCacheEndpointBuilderFactory {
             return this;
         }
         /**
-         * Set the expire After Access Time in case of time based Eviction (in
-         * seconds).
+         * Specifies that each entry should be automatically removed from the
+         * cache once a fixed duration has elapsed after the entry's creation,
+         * the most recent replacement of its value, or its last read. Access
+         * time is reset by all cache read and write operations. The unit is in
+         * seconds.
          * 
          * The option will be converted to a &lt;code&gt;int&lt;/code&gt; type.
          * 
@@ -192,8 +167,9 @@ public interface CaffeineCacheEndpointBuilderFactory {
             return this;
         }
         /**
-         * Set the expire After Access Write in case of time based Eviction (in
-         * seconds).
+         * Specifies that each entry should be automatically removed from the
+         * cache once a fixed duration has elapsed after the entry's creation,
+         * or the most recent replacement of its value. The unit is in seconds.
          * 
          * The option is a: &lt;code&gt;int&lt;/code&gt; type.
          * 
@@ -209,8 +185,9 @@ public interface CaffeineCacheEndpointBuilderFactory {
             return this;
         }
         /**
-         * Set the expire After Access Write in case of time based Eviction (in
-         * seconds).
+         * Specifies that each entry should be automatically removed from the
+         * cache once a fixed duration has elapsed after the entry's creation,
+         * or the most recent replacement of its value. The unit is in seconds.
          * 
          * The option will be converted to a &lt;code&gt;int&lt;/code&gt; type.
          * 
@@ -226,26 +203,32 @@ public interface CaffeineCacheEndpointBuilderFactory {
             return this;
         }
         /**
-         * Set the initial Capacity for the cache.
+         * Sets the minimum total size for the internal data structures.
+         * Providing a large enough estimate at construction time avoids the
+         * need for expensive resizing operations later, but setting this value
+         * unnecessarily high wastes memory.
          * 
-         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
+         * The option is a: &lt;code&gt;java.lang.Integer&lt;/code&gt; type.
          * 
-         * Default: 10000
          * Group: producer
          * 
          * @param initialCapacity the value to set
          * @return the dsl builder
          */
-        default CaffeineCacheEndpointBuilder initialCapacity(int initialCapacity) {
+        default CaffeineCacheEndpointBuilder initialCapacity(
+                Integer initialCapacity) {
             doSetProperty("initialCapacity", initialCapacity);
             return this;
         }
         /**
-         * Set the initial Capacity for the cache.
+         * Sets the minimum total size for the internal data structures.
+         * Providing a large enough estimate at construction time avoids the
+         * need for expensive resizing operations later, but setting this value
+         * unnecessarily high wastes memory.
          * 
-         * The option will be converted to a &lt;code&gt;int&lt;/code&gt; type.
+         * The option will be converted to a
+         * &lt;code&gt;java.lang.Integer&lt;/code&gt; type.
          * 
-         * Default: 10000
          * Group: producer
          * 
          * @param initialCapacity the value to set
@@ -288,26 +271,45 @@ public interface CaffeineCacheEndpointBuilderFactory {
             return this;
         }
         /**
-         * Set the maximum size for the cache.
+         * Specifies the maximum number of entries the cache may contain. Note
+         * that the cache may evict an entry before this limit is exceeded or
+         * temporarily exceed the threshold while evicting. As the cache size
+         * grows close to the maximum, the cache evicts entries that are less
+         * likely to be used again. For example, the cache may evict an entry
+         * because it hasn't been used recently or very often. When size is
+         * zero, elements will be evicted immediately after being loaded into
+         * the cache. This can be useful in testing, or to disable caching
+         * temporarily without a code change. As eviction is scheduled on the
+         * configured executor, tests may instead prefer to configure the cache
+         * to execute tasks directly on the same thread.
          * 
-         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
+         * The option is a: &lt;code&gt;java.lang.Integer&lt;/code&gt; type.
          * 
-         * Default: 10000
          * Group: producer
          * 
          * @param maximumSize the value to set
          * @return the dsl builder
          */
-        default CaffeineCacheEndpointBuilder maximumSize(int maximumSize) {
+        default CaffeineCacheEndpointBuilder maximumSize(Integer maximumSize) {
             doSetProperty("maximumSize", maximumSize);
             return this;
         }
         /**
-         * Set the maximum size for the cache.
+         * Specifies the maximum number of entries the cache may contain. Note
+         * that the cache may evict an entry before this limit is exceeded or
+         * temporarily exceed the threshold while evicting. As the cache size
+         * grows close to the maximum, the cache evicts entries that are less
+         * likely to be used again. For example, the cache may evict an entry
+         * because it hasn't been used recently or very often. When size is
+         * zero, elements will be evicted immediately after being loaded into
+         * the cache. This can be useful in testing, or to disable caching
+         * temporarily without a code change. As eviction is scheduled on the
+         * configured executor, tests may instead prefer to configure the cache
+         * to execute tasks directly on the same thread.
          * 
-         * The option will be converted to a &lt;code&gt;int&lt;/code&gt; type.
+         * The option will be converted to a
+         * &lt;code&gt;java.lang.Integer&lt;/code&gt; type.
          * 
-         * Default: 10000
          * Group: producer
          * 
          * @param maximumSize the value to set
@@ -317,18 +319,124 @@ public interface CaffeineCacheEndpointBuilderFactory {
             doSetProperty("maximumSize", maximumSize);
             return this;
         }
+    }
+
+    /**
+     * Advanced builder for endpoint for the Caffeine Cache component.
+     */
+    public interface AdvancedCaffeineCacheEndpointBuilder
+            extends
+                EndpointProducerBuilder {
+        default CaffeineCacheEndpointBuilder basic() {
+            return (CaffeineCacheEndpointBuilder) 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
+         * 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 starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         * 
+         * @param lazyStartProducer the value to set
+         * @return the dsl builder
+         */
+        default AdvancedCaffeineCacheEndpointBuilder lazyStartProducer(
+                boolean lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            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
+         * 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 starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
+         * type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         * 
+         * @param lazyStartProducer the value to set
+         * @return the dsl builder
+         */
+        default AdvancedCaffeineCacheEndpointBuilder lazyStartProducer(
+                String lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * To configure a CacheLoader in case of a LoadCache use.
+         * 
+         * The option is a:
+         * &lt;code&gt;com.github.benmanes.caffeine.cache.CacheLoader&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param cacheLoader the value to set
+         * @return the dsl builder
+         */
+        default AdvancedCaffeineCacheEndpointBuilder cacheLoader(
+                com.github.benmanes.caffeine.cache.CacheLoader cacheLoader) {
+            doSetProperty("cacheLoader", cacheLoader);
+            return this;
+        }
+        /**
+         * To configure a CacheLoader in case of a LoadCache use.
+         * 
+         * The option will be converted to a
+         * &lt;code&gt;com.github.benmanes.caffeine.cache.CacheLoader&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param cacheLoader the value to set
+         * @return the dsl builder
+         */
+        default AdvancedCaffeineCacheEndpointBuilder cacheLoader(
+                String cacheLoader) {
+            doSetProperty("cacheLoader", cacheLoader);
+            return this;
+        }
+        /**
+         * The cache key type, default java.lang.Object.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param keyType the value to set
+         * @return the dsl builder
+         */
+        default AdvancedCaffeineCacheEndpointBuilder keyType(String keyType) {
+            doSetProperty("keyType", keyType);
+            return this;
+        }
         /**
          * Set a specific removal Listener for the cache.
          * 
          * The option is a:
          * &lt;code&gt;com.github.benmanes.caffeine.cache.RemovalListener&lt;/code&gt; type.
          * 
-         * Group: producer
+         * Group: advanced
          * 
          * @param removalListener the value to set
          * @return the dsl builder
          */
-        default CaffeineCacheEndpointBuilder removalListener(
+        default AdvancedCaffeineCacheEndpointBuilder removalListener(
                 com.github.benmanes.caffeine.cache.RemovalListener removalListener) {
             doSetProperty("removalListener", removalListener);
             return this;
@@ -339,12 +447,12 @@ public interface CaffeineCacheEndpointBuilderFactory {
          * The option will be converted to a
          * &lt;code&gt;com.github.benmanes.caffeine.cache.RemovalListener&lt;/code&gt; type.
          * 
-         * Group: producer
+         * Group: advanced
          * 
          * @param removalListener the value to set
          * @return the dsl builder
          */
-        default CaffeineCacheEndpointBuilder removalListener(
+        default AdvancedCaffeineCacheEndpointBuilder removalListener(
                 String removalListener) {
             doSetProperty("removalListener", removalListener);
             return this;
@@ -355,12 +463,12 @@ public interface CaffeineCacheEndpointBuilderFactory {
          * The option is a:
          * &lt;code&gt;com.github.benmanes.caffeine.cache.stats.StatsCounter&lt;/code&gt; type.
          * 
-         * Group: producer
+         * Group: advanced
          * 
          * @param statsCounter the value to set
          * @return the dsl builder
          */
-        default CaffeineCacheEndpointBuilder statsCounter(
+        default AdvancedCaffeineCacheEndpointBuilder statsCounter(
                 com.github.benmanes.caffeine.cache.stats.StatsCounter statsCounter) {
             doSetProperty("statsCounter", statsCounter);
             return this;
@@ -371,12 +479,13 @@ public interface CaffeineCacheEndpointBuilderFactory {
          * The option will be converted to a
          * &lt;code&gt;com.github.benmanes.caffeine.cache.stats.StatsCounter&lt;/code&gt; type.
          * 
-         * Group: producer
+         * Group: advanced
          * 
          * @param statsCounter the value to set
          * @return the dsl builder
          */
-        default CaffeineCacheEndpointBuilder statsCounter(String statsCounter) {
+        default AdvancedCaffeineCacheEndpointBuilder statsCounter(
+                String statsCounter) {
             doSetProperty("statsCounter", statsCounter);
             return this;
         }
@@ -386,12 +495,13 @@ public interface CaffeineCacheEndpointBuilderFactory {
          * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
          * 
          * Default: false
-         * Group: producer
+         * Group: advanced
          * 
          * @param statsEnabled the value to set
          * @return the dsl builder
          */
-        default CaffeineCacheEndpointBuilder statsEnabled(boolean statsEnabled) {
+        default AdvancedCaffeineCacheEndpointBuilder statsEnabled(
+                boolean statsEnabled) {
             doSetProperty("statsEnabled", statsEnabled);
             return this;
         }
@@ -402,89 +512,16 @@ public interface CaffeineCacheEndpointBuilderFactory {
          * type.
          * 
          * Default: false
-         * Group: producer
+         * Group: advanced
          * 
          * @param statsEnabled the value to set
          * @return the dsl builder
          */
-        default CaffeineCacheEndpointBuilder statsEnabled(String statsEnabled) {
+        default AdvancedCaffeineCacheEndpointBuilder statsEnabled(
+                String statsEnabled) {
             doSetProperty("statsEnabled", statsEnabled);
             return this;
         }
-    }
-
-    /**
-     * Advanced builder for endpoint for the Caffeine Cache component.
-     */
-    public interface AdvancedCaffeineCacheEndpointBuilder
-            extends
-                EndpointProducerBuilder {
-        default CaffeineCacheEndpointBuilder basic() {
-            return (CaffeineCacheEndpointBuilder) 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
-         * 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 starting the
-         * producer may take a little time and prolong the total processing time
-         * of the processing.
-         * 
-         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
-         * 
-         * Default: false
-         * Group: producer (advanced)
-         * 
-         * @param lazyStartProducer the value to set
-         * @return the dsl builder
-         */
-        default AdvancedCaffeineCacheEndpointBuilder lazyStartProducer(
-                boolean lazyStartProducer) {
-            doSetProperty("lazyStartProducer", lazyStartProducer);
-            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
-         * 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 starting the
-         * producer may take a little time and prolong the total processing time
-         * of the processing.
-         * 
-         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
-         * type.
-         * 
-         * Default: false
-         * Group: producer (advanced)
-         * 
-         * @param lazyStartProducer the value to set
-         * @return the dsl builder
-         */
-        default AdvancedCaffeineCacheEndpointBuilder lazyStartProducer(
-                String lazyStartProducer) {
-            doSetProperty("lazyStartProducer", lazyStartProducer);
-            return this;
-        }
-        /**
-         * The cache key type, default java.lang.Object.
-         * 
-         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
-         * 
-         * Group: advanced
-         * 
-         * @param keyType the value to set
-         * @return the dsl builder
-         */
-        default AdvancedCaffeineCacheEndpointBuilder keyType(String keyType) {
-            doSetProperty("keyType", keyType);
-            return this;
-        }
         /**
          * The cache value type, default java.lang.Object.
          * 
@@ -526,7 +563,7 @@ public interface CaffeineCacheEndpointBuilderFactory {
          * Syntax: <code>caffeine-cache:cacheName</code>
          * 
          * Path parameter: cacheName (required)
-         * the cache name
+         * Cache name
          * 
          * @param path cacheName
          * @return the dsl builder
@@ -545,7 +582,7 @@ public interface CaffeineCacheEndpointBuilderFactory {
          * Syntax: <code>caffeine-cache:cacheName</code>
          * 
          * Path parameter: cacheName (required)
-         * the cache name
+         * Cache name
          * 
          * @param componentName to use a custom component name for the endpoint
          * instead of the default name
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/CaffeineLoadCacheEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/CaffeineLoadCacheEndpointBuilderFactory.java
index cdfe76cdd09..2f615bdcf4b 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/CaffeineLoadCacheEndpointBuilderFactory.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/CaffeineLoadCacheEndpointBuilderFactory.java
@@ -59,39 +59,8 @@ public interface CaffeineLoadCacheEndpointBuilderFactory {
             return this;
         }
         /**
-         * To configure a CacheLoader in case of a LoadCache use.
-         * 
-         * The option is a:
-         * &lt;code&gt;com.github.benmanes.caffeine.cache.CacheLoader&lt;/code&gt; type.
-         * 
-         * Group: producer
-         * 
-         * @param cacheLoader the value to set
-         * @return the dsl builder
-         */
-        default CaffeineLoadCacheEndpointBuilder cacheLoader(
-                com.github.benmanes.caffeine.cache.CacheLoader cacheLoader) {
-            doSetProperty("cacheLoader", cacheLoader);
-            return this;
-        }
-        /**
-         * To configure a CacheLoader in case of a LoadCache use.
-         * 
-         * The option will be converted to a
-         * &lt;code&gt;com.github.benmanes.caffeine.cache.CacheLoader&lt;/code&gt; type.
-         * 
-         * Group: producer
-         * 
-         * @param cacheLoader the value to set
-         * @return the dsl builder
-         */
-        default CaffeineLoadCacheEndpointBuilder cacheLoader(String cacheLoader) {
-            doSetProperty("cacheLoader", cacheLoader);
-            return this;
-        }
-        /**
-         * Configure if a cache need to be created if it does exist or can't be
-         * pre-configured.
+         * Automatic create the Caffeine cache if none has been configured or
+         * exists in the registry.
          * 
          * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
          * 
@@ -107,8 +76,8 @@ public interface CaffeineLoadCacheEndpointBuilderFactory {
             return this;
         }
         /**
-         * Configure if a cache need to be created if it does exist or can't be
-         * pre-configured.
+         * Automatic create the Caffeine cache if none has been configured or
+         * exists in the registry.
          * 
          * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
          * type.
@@ -159,8 +128,11 @@ public interface CaffeineLoadCacheEndpointBuilderFactory {
             return this;
         }
         /**
-         * Set the expire After Access Time in case of time based Eviction (in
-         * seconds).
+         * Specifies that each entry should be automatically removed from the
+         * cache once a fixed duration has elapsed after the entry's creation,
+         * the most recent replacement of its value, or its last read. Access
+         * time is reset by all cache read and write operations. The unit is in
+         * seconds.
          * 
          * The option is a: &lt;code&gt;int&lt;/code&gt; type.
          * 
@@ -176,8 +148,11 @@ public interface CaffeineLoadCacheEndpointBuilderFactory {
             return this;
         }
         /**
-         * Set the expire After Access Time in case of time based Eviction (in
-         * seconds).
+         * Specifies that each entry should be automatically removed from the
+         * cache once a fixed duration has elapsed after the entry's creation,
+         * the most recent replacement of its value, or its last read. Access
+         * time is reset by all cache read and write operations. The unit is in
+         * seconds.
          * 
          * The option will be converted to a &lt;code&gt;int&lt;/code&gt; type.
          * 
@@ -193,8 +168,9 @@ public interface CaffeineLoadCacheEndpointBuilderFactory {
             return this;
         }
         /**
-         * Set the expire After Access Write in case of time based Eviction (in
-         * seconds).
+         * Specifies that each entry should be automatically removed from the
+         * cache once a fixed duration has elapsed after the entry's creation,
+         * or the most recent replacement of its value. The unit is in seconds.
          * 
          * The option is a: &lt;code&gt;int&lt;/code&gt; type.
          * 
@@ -210,8 +186,9 @@ public interface CaffeineLoadCacheEndpointBuilderFactory {
             return this;
         }
         /**
-         * Set the expire After Access Write in case of time based Eviction (in
-         * seconds).
+         * Specifies that each entry should be automatically removed from the
+         * cache once a fixed duration has elapsed after the entry's creation,
+         * or the most recent replacement of its value. The unit is in seconds.
          * 
          * The option will be converted to a &lt;code&gt;int&lt;/code&gt; type.
          * 
@@ -227,27 +204,32 @@ public interface CaffeineLoadCacheEndpointBuilderFactory {
             return this;
         }
         /**
-         * Set the initial Capacity for the cache.
+         * Sets the minimum total size for the internal data structures.
+         * Providing a large enough estimate at construction time avoids the
+         * need for expensive resizing operations later, but setting this value
+         * unnecessarily high wastes memory.
          * 
-         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
+         * The option is a: &lt;code&gt;java.lang.Integer&lt;/code&gt; type.
          * 
-         * Default: 10000
          * Group: producer
          * 
          * @param initialCapacity the value to set
          * @return the dsl builder
          */
         default CaffeineLoadCacheEndpointBuilder initialCapacity(
-                int initialCapacity) {
+                Integer initialCapacity) {
             doSetProperty("initialCapacity", initialCapacity);
             return this;
         }
         /**
-         * Set the initial Capacity for the cache.
+         * Sets the minimum total size for the internal data structures.
+         * Providing a large enough estimate at construction time avoids the
+         * need for expensive resizing operations later, but setting this value
+         * unnecessarily high wastes memory.
          * 
-         * The option will be converted to a &lt;code&gt;int&lt;/code&gt; type.
+         * The option will be converted to a
+         * &lt;code&gt;java.lang.Integer&lt;/code&gt; type.
          * 
-         * Default: 10000
          * Group: producer
          * 
          * @param initialCapacity the value to set
@@ -290,26 +272,45 @@ public interface CaffeineLoadCacheEndpointBuilderFactory {
             return this;
         }
         /**
-         * Set the maximum size for the cache.
+         * Specifies the maximum number of entries the cache may contain. Note
+         * that the cache may evict an entry before this limit is exceeded or
+         * temporarily exceed the threshold while evicting. As the cache size
+         * grows close to the maximum, the cache evicts entries that are less
+         * likely to be used again. For example, the cache may evict an entry
+         * because it hasn't been used recently or very often. When size is
+         * zero, elements will be evicted immediately after being loaded into
+         * the cache. This can be useful in testing, or to disable caching
+         * temporarily without a code change. As eviction is scheduled on the
+         * configured executor, tests may instead prefer to configure the cache
+         * to execute tasks directly on the same thread.
          * 
-         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
+         * The option is a: &lt;code&gt;java.lang.Integer&lt;/code&gt; type.
          * 
-         * Default: 10000
          * Group: producer
          * 
          * @param maximumSize the value to set
          * @return the dsl builder
          */
-        default CaffeineLoadCacheEndpointBuilder maximumSize(int maximumSize) {
+        default CaffeineLoadCacheEndpointBuilder maximumSize(Integer maximumSize) {
             doSetProperty("maximumSize", maximumSize);
             return this;
         }
         /**
-         * Set the maximum size for the cache.
+         * Specifies the maximum number of entries the cache may contain. Note
+         * that the cache may evict an entry before this limit is exceeded or
+         * temporarily exceed the threshold while evicting. As the cache size
+         * grows close to the maximum, the cache evicts entries that are less
+         * likely to be used again. For example, the cache may evict an entry
+         * because it hasn't been used recently or very often. When size is
+         * zero, elements will be evicted immediately after being loaded into
+         * the cache. This can be useful in testing, or to disable caching
+         * temporarily without a code change. As eviction is scheduled on the
+         * configured executor, tests may instead prefer to configure the cache
+         * to execute tasks directly on the same thread.
          * 
-         * The option will be converted to a &lt;code&gt;int&lt;/code&gt; type.
+         * The option will be converted to a
+         * &lt;code&gt;java.lang.Integer&lt;/code&gt; type.
          * 
-         * Default: 10000
          * Group: producer
          * 
          * @param maximumSize the value to set
@@ -319,18 +320,124 @@ public interface CaffeineLoadCacheEndpointBuilderFactory {
             doSetProperty("maximumSize", maximumSize);
             return this;
         }
+    }
+
+    /**
+     * Advanced builder for endpoint for the Caffeine LoadCache component.
+     */
+    public interface AdvancedCaffeineLoadCacheEndpointBuilder
+            extends
+                EndpointProducerBuilder {
+        default CaffeineLoadCacheEndpointBuilder basic() {
+            return (CaffeineLoadCacheEndpointBuilder) 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
+         * 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 starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         * 
+         * @param lazyStartProducer the value to set
+         * @return the dsl builder
+         */
+        default AdvancedCaffeineLoadCacheEndpointBuilder lazyStartProducer(
+                boolean lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            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
+         * 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 starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
+         * type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         * 
+         * @param lazyStartProducer the value to set
+         * @return the dsl builder
+         */
+        default AdvancedCaffeineLoadCacheEndpointBuilder lazyStartProducer(
+                String lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * To configure a CacheLoader in case of a LoadCache use.
+         * 
+         * The option is a:
+         * &lt;code&gt;com.github.benmanes.caffeine.cache.CacheLoader&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param cacheLoader the value to set
+         * @return the dsl builder
+         */
+        default AdvancedCaffeineLoadCacheEndpointBuilder cacheLoader(
+                com.github.benmanes.caffeine.cache.CacheLoader cacheLoader) {
+            doSetProperty("cacheLoader", cacheLoader);
+            return this;
+        }
+        /**
+         * To configure a CacheLoader in case of a LoadCache use.
+         * 
+         * The option will be converted to a
+         * &lt;code&gt;com.github.benmanes.caffeine.cache.CacheLoader&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param cacheLoader the value to set
+         * @return the dsl builder
+         */
+        default AdvancedCaffeineLoadCacheEndpointBuilder cacheLoader(
+                String cacheLoader) {
+            doSetProperty("cacheLoader", cacheLoader);
+            return this;
+        }
+        /**
+         * The cache key type, default java.lang.Object.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param keyType the value to set
+         * @return the dsl builder
+         */
+        default AdvancedCaffeineLoadCacheEndpointBuilder keyType(String keyType) {
+            doSetProperty("keyType", keyType);
+            return this;
+        }
         /**
          * Set a specific removal Listener for the cache.
          * 
          * The option is a:
          * &lt;code&gt;com.github.benmanes.caffeine.cache.RemovalListener&lt;/code&gt; type.
          * 
-         * Group: producer
+         * Group: advanced
          * 
          * @param removalListener the value to set
          * @return the dsl builder
          */
-        default CaffeineLoadCacheEndpointBuilder removalListener(
+        default AdvancedCaffeineLoadCacheEndpointBuilder removalListener(
                 com.github.benmanes.caffeine.cache.RemovalListener removalListener) {
             doSetProperty("removalListener", removalListener);
             return this;
@@ -341,12 +448,12 @@ public interface CaffeineLoadCacheEndpointBuilderFactory {
          * The option will be converted to a
          * &lt;code&gt;com.github.benmanes.caffeine.cache.RemovalListener&lt;/code&gt; type.
          * 
-         * Group: producer
+         * Group: advanced
          * 
          * @param removalListener the value to set
          * @return the dsl builder
          */
-        default CaffeineLoadCacheEndpointBuilder removalListener(
+        default AdvancedCaffeineLoadCacheEndpointBuilder removalListener(
                 String removalListener) {
             doSetProperty("removalListener", removalListener);
             return this;
@@ -357,12 +464,12 @@ public interface CaffeineLoadCacheEndpointBuilderFactory {
          * The option is a:
          * &lt;code&gt;com.github.benmanes.caffeine.cache.stats.StatsCounter&lt;/code&gt; type.
          * 
-         * Group: producer
+         * Group: advanced
          * 
          * @param statsCounter the value to set
          * @return the dsl builder
          */
-        default CaffeineLoadCacheEndpointBuilder statsCounter(
+        default AdvancedCaffeineLoadCacheEndpointBuilder statsCounter(
                 com.github.benmanes.caffeine.cache.stats.StatsCounter statsCounter) {
             doSetProperty("statsCounter", statsCounter);
             return this;
@@ -373,12 +480,12 @@ public interface CaffeineLoadCacheEndpointBuilderFactory {
          * The option will be converted to a
          * &lt;code&gt;com.github.benmanes.caffeine.cache.stats.StatsCounter&lt;/code&gt; type.
          * 
-         * Group: producer
+         * Group: advanced
          * 
          * @param statsCounter the value to set
          * @return the dsl builder
          */
-        default CaffeineLoadCacheEndpointBuilder statsCounter(
+        default AdvancedCaffeineLoadCacheEndpointBuilder statsCounter(
                 String statsCounter) {
             doSetProperty("statsCounter", statsCounter);
             return this;
@@ -389,12 +496,12 @@ public interface CaffeineLoadCacheEndpointBuilderFactory {
          * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
          * 
          * Default: false
-         * Group: producer
+         * Group: advanced
          * 
          * @param statsEnabled the value to set
          * @return the dsl builder
          */
-        default CaffeineLoadCacheEndpointBuilder statsEnabled(
+        default AdvancedCaffeineLoadCacheEndpointBuilder statsEnabled(
                 boolean statsEnabled) {
             doSetProperty("statsEnabled", statsEnabled);
             return this;
@@ -406,90 +513,16 @@ public interface CaffeineLoadCacheEndpointBuilderFactory {
          * type.
          * 
          * Default: false
-         * Group: producer
+         * Group: advanced
          * 
          * @param statsEnabled the value to set
          * @return the dsl builder
          */
-        default CaffeineLoadCacheEndpointBuilder statsEnabled(
+        default AdvancedCaffeineLoadCacheEndpointBuilder statsEnabled(
                 String statsEnabled) {
             doSetProperty("statsEnabled", statsEnabled);
             return this;
         }
-    }
-
-    /**
-     * Advanced builder for endpoint for the Caffeine LoadCache component.
-     */
-    public interface AdvancedCaffeineLoadCacheEndpointBuilder
-            extends
-                EndpointProducerBuilder {
-        default CaffeineLoadCacheEndpointBuilder basic() {
-            return (CaffeineLoadCacheEndpointBuilder) 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
-         * 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 starting the
-         * producer may take a little time and prolong the total processing time
-         * of the processing.
-         * 
-         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
-         * 
-         * Default: false
-         * Group: producer (advanced)
-         * 
-         * @param lazyStartProducer the value to set
-         * @return the dsl builder
-         */
-        default AdvancedCaffeineLoadCacheEndpointBuilder lazyStartProducer(
-                boolean lazyStartProducer) {
-            doSetProperty("lazyStartProducer", lazyStartProducer);
-            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
-         * 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 starting the
-         * producer may take a little time and prolong the total processing time
-         * of the processing.
-         * 
-         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
-         * type.
-         * 
-         * Default: false
-         * Group: producer (advanced)
-         * 
-         * @param lazyStartProducer the value to set
-         * @return the dsl builder
-         */
-        default AdvancedCaffeineLoadCacheEndpointBuilder lazyStartProducer(
-                String lazyStartProducer) {
-            doSetProperty("lazyStartProducer", lazyStartProducer);
-            return this;
-        }
-        /**
-         * The cache key type, default java.lang.Object.
-         * 
-         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
-         * 
-         * Group: advanced
-         * 
-         * @param keyType the value to set
-         * @return the dsl builder
-         */
-        default AdvancedCaffeineLoadCacheEndpointBuilder keyType(String keyType) {
-            doSetProperty("keyType", keyType);
-            return this;
-        }
         /**
          * The cache value type, default java.lang.Object.
          *