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 48bb2208055 CAMEL-18085 Introduction of ManagementMBeansLevel (#7584). 
And in legacy XML spring/blueprint then expose options as boolean in metadata.
48bb2208055 is described below

commit 48bb2208055993bb7aedbfab90adee6ebe417719
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Wed May 11 16:40:02 2022 +0200

    CAMEL-18085 Introduction of ManagementMBeansLevel (#7584). And in legacy 
XML spring/blueprint then expose options as boolean in metadata.
---
 .../main/camel-main-configuration-metadata.json    |  3 +-
 .../catalog/models/redeliveryPolicyProfile.json    | 32 +++++++-------
 .../apache/camel/catalog/models/threadPool.json    |  2 +-
 .../apache/camel/catalog/schemas/camel-spring.xsd  | 50 +++++++++++++++-------
 .../camel/spring/xml/redeliveryPolicyProfile.json  | 32 +++++++-------
 .../org/apache/camel/spring/xml/threadPool.json    |  2 +-
 .../org/apache/camel/core/xml/jmxAgent.json        | 23 +++++-----
 .../org/apache/camel/core/xml/routeController.json |  4 +-
 .../org/apache/camel/core/xml/streamCaching.json   |  6 +--
 .../core/xml/AbstractCamelContextFactoryBean.java  |  7 +++
 .../AbstractCamelRedeliveryPolicyFactoryBean.java  | 35 ++++++++-------
 .../xml/AbstractCamelThreadPoolFactoryBean.java    | 12 +++---
 .../camel/core/xml/CamelJMXAgentDefinition.java    | 38 +++++++++++-----
 .../core/xml/CamelRouteControllerDefinition.java   |  4 +-
 .../xml/CamelStreamCachingStrategyDefinition.java  |  6 ++-
 15 files changed, 151 insertions(+), 105 deletions(-)

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 d6df43111f8..26c9225dcaf 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
@@ -109,10 +109,11 @@
     { "name": "camel.main.startupSummaryLevel", "description": "Controls the 
level of information logged during startup (and shutdown) of CamelContext.", 
"sourceType": "org.apache.camel.main.DefaultConfigurationProperties", "type": 
"object", "javaType": "org.apache.camel.StartupSummaryLevel", "defaultValue": 
"Default" },
     { "name": "camel.main.streamCachingAnySpoolRules", "description": "Sets 
whether if just any of the org.apache.camel.spi.StreamCachingStrategy.SpoolRule 
rules returns true then shouldSpoolCache(long) returns true, to allow spooling 
to disk. If this option is false, then all the 
org.apache.camel.spi.StreamCachingStrategy.SpoolRule must return true. The 
default value is false which means that all the rules must return true.", 
"sourceType": "org.apache.camel.main.DefaultConfigurationProp [...]
     { "name": "camel.main.streamCachingBufferSize", "description": "Sets the 
stream caching buffer size to use when allocating in-memory buffers used for 
in-memory stream caches. The default size is 4096.", "sourceType": 
"org.apache.camel.main.DefaultConfigurationProperties", "type": "integer", 
"javaType": "int" },
-    { "name": "camel.main.streamCachingEnabled", "description": "Sets whether 
stream caching is enabled or not. While stream types (like StreamSource, 
InputStream and Reader) are commonly used in messaging for performance reasons, 
they also have an important drawback: they can only be read once. In order to 
be able to work with message content multiple times, the stream needs to be 
cached. Streams are cached in memory. However, for large stream messages (over 
128 KB by default) will be c [...]
+    { "name": "camel.main.streamCachingEnabled", "description": "Sets whether 
stream caching is enabled or not. While stream types (like StreamSource, 
InputStream and Reader) are commonly used in messaging for performance reasons, 
they also have an important drawback: they can only be read once. In order to 
be able to work with message content multiple times, the stream needs to be 
cached. Streams are cached in memory only (by default). If 
streamCachingSpoolEnabled=true, then, for large  [...]
     { "name": "camel.main.streamCachingRemoveSpoolDirectoryWhenStopping", 
"description": "Whether to remove stream caching temporary directory when 
stopping. This option is default true.", "sourceType": 
"org.apache.camel.main.DefaultConfigurationProperties", "type": "boolean", 
"javaType": "boolean", "defaultValue": true },
     { "name": "camel.main.streamCachingSpoolCipher", "description": "Sets a 
stream caching cipher name to use when spooling to disk to write with 
encryption. By default the data is not encrypted.", "sourceType": 
"org.apache.camel.main.DefaultConfigurationProperties", "type": "string", 
"javaType": "java.lang.String" },
     { "name": "camel.main.streamCachingSpoolDirectory", "description": "Sets 
the stream caching spool (temporary) directory to use for overflow and spooling 
to disk. If no spool directory has been explicit configured, then a temporary 
directory is created in the java.io.tmpdir directory.", "sourceType": 
"org.apache.camel.main.DefaultConfigurationProperties", "type": "string", 
"javaType": "java.lang.String" },
+    { "name": "camel.main.streamCachingSpoolEnabled", "description": "To 
enable stream caching spooling to disk. This means, for large stream messages 
(over 128 KB by default) will be cached in a temporary file instead, and Camel 
will handle deleting the temporary file once the cached stream is no longer 
necessary. Default is false.", "sourceType": 
"org.apache.camel.main.DefaultConfigurationProperties", "type": "boolean", 
"javaType": "boolean", "defaultValue": "false" },
     { "name": "camel.main.streamCachingSpoolThreshold", "description": "Stream 
caching threshold in bytes when overflow to disk is activated. The default 
threshold is 128kb. Use -1 to disable overflow to disk.", "sourceType": 
"org.apache.camel.main.DefaultConfigurationProperties", "type": "integer", 
"javaType": "long" },
     { "name": "camel.main.streamCachingSpoolUsedHeapMemoryLimit", 
"description": "Sets what the upper bounds should be when 
streamCachingSpoolUsedHeapMemoryThreshold is in use.", "sourceType": 
"org.apache.camel.main.DefaultConfigurationProperties", "type": "string", 
"javaType": "java.lang.String" },
     { "name": "camel.main.streamCachingSpoolUsedHeapMemoryThreshold", 
"description": "Sets a percentage (1-99) of used heap memory threshold to 
activate stream caching spooling to disk.", "sourceType": 
"org.apache.camel.main.DefaultConfigurationProperties", "type": "integer", 
"javaType": "int" },
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/redeliveryPolicyProfile.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/redeliveryPolicyProfile.json
index 6e4afad07bc..acec8470ff2 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/redeliveryPolicyProfile.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/redeliveryPolicyProfile.json
@@ -14,27 +14,27 @@
   "properties": {
     "maximumRedeliveries": { "kind": "attribute", "displayName": "Maximum 
Redeliveries", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "Sets the maximum number of times a message exchange will be 
redelivered. Setting a negative value will retry forever." },
     "redeliveryDelay": { "kind": "attribute", "displayName": "Redelivery 
Delay", "required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"1000", "description": "Sets the maximum redelivery delay. Use -1 if you wish 
to have no maximum" },
-    "asyncDelayedRedelivery": { "kind": "attribute", "displayName": "Async 
Delayed Redelivery", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "false", "description": "Sets whether asynchronous delayed 
redelivery is allowed. This is disabled by default. When enabled it allows 
Camel to schedule a future task for delayed redelivery which prevents current 
thread from blocking while waiting. Excha [...]
+    "asyncDelayedRedelivery": { "kind": "attribute", "displayName": "Async 
Delayed Redelivery", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Sets whether asynchronous delayed 
redelivery is allowed. This is disabled by default. When enabled it allows 
Camel to schedule a future task for delayed redelivery which prevents current 
thread from blocking while waiting. Excha [...]
     "backOffMultiplier": { "kind": "attribute", "displayName": "Back Off 
Multiplier", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "2", "description": "Sets the multiplier used to increase the 
delay between redeliveries if useExponentialBackOff is enabled" },
-    "useExponentialBackOff": { "kind": "attribute", "displayName": "Use 
Exponential Back Off", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "false", "description": "Enables\/disables exponential backoff 
using the backOffMultiplier to increase the time between retries" },
+    "useExponentialBackOff": { "kind": "attribute", "displayName": "Use 
Exponential Back Off", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Enables\/disables exponential backoff 
using the backOffMultiplier to increase the time between retries" },
     "collisionAvoidanceFactor": { "kind": "attribute", "displayName": 
"Collision Avoidance Factor", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "0.15", "description": "Sets the factor used for collision 
avoidance if enabled via useCollisionAvoidance." },
-    "useCollisionAvoidance": { "kind": "attribute", "displayName": "Use 
Collision Avoidance", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "false", "description": "Enables\/disables collision avoidance 
which adds some randomization to the backoff timings to reduce contention 
probability" },
+    "useCollisionAvoidance": { "kind": "attribute", "displayName": "Use 
Collision Avoidance", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Enables\/disables collision avoidance 
which adds some randomization to the backoff timings to reduce contention 
probability" },
     "maximumRedeliveryDelay": { "kind": "attribute", "displayName": "Maximum 
Redelivery Delay", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "60000", "description": "Sets the maximum redelivery delay. Use 
-1 if you wish to have no maximum" },
-    "retriesExhaustedLogLevel": { "kind": "attribute", "displayName": "Retries 
Exhausted Log Level", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "ERROR", "description": "Sets the logging level to use for log 
messages when retries have been exhausted." },
-    "retryAttemptedLogLevel": { "kind": "attribute", "displayName": "Retry 
Attempted Log Level", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "DEBUG", "description": "Sets the logging level to use for log 
messages when retries are attempted." },
+    "retriesExhaustedLogLevel": { "kind": "attribute", "displayName": "Retries 
Exhausted Log Level", "required": false, "type": "enum", "javaType": 
"java.lang.String", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" 
], "deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"ERROR", "description": "Sets the logging level to use for log messages when 
retries have been exhausted." },
+    "retryAttemptedLogLevel": { "kind": "attribute", "displayName": "Retry 
Attempted Log Level", "required": false, "type": "enum", "javaType": 
"java.lang.String", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" 
], "deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"DEBUG", "description": "Sets the logging level to use for log messages when 
retries are attempted." },
     "retryAttemptedLogInterval": { "kind": "attribute", "displayName": "Retry 
Attempted Log Interval", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "0", "description": "Sets the interval for log messages when 
retries are attempted." },
-    "logRetryAttempted": { "kind": "attribute", "displayName": "Log Retry 
Attempted", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "true", "description": "Sets whether to log retry attempts" },
-    "logStackTrace": { "kind": "attribute", "displayName": "Log Stack Trace", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"true", "description": "Sets whether stack traces should be logged or not" },
-    "logRetryStackTrace": { "kind": "attribute", "displayName": "Log Retry 
Stack Trace", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "false", "description": "Sets whether stack traces should be 
logged or not" },
-    "logHandled": { "kind": "attribute", "displayName": "Log Handled", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"false", "description": "Sets whether errors should be logged even if its 
handled" },
-    "logNewException": { "kind": "attribute", "displayName": "Log New 
Exception", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "true", "description": "Sets whether errors should be logged 
when a new exception occurred during handling a previous exception" },
-    "logContinued": { "kind": "attribute", "displayName": "Log Continued", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"false", "description": "Sets whether errors should be logged even if its 
continued" },
-    "logExhausted": { "kind": "attribute", "displayName": "Log Exhausted", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"true", "description": "Sets whether exhausted exceptions should be logged or 
not" },
-    "logExhaustedMessageHistory": { "kind": "attribute", "displayName": "Log 
Exhausted Message History", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "false", "description": "Sets whether to log exhausted errors 
including message history" },
-    "logExhaustedMessageBody": { "kind": "attribute", "displayName": "Log 
Exhausted Message Body", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "false", "description": "Sets whether exhausted message 
body\/headers should be logged with message history included" },
-    "disableRedelivery": { "kind": "attribute", "displayName": "Disable 
Redelivery", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "false", "description": "Disables redelivery by setting maximum 
redeliveries to 0." },
+    "logRetryAttempted": { "kind": "attribute", "displayName": "Log Retry 
Attempted", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": true, "description": "Sets whether to log retry attempts" },
+    "logStackTrace": { "kind": "attribute", "displayName": "Log Stack Trace", 
"required": false, "type": "boolean", "javaType": "java.lang.Boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Sets whether stack traces should be logged or not" },
+    "logRetryStackTrace": { "kind": "attribute", "displayName": "Log Retry 
Stack Trace", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Sets whether stack traces should be 
logged or not" },
+    "logHandled": { "kind": "attribute", "displayName": "Log Handled", 
"required": false, "type": "boolean", "javaType": "java.lang.Boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "description": "Sets whether errors should be logged even if its 
handled" },
+    "logNewException": { "kind": "attribute", "displayName": "Log New 
Exception", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": true, "description": "Sets whether errors should be logged when 
a new exception occurred during handling a previous exception" },
+    "logContinued": { "kind": "attribute", "displayName": "Log Continued", 
"required": false, "type": "boolean", "javaType": "java.lang.Boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "description": "Sets whether errors should be logged even if its 
continued" },
+    "logExhausted": { "kind": "attribute", "displayName": "Log Exhausted", 
"required": false, "type": "boolean", "javaType": "java.lang.Boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Sets whether exhausted exceptions should be logged or not" },
+    "logExhaustedMessageHistory": { "kind": "attribute", "displayName": "Log 
Exhausted Message History", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Sets whether to log exhausted errors 
including message history" },
+    "logExhaustedMessageBody": { "kind": "attribute", "displayName": "Log 
Exhausted Message Body", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Sets whether exhausted message 
body\/headers should be logged with message history included" },
+    "disableRedelivery": { "kind": "attribute", "displayName": "Disable 
Redelivery", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Disables redelivery by setting maximum 
redeliveries to 0." },
     "delayPattern": { "kind": "attribute", "displayName": "Delay Pattern", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
an optional delay pattern to use instead of fixed delay." },
-    "allowRedeliveryWhileStopping": { "kind": "attribute", "displayName": 
"Allow Redelivery While Stopping", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "true", "description": "Controls whether to 
allow redelivery while stopping\/shutting down a route that uses error 
handling." },
+    "allowRedeliveryWhileStopping": { "kind": "attribute", "displayName": 
"Allow Redelivery While Stopping", "required": false, "type": "boolean", 
"javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "Controls whether to 
allow redelivery while stopping\/shutting down a route that uses error 
handling." },
     "exchangeFormatterRef": { "kind": "attribute", "displayName": "Exchange 
Formatter Ref", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "Sets the reference of the instance of 
org.apache.camel.spi.ExchangeFormatter to generate the log message from 
exchange." },
     "camelContextId": { "kind": "attribute", "displayName": "Camel Context 
Id", "required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Id of 
CamelContext to use if there are multiple CamelContexts in the same JVM" },
     "id": { "kind": "attribute", "displayName": "Id", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "The id of this node" }
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/threadPool.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/threadPool.json
index 005578ce82e..f6d7ccab055 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/threadPool.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/threadPool.json
@@ -17,7 +17,7 @@
     "keepAliveTime": { "kind": "attribute", "displayName": "Keep Alive Time", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the keep alive time for inactive threads" },
     "timeUnit": { "kind": "attribute", "displayName": "Time Unit", "required": 
false, "type": "enum", "javaType": "java.util.concurrent.TimeUnit", "enum": [ 
"NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", 
"DAYS" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "SECONDS", "description": "Sets the time unit used for keep 
alive time" },
     "maxQueueSize": { "kind": "attribute", "displayName": "Max Queue Size", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the maximum number of tasks in the work queue. Use -1 for an unbounded queue" },
-    "allowCoreThreadTimeOut": { "kind": "attribute", "displayName": "Allow 
Core Thread Time Out", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "Sets whether to allow core threads to timeout" },
+    "allowCoreThreadTimeOut": { "kind": "attribute", "displayName": "Allow 
Core Thread Time Out", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Sets whether to allow core threads to 
timeout" },
     "rejectedPolicy": { "kind": "attribute", "displayName": "Rejected Policy", 
"required": false, "type": "enum", "javaType": 
"org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy", "enum": [ "Abort", 
"CallerRuns", "DiscardOldest", "Discard" ], "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "CallerRuns", "description": "Sets the 
handler for tasks which cannot be executed by the thread pool." },
     "threadName": { "kind": "attribute", "displayName": "Thread Name", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a custom thread name \/ pattern" },
     "scheduled": { "kind": "attribute", "displayName": "Scheduled", 
"required": false, "type": "boolean", "javaType": "java.lang.Boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "description": "Whether to use a scheduled thread pool" },
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
index d52da407f49..e004fac7269 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
@@ -2333,7 +2333,7 @@ queue.
         <xs:attribute name="allowCoreThreadTimeOut" type="xs:string">
           <xs:annotation>
             <xs:documentation xml:lang="en"><![CDATA[
-Sets whether to allow core threads to timeout.
+Sets whether to allow core threads to timeout. Default value: false
             ]]></xs:documentation>
           </xs:annotation>
         </xs:attribute>
@@ -2352,7 +2352,7 @@ To use a custom thread name / pattern.
             ]]></xs:documentation>
           </xs:annotation>
         </xs:attribute>
-        <xs:attribute name="scheduled" type="xs:boolean">
+        <xs:attribute name="scheduled" type="xs:string">
           <xs:annotation>
             <xs:documentation xml:lang="en"><![CDATA[
 Whether to use a scheduled thread pool. Default value: false
@@ -2427,6 +2427,14 @@ Level of granularity for performance statistics enabled. 
Default value: Default
             ]]></xs:documentation>
           </xs:annotation>
         </xs:attribute>
+        <xs:attribute name="mbeansLevel" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the mbeans registration level. The default value is Default. Default 
value:
+Default
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
         <xs:attribute name="loadStatisticsEnabled" type="xs:string">
           <xs:annotation>
             <xs:documentation xml:lang="en"><![CDATA[
@@ -2691,12 +2699,31 @@ stopping routes). The default logging level is DEBUG. 
Default value: DEBUG
   <xs:complexType name="camelStreamCachingStrategyDefinition">
     <xs:complexContent>
       <xs:extension base="tns:identifiedType">
-        <xs:sequence/>
+        <xs:sequence>
+          <xs:element minOccurs="0" name="spoolThreshold" type="xs:string"/>
+        </xs:sequence>
         <xs:attribute name="enabled" type="xs:string">
           <xs:annotation>
             <xs:documentation xml:lang="en"><![CDATA[
-Sets whether the stream caching is enabled. Notice: This cannot be changed at
-runtime. Default value: false
+Sets whether stream caching is enabled or not. While stream types (like
+StreamSource, InputStream and Reader) are commonly used in messaging for
+performance reasons, they also have an important drawback: they can only be 
read
+once. In order to be able to work with message content multiple times, the
+stream needs to be cached. Streams are cached in memory only (by default). If
+streamCachingSpoolEnabled=true, then, for large stream messages (over 128 KB by
+default) will be cached in a temporary file instead, and Camel will handle
+deleting the temporary file once the cached stream is no longer necessary.
+Default is true. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="spoolEnabled" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To enable stream caching spooling to disk. This means, for large stream 
messages
+(over 128 KB by default) will be cached in a temporary file instead, and Camel
+will handle deleting the temporary file once the cached stream is no longer
+necessary. Default is false. Default value: false
             ]]></xs:documentation>
           </xs:annotation>
         </xs:attribute>
@@ -2717,15 +2744,6 @@ default the data is not encrypted.
             ]]></xs:documentation>
           </xs:annotation>
         </xs:attribute>
-        <xs:attribute name="spoolThreshold" type="xs:string">
-          <xs:annotation>
-            <xs:documentation xml:lang="en"><![CDATA[
-Threshold in bytes when overflow to disk is activated. The default threshold is
-org.apache.camel.StreamCache#DEFAULT_SPOOL_THRESHOLD bytes (eg 128kb). Use -1 
to
-disable overflow to disk.
-            ]]></xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
         <xs:attribute name="spoolUsedHeapMemoryThreshold" type="xs:string">
           <xs:annotation>
             <xs:documentation xml:lang="en"><![CDATA[
@@ -2756,7 +2774,7 @@ be separated by comma.
             <xs:documentation xml:lang="en"><![CDATA[
 Sets the buffer size to use when allocating in-memory buffers used for 
in-memory
 stream caches. The default size is
-org.apache.camel.util.IOHelper#DEFAULT_BUFFER_SIZE.
+org.apache.camel.util.IOHelper#DEFAULT_BUFFER_SIZE. Default value: 4096
             ]]></xs:documentation>
           </xs:annotation>
         </xs:attribute>
@@ -2771,7 +2789,7 @@ true. Default value: true
         <xs:attribute name="statisticsEnabled" type="xs:string">
           <xs:annotation>
             <xs:documentation xml:lang="en"><![CDATA[
-Sets whether statistics is enabled.
+Sets whether statistics is enabled. Default value: false
             ]]></xs:documentation>
           </xs:annotation>
         </xs:attribute>
diff --git 
a/components/camel-spring-xml/src/generated/resources/org/apache/camel/spring/xml/redeliveryPolicyProfile.json
 
b/components/camel-spring-xml/src/generated/resources/org/apache/camel/spring/xml/redeliveryPolicyProfile.json
index 6e4afad07bc..acec8470ff2 100644
--- 
a/components/camel-spring-xml/src/generated/resources/org/apache/camel/spring/xml/redeliveryPolicyProfile.json
+++ 
b/components/camel-spring-xml/src/generated/resources/org/apache/camel/spring/xml/redeliveryPolicyProfile.json
@@ -14,27 +14,27 @@
   "properties": {
     "maximumRedeliveries": { "kind": "attribute", "displayName": "Maximum 
Redeliveries", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "Sets the maximum number of times a message exchange will be 
redelivered. Setting a negative value will retry forever." },
     "redeliveryDelay": { "kind": "attribute", "displayName": "Redelivery 
Delay", "required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"1000", "description": "Sets the maximum redelivery delay. Use -1 if you wish 
to have no maximum" },
-    "asyncDelayedRedelivery": { "kind": "attribute", "displayName": "Async 
Delayed Redelivery", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "false", "description": "Sets whether asynchronous delayed 
redelivery is allowed. This is disabled by default. When enabled it allows 
Camel to schedule a future task for delayed redelivery which prevents current 
thread from blocking while waiting. Excha [...]
+    "asyncDelayedRedelivery": { "kind": "attribute", "displayName": "Async 
Delayed Redelivery", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Sets whether asynchronous delayed 
redelivery is allowed. This is disabled by default. When enabled it allows 
Camel to schedule a future task for delayed redelivery which prevents current 
thread from blocking while waiting. Excha [...]
     "backOffMultiplier": { "kind": "attribute", "displayName": "Back Off 
Multiplier", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "2", "description": "Sets the multiplier used to increase the 
delay between redeliveries if useExponentialBackOff is enabled" },
-    "useExponentialBackOff": { "kind": "attribute", "displayName": "Use 
Exponential Back Off", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "false", "description": "Enables\/disables exponential backoff 
using the backOffMultiplier to increase the time between retries" },
+    "useExponentialBackOff": { "kind": "attribute", "displayName": "Use 
Exponential Back Off", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Enables\/disables exponential backoff 
using the backOffMultiplier to increase the time between retries" },
     "collisionAvoidanceFactor": { "kind": "attribute", "displayName": 
"Collision Avoidance Factor", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "0.15", "description": "Sets the factor used for collision 
avoidance if enabled via useCollisionAvoidance." },
-    "useCollisionAvoidance": { "kind": "attribute", "displayName": "Use 
Collision Avoidance", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "false", "description": "Enables\/disables collision avoidance 
which adds some randomization to the backoff timings to reduce contention 
probability" },
+    "useCollisionAvoidance": { "kind": "attribute", "displayName": "Use 
Collision Avoidance", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Enables\/disables collision avoidance 
which adds some randomization to the backoff timings to reduce contention 
probability" },
     "maximumRedeliveryDelay": { "kind": "attribute", "displayName": "Maximum 
Redelivery Delay", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "60000", "description": "Sets the maximum redelivery delay. Use 
-1 if you wish to have no maximum" },
-    "retriesExhaustedLogLevel": { "kind": "attribute", "displayName": "Retries 
Exhausted Log Level", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "ERROR", "description": "Sets the logging level to use for log 
messages when retries have been exhausted." },
-    "retryAttemptedLogLevel": { "kind": "attribute", "displayName": "Retry 
Attempted Log Level", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "DEBUG", "description": "Sets the logging level to use for log 
messages when retries are attempted." },
+    "retriesExhaustedLogLevel": { "kind": "attribute", "displayName": "Retries 
Exhausted Log Level", "required": false, "type": "enum", "javaType": 
"java.lang.String", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" 
], "deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"ERROR", "description": "Sets the logging level to use for log messages when 
retries have been exhausted." },
+    "retryAttemptedLogLevel": { "kind": "attribute", "displayName": "Retry 
Attempted Log Level", "required": false, "type": "enum", "javaType": 
"java.lang.String", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" 
], "deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"DEBUG", "description": "Sets the logging level to use for log messages when 
retries are attempted." },
     "retryAttemptedLogInterval": { "kind": "attribute", "displayName": "Retry 
Attempted Log Interval", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "0", "description": "Sets the interval for log messages when 
retries are attempted." },
-    "logRetryAttempted": { "kind": "attribute", "displayName": "Log Retry 
Attempted", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "true", "description": "Sets whether to log retry attempts" },
-    "logStackTrace": { "kind": "attribute", "displayName": "Log Stack Trace", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"true", "description": "Sets whether stack traces should be logged or not" },
-    "logRetryStackTrace": { "kind": "attribute", "displayName": "Log Retry 
Stack Trace", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "false", "description": "Sets whether stack traces should be 
logged or not" },
-    "logHandled": { "kind": "attribute", "displayName": "Log Handled", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"false", "description": "Sets whether errors should be logged even if its 
handled" },
-    "logNewException": { "kind": "attribute", "displayName": "Log New 
Exception", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "true", "description": "Sets whether errors should be logged 
when a new exception occurred during handling a previous exception" },
-    "logContinued": { "kind": "attribute", "displayName": "Log Continued", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"false", "description": "Sets whether errors should be logged even if its 
continued" },
-    "logExhausted": { "kind": "attribute", "displayName": "Log Exhausted", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"true", "description": "Sets whether exhausted exceptions should be logged or 
not" },
-    "logExhaustedMessageHistory": { "kind": "attribute", "displayName": "Log 
Exhausted Message History", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "false", "description": "Sets whether to log exhausted errors 
including message history" },
-    "logExhaustedMessageBody": { "kind": "attribute", "displayName": "Log 
Exhausted Message Body", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "false", "description": "Sets whether exhausted message 
body\/headers should be logged with message history included" },
-    "disableRedelivery": { "kind": "attribute", "displayName": "Disable 
Redelivery", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "false", "description": "Disables redelivery by setting maximum 
redeliveries to 0." },
+    "logRetryAttempted": { "kind": "attribute", "displayName": "Log Retry 
Attempted", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": true, "description": "Sets whether to log retry attempts" },
+    "logStackTrace": { "kind": "attribute", "displayName": "Log Stack Trace", 
"required": false, "type": "boolean", "javaType": "java.lang.Boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Sets whether stack traces should be logged or not" },
+    "logRetryStackTrace": { "kind": "attribute", "displayName": "Log Retry 
Stack Trace", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Sets whether stack traces should be 
logged or not" },
+    "logHandled": { "kind": "attribute", "displayName": "Log Handled", 
"required": false, "type": "boolean", "javaType": "java.lang.Boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "description": "Sets whether errors should be logged even if its 
handled" },
+    "logNewException": { "kind": "attribute", "displayName": "Log New 
Exception", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": true, "description": "Sets whether errors should be logged when 
a new exception occurred during handling a previous exception" },
+    "logContinued": { "kind": "attribute", "displayName": "Log Continued", 
"required": false, "type": "boolean", "javaType": "java.lang.Boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "description": "Sets whether errors should be logged even if its 
continued" },
+    "logExhausted": { "kind": "attribute", "displayName": "Log Exhausted", 
"required": false, "type": "boolean", "javaType": "java.lang.Boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Sets whether exhausted exceptions should be logged or not" },
+    "logExhaustedMessageHistory": { "kind": "attribute", "displayName": "Log 
Exhausted Message History", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Sets whether to log exhausted errors 
including message history" },
+    "logExhaustedMessageBody": { "kind": "attribute", "displayName": "Log 
Exhausted Message Body", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Sets whether exhausted message 
body\/headers should be logged with message history included" },
+    "disableRedelivery": { "kind": "attribute", "displayName": "Disable 
Redelivery", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Disables redelivery by setting maximum 
redeliveries to 0." },
     "delayPattern": { "kind": "attribute", "displayName": "Delay Pattern", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
an optional delay pattern to use instead of fixed delay." },
-    "allowRedeliveryWhileStopping": { "kind": "attribute", "displayName": 
"Allow Redelivery While Stopping", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "true", "description": "Controls whether to 
allow redelivery while stopping\/shutting down a route that uses error 
handling." },
+    "allowRedeliveryWhileStopping": { "kind": "attribute", "displayName": 
"Allow Redelivery While Stopping", "required": false, "type": "boolean", 
"javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "Controls whether to 
allow redelivery while stopping\/shutting down a route that uses error 
handling." },
     "exchangeFormatterRef": { "kind": "attribute", "displayName": "Exchange 
Formatter Ref", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "Sets the reference of the instance of 
org.apache.camel.spi.ExchangeFormatter to generate the log message from 
exchange." },
     "camelContextId": { "kind": "attribute", "displayName": "Camel Context 
Id", "required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Id of 
CamelContext to use if there are multiple CamelContexts in the same JVM" },
     "id": { "kind": "attribute", "displayName": "Id", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "The id of this node" }
diff --git 
a/components/camel-spring-xml/src/generated/resources/org/apache/camel/spring/xml/threadPool.json
 
b/components/camel-spring-xml/src/generated/resources/org/apache/camel/spring/xml/threadPool.json
index 005578ce82e..f6d7ccab055 100644
--- 
a/components/camel-spring-xml/src/generated/resources/org/apache/camel/spring/xml/threadPool.json
+++ 
b/components/camel-spring-xml/src/generated/resources/org/apache/camel/spring/xml/threadPool.json
@@ -17,7 +17,7 @@
     "keepAliveTime": { "kind": "attribute", "displayName": "Keep Alive Time", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the keep alive time for inactive threads" },
     "timeUnit": { "kind": "attribute", "displayName": "Time Unit", "required": 
false, "type": "enum", "javaType": "java.util.concurrent.TimeUnit", "enum": [ 
"NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", 
"DAYS" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "SECONDS", "description": "Sets the time unit used for keep 
alive time" },
     "maxQueueSize": { "kind": "attribute", "displayName": "Max Queue Size", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the maximum number of tasks in the work queue. Use -1 for an unbounded queue" },
-    "allowCoreThreadTimeOut": { "kind": "attribute", "displayName": "Allow 
Core Thread Time Out", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "Sets whether to allow core threads to timeout" },
+    "allowCoreThreadTimeOut": { "kind": "attribute", "displayName": "Allow 
Core Thread Time Out", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Sets whether to allow core threads to 
timeout" },
     "rejectedPolicy": { "kind": "attribute", "displayName": "Rejected Policy", 
"required": false, "type": "enum", "javaType": 
"org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy", "enum": [ "Abort", 
"CallerRuns", "DiscardOldest", "Discard" ], "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "CallerRuns", "description": "Sets the 
handler for tasks which cannot be executed by the thread pool." },
     "threadName": { "kind": "attribute", "displayName": "Thread Name", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a custom thread name \/ pattern" },
     "scheduled": { "kind": "attribute", "displayName": "Scheduled", 
"required": false, "type": "boolean", "javaType": "java.lang.Boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "description": "Whether to use a scheduled thread pool" },
diff --git 
a/core/camel-core-xml/src/generated/resources/org/apache/camel/core/xml/jmxAgent.json
 
b/core/camel-core-xml/src/generated/resources/org/apache/camel/core/xml/jmxAgent.json
index 99770fc6604..9934b49217d 100644
--- 
a/core/camel-core-xml/src/generated/resources/org/apache/camel/core/xml/jmxAgent.json
+++ 
b/core/camel-core-xml/src/generated/resources/org/apache/camel/core/xml/jmxAgent.json
@@ -12,19 +12,20 @@
     "output": false
   },
   "properties": {
-    "disabled": { "kind": "attribute", "displayName": "Disabled", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "false", "description": 
"Disable JMI (default false)" },
-    "onlyRegisterProcessorWithCustomId": { "kind": "attribute", "displayName": 
"Only Register Processor With Custom Id", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "false", "description": "Only register 
processor if a custom id was defined for it." },
+    "disabled": { "kind": "attribute", "displayName": "Disabled", "required": 
false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Disable JMI (default false)" },
+    "onlyRegisterProcessorWithCustomId": { "kind": "attribute", "displayName": 
"Only Register Processor With Custom Id", "required": false, "type": "boolean", 
"javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "description": "Only register processor 
if a custom id was defined for it." },
     "mbeanServerDefaultDomain": { "kind": "attribute", "displayName": "Mbean 
Server Default Domain", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "org.apache.camel", "description": "MBean server default domain 
name (default org.apache.camel)" },
     "mbeanObjectDomainName": { "kind": "attribute", "displayName": "Mbean 
Object Domain Name", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "org.apache.camel", "description": "MBean object domain name 
(default org.apache.camel)" },
-    "usePlatformMBeanServer": { "kind": "attribute", "displayName": "Use 
Platform MBean Server", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "true", "description": "A flag that indicates whether the 
platform mbean server should be used" },
-    "registerAlways": { "kind": "attribute", "displayName": "Register Always", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"false", "description": "A flag that indicates whether to register mbeans 
always" },
-    "registerNewRoutes": { "kind": "attribute", "displayName": "Register New 
Routes", "required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"true", "description": "A flag that indicates whether to register mbeans when 
starting new routes" },
-    "statisticsLevel": { "kind": "attribute", "displayName": "Statistics 
Level", "required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"Default", "description": "Level of granularity for performance statistics 
enabled" },
-    "loadStatisticsEnabled": { "kind": "attribute", "displayName": "Load 
Statistics Enabled", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "false", "description": "A flag that indicates whether Load 
statistics is enabled" },
-    "endpointRuntimeStatisticsEnabled": { "kind": "attribute", "displayName": 
"Endpoint Runtime Statistics Enabled", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "true", "description": "A flag that indicates 
whether endpoint runtime statistics is enabled" },
-    "includeHostName": { "kind": "attribute", "displayName": "Include Host 
Name", "required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"false", "description": "A flag that indicates whether to include hostname in 
JMX MBean names." },
-    "useHostIPAddress": { "kind": "attribute", "displayName": "Use Host 
IPAddress", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "false", "description": "A flag that indicates whether to use 
hostname or IP Address in the service url." },
-    "mask": { "kind": "attribute", "displayName": "Mask", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "true", "description": "A 
flag that indicates whether to remove detected sensitive information (such as 
passwords) from MBean names and attributes." },
+    "usePlatformMBeanServer": { "kind": "attribute", "displayName": "Use 
Platform MBean Server", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": true, "description": "A flag that indicates whether the 
platform mbean server should be used" },
+    "registerAlways": { "kind": "attribute", "displayName": "Register Always", 
"required": false, "type": "boolean", "javaType": "java.lang.Boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "description": "A flag that indicates whether to register mbeans always" 
},
+    "registerNewRoutes": { "kind": "attribute", "displayName": "Register New 
Routes", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "A flag that indicates whether to register mbeans when starting 
new routes" },
+    "statisticsLevel": { "kind": "attribute", "displayName": "Statistics 
Level", "required": false, "type": "enum", "javaType": "java.lang.String", 
"enum": [ "ContextOnly", "RoutesOnly", "Default" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "Default", "description": 
"Level of granularity for performance statistics enabled" },
+    "mbeansLevel": { "kind": "attribute", "displayName": "Mbeans Level", 
"required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ 
"ContextOnly", "RoutesOnly", "Default" ], "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "Default", "description": "Sets the 
mbeans registration level. The default value is Default." },
+    "loadStatisticsEnabled": { "kind": "attribute", "displayName": "Load 
Statistics Enabled", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "A flag that indicates whether Load 
statistics is enabled" },
+    "endpointRuntimeStatisticsEnabled": { "kind": "attribute", "displayName": 
"Endpoint Runtime Statistics Enabled", "required": false, "type": "boolean", 
"javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "A flag that indicates 
whether endpoint runtime statistics is enabled" },
+    "includeHostName": { "kind": "attribute", "displayName": "Include Host 
Name", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "description": "A flag that indicates whether to include hostname in JMX 
MBean names." },
+    "useHostIPAddress": { "kind": "attribute", "displayName": "Use Host 
IPAddress", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "A flag that indicates whether to use 
hostname or IP Address in the service url." },
+    "mask": { "kind": "attribute", "displayName": "Mask", "required": false, 
"type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, "description": "A 
flag that indicates whether to remove detected sensitive information (such as 
passwords) from MBean names and attributes." },
     "id": { "kind": "attribute", "displayName": "Id", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git 
a/core/camel-core-xml/src/generated/resources/org/apache/camel/core/xml/routeController.json
 
b/core/camel-core-xml/src/generated/resources/org/apache/camel/core/xml/routeController.json
index 5d598dbc5d9..022953514df 100644
--- 
a/core/camel-core-xml/src/generated/resources/org/apache/camel/core/xml/routeController.json
+++ 
b/core/camel-core-xml/src/generated/resources/org/apache/camel/core/xml/routeController.json
@@ -12,7 +12,7 @@
     "output": false
   },
   "properties": {
-    "supervising": { "kind": "attribute", "displayName": "Supervising", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"false", "description": "To enable using supervising route controller which 
allows Camel to startup and then the controller takes care of starting the 
routes in a safe manner. This can be used when you want to startup Camel 
despite a route may otherwise fail fast during startu [...]
+    "supervising": { "kind": "attribute", "displayName": "Supervising", 
"required": false, "type": "boolean", "javaType": "java.lang.Boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "description": "To enable using supervising route controller which 
allows Camel to startup and then the controller takes care of starting the 
routes in a safe manner. This can be used when you want to startup Camel 
despite a route may otherwise fail fast during startu [...]
     "includeRoutes": { "kind": "attribute", "displayName": "Include Routes", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Pattern for filtering routes to be included as supervised. The pattern is 
matching on route id, and endpoint uri for the route. Multiple patterns can be 
separated by comma. For example to include all kafka routes, you can say 
kafka:. And to include routes with specific ro [...]
     "excludeRoutes": { "kind": "attribute", "displayName": "Exclude Routes", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Pattern for filtering routes to be excluded as supervised. The pattern is 
matching on route id, and endpoint uri for the route. Multiple patterns can be 
separated by comma. For example to exclude all JMS routes, you can say jms:. 
And to exclude routes with specific route  [...]
     "threadPoolSize": { "kind": "attribute", "displayName": "Thread Pool 
Size", "required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": "1", 
"description": "The number of threads used by the scheduled thread pool that 
are used for restarting routes. The pool uses 1 thread by default, but you can 
increase this to allow the controller to concurrently attempt to restart 
multiple routes in case more than o [...]
@@ -22,7 +22,7 @@
     "backOffMaxElapsedTime": { "kind": "attribute", "displayName": "Back Off 
Max Elapsed Time", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "Backoff maximum elapsed time in millis, after which the backoff 
should be considered exhausted and no more attempts should be made." },
     "backOffMaxAttempts": { "kind": "attribute", "displayName": "Back Off Max 
Attempts", "required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Backoff maximum number of attempts to restart a route that failed to startup. 
When this threshold has been exceeded then the controller will give up 
attempting to restart the route, and the route will remain as stopped." },
     "backOffMultiplier": { "kind": "attribute", "displayName": "Back Off 
Multiplier", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "1.0", "description": "Backoff multiplier to use for 
exponential backoff. This is used to extend the delay between restart 
attempts." },
-    "unhealthyOnExhausted": { "kind": "attribute", "displayName": "Unhealthy 
On Exhausted", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "false", "description": "Whether to mark the route as unhealthy 
(down) when all restarting attempts (backoff) have failed and the route is not 
successfully started and the route manager is giving up. Setting this to true 
allows health checks to know about t [...]
+    "unhealthyOnExhausted": { "kind": "attribute", "displayName": "Unhealthy 
On Exhausted", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether to mark the route as unhealthy 
(down) when all restarting attempts (backoff) have failed and the route is not 
successfully started and the route manager is giving up. Setting this to true 
allows health checks to know about t [...]
     "loggingLevel": { "kind": "attribute", "displayName": "Logging Level", 
"required": false, "type": "enum", "javaType": "org.apache.camel.LoggingLevel", 
"enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": "DEBUG", 
"description": "Sets the logging level used for logging route activity (such as 
starting and stopping routes). The default logging level is DEBUG." },
     "id": { "kind": "attribute", "displayName": "Id", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "The id of this node" }
   }
diff --git 
a/core/camel-core-xml/src/generated/resources/org/apache/camel/core/xml/streamCaching.json
 
b/core/camel-core-xml/src/generated/resources/org/apache/camel/core/xml/streamCaching.json
index c0e2a90ade1..3746e4c894b 100644
--- 
a/core/camel-core-xml/src/generated/resources/org/apache/camel/core/xml/streamCaching.json
+++ 
b/core/camel-core-xml/src/generated/resources/org/apache/camel/core/xml/streamCaching.json
@@ -16,12 +16,12 @@
     "spoolEnabled": { "kind": "attribute", "displayName": "Spool Enabled", 
"required": false, "type": "boolean", "javaType": "java.lang.Boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "description": "To enable stream caching spooling to disk. This means, 
for large stream messages (over 128 KB by default) will be cached in a 
temporary file instead, and Camel will handle deleting the temporary file once 
the cached stream is no longer necessary. De [...]
     "spoolDirectory": { "kind": "attribute", "displayName": "Spool Directory", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the spool (temporary) directory to use for overflow and spooling to disk. If no 
spool directory has been explicit configured, then a temporary directory is 
created in the java.io.tmpdir directory." },
     "spoolCipher": { "kind": "attribute", "displayName": "Spool Cipher", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
a cipher name to use when spooling to disk to write with encryption. By default 
the data is not encrypted." },
-    "spoolThreshold": { "kind": "attribute", "displayName": "Spool Threshold", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Threshold in bytes when overflow to disk is activated. The default threshold 
is org.apache.camel.StreamCache#DEFAULT_SPOOL_THRESHOLD bytes (eg 128kb). Use 
-1 to disable overflow to disk." },
+    "spoolThreshold": { "kind": "attribute", "displayName": "Spool Threshold", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"131072", "description": "Threshold in bytes when overflow to disk is 
activated. The default threshold is 
org.apache.camel.StreamCache#DEFAULT_SPOOL_THRESHOLD bytes (eg 128kb). Use -1 
to disable overflow to disk." },
     "spoolUsedHeapMemoryThreshold": { "kind": "attribute", "displayName": 
"Spool Used Heap Memory Threshold", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "Sets a percentage (1-99) of used heap memory 
threshold to activate spooling to disk." },
     "spoolUsedHeapMemoryLimit": { "kind": "attribute", "displayName": "Spool 
Used Heap Memory Limit", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "Sets what the upper bounds should be when 
spoolUsedHeapMemoryThreshold is in use." },
     "spoolRules": { "kind": "attribute", "displayName": "Spool Rules", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Reference to one or more custom 
org.apache.camel.spi.StreamCachingStrategy.SpoolRule to use. Multiple rules can 
be separated by comma." },
-    "bufferSize": { "kind": "attribute", "displayName": "Buffer Size", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the buffer size to use when allocating in-memory buffers used for in-memory 
stream caches. The default size is 
org.apache.camel.util.IOHelper#DEFAULT_BUFFER_SIZE" },
-    "removeSpoolDirectoryWhenStopping": { "kind": "attribute", "displayName": 
"Remove Spool Directory When Stopping", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "true", "description": "Whether to remove the 
temporary directory when stopping. This option is default true" },
+    "bufferSize": { "kind": "attribute", "displayName": "Buffer Size", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"4096", "description": "Sets the buffer size to use when allocating in-memory 
buffers used for in-memory stream caches. The default size is 
org.apache.camel.util.IOHelper#DEFAULT_BUFFER_SIZE" },
+    "removeSpoolDirectoryWhenStopping": { "kind": "attribute", "displayName": 
"Remove Spool Directory When Stopping", "required": false, "type": "boolean", 
"javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "Whether to remove the 
temporary directory when stopping. This option is default true" },
     "statisticsEnabled": { "kind": "attribute", "displayName": "Statistics 
Enabled", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Sets whether statistics is enabled." },
     "anySpoolRules": { "kind": "attribute", "displayName": "Any Spool Rules", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"false", "description": "Sets whether if just any of the 
org.apache.camel.spi.StreamCachingStrategy.SpoolRule rules returns true then 
shouldSpoolCache(long) returns true. If this option is false, then all the 
org.apache.camel.spi.StreamCachingStrategy.SpoolRule must retu [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "The id of this node" }
diff --git 
a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
 
b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
index 43787c7b9ce..c7ca9132d48 100644
--- 
a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
+++ 
b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
@@ -35,6 +35,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.CamelException;
 import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.LoggingLevel;
+import org.apache.camel.ManagementMBeansLevel;
 import org.apache.camel.ManagementStatisticsLevel;
 import org.apache.camel.RoutesBuilder;
 import org.apache.camel.ShutdownRoute;
@@ -716,6 +717,12 @@ public abstract class AbstractCamelContextFactoryBean<T 
extends ModelCamelContex
                         = 
getContext().getTypeConverter().mandatoryConvertTo(ManagementStatisticsLevel.class,
 level);
                 properties.put("statisticsLevel", msLevel);
             }
+            if (camelJMXAgent.getMbeansLevel() != null) {
+                String level = CamelContextHelper.parseText(getContext(), 
camelJMXAgent.getMbeansLevel());
+                ManagementMBeansLevel mbLevel
+                        = 
getContext().getTypeConverter().mandatoryConvertTo(ManagementMBeansLevel.class, 
level);
+                properties.put("mBeansLevel", mbLevel);
+            }
 
             
getContext().adapt(ExtendedCamelContext.class).setupManagement(properties);
         }
diff --git 
a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelRedeliveryPolicyFactoryBean.java
 
b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelRedeliveryPolicyFactoryBean.java
index 2a729371dc8..4924294ed42 100644
--- 
a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelRedeliveryPolicyFactoryBean.java
+++ 
b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelRedeliveryPolicyFactoryBean.java
@@ -30,7 +30,6 @@ import org.apache.camel.support.CamelContextHelper;
  * A factory which instantiates {@link RedeliveryPolicy} objects
  */
 @XmlAccessorType(XmlAccessType.FIELD)
-@Deprecated
 public abstract class AbstractCamelRedeliveryPolicyFactoryBean extends 
AbstractCamelFactoryBean<RedeliveryPolicy> {
 
     @XmlAttribute
@@ -40,7 +39,7 @@ public abstract class 
AbstractCamelRedeliveryPolicyFactoryBean extends AbstractC
     @Metadata(defaultValue = "1000", description = "Sets the maximum 
redelivery delay. Use -1 if you wish to have no maximum")
     private String redeliveryDelay;
     @XmlAttribute
-    @Metadata(defaultValue = "false",
+    @Metadata(defaultValue = "false", javaType = "java.lang.Boolean",
               description = "Sets whether asynchronous delayed redelivery is 
allowed. This is disabled by default. "
                             + "When enabled it allows Camel to schedule a 
future task for delayed redelivery which prevents current thread from blocking 
while waiting. "
                             + "Exchange which is transacted will however 
always use synchronous delayed redelivery because the transaction must execute 
in the same thread context.")
@@ -50,7 +49,7 @@ public abstract class 
AbstractCamelRedeliveryPolicyFactoryBean extends AbstractC
               description = "Sets the multiplier used to increase the delay 
between redeliveries if useExponentialBackOff is enabled")
     private String backOffMultiplier;
     @XmlAttribute
-    @Metadata(defaultValue = "false",
+    @Metadata(defaultValue = "false", javaType = "java.lang.Boolean",
               description = "Enables/disables exponential backoff using the 
backOffMultiplier to increase the time between retries")
     private String useExponentialBackOff;
     @XmlAttribute
@@ -58,64 +57,64 @@ public abstract class 
AbstractCamelRedeliveryPolicyFactoryBean extends AbstractC
               description = "Sets the factor used for collision avoidance if 
enabled via useCollisionAvoidance.")
     private String collisionAvoidanceFactor;
     @XmlAttribute
-    @Metadata(defaultValue = "false",
+    @Metadata(defaultValue = "false", javaType = "java.lang.Boolean",
               description = "Enables/disables collision avoidance which adds 
some randomization to the backoff timings to reduce contention probability")
     private String useCollisionAvoidance;
     @XmlAttribute
     @Metadata(defaultValue = "60000", description = "Sets the maximum 
redelivery delay. Use -1 if you wish to have no maximum")
     private String maximumRedeliveryDelay;
     @XmlAttribute
-    @Metadata(defaultValue = "ERROR",
+    @Metadata(defaultValue = "ERROR", enums = 
"TRACE,DEBUG,INFO,WARN,ERROR,OFF",
               description = "Sets the logging level to use for log messages 
when retries have been exhausted.")
     private String retriesExhaustedLogLevel;
     @XmlAttribute
-    @Metadata(defaultValue = "DEBUG",
+    @Metadata(defaultValue = "DEBUG", enums = 
"TRACE,DEBUG,INFO,WARN,ERROR,OFF",
               description = "Sets the logging level to use for log messages 
when retries are attempted.")
     private String retryAttemptedLogLevel;
     @XmlAttribute
     @Metadata(defaultValue = "0", description = "Sets the interval for log 
messages when retries are attempted.")
     private String retryAttemptedLogInterval;
     @XmlAttribute
-    @Metadata(defaultValue = "true", description = "Sets whether to log retry 
attempts")
+    @Metadata(defaultValue = "true", javaType = "java.lang.Boolean", 
description = "Sets whether to log retry attempts")
     private String logRetryAttempted;
     @XmlAttribute
-    @Metadata(defaultValue = "true", description = "Sets whether stack traces 
should be logged or not")
+    @Metadata(defaultValue = "true", javaType = "java.lang.Boolean", 
description = "Sets whether stack traces should be logged or not")
     private String logStackTrace;
     @XmlAttribute
-    @Metadata(defaultValue = "false", description = "Sets whether stack traces 
should be logged or not")
+    @Metadata(defaultValue = "false", javaType = "java.lang.Boolean", 
description = "Sets whether stack traces should be logged or not")
     private String logRetryStackTrace;
     @XmlAttribute
-    @Metadata(defaultValue = "false", description = "Sets whether errors 
should be logged even if its handled")
+    @Metadata(defaultValue = "false", javaType = "java.lang.Boolean", 
description = "Sets whether errors should be logged even if its handled")
     private String logHandled;
     @XmlAttribute
-    @Metadata(defaultValue = "true",
+    @Metadata(defaultValue = "true", javaType = "java.lang.Boolean",
               description = "Sets whether errors should be logged when a new 
exception occurred during handling a previous exception")
     private String logNewException;
     @XmlAttribute
-    @Metadata(defaultValue = "false", description = "Sets whether errors 
should be logged even if its continued")
+    @Metadata(defaultValue = "false", javaType = "java.lang.Boolean", 
description = "Sets whether errors should be logged even if its continued")
     private String logContinued;
     @XmlAttribute
-    @Metadata(defaultValue = "true", description = "Sets whether exhausted 
exceptions should be logged or not")
+    @Metadata(defaultValue = "true", javaType = "java.lang.Boolean", 
description = "Sets whether exhausted exceptions should be logged or not")
     private String logExhausted;
     @XmlAttribute
-    @Metadata(defaultValue = "false", description = "Sets whether to log 
exhausted errors including message history")
+    @Metadata(defaultValue = "false", javaType = "java.lang.Boolean", 
description = "Sets whether to log exhausted errors including message history")
     private String logExhaustedMessageHistory;
     @XmlAttribute
-    @Metadata(defaultValue = "false",
+    @Metadata(defaultValue = "false", javaType = "java.lang.Boolean",
               description = "Sets whether exhausted message body/headers 
should be logged with message history included")
     private String logExhaustedMessageBody;
     @XmlAttribute
-    @Metadata(defaultValue = "false", description = "Disables redelivery by 
setting maximum redeliveries to 0.")
+    @Metadata(defaultValue = "false", javaType = "java.lang.Boolean", 
description = "Disables redelivery by setting maximum redeliveries to 0.")
     private String disableRedelivery;
     @XmlAttribute
     @Metadata(description = "Sets an optional delay pattern to use instead of 
fixed delay.")
     private String delayPattern;
     @XmlAttribute
-    @Metadata(defaultValue = "true",
+    @Metadata(defaultValue = "true", javaType = "java.lang.Boolean",
               description = "Controls whether to allow redelivery while 
stopping/shutting down a route that uses error handling.")
     private String allowRedeliveryWhileStopping;
     @XmlAttribute
-    @Metadata(description = "Sets the reference of the instance of {@link 
org.apache.camel.spi.ExchangeFormatter} to generate the log message from 
exchange.")
+    @Metadata(description = "Sets the reference of the instance of 
org.apache.camel.spi.ExchangeFormatter to generate the log message from 
exchange.")
     private String exchangeFormatterRef;
 
     @Override
diff --git 
a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelThreadPoolFactoryBean.java
 
b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelThreadPoolFactoryBean.java
index fa65c20f8a6..2ca64e8d1cd 100644
--- 
a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelThreadPoolFactoryBean.java
+++ 
b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelThreadPoolFactoryBean.java
@@ -53,7 +53,7 @@ public abstract class AbstractCamelThreadPoolFactoryBean 
extends AbstractCamelFa
     @Metadata(description = "Sets the maximum number of tasks in the work 
queue. Use -1 for an unbounded queue")
     private String maxQueueSize;
     @XmlAttribute
-    @Metadata(description = "Sets whether to allow core threads to timeout")
+    @Metadata(description = "Sets whether to allow core threads to timeout", 
javaType = "java.lang.Boolean")
     private String allowCoreThreadTimeOut;
     @XmlAttribute
     @Metadata(description = "Sets the handler for tasks which cannot be 
executed by the thread pool.",
@@ -64,8 +64,8 @@ public abstract class AbstractCamelThreadPoolFactoryBean 
extends AbstractCamelFa
     @Metadata(description = "To use a custom thread name / pattern")
     private String threadName;
     @XmlAttribute
-    @Metadata(description = "Whether to use a scheduled thread pool", 
defaultValue = "false")
-    private Boolean scheduled;
+    @Metadata(description = "Whether to use a scheduled thread pool", 
defaultValue = "false", javaType = "java.lang.Boolean")
+    private String scheduled;
 
     @Override
     public ExecutorService getObject() throws Exception {
@@ -103,6 +103,7 @@ public abstract class AbstractCamelThreadPoolFactoryBean 
extends AbstractCamelFa
                 .build();
 
         ExecutorService answer;
+        Boolean scheduled = CamelContextHelper.parseBoolean(getCamelContext(), 
getScheduled());
         if (scheduled != null && scheduled) {
             answer = 
getCamelContext().getExecutorServiceManager().newScheduledThreadPool(getId(), 
getThreadName(), profile);
         } else {
@@ -180,12 +181,11 @@ public abstract class AbstractCamelThreadPoolFactoryBean 
extends AbstractCamelFa
         this.threadName = threadName;
     }
 
-    public Boolean getScheduled() {
+    public String getScheduled() {
         return scheduled;
     }
 
-    public void setScheduled(Boolean scheduled) {
+    public void setScheduled(String scheduled) {
         this.scheduled = scheduled;
     }
-
 }
diff --git 
a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelJMXAgentDefinition.java
 
b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelJMXAgentDefinition.java
index bb8500f6994..3f5d96cf42a 100644
--- 
a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelJMXAgentDefinition.java
+++ 
b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelJMXAgentDefinition.java
@@ -35,10 +35,10 @@ import org.apache.camel.spi.Metadata;
 public class CamelJMXAgentDefinition extends IdentifiedType {
 
     @XmlAttribute
-    @Metadata(defaultValue = "false")
+    @Metadata(defaultValue = "false", javaType = "java.lang.Boolean")
     private String disabled;
     @XmlAttribute
-    @Metadata(defaultValue = "false")
+    @Metadata(defaultValue = "false", javaType = "java.lang.Boolean")
     private String onlyRegisterProcessorWithCustomId;
     @XmlAttribute
     @Metadata(defaultValue = "org.apache.camel")
@@ -47,31 +47,34 @@ public class CamelJMXAgentDefinition extends IdentifiedType 
{
     @Metadata(defaultValue = "org.apache.camel")
     private String mbeanObjectDomainName;
     @XmlAttribute
-    @Metadata(defaultValue = "true")
+    @Metadata(defaultValue = "true", javaType = "java.lang.Boolean")
     private String usePlatformMBeanServer;
     @XmlAttribute
-    @Metadata(defaultValue = "false")
+    @Metadata(defaultValue = "false", javaType = "java.lang.Boolean")
     private String registerAlways;
     @XmlAttribute
-    @Metadata(defaultValue = "true")
+    @Metadata(defaultValue = "true", javaType = "java.lang.Boolean")
     private String registerNewRoutes;
     @XmlAttribute
-    @Metadata(defaultValue = "Default")
+    @Metadata(defaultValue = "Default", enums = 
"ContextOnly,RoutesOnly,Default")
     private String statisticsLevel;
     @XmlAttribute
-    @Metadata(defaultValue = "false")
+    @Metadata(defaultValue = "Default", enums = 
"ContextOnly,RoutesOnly,Default")
+    private String mbeansLevel;
+    @XmlAttribute
+    @Metadata(defaultValue = "false", javaType = "java.lang.Boolean")
     private String loadStatisticsEnabled;
     @XmlAttribute
-    @Metadata(defaultValue = "true")
+    @Metadata(defaultValue = "true", javaType = "java.lang.Boolean")
     private String endpointRuntimeStatisticsEnabled;
     @XmlAttribute
-    @Metadata(defaultValue = "false")
+    @Metadata(defaultValue = "false", javaType = "java.lang.Boolean")
     private String includeHostName;
     @XmlAttribute
-    @Metadata(defaultValue = "false")
+    @Metadata(defaultValue = "false", javaType = "java.lang.Boolean")
     private String useHostIPAddress;
     @XmlAttribute
-    @Metadata(defaultValue = "true")
+    @Metadata(defaultValue = "true", javaType = "java.lang.Boolean")
     private String mask;
 
     public String getDisabled() {
@@ -140,6 +143,19 @@ public class CamelJMXAgentDefinition extends 
IdentifiedType {
         this.statisticsLevel = statisticsLevel;
     }
 
+    public String getMbeansLevel() {
+        return mbeansLevel;
+    }
+
+    /**
+     * Sets the mbeans registration level.
+     *
+     * The default value is Default.
+     */
+    public void setMbeansLevel(String mbeansLevel) {
+        this.mbeansLevel = mbeansLevel;
+    }
+
     public String getRegisterAlways() {
         return registerAlways;
     }
diff --git 
a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelRouteControllerDefinition.java
 
b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelRouteControllerDefinition.java
index b4fda97f620..27768b21c24 100644
--- 
a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelRouteControllerDefinition.java
+++ 
b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelRouteControllerDefinition.java
@@ -33,7 +33,7 @@ import org.apache.camel.spi.Metadata;
 public class CamelRouteControllerDefinition extends IdentifiedType {
 
     @XmlAttribute
-    @Metadata(defaultValue = "false")
+    @Metadata(defaultValue = "false", javaType = "java.lang.Boolean")
     private String supervising;
     @XmlAttribute
     private String includeRoutes;
@@ -57,7 +57,7 @@ public class CamelRouteControllerDefinition extends 
IdentifiedType {
     @Metadata(defaultValue = "1.0")
     private String backOffMultiplier;
     @XmlAttribute
-    @Metadata(defaultValue = "false")
+    @Metadata(defaultValue = "false", javaType = "java.lang.Boolean")
     private String unhealthyOnExhausted;
     @XmlAttribute
     @Metadata(javaType = "org.apache.camel.LoggingLevel", defaultValue = 
"DEBUG", enums = "TRACE,DEBUG,INFO,WARN,ERROR,OFF")
diff --git 
a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelStreamCachingStrategyDefinition.java
 
b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelStreamCachingStrategyDefinition.java
index c54a3e4536b..97ff37b42de 100644
--- 
a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelStreamCachingStrategyDefinition.java
+++ 
b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelStreamCachingStrategyDefinition.java
@@ -21,8 +21,10 @@ import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.apache.camel.StreamCache;
 import org.apache.camel.model.IdentifiedType;
 import org.apache.camel.spi.Metadata;
+import org.apache.camel.util.IOHelper;
 
 /**
  * Stream caching configuration.
@@ -43,6 +45,7 @@ public class CamelStreamCachingStrategyDefinition extends 
IdentifiedType {
     @XmlAttribute
     private String spoolCipher;
     @XmlAttribute
+    @Metadata(defaultValue = "" + StreamCache.DEFAULT_SPOOL_THRESHOLD)
     private String spoolThreshold;
     @XmlAttribute
     private String spoolUsedHeapMemoryThreshold;
@@ -51,9 +54,10 @@ public class CamelStreamCachingStrategyDefinition extends 
IdentifiedType {
     @XmlAttribute
     private String spoolRules;
     @XmlAttribute
+    @Metadata(defaultValue = "" + IOHelper.DEFAULT_BUFFER_SIZE)
     private String bufferSize;
     @XmlAttribute
-    @Metadata(defaultValue = "true")
+    @Metadata(defaultValue = "true", javaType = "java.lang.Boolean")
     private String removeSpoolDirectoryWhenStopping;
     @XmlAttribute
     @Metadata(defaultValue = "false", javaType = "java.lang.Boolean")

Reply via email to