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


The following commit(s) were added to refs/heads/main by this push:
     new 112b8be1621d CAMEL-24336: camel-main metadata - detect enum types for 
TimeUnit and LeaseResourceType options
112b8be1621d is described below

commit 112b8be1621d70b5d9e9550d18156abf30d27f1d
Author: Claus Ibsen <[email protected]>
AuthorDate: Tue Aug 4 10:31:19 2026 +0200

    CAMEL-24336: camel-main metadata - detect enum types for TimeUnit and 
LeaseResourceType options
    
    Add enums to @Metadata annotations on TimeUnit fields in
    FileLockClusterService, InfinispanRemoteClusterService,
    InfinispanEmbeddedClusterService, and LeaseResourceType field
    in KubernetesClusterService. Also add TimeUnit to the hardcoded
    enum list in PrepareCamelMainMojo for the Roaster-based code path
    (ThreadPoolConfigurationProperties).
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    Signed-off-by: Claus Ibsen <[email protected]>
---
 .../apache/camel/catalog/beans/FileLockClusterService.json   |  2 +-
 .../catalog/beans/InfinispanEmbeddedClusterService.json      |  2 +-
 .../camel/catalog/beans/InfinispanRemoteClusterService.json  |  2 +-
 .../apache/camel/catalog/beans/KubernetesClusterService.json |  2 +-
 .../catalog/main/camel-main-configuration-metadata.json      | 12 ++++++------
 .../org/apache/camel/bean/FileLockClusterService.json        |  2 +-
 .../camel/component/file/cluster/FileLockClusterService.java |  9 ++++++---
 .../apache/camel/bean/InfinispanEmbeddedClusterService.json  |  2 +-
 .../embedded/cluster/InfinispanEmbeddedClusterService.java   |  3 ++-
 .../apache/camel/bean/InfinispanRemoteClusterService.json    |  2 +-
 .../remote/cluster/InfinispanRemoteClusterService.java       |  3 ++-
 .../org/apache/camel/bean/KubernetesClusterService.json      |  2 +-
 .../kubernetes/cluster/KubernetesClusterService.java         |  3 ++-
 .../META-INF/camel-main-configuration-metadata.json          | 12 ++++++------
 .../apache/camel/maven/packaging/PrepareCamelMainMojo.java   |  2 ++
 15 files changed, 34 insertions(+), 26 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/beans/FileLockClusterService.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/beans/FileLockClusterService.json
index 5ced524f7b1b..9bb6df4e369e 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/beans/FileLockClusterService.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/beans/FileLockClusterService.json
@@ -10,7 +10,7 @@
     "groupId": "org.apache.camel",
     "artifactId": "camel-file",
     "version": "4.22.0-SNAPSHOT",
-    "properties": { "root": { "index": 0, "kind": "property", "displayName": 
"Root", "required": true, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "The 
root file path" }, "acquireLockDelay": { "index": 1, "kind": "property", 
"displayName": "Acquire Lock Delay", "required": false, "type": "integer", 
"javaType": "long", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": 1, "description": " [...]
+    "properties": { "root": { "index": 0, "kind": "property", "displayName": 
"Root", "required": true, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "The 
root file path" }, "acquireLockDelay": { "index": 1, "kind": "property", 
"displayName": "Acquire Lock Delay", "required": false, "type": "integer", 
"javaType": "long", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": 1, "description": " [...]
   }
 }
 
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/beans/InfinispanEmbeddedClusterService.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/beans/InfinispanEmbeddedClusterService.json
index 68486d2c055b..9d62f1185833 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/beans/InfinispanEmbeddedClusterService.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/beans/InfinispanEmbeddedClusterService.json
@@ -10,7 +10,7 @@
     "groupId": "org.apache.camel",
     "artifactId": "camel-infinispan-embedded",
     "version": "4.22.0-SNAPSHOT",
-    "properties": { "id": { "index": 0, "kind": "property", "displayName": 
"Id", "required": true, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Node 
id" }, "configurationUri": { "index": 1, "kind": "property", "displayName": 
"Configuration Uri", "label": "advanced", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "An  [...]
+    "properties": { "id": { "index": 0, "kind": "property", "displayName": 
"Id", "required": true, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Node 
id" }, "configurationUri": { "index": 1, "kind": "property", "displayName": 
"Configuration Uri", "label": "advanced", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "An  [...]
   }
 }
 
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/beans/InfinispanRemoteClusterService.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/beans/InfinispanRemoteClusterService.json
index d13626a62ce8..09a1fe80de0a 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/beans/InfinispanRemoteClusterService.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/beans/InfinispanRemoteClusterService.json
@@ -10,7 +10,7 @@
     "groupId": "org.apache.camel",
     "artifactId": "camel-infinispan",
     "version": "4.22.0-SNAPSHOT",
-    "properties": { "id": { "index": 0, "kind": "property", "displayName": 
"Id", "required": true, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Node 
id" }, "configurationUri": { "index": 1, "kind": "property", "displayName": 
"Configuration Uri", "label": "advanced", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "An  [...]
+    "properties": { "id": { "index": 0, "kind": "property", "displayName": 
"Id", "required": true, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Node 
id" }, "configurationUri": { "index": 1, "kind": "property", "displayName": 
"Configuration Uri", "label": "advanced", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "An  [...]
   }
 }
 
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/beans/KubernetesClusterService.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/beans/KubernetesClusterService.json
index dbf54d2de06f..4da86f48678b 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/beans/KubernetesClusterService.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/beans/KubernetesClusterService.json
@@ -10,7 +10,7 @@
     "groupId": "org.apache.camel",
     "artifactId": "camel-kubernetes",
     "version": "4.22.0-SNAPSHOT",
-    "properties": { "masterUrl": { "index": 0, "kind": "property", 
"displayName": "Master Url", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "URL to a remote Kubernetes API server. This should only be used 
when your Camel application is connecting from outside Kubernetes. If you run 
your Camel application inside Kubernetes, then you can use local or client as 
the URL to tell Camel to run in l [...]
+    "properties": { "masterUrl": { "index": 0, "kind": "property", 
"displayName": "Master Url", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "URL to a remote Kubernetes API server. This should only be used 
when your Camel application is connecting from outside Kubernetes. If you run 
your Camel application inside Kubernetes, then you can use local or client as 
the URL to tell Camel to run in l [...]
   }
 }
 
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/main/camel-main-configuration-metadata.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/main/camel-main-configuration-metadata.json
index d16fb079e975..4c5a8c43a5d7 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/main/camel-main-configuration-metadata.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/main/camel-main-configuration-metadata.json
@@ -185,12 +185,12 @@
     { "name": "camel.cluster.consul.userName", "required": false, 
"description": "Sets the username to be used for basic authentication", 
"sourceType": "org.apache.camel.component.consul.cluster.ConsulClusterService", 
"type": "string", "javaType": "java.lang.String", "secret": true, "security": 
"secret" },
     { "name": "camel.cluster.consul.writeTimeout", "required": false, 
"description": "Write timeout in mills", "sourceType": 
"org.apache.camel.component.consul.cluster.ConsulClusterService", "type": 
"integer", "javaType": "int", "secret": false },
     { "name": "camel.cluster.file.acquireLockDelay", "required": false, 
"description": "The time to wait before starting to try to acquire the cluster 
lock. Note that if FileLockClusterService determines no cluster members are 
running or cannot reliably determine the cluster state, the initial delay is 
computed from the acquireLockInterval.", "sourceType": 
"org.apache.camel.component.file.cluster.FileLockClusterService", "type": 
"integer", "javaType": "long", "defaultValue": 1, "secret": [...]
-    { "name": "camel.cluster.file.acquireLockDelayUnit", "required": false, 
"description": "The time unit for the acquireLockDelay", "sourceType": 
"org.apache.camel.component.file.cluster.FileLockClusterService", "type": 
"object", "javaType": "java.util.concurrent.TimeUnit", "defaultValue": 
"SECONDS", "secret": false },
+    { "name": "camel.cluster.file.acquireLockDelayUnit", "required": false, 
"description": "The time unit for the acquireLockDelay", "sourceType": 
"org.apache.camel.component.file.cluster.FileLockClusterService", "type": 
"enum", "javaType": "java.util.concurrent.TimeUnit", "defaultValue": "SECONDS", 
"secret": false, "enum": [ "NANOSECONDS", "MICROSECONDS", "MILLISECONDS", 
"SECONDS", "MINUTES", "HOURS", "DAYS" ] },
     { "name": "camel.cluster.file.acquireLockInterval", "required": false, 
"description": "The time to wait between attempts to try to acquire the cluster 
lock evaluated using wall-clock time. All cluster members must use the same 
value so leadership checks and leader liveness detection remain consistent.", 
"sourceType": "org.apache.camel.component.file.cluster.FileLockClusterService", 
"type": "integer", "javaType": "long", "defaultValue": 10, "secret": false },
-    { "name": "camel.cluster.file.acquireLockIntervalUnit", "required": false, 
"description": "The time unit for the acquireLockInterval", "sourceType": 
"org.apache.camel.component.file.cluster.FileLockClusterService", "type": 
"object", "javaType": "java.util.concurrent.TimeUnit", "defaultValue": 
"SECONDS", "secret": false },
+    { "name": "camel.cluster.file.acquireLockIntervalUnit", "required": false, 
"description": "The time unit for the acquireLockInterval", "sourceType": 
"org.apache.camel.component.file.cluster.FileLockClusterService", "type": 
"enum", "javaType": "java.util.concurrent.TimeUnit", "defaultValue": "SECONDS", 
"secret": false, "enum": [ "NANOSECONDS", "MICROSECONDS", "MILLISECONDS", 
"SECONDS", "MINUTES", "HOURS", "DAYS" ] },
     { "name": "camel.cluster.file.clusterDataTaskMaxAttempts", "required": 
false, "description": "Sets how many times a cluster data task will run, 
counting both the first execution and subsequent retries in case of failure or 
timeout. The default is 5 attempts. This can be useful when the cluster data 
root is on network based file storage, where I\/O operations may occasionally 
block for long or unpredictable periods.", "sourceType": 
"org.apache.camel.component.file.cluster.FileLockClus [...]
     { "name": "camel.cluster.file.clusterDataTaskTimeout", "required": false, 
"description": "Sets the timeout for a cluster data task (reading or writing 
cluster data). The default is 10 seconds. Timeouts are useful when the cluster 
data root is on network storage, where I\/O operations may occasionally block 
for long or unpredictable periods.", "sourceType": 
"org.apache.camel.component.file.cluster.FileLockClusterService", "type": 
"integer", "javaType": "long", "defaultValue": 10, "sec [...]
-    { "name": "camel.cluster.file.clusterDataTaskTimeoutUnit", "required": 
false, "description": "The time unit for the clusterDataTaskTimeoutUnit", 
"sourceType": "org.apache.camel.component.file.cluster.FileLockClusterService", 
"type": "object", "javaType": "java.util.concurrent.TimeUnit", "defaultValue": 
"SECONDS", "secret": false },
+    { "name": "camel.cluster.file.clusterDataTaskTimeoutUnit", "required": 
false, "description": "The time unit for the clusterDataTaskTimeoutUnit", 
"sourceType": "org.apache.camel.component.file.cluster.FileLockClusterService", 
"type": "enum", "javaType": "java.util.concurrent.TimeUnit", "defaultValue": 
"SECONDS", "secret": false, "enum": [ "NANOSECONDS", "MICROSECONDS", 
"MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ] },
     { "name": "camel.cluster.file.enabled", "required": false, "description": 
"Whether to enable this cluster service.", "sourceType": 
"org.apache.camel.component.file.cluster.FileLockClusterService", "type": 
"boolean", "javaType": "boolean", "defaultValue": true, "secret": false },
     { "name": "camel.cluster.file.heartbeatTimeoutMultiplier", "required": 
false, "description": "Multiplier applied to the cluster leader 
acquireLockInterval to determine how long followers should wait before 
considering the leader stale. For example, if the leader updates its heartbeat 
every 2 seconds and the heartbeatTimeoutMultiplier is 3, followers will 
tolerate up to 2s * 3 = 6s of silence before declaring the leader 
unavailable.", "sourceType": "org.apache.camel.component.file.clu [...]
     { "name": "camel.cluster.file.root", "required": true, "description": "The 
root file path", "sourceType": 
"org.apache.camel.component.file.cluster.FileLockClusterService", "type": 
"string", "javaType": "java.lang.String", "secret": false },
@@ -203,7 +203,7 @@
     { "name": "camel.cluster.infinispan.hosts", "required": false, 
"description": "Specifies the host of the cache on Infinispan instance. 
Multiple hosts can be separated by semicolon.", "sourceType": 
"org.apache.camel.component.infinispan.remote.cluster.InfinispanRemoteClusterService",
 "type": "string", "javaType": "java.lang.String", "secret": false },
     { "name": "camel.cluster.infinispan.id", "required": true, "description": 
"Node id", "sourceType": 
"org.apache.camel.component.infinispan.remote.cluster.InfinispanRemoteClusterService",
 "type": "string", "javaType": "java.lang.String", "secret": false },
     { "name": "camel.cluster.infinispan.lifespan", "required": false, 
"description": "The lifespan of the cache entry for the local cluster member 
registered to the inventory", "sourceType": 
"org.apache.camel.component.infinispan.remote.cluster.InfinispanRemoteClusterService",
 "type": "integer", "javaType": "long", "defaultValue": 30, "secret": false },
-    { "name": "camel.cluster.infinispan.lifespanTimeUnit", "required": false, 
"description": "The TimeUnit of the lifespan", "sourceType": 
"org.apache.camel.component.infinispan.remote.cluster.InfinispanRemoteClusterService",
 "type": "object", "javaType": "java.util.concurrent.TimeUnit", "defaultValue": 
"SECONDS", "secret": false },
+    { "name": "camel.cluster.infinispan.lifespanTimeUnit", "required": false, 
"description": "The TimeUnit of the lifespan", "sourceType": 
"org.apache.camel.component.infinispan.remote.cluster.InfinispanRemoteClusterService",
 "type": "enum", "javaType": "java.util.concurrent.TimeUnit", "defaultValue": 
"SECONDS", "secret": false, "enum": [ "NANOSECONDS", "MICROSECONDS", 
"MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ] },
     { "name": "camel.cluster.infinispan.password", "required": false, 
"description": "Define the password to access the infinispan instance", 
"sourceType": 
"org.apache.camel.component.infinispan.remote.cluster.InfinispanRemoteClusterService",
 "type": "string", "javaType": "java.lang.String", "secret": true, "security": 
"secret" },
     { "name": "camel.cluster.infinispan.saslMechanism", "required": false, 
"description": "Define the SASL Mechanism to access the infinispan instance", 
"sourceType": 
"org.apache.camel.component.infinispan.remote.cluster.InfinispanRemoteClusterService",
 "type": "string", "javaType": "java.lang.String", "secret": false },
     { "name": "camel.cluster.infinispan.secure", "required": false, 
"description": "Define if we are connecting to a secured Infinispan instance", 
"sourceType": 
"org.apache.camel.component.infinispan.remote.cluster.InfinispanRemoteClusterService",
 "type": "boolean", "javaType": "boolean", "defaultValue": false, "secret": 
false },
@@ -224,7 +224,7 @@
     { "name": "camel.cluster.kubernetes.kubernetesResourceName", "required": 
false, "description": "Name of the resource used for locking (or prefix, in 
case multiple ones are used).", "sourceType": 
"org.apache.camel.component.kubernetes.cluster.KubernetesClusterService", 
"type": "string", "javaType": "java.lang.String", "defaultValue": "leaders", 
"secret": false, "deprecated": true },
     { "name": "camel.cluster.kubernetes.kubernetesResourcesNamespace", 
"required": false, "description": "Kubernetes namespace containing the pods and 
the ConfigMap used for locking.", "sourceType": 
"org.apache.camel.component.kubernetes.cluster.KubernetesClusterService", 
"type": "string", "javaType": "java.lang.String", "secret": false, 
"deprecated": true },
     { "name": "camel.cluster.kubernetes.leaseDurationMillis", "required": 
false, "description": "The default duration of the lease for the current 
leader.", "sourceType": 
"org.apache.camel.component.kubernetes.cluster.KubernetesClusterService", 
"type": "integer", "javaType": "long", "defaultValue": 15000, "secret": false, 
"deprecated": true },
-    { "name": "camel.cluster.kubernetes.leaseResourceType", "required": false, 
"description": "Kubernetes resource type used to hold the leases.", 
"sourceType": 
"org.apache.camel.component.kubernetes.cluster.KubernetesClusterService", 
"type": "object", "javaType": 
"org.apache.camel.component.kubernetes.cluster.LeaseResourceType", 
"defaultValue": "Lease", "secret": false, "deprecated": true },
+    { "name": "camel.cluster.kubernetes.leaseResourceType", "required": false, 
"description": "Kubernetes resource type used to hold the leases.", 
"sourceType": 
"org.apache.camel.component.kubernetes.cluster.KubernetesClusterService", 
"type": "enum", "javaType": 
"org.apache.camel.component.kubernetes.cluster.LeaseResourceType", 
"defaultValue": "Lease", "secret": false, "enum": [ "ConfigMap", "Lease" ], 
"deprecated": true },
     { "name": "camel.cluster.kubernetes.masterUrl", "required": false, 
"description": "URL to a remote Kubernetes API server. This should only be used 
when your Camel application is connecting from outside Kubernetes. If you run 
your Camel application inside Kubernetes, then you can use local or client as 
the URL to tell Camel to run in local mode. If you connect remotely to 
Kubernetes, then you may also need some of the many other configuration options 
for secured connection with certif [...]
     { "name": "camel.cluster.kubernetes.namespace", "required": false, 
"description": "Kubernetes namespace", "sourceType": 
"org.apache.camel.component.kubernetes.cluster.KubernetesClusterService", 
"type": "string", "javaType": "java.lang.String", "secret": false, 
"deprecated": true },
     { "name": "camel.cluster.kubernetes.podName", "required": false, 
"description": "Name of the current pod (defaults to host name).", 
"sourceType": 
"org.apache.camel.component.kubernetes.cluster.KubernetesClusterService", 
"type": "string", "javaType": "java.lang.String", "secret": false, 
"deprecated": true },
@@ -490,7 +490,7 @@
     { "name": "camel.threadpool.maxQueueSize", "required": false, 
"description": "Sets the default maximum number of tasks in the work queue. Use 
-1 or an unbounded queue", "sourceType": 
"org.apache.camel.main.ThreadPoolConfigurationProperties", "type": "integer", 
"javaType": "java.lang.Integer", "secret": false },
     { "name": "camel.threadpool.poolSize", "required": false, "description": 
"Sets the default core pool size (threads to keep minimum in pool)", 
"sourceType": "org.apache.camel.main.ThreadPoolConfigurationProperties", 
"type": "integer", "javaType": "java.lang.Integer", "secret": false },
     { "name": "camel.threadpool.rejectedPolicy", "required": false, 
"description": "Sets the default handler for tasks which cannot be executed by 
the thread pool.", "sourceType": 
"org.apache.camel.main.ThreadPoolConfigurationProperties", "type": "enum", 
"javaType": "org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy", 
"secret": false, "enum": [ "Abort", "CallerRuns", "DiscardOldest", "Discard" ] 
},
-    { "name": "camel.threadpool.timeUnit", "required": false, "description": 
"Sets the default time unit used for keep alive time", "sourceType": 
"org.apache.camel.main.ThreadPoolConfigurationProperties", "type": "object", 
"javaType": "java.util.concurrent.TimeUnit", "secret": false },
+    { "name": "camel.threadpool.timeUnit", "required": false, "description": 
"Sets the default time unit used for keep alive time", "sourceType": 
"org.apache.camel.main.ThreadPoolConfigurationProperties", "type": "enum", 
"javaType": "java.util.concurrent.TimeUnit", "secret": false, "enum": [ 
"NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", 
"DAYS" ] },
     { "name": "camel.trace.activityEnabled", "required": false, "description": 
"Whether activity tracking is enabled. When enabled, the backlog tracer will 
capture activity data that can be enriched with additional details from tracing 
(such as span decorator attributes).", "sourceType": 
"org.apache.camel.main.TracerConfigurationProperties", "type": "boolean", 
"javaType": "boolean", "defaultValue": false, "secret": false },
     { "name": "camel.trace.activitySize", "required": false, "description": 
"Defines how many completed exchange summaries to keep in the activity queue 
(should be between 1 - 1000). The activity queue captures lightweight metadata 
(no body or headers) each time an exchange completes a route, providing a 
rolling window of recent exchange activity.", "sourceType": 
"org.apache.camel.main.TracerConfigurationProperties", "type": "integer", 
"javaType": "int", "defaultValue": 100, "secret": false },
     { "name": "camel.trace.backlogSize", "required": false, "description": 
"Defines how many of the last messages to keep in the tracer (should be between 
1 - 1000).", "sourceType": 
"org.apache.camel.main.TracerConfigurationProperties", "type": "integer", 
"javaType": "int", "defaultValue": 100, "secret": false },
diff --git 
a/components/camel-file/src/generated/resources/META-INF/services/org/apache/camel/bean/FileLockClusterService.json
 
b/components/camel-file/src/generated/resources/META-INF/services/org/apache/camel/bean/FileLockClusterService.json
index 5ced524f7b1b..9bb6df4e369e 100644
--- 
a/components/camel-file/src/generated/resources/META-INF/services/org/apache/camel/bean/FileLockClusterService.json
+++ 
b/components/camel-file/src/generated/resources/META-INF/services/org/apache/camel/bean/FileLockClusterService.json
@@ -10,7 +10,7 @@
     "groupId": "org.apache.camel",
     "artifactId": "camel-file",
     "version": "4.22.0-SNAPSHOT",
-    "properties": { "root": { "index": 0, "kind": "property", "displayName": 
"Root", "required": true, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "The 
root file path" }, "acquireLockDelay": { "index": 1, "kind": "property", 
"displayName": "Acquire Lock Delay", "required": false, "type": "integer", 
"javaType": "long", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": 1, "description": " [...]
+    "properties": { "root": { "index": 0, "kind": "property", "displayName": 
"Root", "required": true, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "The 
root file path" }, "acquireLockDelay": { "index": 1, "kind": "property", 
"displayName": "Acquire Lock Delay", "required": false, "type": "integer", 
"javaType": "long", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": 1, "description": " [...]
   }
 }
 
diff --git 
a/components/camel-file/src/main/java/org/apache/camel/component/file/cluster/FileLockClusterService.java
 
b/components/camel-file/src/main/java/org/apache/camel/component/file/cluster/FileLockClusterService.java
index f36f96b806be..d7f3f5289859 100644
--- 
a/components/camel-file/src/main/java/org/apache/camel/component/file/cluster/FileLockClusterService.java
+++ 
b/components/camel-file/src/main/java/org/apache/camel/component/file/cluster/FileLockClusterService.java
@@ -45,13 +45,15 @@ public class FileLockClusterService extends 
AbstractCamelClusterService<FileLock
                             + " computed from the acquireLockInterval.",
               defaultValue = "1")
     private long acquireLockDelay;
-    @Metadata(description = "The time unit for the acquireLockDelay", 
defaultValue = "SECONDS")
+    @Metadata(description = "The time unit for the acquireLockDelay", 
defaultValue = "SECONDS",
+              enums = 
"NANOSECONDS,MICROSECONDS,MILLISECONDS,SECONDS,MINUTES,HOURS,DAYS")
     private TimeUnit acquireLockDelayUnit;
     @Metadata(description = "The time to wait between attempts to try to 
acquire the cluster lock evaluated using wall-clock time."
                             + " All cluster members must use the same value so 
leadership checks and leader liveness detection remain consistent.",
               defaultValue = "10")
     private long acquireLockInterval;
-    @Metadata(description = "The time unit for the acquireLockInterval", 
defaultValue = "SECONDS")
+    @Metadata(description = "The time unit for the acquireLockInterval", 
defaultValue = "SECONDS",
+              enums = 
"NANOSECONDS,MICROSECONDS,MILLISECONDS,SECONDS,MINUTES,HOURS,DAYS")
     private TimeUnit acquireLockIntervalUnit;
     @Metadata(description = "Multiplier applied to the cluster leader 
acquireLockInterval to determine how long followers should wait"
                             + " before considering the leader stale. For 
example, if the leader updates its heartbeat every 2 seconds"
@@ -69,7 +71,8 @@ public class FileLockClusterService extends 
AbstractCamelClusterService<FileLock
                             + " for long or unpredictable periods.",
               defaultValue = "10")
     private long clusterDataTaskTimeout;
-    @Metadata(description = "The time unit for the 
clusterDataTaskTimeoutUnit", defaultValue = "SECONDS")
+    @Metadata(description = "The time unit for the 
clusterDataTaskTimeoutUnit", defaultValue = "SECONDS",
+              enums = 
"NANOSECONDS,MICROSECONDS,MILLISECONDS,SECONDS,MINUTES,HOURS,DAYS")
     private TimeUnit clusterDataTaskTimeoutUnit;
 
     public FileLockClusterService() {
diff --git 
a/components/camel-infinispan/camel-infinispan-embedded/src/generated/resources/META-INF/services/org/apache/camel/bean/InfinispanEmbeddedClusterService.json
 
b/components/camel-infinispan/camel-infinispan-embedded/src/generated/resources/META-INF/services/org/apache/camel/bean/InfinispanEmbeddedClusterService.json
index 68486d2c055b..9d62f1185833 100644
--- 
a/components/camel-infinispan/camel-infinispan-embedded/src/generated/resources/META-INF/services/org/apache/camel/bean/InfinispanEmbeddedClusterService.json
+++ 
b/components/camel-infinispan/camel-infinispan-embedded/src/generated/resources/META-INF/services/org/apache/camel/bean/InfinispanEmbeddedClusterService.json
@@ -10,7 +10,7 @@
     "groupId": "org.apache.camel",
     "artifactId": "camel-infinispan-embedded",
     "version": "4.22.0-SNAPSHOT",
-    "properties": { "id": { "index": 0, "kind": "property", "displayName": 
"Id", "required": true, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Node 
id" }, "configurationUri": { "index": 1, "kind": "property", "displayName": 
"Configuration Uri", "label": "advanced", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "An  [...]
+    "properties": { "id": { "index": 0, "kind": "property", "displayName": 
"Id", "required": true, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Node 
id" }, "configurationUri": { "index": 1, "kind": "property", "displayName": 
"Configuration Uri", "label": "advanced", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "An  [...]
   }
 }
 
diff --git 
a/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/cluster/InfinispanEmbeddedClusterService.java
 
b/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/cluster/InfinispanEmbeddedClusterService.java
index a8dc5e275e20..7a8ad87b4d7a 100644
--- 
a/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/cluster/InfinispanEmbeddedClusterService.java
+++ 
b/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/cluster/InfinispanEmbeddedClusterService.java
@@ -46,7 +46,8 @@ public class InfinispanEmbeddedClusterService extends 
InfinispanClusterService {
     @Metadata(description = "The lifespan of the cache entry for the local 
cluster member registered to the inventory",
               defaultValue = "30")
     private long lifespan;
-    @Metadata(description = "The TimeUnit of the lifespan", defaultValue = 
"SECONDS")
+    @Metadata(description = "The TimeUnit of the lifespan", defaultValue = 
"SECONDS",
+              enums = 
"NANOSECONDS,MICROSECONDS,MILLISECONDS,SECONDS,MINUTES,HOURS,DAYS")
     private TimeUnit lifespanTimeUnit;
 
     public InfinispanEmbeddedClusterService() {
diff --git 
a/components/camel-infinispan/camel-infinispan/src/generated/resources/META-INF/services/org/apache/camel/bean/InfinispanRemoteClusterService.json
 
b/components/camel-infinispan/camel-infinispan/src/generated/resources/META-INF/services/org/apache/camel/bean/InfinispanRemoteClusterService.json
index d13626a62ce8..09a1fe80de0a 100644
--- 
a/components/camel-infinispan/camel-infinispan/src/generated/resources/META-INF/services/org/apache/camel/bean/InfinispanRemoteClusterService.json
+++ 
b/components/camel-infinispan/camel-infinispan/src/generated/resources/META-INF/services/org/apache/camel/bean/InfinispanRemoteClusterService.json
@@ -10,7 +10,7 @@
     "groupId": "org.apache.camel",
     "artifactId": "camel-infinispan",
     "version": "4.22.0-SNAPSHOT",
-    "properties": { "id": { "index": 0, "kind": "property", "displayName": 
"Id", "required": true, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Node 
id" }, "configurationUri": { "index": 1, "kind": "property", "displayName": 
"Configuration Uri", "label": "advanced", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "An  [...]
+    "properties": { "id": { "index": 0, "kind": "property", "displayName": 
"Id", "required": true, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Node 
id" }, "configurationUri": { "index": 1, "kind": "property", "displayName": 
"Configuration Uri", "label": "advanced", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "An  [...]
   }
 }
 
diff --git 
a/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/cluster/InfinispanRemoteClusterService.java
 
b/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/cluster/InfinispanRemoteClusterService.java
index f3015c27606c..34a74f2fff30 100644
--- 
a/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/cluster/InfinispanRemoteClusterService.java
+++ 
b/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/cluster/InfinispanRemoteClusterService.java
@@ -49,7 +49,8 @@ public class InfinispanRemoteClusterService extends 
InfinispanClusterService {
     @Metadata(description = "The lifespan of the cache entry for the local 
cluster member registered to the inventory",
               defaultValue = "30")
     private long lifespan;
-    @Metadata(description = "The TimeUnit of the lifespan", defaultValue = 
"SECONDS")
+    @Metadata(description = "The TimeUnit of the lifespan", defaultValue = 
"SECONDS",
+              enums = 
"NANOSECONDS,MICROSECONDS,MILLISECONDS,SECONDS,MINUTES,HOURS,DAYS")
     private TimeUnit lifespanTimeUnit;
     @Metadata(description = "Specifies the host of the cache on Infinispan 
instance. Multiple hosts can be separated by semicolon.")
     private String hosts;
diff --git 
a/components/camel-kubernetes/src/generated/resources/META-INF/services/org/apache/camel/bean/KubernetesClusterService.json
 
b/components/camel-kubernetes/src/generated/resources/META-INF/services/org/apache/camel/bean/KubernetesClusterService.json
index dbf54d2de06f..4da86f48678b 100644
--- 
a/components/camel-kubernetes/src/generated/resources/META-INF/services/org/apache/camel/bean/KubernetesClusterService.json
+++ 
b/components/camel-kubernetes/src/generated/resources/META-INF/services/org/apache/camel/bean/KubernetesClusterService.json
@@ -10,7 +10,7 @@
     "groupId": "org.apache.camel",
     "artifactId": "camel-kubernetes",
     "version": "4.22.0-SNAPSHOT",
-    "properties": { "masterUrl": { "index": 0, "kind": "property", 
"displayName": "Master Url", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "URL to a remote Kubernetes API server. This should only be used 
when your Camel application is connecting from outside Kubernetes. If you run 
your Camel application inside Kubernetes, then you can use local or client as 
the URL to tell Camel to run in l [...]
+    "properties": { "masterUrl": { "index": 0, "kind": "property", 
"displayName": "Master Url", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "URL to a remote Kubernetes API server. This should only be used 
when your Camel application is connecting from outside Kubernetes. If you run 
your Camel application inside Kubernetes, then you can use local or client as 
the URL to tell Camel to run in l [...]
   }
 }
 
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cluster/KubernetesClusterService.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cluster/KubernetesClusterService.java
index 7b43d8178f07..a7372d846f4e 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cluster/KubernetesClusterService.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cluster/KubernetesClusterService.java
@@ -55,7 +55,8 @@ public class KubernetesClusterService extends 
AbstractCamelClusterService<Kubern
     @Metadata(label = "advanced",
               description = "Connection timeout in milliseconds to use when 
making requests to the Kubernetes API server.")
     private Integer connectionTimeout;
-    @Metadata(description = "Kubernetes resource type used to hold the 
leases.", defaultValue = "Lease")
+    @Metadata(description = "Kubernetes resource type used to hold the 
leases.", defaultValue = "Lease",
+              enums = "ConfigMap,Lease")
     private LeaseResourceType leaseResourceType = LeaseResourceType.Lease;
     @Metadata(description = "Kubernetes namespace containing the pods and the 
ConfigMap used for locking.")
     private String kubernetesResourcesNamespace;
diff --git 
a/core/camel-main/src/generated/resources/META-INF/camel-main-configuration-metadata.json
 
b/core/camel-main/src/generated/resources/META-INF/camel-main-configuration-metadata.json
index d16fb079e975..4c5a8c43a5d7 100644
--- 
a/core/camel-main/src/generated/resources/META-INF/camel-main-configuration-metadata.json
+++ 
b/core/camel-main/src/generated/resources/META-INF/camel-main-configuration-metadata.json
@@ -185,12 +185,12 @@
     { "name": "camel.cluster.consul.userName", "required": false, 
"description": "Sets the username to be used for basic authentication", 
"sourceType": "org.apache.camel.component.consul.cluster.ConsulClusterService", 
"type": "string", "javaType": "java.lang.String", "secret": true, "security": 
"secret" },
     { "name": "camel.cluster.consul.writeTimeout", "required": false, 
"description": "Write timeout in mills", "sourceType": 
"org.apache.camel.component.consul.cluster.ConsulClusterService", "type": 
"integer", "javaType": "int", "secret": false },
     { "name": "camel.cluster.file.acquireLockDelay", "required": false, 
"description": "The time to wait before starting to try to acquire the cluster 
lock. Note that if FileLockClusterService determines no cluster members are 
running or cannot reliably determine the cluster state, the initial delay is 
computed from the acquireLockInterval.", "sourceType": 
"org.apache.camel.component.file.cluster.FileLockClusterService", "type": 
"integer", "javaType": "long", "defaultValue": 1, "secret": [...]
-    { "name": "camel.cluster.file.acquireLockDelayUnit", "required": false, 
"description": "The time unit for the acquireLockDelay", "sourceType": 
"org.apache.camel.component.file.cluster.FileLockClusterService", "type": 
"object", "javaType": "java.util.concurrent.TimeUnit", "defaultValue": 
"SECONDS", "secret": false },
+    { "name": "camel.cluster.file.acquireLockDelayUnit", "required": false, 
"description": "The time unit for the acquireLockDelay", "sourceType": 
"org.apache.camel.component.file.cluster.FileLockClusterService", "type": 
"enum", "javaType": "java.util.concurrent.TimeUnit", "defaultValue": "SECONDS", 
"secret": false, "enum": [ "NANOSECONDS", "MICROSECONDS", "MILLISECONDS", 
"SECONDS", "MINUTES", "HOURS", "DAYS" ] },
     { "name": "camel.cluster.file.acquireLockInterval", "required": false, 
"description": "The time to wait between attempts to try to acquire the cluster 
lock evaluated using wall-clock time. All cluster members must use the same 
value so leadership checks and leader liveness detection remain consistent.", 
"sourceType": "org.apache.camel.component.file.cluster.FileLockClusterService", 
"type": "integer", "javaType": "long", "defaultValue": 10, "secret": false },
-    { "name": "camel.cluster.file.acquireLockIntervalUnit", "required": false, 
"description": "The time unit for the acquireLockInterval", "sourceType": 
"org.apache.camel.component.file.cluster.FileLockClusterService", "type": 
"object", "javaType": "java.util.concurrent.TimeUnit", "defaultValue": 
"SECONDS", "secret": false },
+    { "name": "camel.cluster.file.acquireLockIntervalUnit", "required": false, 
"description": "The time unit for the acquireLockInterval", "sourceType": 
"org.apache.camel.component.file.cluster.FileLockClusterService", "type": 
"enum", "javaType": "java.util.concurrent.TimeUnit", "defaultValue": "SECONDS", 
"secret": false, "enum": [ "NANOSECONDS", "MICROSECONDS", "MILLISECONDS", 
"SECONDS", "MINUTES", "HOURS", "DAYS" ] },
     { "name": "camel.cluster.file.clusterDataTaskMaxAttempts", "required": 
false, "description": "Sets how many times a cluster data task will run, 
counting both the first execution and subsequent retries in case of failure or 
timeout. The default is 5 attempts. This can be useful when the cluster data 
root is on network based file storage, where I\/O operations may occasionally 
block for long or unpredictable periods.", "sourceType": 
"org.apache.camel.component.file.cluster.FileLockClus [...]
     { "name": "camel.cluster.file.clusterDataTaskTimeout", "required": false, 
"description": "Sets the timeout for a cluster data task (reading or writing 
cluster data). The default is 10 seconds. Timeouts are useful when the cluster 
data root is on network storage, where I\/O operations may occasionally block 
for long or unpredictable periods.", "sourceType": 
"org.apache.camel.component.file.cluster.FileLockClusterService", "type": 
"integer", "javaType": "long", "defaultValue": 10, "sec [...]
-    { "name": "camel.cluster.file.clusterDataTaskTimeoutUnit", "required": 
false, "description": "The time unit for the clusterDataTaskTimeoutUnit", 
"sourceType": "org.apache.camel.component.file.cluster.FileLockClusterService", 
"type": "object", "javaType": "java.util.concurrent.TimeUnit", "defaultValue": 
"SECONDS", "secret": false },
+    { "name": "camel.cluster.file.clusterDataTaskTimeoutUnit", "required": 
false, "description": "The time unit for the clusterDataTaskTimeoutUnit", 
"sourceType": "org.apache.camel.component.file.cluster.FileLockClusterService", 
"type": "enum", "javaType": "java.util.concurrent.TimeUnit", "defaultValue": 
"SECONDS", "secret": false, "enum": [ "NANOSECONDS", "MICROSECONDS", 
"MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ] },
     { "name": "camel.cluster.file.enabled", "required": false, "description": 
"Whether to enable this cluster service.", "sourceType": 
"org.apache.camel.component.file.cluster.FileLockClusterService", "type": 
"boolean", "javaType": "boolean", "defaultValue": true, "secret": false },
     { "name": "camel.cluster.file.heartbeatTimeoutMultiplier", "required": 
false, "description": "Multiplier applied to the cluster leader 
acquireLockInterval to determine how long followers should wait before 
considering the leader stale. For example, if the leader updates its heartbeat 
every 2 seconds and the heartbeatTimeoutMultiplier is 3, followers will 
tolerate up to 2s * 3 = 6s of silence before declaring the leader 
unavailable.", "sourceType": "org.apache.camel.component.file.clu [...]
     { "name": "camel.cluster.file.root", "required": true, "description": "The 
root file path", "sourceType": 
"org.apache.camel.component.file.cluster.FileLockClusterService", "type": 
"string", "javaType": "java.lang.String", "secret": false },
@@ -203,7 +203,7 @@
     { "name": "camel.cluster.infinispan.hosts", "required": false, 
"description": "Specifies the host of the cache on Infinispan instance. 
Multiple hosts can be separated by semicolon.", "sourceType": 
"org.apache.camel.component.infinispan.remote.cluster.InfinispanRemoteClusterService",
 "type": "string", "javaType": "java.lang.String", "secret": false },
     { "name": "camel.cluster.infinispan.id", "required": true, "description": 
"Node id", "sourceType": 
"org.apache.camel.component.infinispan.remote.cluster.InfinispanRemoteClusterService",
 "type": "string", "javaType": "java.lang.String", "secret": false },
     { "name": "camel.cluster.infinispan.lifespan", "required": false, 
"description": "The lifespan of the cache entry for the local cluster member 
registered to the inventory", "sourceType": 
"org.apache.camel.component.infinispan.remote.cluster.InfinispanRemoteClusterService",
 "type": "integer", "javaType": "long", "defaultValue": 30, "secret": false },
-    { "name": "camel.cluster.infinispan.lifespanTimeUnit", "required": false, 
"description": "The TimeUnit of the lifespan", "sourceType": 
"org.apache.camel.component.infinispan.remote.cluster.InfinispanRemoteClusterService",
 "type": "object", "javaType": "java.util.concurrent.TimeUnit", "defaultValue": 
"SECONDS", "secret": false },
+    { "name": "camel.cluster.infinispan.lifespanTimeUnit", "required": false, 
"description": "The TimeUnit of the lifespan", "sourceType": 
"org.apache.camel.component.infinispan.remote.cluster.InfinispanRemoteClusterService",
 "type": "enum", "javaType": "java.util.concurrent.TimeUnit", "defaultValue": 
"SECONDS", "secret": false, "enum": [ "NANOSECONDS", "MICROSECONDS", 
"MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ] },
     { "name": "camel.cluster.infinispan.password", "required": false, 
"description": "Define the password to access the infinispan instance", 
"sourceType": 
"org.apache.camel.component.infinispan.remote.cluster.InfinispanRemoteClusterService",
 "type": "string", "javaType": "java.lang.String", "secret": true, "security": 
"secret" },
     { "name": "camel.cluster.infinispan.saslMechanism", "required": false, 
"description": "Define the SASL Mechanism to access the infinispan instance", 
"sourceType": 
"org.apache.camel.component.infinispan.remote.cluster.InfinispanRemoteClusterService",
 "type": "string", "javaType": "java.lang.String", "secret": false },
     { "name": "camel.cluster.infinispan.secure", "required": false, 
"description": "Define if we are connecting to a secured Infinispan instance", 
"sourceType": 
"org.apache.camel.component.infinispan.remote.cluster.InfinispanRemoteClusterService",
 "type": "boolean", "javaType": "boolean", "defaultValue": false, "secret": 
false },
@@ -224,7 +224,7 @@
     { "name": "camel.cluster.kubernetes.kubernetesResourceName", "required": 
false, "description": "Name of the resource used for locking (or prefix, in 
case multiple ones are used).", "sourceType": 
"org.apache.camel.component.kubernetes.cluster.KubernetesClusterService", 
"type": "string", "javaType": "java.lang.String", "defaultValue": "leaders", 
"secret": false, "deprecated": true },
     { "name": "camel.cluster.kubernetes.kubernetesResourcesNamespace", 
"required": false, "description": "Kubernetes namespace containing the pods and 
the ConfigMap used for locking.", "sourceType": 
"org.apache.camel.component.kubernetes.cluster.KubernetesClusterService", 
"type": "string", "javaType": "java.lang.String", "secret": false, 
"deprecated": true },
     { "name": "camel.cluster.kubernetes.leaseDurationMillis", "required": 
false, "description": "The default duration of the lease for the current 
leader.", "sourceType": 
"org.apache.camel.component.kubernetes.cluster.KubernetesClusterService", 
"type": "integer", "javaType": "long", "defaultValue": 15000, "secret": false, 
"deprecated": true },
-    { "name": "camel.cluster.kubernetes.leaseResourceType", "required": false, 
"description": "Kubernetes resource type used to hold the leases.", 
"sourceType": 
"org.apache.camel.component.kubernetes.cluster.KubernetesClusterService", 
"type": "object", "javaType": 
"org.apache.camel.component.kubernetes.cluster.LeaseResourceType", 
"defaultValue": "Lease", "secret": false, "deprecated": true },
+    { "name": "camel.cluster.kubernetes.leaseResourceType", "required": false, 
"description": "Kubernetes resource type used to hold the leases.", 
"sourceType": 
"org.apache.camel.component.kubernetes.cluster.KubernetesClusterService", 
"type": "enum", "javaType": 
"org.apache.camel.component.kubernetes.cluster.LeaseResourceType", 
"defaultValue": "Lease", "secret": false, "enum": [ "ConfigMap", "Lease" ], 
"deprecated": true },
     { "name": "camel.cluster.kubernetes.masterUrl", "required": false, 
"description": "URL to a remote Kubernetes API server. This should only be used 
when your Camel application is connecting from outside Kubernetes. If you run 
your Camel application inside Kubernetes, then you can use local or client as 
the URL to tell Camel to run in local mode. If you connect remotely to 
Kubernetes, then you may also need some of the many other configuration options 
for secured connection with certif [...]
     { "name": "camel.cluster.kubernetes.namespace", "required": false, 
"description": "Kubernetes namespace", "sourceType": 
"org.apache.camel.component.kubernetes.cluster.KubernetesClusterService", 
"type": "string", "javaType": "java.lang.String", "secret": false, 
"deprecated": true },
     { "name": "camel.cluster.kubernetes.podName", "required": false, 
"description": "Name of the current pod (defaults to host name).", 
"sourceType": 
"org.apache.camel.component.kubernetes.cluster.KubernetesClusterService", 
"type": "string", "javaType": "java.lang.String", "secret": false, 
"deprecated": true },
@@ -490,7 +490,7 @@
     { "name": "camel.threadpool.maxQueueSize", "required": false, 
"description": "Sets the default maximum number of tasks in the work queue. Use 
-1 or an unbounded queue", "sourceType": 
"org.apache.camel.main.ThreadPoolConfigurationProperties", "type": "integer", 
"javaType": "java.lang.Integer", "secret": false },
     { "name": "camel.threadpool.poolSize", "required": false, "description": 
"Sets the default core pool size (threads to keep minimum in pool)", 
"sourceType": "org.apache.camel.main.ThreadPoolConfigurationProperties", 
"type": "integer", "javaType": "java.lang.Integer", "secret": false },
     { "name": "camel.threadpool.rejectedPolicy", "required": false, 
"description": "Sets the default handler for tasks which cannot be executed by 
the thread pool.", "sourceType": 
"org.apache.camel.main.ThreadPoolConfigurationProperties", "type": "enum", 
"javaType": "org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy", 
"secret": false, "enum": [ "Abort", "CallerRuns", "DiscardOldest", "Discard" ] 
},
-    { "name": "camel.threadpool.timeUnit", "required": false, "description": 
"Sets the default time unit used for keep alive time", "sourceType": 
"org.apache.camel.main.ThreadPoolConfigurationProperties", "type": "object", 
"javaType": "java.util.concurrent.TimeUnit", "secret": false },
+    { "name": "camel.threadpool.timeUnit", "required": false, "description": 
"Sets the default time unit used for keep alive time", "sourceType": 
"org.apache.camel.main.ThreadPoolConfigurationProperties", "type": "enum", 
"javaType": "java.util.concurrent.TimeUnit", "secret": false, "enum": [ 
"NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", 
"DAYS" ] },
     { "name": "camel.trace.activityEnabled", "required": false, "description": 
"Whether activity tracking is enabled. When enabled, the backlog tracer will 
capture activity data that can be enriched with additional details from tracing 
(such as span decorator attributes).", "sourceType": 
"org.apache.camel.main.TracerConfigurationProperties", "type": "boolean", 
"javaType": "boolean", "defaultValue": false, "secret": false },
     { "name": "camel.trace.activitySize", "required": false, "description": 
"Defines how many completed exchange summaries to keep in the activity queue 
(should be between 1 - 1000). The activity queue captures lightweight metadata 
(no body or headers) each time an exchange completes a route, providing a 
rolling window of recent exchange activity.", "sourceType": 
"org.apache.camel.main.TracerConfigurationProperties", "type": "integer", 
"javaType": "int", "defaultValue": 100, "secret": false },
     { "name": "camel.trace.backlogSize", "required": false, "description": 
"Defines how many of the last messages to keep in the tracer (should be between 
1 - 1000).", "sourceType": 
"org.apache.camel.main.TracerConfigurationProperties", "type": "integer", 
"javaType": "int", "defaultValue": 100, "secret": false },
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCamelMainMojo.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCamelMainMojo.java
index df0651404763..17f4e00f5131 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCamelMainMojo.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCamelMainMojo.java
@@ -136,6 +136,8 @@ public class PrepareCamelMainMojo extends 
AbstractGeneratorMojo {
                     enums = 
Arrays.asList("allLocalIp,localIp,localHostName".split(","));
                 } else if 
("org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy".equals(javaType)) {
                     enums = 
Arrays.asList("Abort,CallerRuns,DiscardOldest,Discard".split(","));
+                } else if ("java.util.concurrent.TimeUnit".equals(javaType)) {
+                    enums = 
Arrays.asList("NANOSECONDS,MICROSECONDS,MILLISECONDS,SECONDS,MINUTES,HOURS,DAYS".split(","));
                 }
                 if (enums == null && as != null) {
                     String text = as.getStringValue("enums");

Reply via email to