[camel] branch master updated (4d6cfed -> 16e1fc1)

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

[camel] branch master updated (4d6cfed -> 16e1fc1)

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

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


    from 4d6cfed  CAMEL-14546: camel-xmlsecurity - Split up into verify and sign endpoints
     new ec465ce  Add notice about the suppression of the extended placeholders
     new d2acc64  Use strings in definitions so that we can use placeholders mostly everywhere
     new 6974495  Fix unit test which always fail the second time
     new f856a20  Do not trim stack traces
     new 16e1fc1  [CAMEL-14559] Use String in definition fields to be able to leverage property placeholders

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


Summary of changes:
 .../classtype/BindyCsvClassTypeAsStringTest.java   |   8 +-
 .../bindy/classtype/BindyCsvClassTypeTest.java     |   8 +-
 .../bindy/csv/BindySimpleCsvMarshallDslTest.java   |   8 +-
 .../bindy/fixed/converter/BindyConverterTest.java  |  12 +-
 .../BindyFixedLengthDelimitedFieldTest.java        |   8 +-
 .../dynamic/BindyFixedLengthDynamicFieldTest.java  |   8 +-
 .../BindySimpleFixedLengthHeaderFooterTest.java    |   8 +-
 .../BindySimpleIgnoreTrailingCharsTest.java        |   2 +-
 .../bindy/fixed/implied/BindyImpliedTest.java      |   2 +-
 .../link/BindySimpleFixedLengthWithLinkTest.java   |   2 +-
 .../simple/BindySimpleFixedLengthMarshallTest.java |   2 +-
 .../BindySimpleFixedLengthObjectMarshallTest.java  |   2 +-
 .../bindy/fixed/number/BindyNumberTest.java        |   2 +-
 .../BindySimpleFixedLengthOrdinalPosTest.java      |   2 +-
 .../skipfields/BindySimpleSkipFieldsTest.java      |   2 +-
 ...BindyFixedLengthHeaderFooterSkipHeaderTest.java |   2 +-
 .../BindyBigDecimalGroupingUnmarshallTest.java     |   8 +-
 .../BindyBigDecimalRoundingUnmarshallTest.java     |   8 +-
 .../disruptor/MulticastDisruptorComponentTest.java |   4 +-
 .../org/apache/camel/component/fhir/fhirJson.json  |   2 +-
 .../org/apache/camel/component/fhir/fhirXml.json   |   2 +-
 .../src/main/docs/fhirJson-dataformat.adoc         |   2 +-
 .../src/main/docs/fhirXml-dataformat.adoc          |   2 +-
 .../RestJettyBindingModeOffWithContractTest.java   |   2 +-
 ...estNettyHttpBindingModeOffWithContractTest.java |   8 +-
 .../apache/camel/openapi/RestOpenApiReader.java    |   4 +-
 .../RestServletBindingModeOffWithContractTest.java |   2 +-
 .../apache/camel/swagger/RestSwaggerReader.java    |   2 +-
 ...UndertowHttpBindingModeOffWithContractTest.java |   2 +-
 .../impl/cloud/ServiceCallProcessorFactory.java    |   4 +-
 .../impl/cloud/CachingServiceDiscoveryTest.java    |   2 +-
 .../org/apache/camel/model/cloud/serviceCall.json  |   2 +-
 .../apache/camel/model/dataformat/fhirJson.json    |   2 +-
 .../org/apache/camel/model/dataformat/fhirXml.json |   2 +-
 .../apache/camel/model/dataformat/typeFilter.json  |   2 +-
 .../resources/org/apache/camel/model/rollback.json |   4 +-
 .../org/apache/camel/model/routingSlip.json        |   4 +-
 .../resources/org/apache/camel/model/saga.json     |   4 +-
 .../org/apache/camel/model/threadPoolProfile.json  |  12 +-
 .../resources/org/apache/camel/model/threads.json  |  12 +-
 .../resources/org/apache/camel/model/toD.json      |   8 +-
 .../resources/org/apache/camel/model/wireTap.json  |  12 +-
 .../org/apache/camel/builder/DataFormatClause.java |  82 +++----
 .../apache/camel/model/OnCompletionDefinition.java |  13 +-
 .../org/apache/camel/model/RollbackDefinition.java |   2 +
 .../org/apache/camel/model/RouteDefinition.java    |  37 +++-
 .../apache/camel/model/RoutingSlipDefinition.java  |  39 +++-
 .../org/apache/camel/model/SagaDefinition.java     |  14 +-
 .../camel/model/SetExchangePatternDefinition.java  |  15 +-
 .../org/apache/camel/model/SplitDefinition.java    | 241 ++++++++++++++++++++-
 .../camel/model/ThreadPoolProfileDefinition.java   |  36 ++-
 .../org/apache/camel/model/ThreadsDefinition.java  | 118 +++++++++-
 .../org/apache/camel/model/ThrottleDefinition.java |  77 ++++++-
 .../apache/camel/model/ToDynamicDefinition.java    |  65 +++++-
 .../org/apache/camel/model/WireTapDefinition.java  |  53 ++++-
 ...ngServiceCallServiceDiscoveryConfiguration.java |  27 ++-
 ...ulServiceCallServiceDiscoveryConfiguration.java |  59 +++--
 ...cdServiceCallServiceDiscoveryConfiguration.java |  14 +-
 ...esServiceCallServiceDiscoveryConfiguration.java |  15 +-
 .../cloud/ServiceCallConfigurationDefinition.java  |  14 +-
 .../camel/model/cloud/ServiceCallDefinition.java   |  14 +-
 .../camel/model/dataformat/BindyDataFormat.java    |  92 ++++++--
 .../camel/model/dataformat/CsvDataFormat.java      | 107 +++++----
 .../camel/model/dataformat/FhirDataformat.java     |  61 +++---
 .../camel/model/dataformat/FlatpackDataFormat.java |  29 +--
 .../camel/model/dataformat/GrokDataFormat.java     |  24 +-
 .../camel/model/dataformat/HL7DataFormat.java      |  13 +-
 .../camel/model/dataformat/IcalDataFormat.java     |   7 +-
 .../camel/model/dataformat/JaxbDataFormat.java     |  52 +++--
 .../camel/model/dataformat/JsonDataFormat.java     | 188 ++++++++++++++--
 .../camel/model/dataformat/LZFDataFormat.java      |   7 +-
 .../model/dataformat/MimeMultipartDataFormat.java  |  21 +-
 .../camel/model/dataformat/TarFileDataFormat.java  |  21 +-
 .../model/dataformat/TidyMarkupDataFormat.java     |   7 +-
 .../dataformat/UniVocityAbstractDataFormat.java    |  59 ++---
 .../model/dataformat/UniVocityCsvDataFormat.java   |   7 +-
 .../dataformat/UniVocityFixedWidthDataFormat.java  |  14 +-
 .../model/dataformat/XMLSecurityDataFormat.java    |  15 +-
 .../camel/model/dataformat/XmlRpcDataFormat.java   |   7 +-
 .../camel/model/dataformat/YAMLDataFormat.java     |  24 +-
 .../model/dataformat/YAMLTypeFilterDefinition.java |   7 +-
 .../model/dataformat/ZipDeflaterDataFormat.java    |   8 +-
 .../camel/model/dataformat/ZipFileDataFormat.java  |  21 +-
 .../apache/camel/model/rest/RestDefinition.java    |  13 +-
 .../camel/model/rest/RestSecurityApiKey.java       |  22 +-
 .../apache/camel/reifier/OnCompletionReifier.java  |   2 +-
 .../org/apache/camel/reifier/RouteReifier.java     |   6 +-
 .../camel/reifier/SetExchangePatternReifier.java   |   3 +-
 .../org/apache/camel/reifier/ThreadsReifier.java   |   2 +-
 .../org/apache/camel/reifier/ToDynamicReifier.java |   3 +
 .../reifier/dataformat/FhirDataFormatReifier.java  |  10 +-
 .../reifier/dataformat/GrokDataFormatReifier.java  |   6 +-
 .../reifier/dataformat/HL7DataFormatReifier.java   |   2 +-
 .../reifier/dataformat/YAMLDataFormatReifier.java  |  10 +-
 .../core/xml/AbstractCamelContextFactoryBean.java  |   8 +-
 .../java/org/apache/camel/xml/in/ModelParser.java  | 197 ++++++++---------
 .../modules/ROOT/pages/fhirJson-dataformat.adoc    |   2 +-
 .../modules/ROOT/pages/fhirXml-dataformat.adoc     |   2 +-
 .../modules/ROOT/pages/camel-3x-upgrade-guide.adoc |  44 ++++
 parent/pom.xml                                     |   1 +
 .../ComponentsDslMetadataRegistryTest.java         |  11 +-
 101 files changed, 1608 insertions(+), 658 deletions(-)

Reply | Threaded
Open this post in threaded view
|

[camel] 01/05: Add notice about the suppression of the extended placeholders

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

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

commit ec465ce731f1150153be3eace50212fc33786f5a
Author: Guillaume Nodet <[hidden email]>
AuthorDate: Wed Feb 12 15:58:13 2020 +0100

    Add notice about the suppression of the extended placeholders
---
 .../modules/ROOT/pages/camel-3x-upgrade-guide.adoc | 44 ++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide.adoc b/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide.adoc
index 97f5daf..957a6c3 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide.adoc
@@ -445,3 +445,47 @@ Remove the method `getProcessors` from `Pipeline` as you should use the `next` m
 The `@Experimental` annotation is moved from `meta-annotations` JAR to `camel-api`
 and moved from package `org.apache.camel.meta` to `org.apache.camel`.
 And the meta-annotations has been removed.
+
+==== Property Placeholders
+
+The support for out-of-band property placeholders has been removed.
+This means that XML that were using the `http://camel.apache.org/schema/placeholder`
+namespace and that the java builders using the `.placeholder(key, value).` have to
+be modified.
+
+[source,java]
+----
+    from("direct:start")
+        .multicast()
+        .placeholder("stopOnException", "stop")
+        .to("mock:a")
+----
+should be rewritten as:
+[source,java]
+----
+    from("direct:start")
+        .multicast()
+        .stopOnException("{{stop}}")
+        .to("mock:a")
+----
+
+and
+[source,xml]
+----
+   <route>
+        <from uri="direct:start"/>
+        <multicast prop:stopOnException="stop">
+            <to uri="mock:a"/>
+        </multicast>
+    </route>
+ ----
+should be rewritten as:
+[source,xml]
+----
+   <route>
+        <from uri="direct:start"/>
+        <multicast stopOnException="{{stop}}">
+            <to uri="mock:a"/>
+        </multicast>
+    </route>
+ ----

Reply | Threaded
Open this post in threaded view
|

[camel] 02/05: Use strings in definitions so that we can use placeholders mostly everywhere

gnodet
In reply to this post by gnodet
This is an automated email from the ASF dual-hosted git repository.

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

commit d2acc64bdd1fceb9fc9ccee0d1d8ae93289fdcb8
Author: Guillaume Nodet <[hidden email]>
AuthorDate: Wed Feb 12 20:20:44 2020 +0100

    Use strings in definitions so that we can use placeholders mostly everywhere
---
 .../classtype/BindyCsvClassTypeAsStringTest.java   |   8 +-
 .../bindy/classtype/BindyCsvClassTypeTest.java     |   8 +-
 .../bindy/csv/BindySimpleCsvMarshallDslTest.java   |   8 +-
 .../bindy/fixed/converter/BindyConverterTest.java  |  12 +-
 .../BindyFixedLengthDelimitedFieldTest.java        |   8 +-
 .../dynamic/BindyFixedLengthDynamicFieldTest.java  |   8 +-
 .../BindySimpleFixedLengthHeaderFooterTest.java    |   8 +-
 .../BindySimpleIgnoreTrailingCharsTest.java        |   2 +-
 .../bindy/fixed/implied/BindyImpliedTest.java      |   2 +-
 .../link/BindySimpleFixedLengthWithLinkTest.java   |   2 +-
 .../simple/BindySimpleFixedLengthMarshallTest.java |   2 +-
 .../BindySimpleFixedLengthObjectMarshallTest.java  |   2 +-
 .../bindy/fixed/number/BindyNumberTest.java        |   2 +-
 .../BindySimpleFixedLengthOrdinalPosTest.java      |   2 +-
 .../skipfields/BindySimpleSkipFieldsTest.java      |   2 +-
 ...BindyFixedLengthHeaderFooterSkipHeaderTest.java |   2 +-
 .../BindyBigDecimalGroupingUnmarshallTest.java     |   8 +-
 .../BindyBigDecimalRoundingUnmarshallTest.java     |   8 +-
 .../disruptor/MulticastDisruptorComponentTest.java |   4 +-
 .../org/apache/camel/component/fhir/fhirJson.json  |   2 +-
 .../org/apache/camel/component/fhir/fhirXml.json   |   2 +-
 .../src/main/docs/fhirJson-dataformat.adoc         |   2 +-
 .../src/main/docs/fhirXml-dataformat.adoc          |   2 +-
 .../RestJettyBindingModeOffWithContractTest.java   |   2 +-
 ...estNettyHttpBindingModeOffWithContractTest.java |   8 +-
 .../apache/camel/openapi/RestOpenApiReader.java    |   4 +-
 .../RestServletBindingModeOffWithContractTest.java |   2 +-
 .../apache/camel/swagger/RestSwaggerReader.java    |   2 +-
 ...UndertowHttpBindingModeOffWithContractTest.java |   2 +-
 .../impl/cloud/ServiceCallProcessorFactory.java    |   4 +-
 .../impl/cloud/CachingServiceDiscoveryTest.java    |   2 +-
 .../org/apache/camel/model/cloud/serviceCall.json  |   2 +-
 .../apache/camel/model/dataformat/fhirJson.json    |   2 +-
 .../org/apache/camel/model/dataformat/fhirXml.json |   2 +-
 .../apache/camel/model/dataformat/typeFilter.json  |   2 +-
 .../resources/org/apache/camel/model/rollback.json |   4 +-
 .../org/apache/camel/model/routingSlip.json        |   4 +-
 .../resources/org/apache/camel/model/saga.json     |   4 +-
 .../org/apache/camel/model/threadPoolProfile.json  |  12 +-
 .../resources/org/apache/camel/model/threads.json  |  12 +-
 .../resources/org/apache/camel/model/toD.json      |   8 +-
 .../resources/org/apache/camel/model/wireTap.json  |  12 +-
 .../org/apache/camel/builder/DataFormatClause.java |  82 +++----
 .../apache/camel/model/OnCompletionDefinition.java |  13 +-
 .../org/apache/camel/model/RollbackDefinition.java |   2 +
 .../org/apache/camel/model/RouteDefinition.java    |  37 +++-
 .../apache/camel/model/RoutingSlipDefinition.java  |  39 +++-
 .../org/apache/camel/model/SagaDefinition.java     |  14 +-
 .../camel/model/SetExchangePatternDefinition.java  |  15 +-
 .../org/apache/camel/model/SplitDefinition.java    | 241 ++++++++++++++++++++-
 .../camel/model/ThreadPoolProfileDefinition.java   |  36 ++-
 .../org/apache/camel/model/ThreadsDefinition.java  | 118 +++++++++-
 .../org/apache/camel/model/ThrottleDefinition.java |  77 ++++++-
 .../apache/camel/model/ToDynamicDefinition.java    |  65 +++++-
 .../org/apache/camel/model/WireTapDefinition.java  |  53 ++++-
 ...ngServiceCallServiceDiscoveryConfiguration.java |  27 ++-
 ...ulServiceCallServiceDiscoveryConfiguration.java |  59 +++--
 ...cdServiceCallServiceDiscoveryConfiguration.java |  14 +-
 ...esServiceCallServiceDiscoveryConfiguration.java |  15 +-
 .../cloud/ServiceCallConfigurationDefinition.java  |  14 +-
 .../camel/model/cloud/ServiceCallDefinition.java   |  14 +-
 .../camel/model/dataformat/BindyDataFormat.java    |  92 ++++++--
 .../camel/model/dataformat/CsvDataFormat.java      | 107 +++++----
 .../camel/model/dataformat/FhirDataformat.java     |  61 +++---
 .../camel/model/dataformat/FlatpackDataFormat.java |  29 +--
 .../camel/model/dataformat/GrokDataFormat.java     |  24 +-
 .../camel/model/dataformat/HL7DataFormat.java      |  13 +-
 .../camel/model/dataformat/IcalDataFormat.java     |   7 +-
 .../camel/model/dataformat/JaxbDataFormat.java     |  52 +++--
 .../camel/model/dataformat/JsonDataFormat.java     | 188 ++++++++++++++--
 .../camel/model/dataformat/LZFDataFormat.java      |   7 +-
 .../model/dataformat/MimeMultipartDataFormat.java  |  21 +-
 .../camel/model/dataformat/TarFileDataFormat.java  |  21 +-
 .../model/dataformat/TidyMarkupDataFormat.java     |   7 +-
 .../dataformat/UniVocityAbstractDataFormat.java    |  59 ++---
 .../model/dataformat/UniVocityCsvDataFormat.java   |   7 +-
 .../dataformat/UniVocityFixedWidthDataFormat.java  |  14 +-
 .../model/dataformat/XMLSecurityDataFormat.java    |  15 +-
 .../camel/model/dataformat/XmlRpcDataFormat.java   |   7 +-
 .../camel/model/dataformat/YAMLDataFormat.java     |  24 +-
 .../model/dataformat/YAMLTypeFilterDefinition.java |   7 +-
 .../model/dataformat/ZipDeflaterDataFormat.java    |   8 +-
 .../camel/model/dataformat/ZipFileDataFormat.java  |  21 +-
 .../apache/camel/model/rest/RestDefinition.java    |  13 +-
 .../camel/model/rest/RestSecurityApiKey.java       |  22 +-
 .../apache/camel/reifier/OnCompletionReifier.java  |   2 +-
 .../org/apache/camel/reifier/RouteReifier.java     |   6 +-
 .../camel/reifier/SetExchangePatternReifier.java   |   3 +-
 .../org/apache/camel/reifier/ThreadsReifier.java   |   2 +-
 .../org/apache/camel/reifier/ToDynamicReifier.java |   3 +
 .../reifier/dataformat/FhirDataFormatReifier.java  |  10 +-
 .../reifier/dataformat/GrokDataFormatReifier.java  |   6 +-
 .../reifier/dataformat/HL7DataFormatReifier.java   |   2 +-
 .../reifier/dataformat/YAMLDataFormatReifier.java  |  10 +-
 .../core/xml/AbstractCamelContextFactoryBean.java  |   8 +-
 .../java/org/apache/camel/xml/in/ModelParser.java  | 197 ++++++++---------
 .../modules/ROOT/pages/fhirJson-dataformat.adoc    |   2 +-
 .../modules/ROOT/pages/fhirXml-dataformat.adoc     |   2 +-
 98 files changed, 1555 insertions(+), 655 deletions(-)

diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/classtype/BindyCsvClassTypeAsStringTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/classtype/BindyCsvClassTypeAsStringTest.java
index 608a7b9..7aad399 100644
--- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/classtype/BindyCsvClassTypeAsStringTest.java
+++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/classtype/BindyCsvClassTypeAsStringTest.java
@@ -107,10 +107,10 @@ public class BindyCsvClassTypeAsStringTest extends CamelTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                BindyDataFormat bindy = new BindyDataFormat();
-                bindy.setClassType(org.apache.camel.dataformat.bindy.model.simple.oneclass.Order.class);
-                bindy.setLocale("en");
-                bindy.setType(BindyType.Csv);
+                BindyDataFormat bindy = new BindyDataFormat()
+                        .classType(org.apache.camel.dataformat.bindy.model.simple.oneclass.Order.class)
+                        .locale("en")
+                        .csv();
 
                 from("direct:in")
                     .marshal(bindy)
diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/classtype/BindyCsvClassTypeTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/classtype/BindyCsvClassTypeTest.java
index f8141b7..cd8a5e1 100644
--- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/classtype/BindyCsvClassTypeTest.java
+++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/classtype/BindyCsvClassTypeTest.java
@@ -105,10 +105,10 @@ public class BindyCsvClassTypeTest extends CamelTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                BindyDataFormat bindy = new BindyDataFormat();
-                bindy.setClassType(Order.class);
-                bindy.setLocale("en");
-                bindy.setType(BindyType.Csv);
+                BindyDataFormat bindy = new BindyDataFormat()
+                        .classType(Order.class)
+                        .locale("en")
+                        .csv();
 
                 from("direct:in")
                     .marshal(bindy)
diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallDslTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallDslTest.java
index 7caf02f..f72c730 100644
--- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallDslTest.java
+++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallDslTest.java
@@ -94,10 +94,10 @@ public class BindySimpleCsvMarshallDslTest extends AbstractJUnit4SpringContextTe
 
         @Override
         public void configure() {
-            BindyDataFormat bindy = new BindyDataFormat();
-            bindy.setLocale("en");
-            bindy.setClassType(org.apache.camel.dataformat.bindy.model.simple.oneclass.Order.class);
-            bindy.setType(BindyType.Csv);
+            BindyDataFormat bindy = new BindyDataFormat()
+                    .classType(org.apache.camel.dataformat.bindy.model.simple.oneclass.Order.class)
+                    .locale("en")
+                    .csv();
 
             from("direct:start").
                 marshal(bindy)
diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/converter/BindyConverterTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/converter/BindyConverterTest.java
index 4c6c3f6..f39368b 100644
--- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/converter/BindyConverterTest.java
+++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/converter/BindyConverterTest.java
@@ -190,9 +190,9 @@ public class BindyConverterTest extends CamelTestSupport {
         RouteBuilder routeBuilder = new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                BindyDataFormat bindy = new BindyDataFormat();
-                bindy.setClassType(DataModel.class);
-                bindy.setType(BindyType.Fixed);
+                BindyDataFormat bindy = new BindyDataFormat()
+                        .classType(DataModel.class)
+                        .type(BindyType.Fixed);
 
                 from(URI_DIRECT_MARSHALL)
                     .marshal(bindy)
@@ -201,9 +201,9 @@ public class BindyConverterTest extends CamelTestSupport {
                     .unmarshal().bindy(BindyType.Fixed, DataModel.class)
                     .to(URI_MOCK_UNMARSHALL_RESULT);
 
-                BindyDataFormat bindy2 = new BindyDataFormat();
-                bindy2.setClassType(AllCombinations.class);
-                bindy2.setType(BindyType.Fixed);
+                BindyDataFormat bindy2 = new BindyDataFormat()
+                        .classType(AllCombinations.class)
+                        .type(BindyType.Fixed);
                 from(URI_DIRECT_THROUGH)
                         .marshal(bindy2)
                         .unmarshal().bindy(BindyType.Fixed, AllCombinations.class)
diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/delimited/BindyFixedLengthDelimitedFieldTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/delimited/BindyFixedLengthDelimitedFieldTest.java
index 6f06488..6725748 100644
--- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/delimited/BindyFixedLengthDelimitedFieldTest.java
+++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/delimited/BindyFixedLengthDelimitedFieldTest.java
@@ -153,10 +153,10 @@ public class BindyFixedLengthDelimitedFieldTest extends CamelTestSupport {
 
             @Override
             public void configure() throws Exception {
-                BindyDataFormat bindy = new BindyDataFormat();
-                bindy.setClassType(BindyFixedLengthDelimitedFieldTest.Order.class);
-                bindy.setLocale("en");
-                bindy.setType(BindyType.Fixed);
+                BindyDataFormat bindy = new BindyDataFormat()
+                        .classType(BindyFixedLengthDelimitedFieldTest.Order.class)
+                        .locale("en")
+                        .fixed();
 
                 from(URI_DIRECT_MARSHALL)
                     .marshal(bindy)
diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/dynamic/BindyFixedLengthDynamicFieldTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/dynamic/BindyFixedLengthDynamicFieldTest.java
index 61c29e1..77ec724 100644
--- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/dynamic/BindyFixedLengthDynamicFieldTest.java
+++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/dynamic/BindyFixedLengthDynamicFieldTest.java
@@ -124,10 +124,10 @@ public class BindyFixedLengthDynamicFieldTest extends CamelTestSupport {
 
             @Override
             public void configure() throws Exception {
-                BindyDataFormat bindy = new BindyDataFormat();
-                bindy.setLocale("en");
-                bindy.setClassType(BindyFixedLengthDynamicFieldTest.Order.class);
-                bindy.setType(BindyType.Fixed);
+                BindyDataFormat bindy = new BindyDataFormat()
+                        .locale("en")
+                        .classType(BindyFixedLengthDynamicFieldTest.Order.class)
+                        .fixed();
 
                 from(URI_DIRECT_MARSHALL)
                     .marshal(bindy)
diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/headerfooter/BindySimpleFixedLengthHeaderFooterTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/headerfooter/BindySimpleFixedLengthHeaderFooterTest.java
index bb5d7850..072cf36 100644
--- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/headerfooter/BindySimpleFixedLengthHeaderFooterTest.java
+++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/headerfooter/BindySimpleFixedLengthHeaderFooterTest.java
@@ -208,10 +208,10 @@ public class BindySimpleFixedLengthHeaderFooterTest extends CamelTestSupport {
 
             @Override
             public void configure() throws Exception {
-                BindyDataFormat bindy = new BindyDataFormat();
-                bindy.setClassType(Order.class);
-                bindy.setLocale("en");
-                bindy.setType(BindyType.Fixed);
+                BindyDataFormat bindy = new BindyDataFormat()
+                        .classType(Order.class)
+                        .locale("en")
+                        .type(BindyType.Fixed);
 
                 from(URI_DIRECT_MARSHALL)
                     .marshal(bindy)
diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/ignoretrailing/BindySimpleIgnoreTrailingCharsTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/ignoretrailing/BindySimpleIgnoreTrailingCharsTest.java
index 40d0f3a..a4f2664 100644
--- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/ignoretrailing/BindySimpleIgnoreTrailingCharsTest.java
+++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/ignoretrailing/BindySimpleIgnoreTrailingCharsTest.java
@@ -84,7 +84,7 @@ public class BindySimpleIgnoreTrailingCharsTest extends CamelTestSupport {
                 BindyDataFormat bindy = new BindyDataFormat();
                 bindy.setClassType(BindySimpleIgnoreTrailingCharsTest.Order.class);
                 bindy.setLocale("en");
-                bindy.setType(BindyType.Fixed);
+                bindy.type(BindyType.Fixed);
 
                 from(URI_DIRECT_MARSHALL)
                     .marshal(bindy)
diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/implied/BindyImpliedTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/implied/BindyImpliedTest.java
index 1663648..a30772d 100644
--- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/implied/BindyImpliedTest.java
+++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/implied/BindyImpliedTest.java
@@ -111,7 +111,7 @@ public class BindyImpliedTest extends AbstractJUnit4SpringContextTests {
             BindyDataFormat bindy = new BindyDataFormat();
             bindy.setClassType(Record.class);
             bindy.setLocale("en");
-            bindy.setType(BindyType.Fixed);
+            bindy.type(BindyType.Fixed);
 
             from(URI_DIRECT_MARSHALL)
                 .marshal(bindy)
diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/link/BindySimpleFixedLengthWithLinkTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/link/BindySimpleFixedLengthWithLinkTest.java
index 10350ea..479f021 100644
--- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/link/BindySimpleFixedLengthWithLinkTest.java
+++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/link/BindySimpleFixedLengthWithLinkTest.java
@@ -106,7 +106,7 @@ public class BindySimpleFixedLengthWithLinkTest extends CamelTestSupport {
                 BindyDataFormat bindy = new BindyDataFormat();
                 bindy.setClassType(Order.class);
                 bindy.setLocale("en");
-                bindy.setType(BindyType.Fixed);
+                bindy.type(BindyType.Fixed);
 
                 from(URI_DIRECT_UNMARSHALL)
                         .unmarshal(bindy)
diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/marshall/simple/BindySimpleFixedLengthMarshallTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/marshall/simple/BindySimpleFixedLengthMarshallTest.java
index ac033a1..6f88209 100644
--- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/marshall/simple/BindySimpleFixedLengthMarshallTest.java
+++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/marshall/simple/BindySimpleFixedLengthMarshallTest.java
@@ -104,7 +104,7 @@ public class BindySimpleFixedLengthMarshallTest extends AbstractJUnit4SpringCont
             BindyDataFormat bindy = new BindyDataFormat();
             bindy.setLocale("en");
             bindy.setClassType(Order.class);
-            bindy.setType(BindyType.Fixed);
+            bindy.type(BindyType.Fixed);
 
             from(URI_DIRECT_START)
                     .marshal(bindy)
diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/marshall/simple/BindySimpleFixedLengthObjectMarshallTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/marshall/simple/BindySimpleFixedLengthObjectMarshallTest.java
index 62a8dd8..ce31c00 100644
--- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/marshall/simple/BindySimpleFixedLengthObjectMarshallTest.java
+++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/marshall/simple/BindySimpleFixedLengthObjectMarshallTest.java
@@ -79,7 +79,7 @@ public class BindySimpleFixedLengthObjectMarshallTest extends AbstractJUnit4Spri
                     BindyDataFormat bindy = new BindyDataFormat();
                     bindy.setLocale("en");
                     bindy.setClassType(Order.class);
-                    bindy.setType(BindyType.Fixed);
+                    bindy.type(BindyType.Fixed);
 
                     from(URI_DIRECT_START)
                             .marshal(bindy)
diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/number/BindyNumberTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/number/BindyNumberTest.java
index 0f702dd..9049419 100644
--- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/number/BindyNumberTest.java
+++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/number/BindyNumberTest.java
@@ -108,7 +108,7 @@ public class BindyNumberTest extends AbstractJUnit4SpringContextTests {
             BindyDataFormat bindy = new BindyDataFormat();
             bindy.setClassType(DataModel.class);
             bindy.setLocale("en");
-            bindy.setType(BindyType.Fixed);
+            bindy.type(BindyType.Fixed);
 
             from(URI_DIRECT_MARSHALL)
                 .marshal(bindy)
diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/ordinal/BindySimpleFixedLengthOrdinalPosTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/ordinal/BindySimpleFixedLengthOrdinalPosTest.java
index 6a68c22..0ad28ad 100644
--- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/ordinal/BindySimpleFixedLengthOrdinalPosTest.java
+++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/ordinal/BindySimpleFixedLengthOrdinalPosTest.java
@@ -111,7 +111,7 @@ public class BindySimpleFixedLengthOrdinalPosTest extends CamelTestSupport {
                 BindyDataFormat bindy = new BindyDataFormat();
                 bindy.setClassType(BindySimpleFixedLengthOrdinalPosTest.Order.class);
                 bindy.setLocale("en");
-                bindy.setType(BindyType.Fixed);
+                bindy.type(BindyType.Fixed);
 
                 from(URI_DIRECT_MARSHALL)
                     .marshal(bindy)
diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/skipfields/BindySimpleSkipFieldsTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/skipfields/BindySimpleSkipFieldsTest.java
index aa6e562..e15743a 100644
--- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/skipfields/BindySimpleSkipFieldsTest.java
+++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/skipfields/BindySimpleSkipFieldsTest.java
@@ -84,7 +84,7 @@ public class BindySimpleSkipFieldsTest extends CamelTestSupport {
                 BindyDataFormat bindy = new BindyDataFormat();
                 bindy.setClassType(BindySimpleSkipFieldsTest.Order.class);
                 bindy.setLocale("en");
-                bindy.setType(BindyType.Fixed);
+                bindy.type(BindyType.Fixed);
 
                 from(URI_DIRECT_MARSHALL)
                     .marshal(bindy)
diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/skipheader/BindyFixedLengthHeaderFooterSkipHeaderTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/skipheader/BindyFixedLengthHeaderFooterSkipHeaderTest.java
index 50b3637..51efc29 100644
--- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/skipheader/BindyFixedLengthHeaderFooterSkipHeaderTest.java
+++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/skipheader/BindyFixedLengthHeaderFooterSkipHeaderTest.java
@@ -155,7 +155,7 @@ public class BindyFixedLengthHeaderFooterSkipHeaderTest extends CamelTestSupport
                 BindyDataFormat bindy = new BindyDataFormat();
                 bindy.setClassType(Order.class);
                 bindy.setLocale("en");
-                bindy.setType(BindyType.Fixed);
+                bindy.type(BindyType.Fixed);
 
                 from(URI_DIRECT_MARSHALL)
                     .marshal(bindy)
diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/number/grouping/BindyBigDecimalGroupingUnmarshallTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/number/grouping/BindyBigDecimalGroupingUnmarshallTest.java
index e1fe2d5..098f24d 100644
--- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/number/grouping/BindyBigDecimalGroupingUnmarshallTest.java
+++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/number/grouping/BindyBigDecimalGroupingUnmarshallTest.java
@@ -65,10 +65,10 @@ public class BindyBigDecimalGroupingUnmarshallTest extends CamelTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                BindyDataFormat bindy = new BindyDataFormat();
-                bindy.setType(BindyType.Csv);
-                bindy.setClassType(NumberModel.class);
-                bindy.setLocale("en");
+                BindyDataFormat bindy = new BindyDataFormat()
+                        .type(BindyType.Csv)
+                        .classType(NumberModel.class)
+                        .locale("en");
 
                 from(URI_DIRECT_START)
                     .unmarshal(bindy)
diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/number/rounding/BindyBigDecimalRoundingUnmarshallTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/number/rounding/BindyBigDecimalRoundingUnmarshallTest.java
index 29736df..161f07f 100644
--- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/number/rounding/BindyBigDecimalRoundingUnmarshallTest.java
+++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/number/rounding/BindyBigDecimalRoundingUnmarshallTest.java
@@ -66,10 +66,10 @@ public class BindyBigDecimalRoundingUnmarshallTest extends CamelTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                BindyDataFormat bindy = new BindyDataFormat();
-                bindy.setType(BindyType.Csv);
-                bindy.setClassType(NumberModel.class);
-                bindy.setLocale("en");
+                BindyDataFormat bindy = new BindyDataFormat()
+                        .type(BindyType.Csv)
+                        .classType(NumberModel.class)
+                        .locale("en");
 
                 from(URI_DIRECT_START)
                     .unmarshal(bindy)
diff --git a/components/camel-disruptor/src/test/java/org/apache/camel/component/disruptor/MulticastDisruptorComponentTest.java b/components/camel-disruptor/src/test/java/org/apache/camel/component/disruptor/MulticastDisruptorComponentTest.java
index c9ae630..1685074 100644
--- a/components/camel-disruptor/src/test/java/org/apache/camel/component/disruptor/MulticastDisruptorComponentTest.java
+++ b/components/camel-disruptor/src/test/java/org/apache/camel/component/disruptor/MulticastDisruptorComponentTest.java
@@ -114,9 +114,9 @@ public class MulticastDisruptorComponentTest extends CamelTestSupport {
             @Override
             public void configure() throws Exception {
                 from("disruptor:test?multipleConsumers=true").to("mock:result1")
-                        .setShutdownRoute(ShutdownRoute.Defer);
+                        .shutdownRoute(ShutdownRoute.Defer);
                 from("disruptor:test?multipleConsumers=true").to("mock:result2")
-                        .setShutdownRoute(ShutdownRoute.Defer);
+                        .shutdownRoute(ShutdownRoute.Defer);
 //                from("disruptor:testAsynchronous").process(threadCounter).to("mock:result");
 //                from("disruptor:testMultipleConsumers?concurrentConsumers=4").process(threadCounter).to("mock:result");
             }
diff --git a/components/camel-fhir/camel-fhir-component/src/generated/resources/org/apache/camel/component/fhir/fhirJson.json b/components/camel-fhir/camel-fhir-component/src/generated/resources/org/apache/camel/component/fhir/fhirJson.json
index c9a744c..8c176d1 100644
--- a/components/camel-fhir/camel-fhir-component/src/generated/resources/org/apache/camel/component/fhir/fhirJson.json
+++ b/components/camel-fhir/camel-fhir-component/src/generated/resources/org/apache/camel/component/fhir/fhirJson.json
@@ -27,7 +27,7 @@
     "overrideResourceIdWithBundleEntryFullUrl": { "kind": "attribute", "displayName": "Override Resource Id With Bundle Entry Full Url", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "If set to true (which is the default), the Bundle.entry.fullUrl will override the Bundle.entry.resource's resource id if the fullUrl is defined. This behavior happens when parsing the source data into a Bund [...]
     "summaryMode": { "kind": "attribute", "displayName": "Summary Mode", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "If set to true (default is false) only elements marked by the FHIR specification as being summary elements will be included." },
     "suppressNarratives": { "kind": "attribute", "displayName": "Suppress Narratives", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "If set to true (default is false), narratives will not be included in the encoded values." },
-    "dontStripVersionsFromReferencesAtPaths": { "kind": "attribute", "displayName": "Dont Strip Versions From References At Paths", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "secret": false, "description": "If supplied value(s), any resource references at the specified paths will have their resource versions encoded instead of being automatically stripped during the encoding process. This setting has no effect on the parsing  [...]
+    "dontStripVersionsFromReferencesAtPaths": { "kind": "attribute", "displayName": "Dont Strip Versions From References At Paths", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "secret": false, "description": "If supplied value(s), any resource references at the specified paths will have their resource versions encoded instead of being automatically stripped during the encoding process. This setting has no effect on the parsing  [...]
     "contentTypeHeader": { "kind": "attribute", "displayName": "Content Type Header", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the data format should set the Content-Type header with the type from the data format if the data format is capable of doing so. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JS [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The id of this node" }
   }
diff --git a/components/camel-fhir/camel-fhir-component/src/generated/resources/org/apache/camel/component/fhir/fhirXml.json b/components/camel-fhir/camel-fhir-component/src/generated/resources/org/apache/camel/component/fhir/fhirXml.json
index 60e9a3b..29c44d1 100644
--- a/components/camel-fhir/camel-fhir-component/src/generated/resources/org/apache/camel/component/fhir/fhirXml.json
+++ b/components/camel-fhir/camel-fhir-component/src/generated/resources/org/apache/camel/component/fhir/fhirXml.json
@@ -27,7 +27,7 @@
     "overrideResourceIdWithBundleEntryFullUrl": { "kind": "attribute", "displayName": "Override Resource Id With Bundle Entry Full Url", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "If set to true (which is the default), the Bundle.entry.fullUrl will override the Bundle.entry.resource's resource id if the fullUrl is defined. This behavior happens when parsing the source data into a Bund [...]
     "summaryMode": { "kind": "attribute", "displayName": "Summary Mode", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "If set to true (default is false) only elements marked by the FHIR specification as being summary elements will be included." },
     "suppressNarratives": { "kind": "attribute", "displayName": "Suppress Narratives", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "If set to true (default is false), narratives will not be included in the encoded values." },
-    "dontStripVersionsFromReferencesAtPaths": { "kind": "attribute", "displayName": "Dont Strip Versions From References At Paths", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "secret": false, "description": "If supplied value(s), any resource references at the specified paths will have their resource versions encoded instead of being automatically stripped during the encoding process. This setting has no effect on the parsing  [...]
+    "dontStripVersionsFromReferencesAtPaths": { "kind": "attribute", "displayName": "Dont Strip Versions From References At Paths", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "secret": false, "description": "If supplied value(s), any resource references at the specified paths will have their resource versions encoded instead of being automatically stripped during the encoding process. This setting has no effect on the parsing  [...]
     "contentTypeHeader": { "kind": "attribute", "displayName": "Content Type Header", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the data format should set the Content-Type header with the type from the data format if the data format is capable of doing so. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JS [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The id of this node" }
   }
diff --git a/components/camel-fhir/camel-fhir-component/src/main/docs/fhirJson-dataformat.adoc b/components/camel-fhir/camel-fhir-component/src/main/docs/fhirJson-dataformat.adoc
index 0ca245d..ec53ef9 100644
--- a/components/camel-fhir/camel-fhir-component/src/main/docs/fhirJson-dataformat.adoc
+++ b/components/camel-fhir/camel-fhir-component/src/main/docs/fhirJson-dataformat.adoc
@@ -28,7 +28,7 @@ The FHIR JSon dataformat supports 13 options, which are listed below.
 | overrideResourceIdWithBundleEntryFullUrl | false | Boolean | If set to true (which is the default), the Bundle.entry.fullUrl will override the Bundle.entry.resource's resource id if the fullUrl is defined. This behavior happens when parsing the source data into a Bundle object. Set this to false if this is not the desired behavior (e.g. the client code wishes to perform additional validation checks between the fullUrl and the resource id).
 | summaryMode | false | Boolean | If set to true (default is false) only elements marked by the FHIR specification as being summary elements will be included.
 | suppressNarratives | false | Boolean | If set to true (default is false), narratives will not be included in the encoded values.
-| dontStripVersionsFromReferencesAtPaths |  | List | If supplied value(s), any resource references at the specified paths will have their resource versions encoded instead of being automatically stripped during the encoding process. This setting has no effect on the parsing process. This method provides a finer-grained level of control than setStripVersionsFromReferences(Boolean) and any paths specified by this method will be encoded even if setStripVersionsFromReferences(Boolean) has be [...]
+| dontStripVersionsFromReferencesAtPaths |  | List | If supplied value(s), any resource references at the specified paths will have their resource versions encoded instead of being automatically stripped during the encoding process. This setting has no effect on the parsing process. This method provides a finer-grained level of control than setStripVersionsFromReferences(String) and any paths specified by this method will be encoded even if setStripVersionsFromReferences(String) has been [...]
 | contentTypeHeader | false | Boolean | Whether the data format should set the Content-Type header with the type from the data format if the data format is capable of doing so. For example application/xml for data formats marshalling to XML, or application/json for data formats marshalling to JSon etc.
 |===
 // dataformat options: END
diff --git a/components/camel-fhir/camel-fhir-component/src/main/docs/fhirXml-dataformat.adoc b/components/camel-fhir/camel-fhir-component/src/main/docs/fhirXml-dataformat.adoc
index 8d5b7cf..740f9f9 100644
--- a/components/camel-fhir/camel-fhir-component/src/main/docs/fhirXml-dataformat.adoc
+++ b/components/camel-fhir/camel-fhir-component/src/main/docs/fhirXml-dataformat.adoc
@@ -28,7 +28,7 @@ The FHIR XML dataformat supports 13 options, which are listed below.
 | overrideResourceIdWithBundleEntryFullUrl | false | Boolean | If set to true (which is the default), the Bundle.entry.fullUrl will override the Bundle.entry.resource's resource id if the fullUrl is defined. This behavior happens when parsing the source data into a Bundle object. Set this to false if this is not the desired behavior (e.g. the client code wishes to perform additional validation checks between the fullUrl and the resource id).
 | summaryMode | false | Boolean | If set to true (default is false) only elements marked by the FHIR specification as being summary elements will be included.
 | suppressNarratives | false | Boolean | If set to true (default is false), narratives will not be included in the encoded values.
-| dontStripVersionsFromReferencesAtPaths |  | List | If supplied value(s), any resource references at the specified paths will have their resource versions encoded instead of being automatically stripped during the encoding process. This setting has no effect on the parsing process. This method provides a finer-grained level of control than setStripVersionsFromReferences(Boolean) and any paths specified by this method will be encoded even if setStripVersionsFromReferences(Boolean) has be [...]
+| dontStripVersionsFromReferencesAtPaths |  | List | If supplied value(s), any resource references at the specified paths will have their resource versions encoded instead of being automatically stripped during the encoding process. This setting has no effect on the parsing process. This method provides a finer-grained level of control than setStripVersionsFromReferences(String) and any paths specified by this method will be encoded even if setStripVersionsFromReferences(String) has been [...]
 | contentTypeHeader | false | Boolean | Whether the data format should set the Content-Type header with the type from the data format if the data format is capable of doing so. For example application/xml for data formats marshalling to XML, or application/json for data formats marshalling to JSon etc.
 |===
 // dataformat options: END
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/RestJettyBindingModeOffWithContractTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/RestJettyBindingModeOffWithContractTest.java
index 31fe69d..4bb3bf9 100644
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/RestJettyBindingModeOffWithContractTest.java
+++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/RestJettyBindingModeOffWithContractTest.java
@@ -68,7 +68,7 @@ public class RestJettyBindingModeOffWithContractTest extends BaseJettyTest {
 
                 JsonDataFormat jsondf = new JsonDataFormat();
                 jsondf.setLibrary(JsonLibrary.Jackson);
-                jsondf.setAllowUnmarshallType(true);
+                jsondf.setAllowUnmarshallType(Boolean.toString(true));
                 jsondf.setUnmarshalType(UserPojoEx.class);
                 transformer().fromType("json").toType(UserPojoEx.class).withDataFormat(jsondf);
                 transformer().fromType(UserPojoEx.class).toType("json").withDataFormat(jsondf);
diff --git a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/rest/RestNettyHttpBindingModeOffWithContractTest.java b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/rest/RestNettyHttpBindingModeOffWithContractTest.java
index ea71032..0664211 100644
--- a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/rest/RestNettyHttpBindingModeOffWithContractTest.java
+++ b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/rest/RestNettyHttpBindingModeOffWithContractTest.java
@@ -57,10 +57,10 @@ public class RestNettyHttpBindingModeOffWithContractTest extends BaseNettyTest {
             public void configure() throws Exception {
                 restConfiguration().component("netty-http").host("localhost").port(getPort()).bindingMode(RestBindingMode.off);
 
-                JsonDataFormat jsondf = new JsonDataFormat();
-                jsondf.setLibrary(JsonLibrary.Jackson);
-                jsondf.setAllowUnmarshallType(true);
-                jsondf.setUnmarshalType(UserPojoEx.class);
+                JsonDataFormat jsondf = new JsonDataFormat()
+                        .library(JsonLibrary.Jackson)
+                        .allowUnmarshallType(true)
+                        .unmarshalType(UserPojoEx.class);
                 transformer()
                     .fromType("json")
                     .toType(UserPojoEx.class)
diff --git a/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java b/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java
index cfcfd43..dc74fe1 100644
--- a/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java
+++ b/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java
@@ -229,7 +229,7 @@ public class RestOpenApiReader {
                     auth.type = "apiKey";
                     auth.description = rs.getDescription();
                     auth.name = rs.getName();
-                    if (rs.getInHeader() != null && rs.getInHeader()) {
+                    if (rs.getInHeader() != null && Boolean.parseBoolean(rs.getInHeader())) {
                         auth.in = "header";
                     } else {
                         auth.in = "query";
@@ -303,7 +303,7 @@ public class RestOpenApiReader {
                     auth.type = "apiKey";
                     auth.description = rs.getDescription();
                     auth.name = rs.getName();
-                    if (rs.getInHeader() != null && rs.getInHeader()) {
+                    if (rs.getInHeader() != null && Boolean.parseBoolean(rs.getInHeader())) {
                         auth.in = "header";
                     } else {
                         auth.in = "query";
diff --git a/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/rest/RestServletBindingModeOffWithContractTest.java b/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/rest/RestServletBindingModeOffWithContractTest.java
index 68619a2..7755775 100644
--- a/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/rest/RestServletBindingModeOffWithContractTest.java
+++ b/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/rest/RestServletBindingModeOffWithContractTest.java
@@ -67,7 +67,7 @@ public class RestServletBindingModeOffWithContractTest extends ServletCamelRoute
 
                 JsonDataFormat jsondf = new JsonDataFormat();
                 jsondf.setLibrary(JsonLibrary.Jackson);
-                jsondf.setAllowUnmarshallType(true);
+                jsondf.setAllowUnmarshallType(Boolean.toString(true));
                 jsondf.setUnmarshalType(UserPojoEx.class);
                 transformer()
                     .fromType("json")
diff --git a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java
index 2897ac4..2d47678 100644
--- a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java
+++ b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java
@@ -147,7 +147,7 @@ public class RestSwaggerReader {
                     ApiKeyAuthDefinition auth = new ApiKeyAuthDefinition();
                     auth.setDescription(rs.getDescription());
                     auth.setName(rs.getName());
-                    if (rs.getInHeader() != null && rs.getInHeader()) {
+                    if (rs.getInHeader() != null && Boolean.parseBoolean(rs.getInHeader())) {
                         auth.setIn(In.HEADER);
                     } else {
                         auth.setIn(In.QUERY);
diff --git a/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/rest/RestUndertowHttpBindingModeOffWithContractTest.java b/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/rest/RestUndertowHttpBindingModeOffWithContractTest.java
index 013004e..514ba89 100644
--- a/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/rest/RestUndertowHttpBindingModeOffWithContractTest.java
+++ b/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/rest/RestUndertowHttpBindingModeOffWithContractTest.java
@@ -59,7 +59,7 @@ public class RestUndertowHttpBindingModeOffWithContractTest extends BaseUndertow
 
                 JsonDataFormat jsondf = new JsonDataFormat();
                 jsondf.setLibrary(JsonLibrary.Jackson);
-                jsondf.setAllowUnmarshallType(true);
+                jsondf.allowUnmarshallType(true);
                 jsondf.setUnmarshalType(UserPojoEx.class);
                 transformer()
                     .fromType("json")
diff --git a/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/ServiceCallProcessorFactory.java b/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/ServiceCallProcessorFactory.java
index 0aab58c..367f091 100644
--- a/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/ServiceCallProcessorFactory.java
+++ b/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/ServiceCallProcessorFactory.java
@@ -22,6 +22,7 @@ import java.util.function.Supplier;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
+import org.apache.camel.ExchangePattern;
 import org.apache.camel.Expression;
 import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.Processor;
@@ -124,8 +125,9 @@ public class ServiceCallProcessorFactory extends TypedProcessorFactory<ServiceCa
 
         endpointScheme = ThrowingHelper.applyIfNotEmpty(endpointScheme, camelContext::resolvePropertyPlaceholders, () -> ServiceCallDefinitionConstants.DEFAULT_COMPONENT);
         endpointUri = ThrowingHelper.applyIfNotEmpty(endpointUri, camelContext::resolvePropertyPlaceholders, () -> null);
+        ExchangePattern pattern = CamelContextHelper.parse(camelContext, ExchangePattern.class, definition.getPattern());
 
-        return new DefaultServiceCallProcessor(camelContext, camelContext.resolvePropertyPlaceholders(definition.getName()), endpointScheme, endpointUri, definition.getPattern(),
+        return new DefaultServiceCallProcessor(camelContext, camelContext.resolvePropertyPlaceholders(definition.getName()), endpointScheme, endpointUri, pattern,
                                                loadBalancer, retrieveExpression(camelContext, endpointScheme));
     }
 
diff --git a/core/camel-cloud/src/test/java/org/apache/camel/impl/cloud/CachingServiceDiscoveryTest.java b/core/camel-cloud/src/test/java/org/apache/camel/impl/cloud/CachingServiceDiscoveryTest.java
index 29d4f0b7..b04bb31 100644
--- a/core/camel-cloud/src/test/java/org/apache/camel/impl/cloud/CachingServiceDiscoveryTest.java
+++ b/core/camel-cloud/src/test/java/org/apache/camel/impl/cloud/CachingServiceDiscoveryTest.java
@@ -51,7 +51,7 @@ public class CachingServiceDiscoveryTest extends ContextTestSupport {
         CachingServiceCallServiceDiscoveryConfiguration cachingConf = new CachingServiceCallServiceDiscoveryConfiguration();
         cachingConf.setServiceDiscoveryConfiguration(staticConf);
         cachingConf.timeout(50);
-        cachingConf.setUnits(TimeUnit.MILLISECONDS);
+        cachingConf.setUnits(TimeUnit.MILLISECONDS.name());
 
         CachingServiceDiscovery caching = (CachingServiceDiscovery)cachingConf.newInstance(context);
         StaticServiceDiscovery delegate = (StaticServiceDiscovery)caching.getDelegate();
diff --git a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/cloud/serviceCall.json b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/cloud/serviceCall.json
index 6034b79..df80a61 100644
--- a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/cloud/serviceCall.json
+++ b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/cloud/serviceCall.json
@@ -14,7 +14,7 @@
     "name": { "kind": "attribute", "displayName": "Name", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the name of the service to use" },
     "uri": { "kind": "attribute", "displayName": "Uri", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The uri of the endpoint to send to. The uri can be dynamic computed using the org.apache.camel.language.simple.SimpleLanguage expression." },
     "component": { "kind": "attribute", "displayName": "Component", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "http", "description": "The component to use." },
-    "pattern": { "kind": "attribute", "displayName": "Pattern", "required": false, "type": "enum", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOptionalOut", "InOut" ], "deprecated": false, "secret": false, "description": "Sets the optional ExchangePattern used to invoke this endpoint" },
+    "pattern": { "kind": "attribute", "displayName": "Pattern", "required": true, "type": "enum", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOptionalOut", "InOut" ], "deprecated": false, "secret": false, "description": "Sets the optional ExchangePattern used to invoke this endpoint" },
     "configurationRef": { "kind": "attribute", "displayName": "Configuration Ref", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Refers to a ServiceCall configuration to use" },
     "serviceDiscoveryRef": { "kind": "attribute", "displayName": "Service Discovery Ref", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets a reference to a custom ServiceDiscovery to use." },
     "serviceFilterRef": { "kind": "attribute", "displayName": "Service Filter Ref", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets a reference to a custom ServiceFilter to use." },
diff --git a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/dataformat/fhirJson.json b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/dataformat/fhirJson.json
index 4c15e50..381ac89 100644
--- a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/dataformat/fhirJson.json
+++ b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/dataformat/fhirJson.json
@@ -23,7 +23,7 @@
     "overrideResourceIdWithBundleEntryFullUrl": { "kind": "attribute", "displayName": "Override Resource Id With Bundle Entry Full Url", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "If set to true (which is the default), the Bundle.entry.fullUrl will override the Bundle.entry.resource's resource id if the fullUrl is defined. This behavior happens when parsing the source data into a Bund [...]
     "summaryMode": { "kind": "attribute", "displayName": "Summary Mode", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "If set to true (default is false) only elements marked by the FHIR specification as being summary elements will be included." },
     "suppressNarratives": { "kind": "attribute", "displayName": "Suppress Narratives", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "If set to true (default is false), narratives will not be included in the encoded values." },
-    "dontStripVersionsFromReferencesAtPaths": { "kind": "attribute", "displayName": "Dont Strip Versions From References At Paths", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "secret": false, "description": "If supplied value(s), any resource references at the specified paths will have their resource versions encoded instead of being automatically stripped during the encoding process. This setting has no effect on the parsing  [...]
+    "dontStripVersionsFromReferencesAtPaths": { "kind": "attribute", "displayName": "Dont Strip Versions From References At Paths", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "secret": false, "description": "If supplied value(s), any resource references at the specified paths will have their resource versions encoded instead of being automatically stripped during the encoding process. This setting has no effect on the parsing  [...]
     "contentTypeHeader": { "kind": "attribute", "displayName": "Content Type Header", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the data format should set the Content-Type header with the type from the data format if the data format is capable of doing so. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JS [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The id of this node" }
   }
diff --git a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/dataformat/fhirXml.json b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/dataformat/fhirXml.json
index e5f2a87..610160b 100644
--- a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/dataformat/fhirXml.json
+++ b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/dataformat/fhirXml.json
@@ -23,7 +23,7 @@
     "overrideResourceIdWithBundleEntryFullUrl": { "kind": "attribute", "displayName": "Override Resource Id With Bundle Entry Full Url", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "If set to true (which is the default), the Bundle.entry.fullUrl will override the Bundle.entry.resource's resource id if the fullUrl is defined. This behavior happens when parsing the source data into a Bund [...]
     "summaryMode": { "kind": "attribute", "displayName": "Summary Mode", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "If set to true (default is false) only elements marked by the FHIR specification as being summary elements will be included." },
     "suppressNarratives": { "kind": "attribute", "displayName": "Suppress Narratives", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "If set to true (default is false), narratives will not be included in the encoded values." },
-    "dontStripVersionsFromReferencesAtPaths": { "kind": "attribute", "displayName": "Dont Strip Versions From References At Paths", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "secret": false, "description": "If supplied value(s), any resource references at the specified paths will have their resource versions encoded instead of being automatically stripped during the encoding process. This setting has no effect on the parsing  [...]
+    "dontStripVersionsFromReferencesAtPaths": { "kind": "attribute", "displayName": "Dont Strip Versions From References At Paths", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "secret": false, "description": "If supplied value(s), any resource references at the specified paths will have their resource versions encoded instead of being automatically stripped during the encoding process. This setting has no effect on the parsing  [...]
     "contentTypeHeader": { "kind": "attribute", "displayName": "Content Type Header", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the data format should set the Content-Type header with the type from the data format if the data format is capable of doing so. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JS [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The id of this node" }
   }
diff --git a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/dataformat/typeFilter.json b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/dataformat/typeFilter.json
index 04ef6aa..ebdaf3a 100644
--- a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/dataformat/typeFilter.json
+++ b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/dataformat/typeFilter.json
@@ -11,6 +11,6 @@
   },
   "properties": {
     "value": { "kind": "attribute", "displayName": "Value", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Value of type such as class name or regular expression" },
-    "type": { "kind": "attribute", "displayName": "Type", "required": false, "type": "enum", "javaType": "org.apache.camel.model.dataformat.YAMLTypeFilterType", "enum": [ "regexp", "type" ], "deprecated": false, "secret": false, "description": "Whether to filter by class type or regular expression" }
+    "type": { "kind": "attribute", "displayName": "Type", "required": false, "type": "object", "javaType": "org.apache.camel.model.dataformat.YAMLTypeFilterType", "deprecated": false, "secret": false, "description": "Whether to filter by class type or regular expression" }
   }
 }
diff --git a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/rollback.json b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/rollback.json
index 7ff34a6..933c4b5 100644
--- a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/rollback.json
+++ b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/rollback.json
@@ -11,8 +11,8 @@
     "output": false
   },
   "properties": {
-    "markRollbackOnly": { "kind": "attribute", "displayName": "Mark Rollback Only", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Mark the transaction for rollback only (cannot be overruled to commit)" },
-    "markRollbackOnlyLast": { "kind": "attribute", "displayName": "Mark Rollback Only Last", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Mark only last sub transaction for rollback only. When using sub transactions (if the transaction manager support this)" },
+    "markRollbackOnly": { "kind": "attribute", "displayName": "Mark Rollback Only", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Mark the transaction for rollback only (cannot be overruled to commit)" },
+    "markRollbackOnlyLast": { "kind": "attribute", "displayName": "Mark Rollback Only Last", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Mark only last sub transaction for rollback only. When using sub transactions (if the transaction manager support this)" },
     "message": { "kind": "attribute", "displayName": "Message", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Message to use in rollback exception" },
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the id of this node" },
     "description": { "kind": "element", "displayName": "Description", "required": false, "type": "object", "javaType": "org.apache.camel.model.DescriptionDefinition", "deprecated": false, "secret": false, "description": "Sets the description of this node" }
diff --git a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/routingSlip.json b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/routingSlip.json
index 3bf989f..ba01f3b 100644
--- a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/routingSlip.json
+++ b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/routingSlip.json
@@ -13,8 +13,8 @@
   "properties": {
     "expression": { "kind": "expression", "displayName": "Expression", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "exchangeProperty", "groovy", "header", "hl7terser", "jsonpath", "language", "method", "mvel", "ognl", "ref", "simple", "spel", "tokenize", "xpath", "xquery", "xtokenize" ], "deprecated": false, "secret": false, "description": "Expression to define the routing slip, which defines which endpoin [...]
     "uriDelimiter": { "kind": "attribute", "displayName": "Uri Delimiter", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": ",", "description": "Sets the uri delimiter to use" },
-    "ignoreInvalidEndpoints": { "kind": "attribute", "displayName": "Ignore Invalid Endpoints", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Ignore the invalidate endpoint exception when try to create a producer with that endpoint" },
-    "cacheSize": { "kind": "attribute", "displayName": "Cache Size", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the maximum size used by the org.apache.camel.spi.ProducerCache which is used to cache and reuse producers when using this routing slip, when uris are reused." },
+    "ignoreInvalidEndpoints": { "kind": "attribute", "displayName": "Ignore Invalid Endpoints", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Ignore the invalidate endpoint exception when try to create a producer with that endpoint" },
+    "cacheSize": { "kind": "attribute", "displayName": "Cache Size", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "description": "Sets the maximum size used by the org.apache.camel.spi.ProducerCache which is used to cache and reuse producers when using this routing slip, when uris are reused." },
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the id of this node" },
     "description": { "kind": "element", "displayName": "Description", "required": false, "type": "object", "javaType": "org.apache.camel.model.DescriptionDefinition", "deprecated": false, "secret": false, "description": "Sets the description of this node" }
   }
diff --git a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/saga.json b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/saga.json
index a915a41..8273e45 100644
--- a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/saga.json
+++ b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/saga.json
@@ -11,8 +11,8 @@
     "output": false
   },
   "properties": {
-    "propagation": { "kind": "attribute", "displayName": "Propagation", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "MANDATORY", "NEVER", "NOT_SUPPORTED", "REQUIRED", "REQUIRES_NEW", "SUPPORTS" ], "deprecated": false, "secret": false, "defaultValue": "REQUIRED", "description": "Set the Saga propagation mode (REQUIRED, REQUIRES_NEW, MANDATORY, SUPPORTS, NOT_SUPPORTED, NEVER)." },
-    "completionMode": { "kind": "attribute", "displayName": "Completion Mode", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "AUTO", "MANUAL" ], "deprecated": false, "secret": false, "defaultValue": "AUTO", "description": "Determine how the saga should be considered complete. When set to AUTO, the saga is completed when the exchange that initiates the saga is processed successfully, or compensated when it completes exceptionally. When set to MANUAL, the use [...]
+    "propagation": { "kind": "attribute", "displayName": "Propagation", "required": false, "type": "enum", "javaType": "org.apache.camel.model.SagaPropagation", "enum": [ "MANDATORY", "NEVER", "NOT_SUPPORTED", "REQUIRED", "REQUIRES_NEW", "SUPPORTS" ], "deprecated": false, "secret": false, "defaultValue": "REQUIRED", "description": "Set the Saga propagation mode (REQUIRED, REQUIRES_NEW, MANDATORY, SUPPORTS, NOT_SUPPORTED, NEVER)." },
+    "completionMode": { "kind": "attribute", "displayName": "Completion Mode", "required": false, "type": "enum", "javaType": "org.apache.camel.model.SagaCompletionMode", "enum": [ "AUTO", "MANUAL" ], "deprecated": false, "secret": false, "defaultValue": "AUTO", "description": "Determine how the saga should be considered complete. When set to AUTO, the saga is completed when the exchange that initiates the saga is processed successfully, or compensated when it completes exceptionally. Wh [...]
     "timeoutInMilliseconds": { "kind": "attribute", "displayName": "Timeout In Milliseconds", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "secret": false, "description": "Set the maximum amount of time for the Saga. After the timeout is expired, the saga will be compensated automatically (unless a different decision has been taken in the meantime)." },
     "compensation": { "kind": "element", "displayName": "Compensation", "required": false, "type": "object", "javaType": "org.apache.camel.model.SagaActionUriDefinition", "deprecated": false, "secret": false, "description": "The compensation endpoint URI that must be called to compensate all changes done in the route. The route corresponding to the compensation URI must perform compensation and complete without error. If errors occur during compensation, the saga service may call again t [...]
     "completion": { "kind": "element", "displayName": "Completion", "required": false, "type": "object", "javaType": "org.apache.camel.model.SagaActionUriDefinition", "deprecated": false, "secret": false, "description": "The completion endpoint URI that will be called when the Saga is completed successfully. The route corresponding to the completion URI must perform completion tasks and terminate without error. If errors occur during completion, the saga service may call again the comple [...]
diff --git a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/threadPoolProfile.json b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/threadPoolProfile.json
index 8aa3560..e9ea139 100644
--- a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/threadPoolProfile.json
+++ b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/threadPoolProfile.json
@@ -12,13 +12,13 @@
   },
   "properties": {
     "defaultProfile": { "kind": "attribute", "displayName": "Default Profile", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether this profile is the default thread pool profile" },
-    "poolSize": { "kind": "attribute", "displayName": "Pool Size", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the core pool size" },
-    "maxPoolSize": { "kind": "attribute", "displayName": "Max Pool Size", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the maximum pool size" },
-    "keepAliveTime": { "kind": "attribute", "displayName": "Keep Alive Time", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the keep alive time for idle threads in the pool" },
+    "poolSize": { "kind": "attribute", "displayName": "Pool Size", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "description": "Sets the core pool size" },
+    "maxPoolSize": { "kind": "attribute", "displayName": "Max Pool Size", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "description": "Sets the maximum pool size" },
+    "keepAliveTime": { "kind": "attribute", "displayName": "Keep Alive Time", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "secret": false, "description": "Sets the keep alive time for idle threads in the pool" },
     "timeUnit": { "kind": "attribute", "displayName": "Time Unit", "required": false, "type": "enum", "javaType": "java.util.concurrent.TimeUnit", "enum": [ "DAYS", "HOURS", "MICROSECONDS", "MILLISECONDS", "MINUTES", "NANOSECONDS", "SECONDS" ], "deprecated": false, "secret": false, "description": "Sets the time unit to use for keep alive time By default SECONDS is used." },
-    "maxQueueSize": { "kind": "attribute", "displayName": "Max Queue Size", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the maximum number of tasks in the work queue. Use -1 or Integer.MAX_VALUE for an unbounded queue" },
-    "allowCoreThreadTimeOut": { "kind": "attribute", "displayName": "Allow Core Thread Time Out", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Whether idle core threads is allowed to timeout and therefore can shrink the pool size below the core pool size Is by default false" },
-    "rejectedPolicy": { "kind": "attribute", "displayName": "Rejected Policy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the handler for tasks which cannot be executed by the thread pool." },
+    "maxQueueSize": { "kind": "attribute", "displayName": "Max Queue Size", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "description": "Sets the maximum number of tasks in the work queue. Use -1 or Integer.MAX_VALUE for an unbounded queue" },
+    "allowCoreThreadTimeOut": { "kind": "attribute", "displayName": "Allow Core Thread Time Out", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether idle core threads is allowed to timeout and therefore can shrink the pool size below the core pool size Is by default false" },
+    "rejectedPolicy": { "kind": "attribute", "displayName": "Rejected Policy", "required": false, "type": "object", "javaType": "org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy", "deprecated": false, "secret": false, "description": "Sets the handler for tasks which cannot be executed by the thread pool." },
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the id of this node" },
     "description": { "kind": "element", "displayName": "Description", "required": false, "type": "object", "javaType": "org.apache.camel.model.DescriptionDefinition", "deprecated": false, "secret": false, "description": "Sets the description of this node" }
   }
diff --git a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/threads.json b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/threads.json
index e0a7402..c24873b 100644
--- a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/threads.json
+++ b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/threads.json
@@ -12,12 +12,12 @@
   },
   "properties": {
     "executorServiceRef": { "kind": "attribute", "displayName": "Executor Service Ref", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "To refer to a custom thread pool or use a thread pool profile (as overlay)" },
-    "poolSize": { "kind": "attribute", "displayName": "Pool Size", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the core pool size" },
-    "maxPoolSize": { "kind": "attribute", "displayName": "Max Pool Size", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the maximum pool size" },
-    "keepAliveTime": { "kind": "attribute", "displayName": "Keep Alive Time", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the keep alive time for idle threads" },
-    "timeUnit": { "kind": "attribute", "displayName": "Time Unit", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the keep alive time unit. By default SECONDS is used." },
-    "maxQueueSize": { "kind": "attribute", "displayName": "Max Queue Size", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the maximum number of tasks in the work queue. Use -1 or Integer.MAX_VALUE for an unbounded queue" },
-    "allowCoreThreadTimeOut": { "kind": "attribute", "displayName": "Allow Core Thread Time Out", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Whether idle core threads is allowed to timeout and therefore can shrink the pool size below the core pool size Is by default false" },
+    "poolSize": { "kind": "attribute", "displayName": "Pool Size", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "description": "Sets the core pool size" },
+    "maxPoolSize": { "kind": "attribute", "displayName": "Max Pool Size", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "description": "Sets the maximum pool size" },
+    "keepAliveTime": { "kind": "attribute", "displayName": "Keep Alive Time", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "secret": false, "description": "Sets the keep alive time for idle threads" },
+    "timeUnit": { "kind": "attribute", "displayName": "Time Unit", "required": false, "type": "enum", "javaType": "java.util.concurrent.TimeUnit", "enum": [ "DAYS", "HOURS", "MICROSECONDS", "MILLISECONDS", "MINUTES", "NANOSECONDS", "SECONDS" ], "deprecated": false, "secret": false, "description": "Sets the keep alive time unit. By default SECONDS is used." },
+    "maxQueueSize": { "kind": "attribute", "displayName": "Max Queue Size", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "description": "Sets the maximum number of tasks in the work queue. Use -1 or Integer.MAX_VALUE for an unbounded queue" },
+    "allowCoreThreadTimeOut": { "kind": "attribute", "displayName": "Allow Core Thread Time Out", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether idle core threads is allowed to timeout and therefore can shrink the pool size below the core pool size Is by default false" },
     "threadName": { "kind": "attribute", "displayName": "Thread Name", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "Threads", "description": "Sets the thread name to use." },
     "rejectedPolicy": { "kind": "attribute", "displayName": "Rejected Policy", "required": false, "type": "enum", "javaType": "org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy", "enum": [ "Abort", "CallerRuns", "Discard", "DiscardOldest" ], "deprecated": false, "secret": false, "description": "Sets the handler for tasks which cannot be executed by the thread pool." },
     "callerRunsWhenRejected": { "kind": "attribute", "displayName": "Caller Runs When Rejected", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "true", "description": "Whether or not to use as caller runs as fallback when a task is rejected being added to the thread pool (when its full). This is only used as fallback if no rejectedPolicy has been configured, or the thread pool has no configured rejection handler. [...]
diff --git a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/toD.json b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/toD.json
index 93cf1d6e..2406cb4 100644
--- a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/toD.json
+++ b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/toD.json
@@ -12,10 +12,10 @@
   },
   "properties": {
     "uri": { "kind": "attribute", "displayName": "Uri", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The uri of the endpoint to send to. The uri can be dynamic computed using the org.apache.camel.language.simple.SimpleLanguage expression." },
-    "pattern": { "kind": "attribute", "displayName": "Pattern", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the optional ExchangePattern used to invoke this endpoint" },
-    "cacheSize": { "kind": "attribute", "displayName": "Cache Size", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the maximum size used by the org.apache.camel.spi.ConsumerCache which is used to cache and reuse producers." },
-    "ignoreInvalidEndpoint": { "kind": "attribute", "displayName": "Ignore Invalid Endpoint", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Ignore the invalidate endpoint exception when try to create a producer with that endpoint" },
-    "allowOptimisedComponents": { "kind": "attribute", "displayName": "Allow Optimised Components", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "true", "description": "Whether to allow components to optimise toD if they are org.apache.camel.spi.SendDynamicAware ." },
+    "pattern": { "kind": "attribute", "displayName": "Pattern", "required": false, "type": "enum", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOptionalOut", "InOut" ], "deprecated": false, "secret": false, "description": "Sets the optional ExchangePattern used to invoke this endpoint" },
+    "cacheSize": { "kind": "attribute", "displayName": "Cache Size", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "description": "Sets the maximum size used by the org.apache.camel.spi.ConsumerCache which is used to cache and reuse producers." },
+    "ignoreInvalidEndpoint": { "kind": "attribute", "displayName": "Ignore Invalid Endpoint", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Ignore the invalidate endpoint exception when try to create a producer with that endpoint" },
+    "allowOptimisedComponents": { "kind": "attribute", "displayName": "Allow Optimised Components", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": true, "description": "Whether to allow components to optimise toD if they are org.apache.camel.spi.SendDynamicAware ." },
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the id of this node" },
     "description": { "kind": "element", "displayName": "Description", "required": false, "type": "object", "javaType": "org.apache.camel.model.DescriptionDefinition", "deprecated": false, "secret": false, "description": "Sets the description of this node" }
   }
diff --git a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/wireTap.json b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/wireTap.json
index 31c0c71..31f676e 100644
--- a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/wireTap.json
+++ b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/wireTap.json
@@ -14,14 +14,14 @@
     "processorRef": { "kind": "attribute", "displayName": "Processor Ref", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Reference to a Processor to use for creating a new body as the message to use for wire tapping" },
     "body": { "kind": "expression", "displayName": "Body", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "exchangeProperty", "groovy", "header", "hl7terser", "jsonpath", "language", "method", "mvel", "ognl", "ref", "simple", "spel", "tokenize", "xpath", "xquery", "xtokenize" ], "deprecated": false, "secret": false, "description": "Uses the expression for creating a new body as the message to use for wire t [...]
     "executorServiceRef": { "kind": "attribute", "displayName": "Executor Service Ref", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Uses a custom thread pool" },
-    "copy": { "kind": "attribute", "displayName": "Copy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "true", "description": "Uses a copy of the original exchange" },
-    "dynamicUri": { "kind": "attribute", "displayName": "Dynamic Uri", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "true", "description": "Whether the uri is dynamic or static. If the uri is dynamic then the simple language is used to evaluate a dynamic uri to use as the wire-tap destination, for each incoming message. This works similar to how the toD EIP pattern works. If static then the uri is used as-is as [...]
+    "copy": { "kind": "attribute", "displayName": "Copy", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": true, "description": "Uses a copy of the original exchange" },
+    "dynamicUri": { "kind": "attribute", "displayName": "Dynamic Uri", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": true, "description": "Whether the uri is dynamic or static. If the uri is dynamic then the simple language is used to evaluate a dynamic uri to use as the wire-tap destination, for each incoming message. This works similar to how the toD EIP pattern works. If static then the uri is used as-is as [...]
     "onPrepareRef": { "kind": "attribute", "displayName": "On Prepare Ref", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Uses the Processor when preparing the org.apache.camel.Exchange to be send. This can be used to deep-clone messages that should be send, or any custom logic needed before the exchange is send." },
     "uri": { "kind": "attribute", "displayName": "Uri", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The uri of the endpoint to send to. The uri can be dynamic computed using the org.apache.camel.language.simple.SimpleLanguage expression." },
-    "pattern": { "kind": "attribute", "displayName": "Pattern", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the optional ExchangePattern used to invoke this endpoint" },
-    "cacheSize": { "kind": "attribute", "displayName": "Cache Size", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the maximum size used by the org.apache.camel.spi.ConsumerCache which is used to cache and reuse producers." },
-    "ignoreInvalidEndpoint": { "kind": "attribute", "displayName": "Ignore Invalid Endpoint", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Ignore the invalidate endpoint exception when try to create a producer with that endpoint" },
-    "allowOptimisedComponents": { "kind": "attribute", "displayName": "Allow Optimised Components", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "true", "description": "Whether to allow components to optimise toD if they are org.apache.camel.spi.SendDynamicAware ." },
+    "pattern": { "kind": "attribute", "displayName": "Pattern", "required": false, "type": "enum", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOptionalOut", "InOut" ], "deprecated": false, "secret": false, "description": "Sets the optional ExchangePattern used to invoke this endpoint" },
+    "cacheSize": { "kind": "attribute", "displayName": "Cache Size", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "description": "Sets the maximum size used by the org.apache.camel.spi.ConsumerCache which is used to cache and reuse producers." },
+    "ignoreInvalidEndpoint": { "kind": "attribute", "displayName": "Ignore Invalid Endpoint", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Ignore the invalidate endpoint exception when try to create a producer with that endpoint" },
+    "allowOptimisedComponents": { "kind": "attribute", "displayName": "Allow Optimised Components", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": true, "description": "Whether to allow components to optimise toD if they are org.apache.camel.spi.SendDynamicAware ." },
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the id of this node" },
     "description": { "kind": "element", "displayName": "Description", "required": false, "type": "object", "javaType": "org.apache.camel.model.DescriptionDefinition", "deprecated": false, "secret": false, "description": "Sets the description of this node" }
   }
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/builder/DataFormatClause.java b/core/camel-core-engine/src/main/java/org/apache/camel/builder/DataFormatClause.java
index 8072ea5..aa0b9eb 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/builder/DataFormatClause.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/builder/DataFormatClause.java
@@ -195,7 +195,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
      */
     public T bindy(BindyType type, Class<?> classType) {
         BindyDataFormat bindy = new BindyDataFormat();
-        bindy.setType(type);
+        bindy.setType(type.name());
         bindy.setClassType(classType);
         return dataFormat(bindy);
     }
@@ -210,9 +210,9 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
      */
     public T bindy(BindyType type, Class<?> classType, boolean unwrapSingleInstance) {
         BindyDataFormat bindy = new BindyDataFormat();
-        bindy.setType(type);
+        bindy.setType(type.name());
         bindy.setClassType(classType);
-        bindy.setUnwrapSingleInstance(unwrapSingleInstance);
+        bindy.setUnwrapSingleInstance(Boolean.toString(unwrapSingleInstance));
         return dataFormat(bindy);
     }
 
@@ -285,7 +285,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
      */
     public T hl7(boolean validate) {
         HL7DataFormat hl7 = new HL7DataFormat();
-        hl7.setValidate(validate);
+        hl7.setValidate(Boolean.toString(validate));
         return dataFormat(hl7);
     }
 
@@ -303,7 +303,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
      */
     public T ical(boolean validating) {
         IcalDataFormat ical = new IcalDataFormat();
-        ical.setValidating(validating);
+        ical.setValidating(Boolean.toString(validating));
         return dataFormat(ical);
     }
 
@@ -349,9 +349,9 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
     public T mimeMultipart(String multipartSubType, boolean multipartWithoutAttachment, boolean headersInline, boolean binaryContent) {
         MimeMultipartDataFormat mm = new MimeMultipartDataFormat();
         mm.setMultipartSubType(multipartSubType);
-        mm.setMultipartWithoutAttachment(multipartWithoutAttachment);
-        mm.setHeadersInline(headersInline);
-        mm.setBinaryContent(binaryContent);
+        mm.setMultipartWithoutAttachment(Boolean.toString(multipartWithoutAttachment));
+        mm.setHeadersInline(Boolean.toString(headersInline));
+        mm.setBinaryContent(Boolean.toString(binaryContent));
         return dataFormat(mm);
     }
 
@@ -373,10 +373,10 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
     public T mimeMultipart(String multipartSubType, boolean multipartWithoutAttachment, boolean headersInline, String includeHeaders, boolean binaryContent) {
         MimeMultipartDataFormat mm = new MimeMultipartDataFormat();
         mm.setMultipartSubType(multipartSubType);
-        mm.setMultipartWithoutAttachment(multipartWithoutAttachment);
-        mm.setHeadersInline(headersInline);
+        mm.setMultipartWithoutAttachment(Boolean.toString(multipartWithoutAttachment));
+        mm.setHeadersInline(Boolean.toString(headersInline));
         mm.setIncludeHeaders(includeHeaders);
-        mm.setBinaryContent(binaryContent);
+        mm.setBinaryContent(Boolean.toString(binaryContent));
         return dataFormat(mm);
     }
 
@@ -393,9 +393,9 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
      */
     public T mimeMultipart(boolean multipartWithoutAttachment, boolean headersInline, boolean binaryContent) {
         MimeMultipartDataFormat mm = new MimeMultipartDataFormat();
-        mm.setMultipartWithoutAttachment(multipartWithoutAttachment);
-        mm.setHeadersInline(headersInline);
-        mm.setBinaryContent(binaryContent);
+        mm.setMultipartWithoutAttachment(Boolean.toString(multipartWithoutAttachment));
+        mm.setHeadersInline(Boolean.toString(headersInline));
+        mm.setBinaryContent(Boolean.toString(binaryContent));
         return dataFormat(mm);
     }
 
@@ -574,7 +574,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
      */
     public T json(boolean prettyPrint) {
         JsonDataFormat json = new JsonDataFormat();
-        json.setPrettyPrint(prettyPrint);
+        json.setPrettyPrint(Boolean.toString(prettyPrint));
         return dataFormat(json);
     }
 
@@ -595,7 +595,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
      */
     public T json(JsonLibrary library, boolean prettyPrint) {
         JsonDataFormat json = new JsonDataFormat(library);
-        json.setPrettyPrint(prettyPrint);
+        json.setPrettyPrint(Boolean.toString(prettyPrint));
         return dataFormat(json);
     }
 
@@ -621,7 +621,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
     public T json(JsonLibrary type, Class<?> unmarshalType, boolean prettyPrint) {
         JsonDataFormat json = new JsonDataFormat(type);
         json.setUnmarshalType(unmarshalType);
-        json.setPrettyPrint(prettyPrint);
+        json.setPrettyPrint(Boolean.toString(prettyPrint));
         return dataFormat(json);
     }
 
@@ -649,7 +649,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
         JsonDataFormat json = new JsonDataFormat(JsonLibrary.Jackson);
         json.setUnmarshalType(unmarshalType);
         json.setJsonView(jsonView);
-        json.setPrettyPrint(prettyPrint);
+        json.setPrettyPrint(Boolean.toString(prettyPrint));
         return dataFormat(json);
     }
 
@@ -681,7 +681,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
         json.setUnmarshalType(unmarshalType);
         json.setJsonView(jsonView);
         json.setInclude(include);
-        json.setPrettyPrint(prettyPrint);
+        json.setPrettyPrint(Boolean.toString(prettyPrint));
         return dataFormat(json);
     }
 
@@ -932,7 +932,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
     public T secureXML(String secureTag, boolean secureTagContents, String passPhrase) {
         XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
         xsdf.setSecureTag(secureTag);
-        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setSecureTagContents(Boolean.toString(secureTagContents));
         xsdf.setPassPhrase(passPhrase);
         return dataFormat(xsdf);
     }
@@ -944,7 +944,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
         XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
         xsdf.setSecureTag(secureTag);
         xsdf.setNamespaces(namespaces);
-        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setSecureTagContents(Boolean.toString(secureTagContents));
         xsdf.setPassPhrase(passPhrase);
         return dataFormat(xsdf);
     }
@@ -955,7 +955,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
     public T secureXML(String secureTag, boolean secureTagContents, String passPhrase, String xmlCipherAlgorithm) {
         XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
         xsdf.setSecureTag(secureTag);
-        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setSecureTagContents(Boolean.toString(secureTagContents));
         xsdf.setPassPhrase(passPhrase);
         xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
         return dataFormat(xsdf);
@@ -968,7 +968,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
         XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
         xsdf.setSecureTag(secureTag);
         xsdf.setNamespaces(namespaces);
-        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setSecureTagContents(Boolean.toString(secureTagContents));
         xsdf.setPassPhrase(passPhrase);
         xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
         return dataFormat(xsdf);
@@ -980,7 +980,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
     public T secureXML(String secureTag, boolean secureTagContents, byte[] passPhraseByte) {
         XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
         xsdf.setSecureTag(secureTag);
-        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setSecureTagContents(Boolean.toString(secureTagContents));
         xsdf.setPassPhraseByte(passPhraseByte);
         return dataFormat(xsdf);
     }
@@ -992,7 +992,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
         XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
         xsdf.setSecureTag(secureTag);
         xsdf.setNamespaces(namespaces);
-        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setSecureTagContents(Boolean.toString(secureTagContents));
         xsdf.setPassPhraseByte(passPhraseByte);
         return dataFormat(xsdf);
     }
@@ -1003,7 +1003,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
     public T secureXML(String secureTag, boolean secureTagContents, byte[] passPhraseByte, String xmlCipherAlgorithm) {
         XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
         xsdf.setSecureTag(secureTag);
-        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setSecureTagContents(Boolean.toString(secureTagContents));
         xsdf.setPassPhraseByte(passPhraseByte);
         xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
         return dataFormat(xsdf);
@@ -1016,7 +1016,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
         XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
         xsdf.setSecureTag(secureTag);
         xsdf.setNamespaces(namespaces);
-        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setSecureTagContents(Boolean.toString(secureTagContents));
         xsdf.setPassPhraseByte(passPhraseByte);
         xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
         return dataFormat(xsdf);
@@ -1029,7 +1029,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
                        String keyOrTrustStoreParametersId) {
         XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
         xsdf.setSecureTag(secureTag);
-        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setSecureTagContents(Boolean.toString(secureTagContents));
         xsdf.setRecipientKeyAlias(recipientKeyAlias);
         xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
         xsdf.setKeyCipherAlgorithm(keyCipherAlgorithm);
@@ -1044,7 +1044,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
                        String keyOrTrustStoreParametersId, String keyPassword) {
         XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
         xsdf.setSecureTag(secureTag);
-        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setSecureTagContents(Boolean.toString(secureTagContents));
         xsdf.setRecipientKeyAlias(recipientKeyAlias);
         xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
         xsdf.setKeyCipherAlgorithm(keyCipherAlgorithm);
@@ -1060,7 +1060,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
                        KeyStoreParameters keyOrTrustStoreParameters) {
         XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
         xsdf.setSecureTag(secureTag);
-        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setSecureTagContents(Boolean.toString(secureTagContents));
         xsdf.setRecipientKeyAlias(recipientKeyAlias);
         xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
         xsdf.setKeyCipherAlgorithm(keyCipherAlgorithm);
@@ -1075,7 +1075,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
                        KeyStoreParameters keyOrTrustStoreParameters, String keyPassword) {
         XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
         xsdf.setSecureTag(secureTag);
-        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setSecureTagContents(Boolean.toString(secureTagContents));
         xsdf.setRecipientKeyAlias(recipientKeyAlias);
         xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
         xsdf.setKeyCipherAlgorithm(keyCipherAlgorithm);
@@ -1091,7 +1091,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
                        String keyOrTrustStoreParametersId) {
         XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
         xsdf.setSecureTag(secureTag);
-        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setSecureTagContents(Boolean.toString(secureTagContents));
         xsdf.setRecipientKeyAlias(recipientKeyAlias);
         xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
         xsdf.setKeyCipherAlgorithm(keyCipherAlgorithm);
@@ -1106,7 +1106,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
                        String keyOrTrustStoreParametersId, String keyPassword) {
         XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
         xsdf.setSecureTag(secureTag);
-        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setSecureTagContents(Boolean.toString(secureTagContents));
         xsdf.setRecipientKeyAlias(recipientKeyAlias);
         xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
         xsdf.setKeyCipherAlgorithm(keyCipherAlgorithm);
@@ -1123,7 +1123,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
         XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
         xsdf.setSecureTag(secureTag);
         xsdf.setNamespaces(namespaces);
-        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setSecureTagContents(Boolean.toString(secureTagContents));
         xsdf.setRecipientKeyAlias(recipientKeyAlias);
         xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
         xsdf.setKeyCipherAlgorithm(keyCipherAlgorithm);
@@ -1139,7 +1139,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
         XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
         xsdf.setSecureTag(secureTag);
         xsdf.setNamespaces(namespaces);
-        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setSecureTagContents(Boolean.toString(secureTagContents));
         xsdf.setRecipientKeyAlias(recipientKeyAlias);
         xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
         xsdf.setKeyCipherAlgorithm(keyCipherAlgorithm);
@@ -1156,7 +1156,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
         XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
         xsdf.setSecureTag(secureTag);
         xsdf.setNamespaces(namespaces);
-        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setSecureTagContents(Boolean.toString(secureTagContents));
         xsdf.setRecipientKeyAlias(recipientKeyAlias);
         xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
         xsdf.setKeyCipherAlgorithm(keyCipherAlgorithm);
@@ -1187,7 +1187,7 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
      */
     public T zipDeflater(int compressionLevel) {
         ZipDeflaterDataFormat zdf = new ZipDeflaterDataFormat();
-        zdf.setCompressionLevel(compressionLevel);
+        zdf.setCompressionLevel(Integer.toString(compressionLevel));
         return dataFormat(zdf);
     }
 
@@ -1231,13 +1231,13 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
 
     public T fhirJson(boolean prettyPrint) {
         FhirJsonDataFormat jsonDataFormat = new FhirJsonDataFormat();
-        jsonDataFormat.setPrettyPrint(prettyPrint);
+        jsonDataFormat.setPrettyPrint(Boolean.toString(prettyPrint));
         return dataFormat(jsonDataFormat);
     }
 
     public T fhirJson(String version, boolean prettyPrint) {
         FhirJsonDataFormat jsonDataFormat = new FhirJsonDataFormat();
-        jsonDataFormat.setPrettyPrint(prettyPrint);
+        jsonDataFormat.setPrettyPrint(Boolean.toString(prettyPrint));
         jsonDataFormat.setFhirVersion(version);
         return dataFormat(jsonDataFormat);
     }
@@ -1258,14 +1258,14 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
 
     public T fhirXml(boolean prettyPrint) {
         FhirXmlDataFormat fhirXmlDataFormat = new FhirXmlDataFormat();
-        fhirXmlDataFormat.setPrettyPrint(prettyPrint);
+        fhirXmlDataFormat.setPrettyPrint(Boolean.toString(prettyPrint));
         return dataFormat(fhirXmlDataFormat);
     }
 
     public T fhirXml(String version, boolean prettyPrint) {
         FhirXmlDataFormat fhirXmlDataFormat = new FhirXmlDataFormat();
         fhirXmlDataFormat.setFhirVersion(version);
-        fhirXmlDataFormat.setPrettyPrint(prettyPrint);
+        fhirXmlDataFormat.setPrettyPrint(Boolean.toString(prettyPrint));
         return dataFormat(fhirXmlDataFormat);
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/OnCompletionDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/OnCompletionDefinition.java
index a0086e6..dcd993a 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/OnCompletionDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/OnCompletionDefinition.java
@@ -42,8 +42,9 @@ import org.apache.camel.spi.Metadata;
 @XmlAccessorType(XmlAccessType.FIELD)
 public class OnCompletionDefinition extends OutputDefinition<OnCompletionDefinition> implements ExecutorServiceAwareDefinition<OnCompletionDefinition> {
     @XmlAttribute
-    @Metadata(defaultValue = "AfterConsumer")
-    private OnCompletionMode mode;
+    @Metadata(javaType = "org.apache.camel.model.OnCompletionMode", defaultValue = "AfterConsumer",
+              enums = "AfterConsumer,BeforeConsumer")
+    private String mode;
     @XmlAttribute
     private String onCompleteOnly;
     @XmlAttribute
@@ -132,7 +133,7 @@ public class OnCompletionDefinition extends OutputDefinition<OnCompletionDefinit
      * @return the builder
      */
     public OnCompletionDefinition modeAfterConsumer() {
-        setMode(OnCompletionMode.AfterConsumer);
+        setMode(OnCompletionMode.AfterConsumer.name());
         return this;
     }
 
@@ -145,7 +146,7 @@ public class OnCompletionDefinition extends OutputDefinition<OnCompletionDefinit
      * @return the builder
      */
     public OnCompletionDefinition modeBeforeConsumer() {
-        setMode(OnCompletionMode.BeforeConsumer);
+        setMode(OnCompletionMode.BeforeConsumer.name());
         return this;
     }
 
@@ -274,7 +275,7 @@ public class OnCompletionDefinition extends OutputDefinition<OnCompletionDefinit
         super.setOutputs(outputs);
     }
 
-    public OnCompletionMode getMode() {
+    public String getMode() {
         return mode;
     }
 
@@ -283,7 +284,7 @@ public class OnCompletionDefinition extends OutputDefinition<OnCompletionDefinit
      * <p/>
      * The default value is AfterConsumer
      */
-    public void setMode(OnCompletionMode mode) {
+    public void setMode(String mode) {
         this.mode = mode;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/RollbackDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/RollbackDefinition.java
index 336e49d..ccb0c2a 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/RollbackDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/RollbackDefinition.java
@@ -31,8 +31,10 @@ import org.apache.camel.spi.Metadata;
 @XmlAccessorType(XmlAccessType.FIELD)
 public class RollbackDefinition extends NoOutputDefinition<RollbackDefinition> {
     @XmlAttribute
+    @Metadata(javaType = "java.lang.Boolean")
     private String markRollbackOnly;
     @XmlAttribute
+    @Metadata(javaType = "java.lang.Boolean")
     private String markRollbackOnlyLast;
     @XmlAttribute
     private String message;
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/RouteDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/RouteDefinition.java
index 470a9d6..e7f194c 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/RouteDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/RouteDefinition.java
@@ -66,8 +66,8 @@ public class RouteDefinition extends OutputDefinition<RouteDefinition> implement
     private Integer startupOrder;
     private List<RoutePolicy> routePolicies;
     private String routePolicyRef;
-    private ShutdownRoute shutdownRoute;
-    private ShutdownRunningTask shutdownRunningTask;
+    private String shutdownRoute;
+    private String shutdownRunningTask;
     private String errorHandlerRef;
     private ErrorHandlerFactory errorHandlerFactory;
     // keep state whether the error handler is context scoped or not
@@ -498,6 +498,16 @@ public class RouteDefinition extends OutputDefinition<RouteDefinition> implement
      * @return the builder
      */
     public RouteDefinition shutdownRoute(ShutdownRoute shutdownRoute) {
+        return shutdownRoute(shutdownRoute.name());
+    }
+
+    /**
+     * Configures a shutdown route option.
+     *
+     * @param shutdownRoute the option to use when shutting down this route
+     * @return the builder
+     */
+    public RouteDefinition shutdownRoute(String shutdownRoute) {
         setShutdownRoute(shutdownRoute);
         return this;
     }
@@ -510,6 +520,17 @@ public class RouteDefinition extends OutputDefinition<RouteDefinition> implement
      * @return the builder
      */
     public RouteDefinition shutdownRunningTask(ShutdownRunningTask shutdownRunningTask) {
+        return shutdownRunningTask(shutdownRunningTask.name());
+    }
+
+    /**
+     * Configures a shutdown running task option.
+     *
+     * @param shutdownRunningTask the option to use when shutting down and how
+     *            to act upon running tasks.
+     * @return the builder
+     */
+    public RouteDefinition shutdownRunningTask(String shutdownRunningTask) {
         setShutdownRunningTask(shutdownRunningTask);
         return this;
     }
@@ -882,7 +903,7 @@ public class RouteDefinition extends OutputDefinition<RouteDefinition> implement
         this.routePolicies = routePolicies;
     }
 
-    public ShutdownRoute getShutdownRoute() {
+    public String getShutdownRoute() {
         return shutdownRoute;
     }
 
@@ -890,15 +911,15 @@ public class RouteDefinition extends OutputDefinition<RouteDefinition> implement
      * To control how to shutdown the route.
      */
     @XmlAttribute
-    @Metadata(defaultValue = "Default")
-    public void setShutdownRoute(ShutdownRoute shutdownRoute) {
+    @Metadata(javaType = "org.apache.camel.ShutdownRoute", defaultValue = "Default", enums = "Default,Defer")
+    public void setShutdownRoute(String shutdownRoute) {
         this.shutdownRoute = shutdownRoute;
     }
 
     /**
      * To control how to shutdown the route.
      */
-    public ShutdownRunningTask getShutdownRunningTask() {
+    public String getShutdownRunningTask() {
         return shutdownRunningTask;
     }
 
@@ -906,8 +927,8 @@ public class RouteDefinition extends OutputDefinition<RouteDefinition> implement
      * To control how to shutdown the route.
      */
     @XmlAttribute
-    @Metadata(defaultValue = "CompleteCurrentTaskOnly")
-    public void setShutdownRunningTask(ShutdownRunningTask shutdownRunningTask) {
+    @Metadata(javaType = "org.apache.camel.ShutdownRunningTask", defaultValue = "CompleteCurrentTaskOnly", enums = "CompleteCurrentTaskOnly,CompleteAllTasks")
+    public void setShutdownRunningTask(String shutdownRunningTask) {
         this.shutdownRunningTask = shutdownRunningTask;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/RoutingSlipDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/RoutingSlipDefinition.java
index a57342e..55c149e 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/RoutingSlipDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/RoutingSlipDefinition.java
@@ -42,8 +42,10 @@ public class RoutingSlipDefinition<Type extends ProcessorDefinition<Type>> exten
     @Metadata(defaultValue = ",")
     private String uriDelimiter;
     @XmlAttribute
+    @Metadata(javaType = "java.lang.Boolean")
     private String ignoreInvalidEndpoints;
     @XmlAttribute
+    @Metadata(javaType = "java.lang.Integer")
     private String cacheSize;
 
     public RoutingSlipDefinition() {
@@ -141,7 +143,27 @@ public class RoutingSlipDefinition<Type extends ProcessorDefinition<Type>> exten
      * @return the builder
      */
     public RoutingSlipDefinition<Type> ignoreInvalidEndpoints() {
-        setIgnoreInvalidEndpoints(Boolean.toString(true));
+        return ignoreInvalidEndpoints(true);
+    }
+
+    /**
+     * Ignore the invalidate endpoint exception when try to create a producer
+     * with that endpoint
+     *
+     * @return the builder
+     */
+    public RoutingSlipDefinition<Type> ignoreInvalidEndpoints(boolean ignoreInvalidEndpoints) {
+        return ignoreInvalidEndpoints(Boolean.toString(ignoreInvalidEndpoints));
+    }
+
+    /**
+     * Ignore the invalidate endpoint exception when try to create a producer
+     * with that endpoint
+     *
+     * @return the builder
+     */
+    public RoutingSlipDefinition<Type> ignoreInvalidEndpoints(String ignoreInvalidEndpoints) {
+        setIgnoreInvalidEndpoints(ignoreInvalidEndpoints);
         return this;
     }
 
@@ -166,7 +188,20 @@ public class RoutingSlipDefinition<Type extends ProcessorDefinition<Type>> exten
      * @return the builder
      */
     public RoutingSlipDefinition<Type> cacheSize(int cacheSize) {
-        setCacheSize(Integer.toString(cacheSize));
+        return cacheSize(Integer.toString(cacheSize));
+    }
+
+    /**
+     * Sets the maximum size used by the
+     * {@link org.apache.camel.spi.ProducerCache} which is used to cache and
+     * reuse producers when using this routing slip, when uris are reused.
+     *
+     * @param cacheSize the cache size, use <tt>0</tt> for default cache size,
+     *            or <tt>-1</tt> to turn cache off.
+     * @return the builder
+     */
+    public RoutingSlipDefinition<Type> cacheSize(String cacheSize) {
+        setCacheSize(cacheSize);
         return this;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/SagaDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/SagaDefinition.java
index bf5cdaf..fa43089 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/SagaDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/SagaDefinition.java
@@ -42,11 +42,11 @@ import org.apache.camel.util.ObjectHelper;
 public class SagaDefinition extends OutputDefinition<SagaDefinition> {
 
     @XmlAttribute
-    @Metadata(defaultValue = "REQUIRED", enums = "REQUIRED,REQUIRES_NEW,MANDATORY,SUPPORTS,NOT_SUPPORTED,NEVER")
+    @Metadata(javaType = "org.apache.camel.model.SagaPropagation", defaultValue = "REQUIRED", enums = "REQUIRED,REQUIRES_NEW,MANDATORY,SUPPORTS,NOT_SUPPORTED,NEVER")
     private String propagation;
 
     @XmlAttribute
-    @Metadata(defaultValue = "AUTO", enums = "AUTO,MANUAL")
+    @Metadata(javaType = "org.apache.camel.model.SagaCompletionMode", defaultValue = "AUTO", enums = "AUTO,MANUAL")
     private String completionMode;
 
     @XmlAttribute
@@ -242,6 +242,10 @@ public class SagaDefinition extends OutputDefinition<SagaDefinition> {
         return this;
     }
 
+    public SagaDefinition propagation(String propagation) {
+        return propagation(propagation);
+    }
+
     public SagaDefinition propagation(SagaPropagation propagation) {
         setPropagation(propagation.name());
         return this;
@@ -258,7 +262,11 @@ public class SagaDefinition extends OutputDefinition<SagaDefinition> {
     }
 
     public SagaDefinition completionMode(SagaCompletionMode completionMode) {
-        setCompletionMode(completionMode.name());
+        return completionMode(completionMode.name());
+    }
+
+    public SagaDefinition completionMode(String completionMode) {
+        setCompletionMode(completionMode);
         return this;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/SetExchangePatternDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/SetExchangePatternDefinition.java
index 47321aa1..f887617 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/SetExchangePatternDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/SetExchangePatternDefinition.java
@@ -32,21 +32,30 @@ import org.apache.camel.spi.Metadata;
 @XmlAccessorType(XmlAccessType.FIELD)
 public class SetExchangePatternDefinition extends NoOutputDefinition<SetExchangePatternDefinition> {
     @XmlAttribute(required = true)
-    private ExchangePattern pattern;
+    @Metadata(required = true, javaType = "org.apache.camel.ExchangePattern", enums = "InOnly,InOut,InOptionalOut")
+    private String pattern;
 
     public SetExchangePatternDefinition() {
     }
 
     public SetExchangePatternDefinition(ExchangePattern pattern) {
+        this(pattern.name());
+    }
+
+    public SetExchangePatternDefinition(String pattern) {
         this.pattern = pattern;
     }
 
     public SetExchangePatternDefinition pattern(ExchangePattern pattern) {
+        return pattern(pattern.name());
+    }
+
+    public SetExchangePatternDefinition pattern(String pattern) {
         setPattern(pattern);
         return this;
     }
 
-    public ExchangePattern getPattern() {
+    public String getPattern() {
         return pattern;
     }
 
@@ -54,7 +63,7 @@ public class SetExchangePatternDefinition extends NoOutputDefinition<SetExchange
      * Sets the new exchange pattern of the Exchange to be used from this point
      * forward
      */
-    public void setPattern(ExchangePattern pattern) {
+    public void setPattern(String pattern) {
         this.pattern = pattern;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/SplitDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/SplitDefinition.java
index 4fe8aec..72ff542 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/SplitDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/SplitDefinition.java
@@ -161,7 +161,31 @@ public class SplitDefinition extends OutputExpressionNode implements ExecutorSer
      * @return the builder
      */
     public SplitDefinition aggregationStrategyMethodAllowNull() {
-        setStrategyMethodAllowNull(Boolean.toString(true));
+        return aggregationStrategyMethodAllowNull(true);
+    }
+
+    /**
+     * If this option is false then the aggregate method is not used if there
+     * was no data to enrich. If this option is true then null values is used as
+     * the oldExchange (when no data to enrich), when using POJOs as the
+     * AggregationStrategy
+     *
+     * @return the builder
+     */
+    public SplitDefinition aggregationStrategyMethodAllowNull(boolean aggregationStrategyMethodAllowNull) {
+        return aggregationStrategyMethodAllowNull(Boolean.toString(aggregationStrategyMethodAllowNull));
+    }
+
+    /**
+     * If this option is false then the aggregate method is not used if there
+     * was no data to enrich. If this option is true then null values is used as
+     * the oldExchange (when no data to enrich), when using POJOs as the
+     * AggregationStrategy
+     *
+     * @return the builder
+     */
+    public SplitDefinition aggregationStrategyMethodAllowNull(String aggregationStrategyMethodAllowNull) {
+        setStrategyMethodAllowNull(aggregationStrategyMethodAllowNull);
         return this;
     }
 
@@ -174,8 +198,7 @@ public class SplitDefinition extends OutputExpressionNode implements ExecutorSer
      * @return the builder
      */
     public SplitDefinition parallelProcessing() {
-        setParallelProcessing(Boolean.toString(true));
-        return this;
+        return parallelProcessing(true);
     }
 
     /**
@@ -187,7 +210,19 @@ public class SplitDefinition extends OutputExpressionNode implements ExecutorSer
      * @return the builder
      */
     public SplitDefinition parallelProcessing(boolean parallelProcessing) {
-        setParallelProcessing(Boolean.toString(parallelProcessing));
+        return parallelProcessing(Boolean.toString(parallelProcessing));
+    }
+
+    /**
+     * If enabled then processing each splitted messages occurs concurrently.
+     * Note the caller thread will still wait until all messages has been fully
+     * processed, before it continues. Its only processing the sub messages from
+     * the splitter which happens concurrently.
+     *
+     * @return the builder
+     */
+    public SplitDefinition parallelProcessing(String parallelProcessing) {
+        setParallelProcessing(parallelProcessing);
         return this;
     }
 
@@ -202,7 +237,35 @@ public class SplitDefinition extends OutputExpressionNode implements ExecutorSer
      * @return the builder
      */
     public SplitDefinition parallelAggregate() {
-        setParallelAggregate(Boolean.toString(true));
+        return parallelAggregate(true);
+    }
+
+    /**
+     * If enabled then the aggregate method on AggregationStrategy can be called
+     * concurrently. Notice that this would require the implementation of
+     * AggregationStrategy to be implemented as thread-safe. By default this is
+     * false meaning that Camel synchronizes the call to the aggregate method.
+     * Though in some use-cases this can be used to archive higher performance
+     * when the AggregationStrategy is implemented as thread-safe.
+     *
+     * @return the builder
+     */
+    public SplitDefinition parallelAggregate(boolean parallelAggregate) {
+        return parallelAggregate(Boolean.toString(parallelAggregate));
+    }
+
+    /**
+     * If enabled then the aggregate method on AggregationStrategy can be called
+     * concurrently. Notice that this would require the implementation of
+     * AggregationStrategy to be implemented as thread-safe. By default this is
+     * false meaning that Camel synchronizes the call to the aggregate method.
+     * Though in some use-cases this can be used to archive higher performance
+     * when the AggregationStrategy is implemented as thread-safe.
+     *
+     * @return the builder
+     */
+    public SplitDefinition parallelAggregate(String parallelAggregate) {
+        setParallelAggregate(parallelAggregate);
         return this;
     }
 
@@ -217,7 +280,35 @@ public class SplitDefinition extends OutputExpressionNode implements ExecutorSer
      * @return the builder
      */
     public SplitDefinition stopOnAggregateException() {
-        setStopOnAggregateException(Boolean.toString(true));
+        return stopOnAggregateException(true);
+    }
+
+    /**
+     * If enabled, unwind exceptions occurring at aggregation time to the error
+     * handler when parallelProcessing is used. Currently, aggregation time
+     * exceptions do not stop the route processing when parallelProcessing is
+     * used. Enabling this option allows to work around this behavior. The
+     * default value is <code>false</code> for the sake of backward
+     * compatibility.
+     *
+     * @return the builder
+     */
+    public SplitDefinition stopOnAggregateException(boolean stopOnAggregateException) {
+        return stopOnAggregateException(Boolean.toString(stopOnAggregateException));
+    }
+
+    /**
+     * If enabled, unwind exceptions occurring at aggregation time to the error
+     * handler when parallelProcessing is used. Currently, aggregation time
+     * exceptions do not stop the route processing when parallelProcessing is
+     * used. Enabling this option allows to work around this behavior. The
+     * default value is <code>false</code> for the sake of backward
+     * compatibility.
+     *
+     * @return the builder
+     */
+    public SplitDefinition stopOnAggregateException(String stopOnAggregateException) {
+        setStopOnAggregateException(stopOnAggregateException);
         return this;
     }
 
@@ -242,7 +333,55 @@ public class SplitDefinition extends OutputExpressionNode implements ExecutorSer
      * @return the builder
      */
     public SplitDefinition streaming() {
-        setStreaming(Boolean.toString(true));
+        return streaming(true);
+    }
+
+    /**
+     * When in streaming mode, then the splitter splits the original message
+     * on-demand, and each splitted message is processed one by one. This
+     * reduces memory usage as the splitter do not split all the messages first,
+     * but then we do not know the total size, and therefore the
+     * {@link org.apache.camel.Exchange#SPLIT_SIZE} is empty.
+     * <p/>
+     * In non-streaming mode (default) the splitter will split each message
+     * first, to know the total size, and then process each message one by one.
+     * This requires to keep all the splitted messages in memory and therefore
+     * requires more memory. The total size is provided in the
+     * {@link org.apache.camel.Exchange#SPLIT_SIZE} header.
+     * <p/>
+     * The streaming mode also affects the aggregation behavior. If enabled then
+     * Camel will process replies out-of-order, eg in the order they come back.
+     * If disabled, Camel will process replies in the same order as the messages
+     * was splitted.
+     *
+     * @return the builder
+     */
+    public SplitDefinition streaming(boolean streaming) {
+        return streaming(Boolean.toString(streaming));
+    }
+
+    /**
+     * When in streaming mode, then the splitter splits the original message
+     * on-demand, and each splitted message is processed one by one. This
+     * reduces memory usage as the splitter do not split all the messages first,
+     * but then we do not know the total size, and therefore the
+     * {@link org.apache.camel.Exchange#SPLIT_SIZE} is empty.
+     * <p/>
+     * In non-streaming mode (default) the splitter will split each message
+     * first, to know the total size, and then process each message one by one.
+     * This requires to keep all the splitted messages in memory and therefore
+     * requires more memory. The total size is provided in the
+     * {@link org.apache.camel.Exchange#SPLIT_SIZE} header.
+     * <p/>
+     * The streaming mode also affects the aggregation behavior. If enabled then
+     * Camel will process replies out-of-order, eg in the order they come back.
+     * If disabled, Camel will process replies in the same order as the messages
+     * was splitted.
+     *
+     * @return the builder
+     */
+    public SplitDefinition streaming(String streaming) {
+        setStreaming(streaming);
         return this;
     }
 
@@ -263,7 +402,47 @@ public class SplitDefinition extends OutputExpressionNode implements ExecutorSer
      * @return the builder
      */
     public SplitDefinition stopOnException() {
-        setStopOnException(Boolean.toString(true));
+        return stopOnException(true);
+    }
+
+    /**
+     * Will now stop further processing if an exception or failure occurred
+     * during processing of an {@link org.apache.camel.Exchange} and the caused
+     * exception will be thrown.
+     * <p/>
+     * Will also stop if processing the exchange failed (has a fault message) or
+     * an exception was thrown and handled by the error handler (such as using
+     * onException). In all situations the splitter will stop further
+     * processing. This is the same behavior as in pipeline, which is used by
+     * the routing engine.
+     * <p/>
+     * The default behavior is to <b>not</b> stop but continue processing till
+     * the end
+     *
+     * @return the builder
+     */
+    public SplitDefinition stopOnException(boolean stopOnException) {
+        return stopOnException(Boolean.toString(stopOnException));
+    }
+
+    /**
+     * Will now stop further processing if an exception or failure occurred
+     * during processing of an {@link org.apache.camel.Exchange} and the caused
+     * exception will be thrown.
+     * <p/>
+     * Will also stop if processing the exchange failed (has a fault message) or
+     * an exception was thrown and handled by the error handler (such as using
+     * onException). In all situations the splitter will stop further
+     * processing. This is the same behavior as in pipeline, which is used by
+     * the routing engine.
+     * <p/>
+     * The default behavior is to <b>not</b> stop but continue processing till
+     * the end
+     *
+     * @return the builder
+     */
+    public SplitDefinition stopOnException(String stopOnException) {
+        setStopOnException(stopOnException);
         return this;
     }
 
@@ -333,7 +512,25 @@ public class SplitDefinition extends OutputExpressionNode implements ExecutorSer
      * @return the builder
      */
     public SplitDefinition timeout(long timeout) {
-        setTimeout(Long.toString(timeout));
+        return timeout(Long.toString(timeout));
+    }
+
+    /**
+     * Sets a total timeout specified in millis, when using parallel processing.
+     * If the Splitter hasn't been able to split and process all the sub
+     * messages within the given timeframe, then the timeout triggers and the
+     * Splitter breaks out and continues. Notice if you provide a
+     * TimeoutAwareAggregationStrategy then the timeout method is invoked before
+     * breaking out. If the timeout is reached with running tasks still
+     * remaining, certain tasks for which it is difficult for Camel to shut down
+     * in a graceful manner may continue to run. So use this option with a bit
+     * of care.
+     *
+     * @param timeout timeout in millis
+     * @return the builder
+     */
+    public SplitDefinition timeout(String timeout) {
+        setTimeout(timeout);
         return this;
     }
 
@@ -346,7 +543,31 @@ public class SplitDefinition extends OutputExpressionNode implements ExecutorSer
      * @return the builder.
      */
     public SplitDefinition shareUnitOfWork() {
-        setShareUnitOfWork(Boolean.toString(true));
+        return shareUnitOfWork(true);
+    }
+
+    /**
+     * Shares the {@link org.apache.camel.spi.UnitOfWork} with the parent and
+     * each of the sub messages. Splitter will by default not share unit of work
+     * between the parent exchange and each splitted exchange. This means each
+     * splitted exchange has its own individual unit of work.
+     *
+     * @return the builder.
+     */
+    public SplitDefinition shareUnitOfWork(boolean shareUnitOfWork) {
+        return shareUnitOfWork(Boolean.toString(shareUnitOfWork));
+    }
+
+    /**
+     * Shares the {@link org.apache.camel.spi.UnitOfWork} with the parent and
+     * each of the sub messages. Splitter will by default not share unit of work
+     * between the parent exchange and each splitted exchange. This means each
+     * splitted exchange has its own individual unit of work.
+     *
+     * @return the builder.
+     */
+    public SplitDefinition shareUnitOfWork(String shareUnitOfWork) {
+        setShareUnitOfWork(shareUnitOfWork);
         return this;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/ThreadPoolProfileDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/ThreadPoolProfileDefinition.java
index ad2e6d1..9d872b8 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/ThreadPoolProfileDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/ThreadPoolProfileDefinition.java
@@ -35,21 +35,29 @@ import org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy;
 @XmlAccessorType(XmlAccessType.FIELD)
 public class ThreadPoolProfileDefinition extends OptionalIdentifiedDefinition<ThreadPoolProfileDefinition> {
     @XmlAttribute
-    private Boolean defaultProfile;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String defaultProfile;
     @XmlAttribute
+    @Metadata(javaType = "java.lang.Integer")
     private String poolSize;
     @XmlAttribute
+    @Metadata(javaType = "java.lang.Integer")
     private String maxPoolSize;
     @XmlAttribute
+    @Metadata(javaType = "java.lang.Long")
     private String keepAliveTime;
     @XmlAttribute
-    @XmlJavaTypeAdapter(TimeUnitAdapter.class)
-    private TimeUnit timeUnit;
+    @Metadata(javaType = "java.util.concurrent.TimeUnit",
+              enums = "NANOSECONDS,MICROSECONDS,MILLISECONDS,SECONDS,MINUTES,HOURS,DAYS")
+    private String timeUnit;
     @XmlAttribute
+    @Metadata(javaType = "java.lang.Integer")
     private String maxQueueSize;
     @XmlAttribute
+    @Metadata(javaType = "java.lang.Boolean")
     private String allowCoreThreadTimeOut;
     @XmlAttribute
+    @Metadata(javaType = "org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy")
     private String rejectedPolicy;
 
     public ThreadPoolProfileDefinition() {
@@ -93,6 +101,10 @@ public class ThreadPoolProfileDefinition extends OptionalIdentifiedDefinition<Th
     }
 
     public ThreadPoolProfileDefinition timeUnit(TimeUnit timeUnit) {
+        return timeUnit(timeUnit.name());
+    }
+
+    public ThreadPoolProfileDefinition timeUnit(String timeUnit) {
         setTimeUnit(timeUnit);
         return this;
     }
@@ -117,25 +129,25 @@ public class ThreadPoolProfileDefinition extends OptionalIdentifiedDefinition<Th
     }
 
     public ThreadPoolProfileDefinition allowCoreThreadTimeOut(boolean allowCoreThreadTimeOut) {
-        setAllowCoreThreadTimeOut("" + allowCoreThreadTimeOut);
+        return allowCoreThreadTimeOut(Boolean.toString(allowCoreThreadTimeOut));
+    }
+
+    public ThreadPoolProfileDefinition allowCoreThreadTimeOut(String allowCoreThreadTimeOut) {
+        setAllowCoreThreadTimeOut(allowCoreThreadTimeOut);
         return this;
     }
 
-    public Boolean getDefaultProfile() {
+    public String getDefaultProfile() {
         return defaultProfile;
     }
 
     /**
      * Whether this profile is the default thread pool profile
      */
-    public void setDefaultProfile(Boolean defaultProfile) {
+    public void setDefaultProfile(String defaultProfile) {
         this.defaultProfile = defaultProfile;
     }
 
-    public Boolean isDefaultProfile() {
-        return defaultProfile != null && defaultProfile;
-    }
-
     public String getPoolSize() {
         return poolSize;
     }
@@ -196,14 +208,14 @@ public class ThreadPoolProfileDefinition extends OptionalIdentifiedDefinition<Th
         this.allowCoreThreadTimeOut = allowCoreThreadTimeOut;
     }
 
-    public TimeUnit getTimeUnit() {
+    public String getTimeUnit() {
         return timeUnit;
     }
 
     /**
      * Sets the time unit to use for keep alive time By default SECONDS is used.
      */
-    public void setTimeUnit(TimeUnit timeUnit) {
+    public void setTimeUnit(String timeUnit) {
         this.timeUnit = timeUnit;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/ThreadsDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/ThreadsDefinition.java
index 2da85e2..3fe8f29 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/ThreadsDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/ThreadsDefinition.java
@@ -41,22 +41,30 @@ public class ThreadsDefinition extends NoOutputDefinition<ThreadsDefinition> imp
     @XmlAttribute
     private String executorServiceRef;
     @XmlAttribute
+    @Metadata(javaType = "java.lang.Integer")
     private String poolSize;
     @XmlAttribute
+    @Metadata(javaType = "java.lang.Integer")
     private String maxPoolSize;
     @XmlAttribute
+    @Metadata(javaType = "java.lang.Long")
     private String keepAliveTime;
     @XmlAttribute
+    @Metadata(javaType = "java.util.concurrent.TimeUnit",
+              enums = "NANOSECONDS,MICROSECONDS,MILLISECONDS,SECONDS,MINUTES,HOURS,DAYS")
     private String timeUnit;
     @XmlAttribute
+    @Metadata(javaType = "java.lang.Integer")
     private String maxQueueSize;
     @XmlAttribute
+    @Metadata(javaType = "java.lang.Boolean")
     private String allowCoreThreadTimeOut;
     @XmlAttribute
     @Metadata(defaultValue = "Threads")
     private String threadName;
     @XmlAttribute
-    private ThreadPoolRejectedPolicy rejectedPolicy;
+    @Metadata(javaType = "org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy", enums="Abort,CallerRuns,DiscardOldest,Discard")
+    private String rejectedPolicy;
     @XmlAttribute
     @Metadata(defaultValue = "true")
     private String callerRunsWhenRejected;
@@ -106,7 +114,17 @@ public class ThreadsDefinition extends NoOutputDefinition<ThreadsDefinition> imp
      * @return the builder
      */
     public ThreadsDefinition poolSize(int poolSize) {
-        setPoolSize(Integer.toString(poolSize));
+        return poolSize(Integer.toString(poolSize));
+    }
+
+    /**
+     * Sets the core pool size
+     *
+     * @param poolSize the core pool size to keep minimum in the pool
+     * @return the builder
+     */
+    public ThreadsDefinition poolSize(String poolSize) {
+        setPoolSize(poolSize);
         return this;
     }
 
@@ -117,7 +135,17 @@ public class ThreadsDefinition extends NoOutputDefinition<ThreadsDefinition> imp
      * @return the builder
      */
     public ThreadsDefinition maxPoolSize(int maxPoolSize) {
-        setMaxPoolSize(Integer.toString(maxPoolSize));
+        return maxPoolSize(Integer.toString(maxPoolSize));
+    }
+
+    /**
+     * Sets the maximum pool size
+     *
+     * @param maxPoolSize the maximum pool size
+     * @return the builder
+     */
+    public ThreadsDefinition maxPoolSize(String maxPoolSize) {
+        setMaxPoolSize(maxPoolSize);
         return this;
     }
 
@@ -128,7 +156,17 @@ public class ThreadsDefinition extends NoOutputDefinition<ThreadsDefinition> imp
      * @return the builder
      */
     public ThreadsDefinition keepAliveTime(long keepAliveTime) {
-        setKeepAliveTime(Long.toString(keepAliveTime));
+        return keepAliveTime(Long.toString(keepAliveTime));
+    }
+
+    /**
+     * Sets the keep alive time for idle threads
+     *
+     * @param keepAliveTime keep alive time
+     * @return the builder
+     */
+    public ThreadsDefinition keepAliveTime(String keepAliveTime) {
+        setKeepAliveTime(keepAliveTime);
         return this;
     }
 
@@ -139,7 +177,17 @@ public class ThreadsDefinition extends NoOutputDefinition<ThreadsDefinition> imp
      * @return the builder
      */
     public ThreadsDefinition timeUnit(TimeUnit keepAliveTimeUnits) {
-        setTimeUnit(keepAliveTimeUnits.name());
+        return timeUnit(keepAliveTimeUnits.name());
+    }
+
+    /**
+     * Sets the keep alive time unit. By default SECONDS is used.
+     *
+     * @param keepAliveTimeUnits time unit
+     * @return the builder
+     */
+    public ThreadsDefinition timeUnit(String keepAliveTimeUnits) {
+        setTimeUnit(keepAliveTimeUnits);
         return this;
     }
 
@@ -152,7 +200,19 @@ public class ThreadsDefinition extends NoOutputDefinition<ThreadsDefinition> imp
      * @return the builder
      */
     public ThreadsDefinition maxQueueSize(int maxQueueSize) {
-        setMaxQueueSize(Integer.toString(maxQueueSize));
+        return maxQueueSize(Integer.toString(maxQueueSize));
+    }
+
+    /**
+     * Sets the maximum number of tasks in the work queue.
+     * <p/>
+     * Use <tt>-1</tt> or <tt>Integer.MAX_VALUE</tt> for an unbounded queue
+     *
+     * @param maxQueueSize the max queue size
+     * @return the builder
+     */
+    public ThreadsDefinition maxQueueSize(String maxQueueSize) {
+        setMaxQueueSize(maxQueueSize);
         return this;
     }
 
@@ -163,6 +223,16 @@ public class ThreadsDefinition extends NoOutputDefinition<ThreadsDefinition> imp
      * @return the builder
      */
     public ThreadsDefinition rejectedPolicy(ThreadPoolRejectedPolicy rejectedPolicy) {
+        return rejectedPolicy(rejectedPolicy.name());
+    }
+
+    /**
+     * Sets the handler for tasks which cannot be executed by the thread pool.
+     *
+     * @param rejectedPolicy the policy for the handler
+     * @return the builder
+     */
+    public ThreadsDefinition rejectedPolicy(String rejectedPolicy) {
         setRejectedPolicy(rejectedPolicy);
         return this;
     }
@@ -190,7 +260,22 @@ public class ThreadsDefinition extends NoOutputDefinition<ThreadsDefinition> imp
      * @return the builder
      */
     public ThreadsDefinition callerRunsWhenRejected(boolean callerRunsWhenRejected) {
-        setCallerRunsWhenRejected(Boolean.toString(callerRunsWhenRejected));
+        return callerRunsWhenRejected(Boolean.toString(callerRunsWhenRejected));
+    }
+
+    /**
+     * Whether or not to use as caller runs as <b>fallback</b> when a task is
+     * rejected being added to the thread pool (when its full). This is only
+     * used as fallback if no rejectedPolicy has been configured, or the thread
+     * pool has no configured rejection handler.
+     * <p/>
+     * Is by default <tt>true</tt>
+     *
+     * @param callerRunsWhenRejected whether or not the caller should run
+     * @return the builder
+     */
+    public ThreadsDefinition callerRunsWhenRejected(String callerRunsWhenRejected) {
+        setCallerRunsWhenRejected(callerRunsWhenRejected);
         return this;
     }
 
@@ -204,7 +289,20 @@ public class ThreadsDefinition extends NoOutputDefinition<ThreadsDefinition> imp
      * @return the builder
      */
     public ThreadsDefinition allowCoreThreadTimeOut(boolean allowCoreThreadTimeOut) {
-        setAllowCoreThreadTimeOut(Boolean.toString(allowCoreThreadTimeOut));
+        return allowCoreThreadTimeOut(Boolean.toString(allowCoreThreadTimeOut));
+    }
+
+    /**
+     * Whether idle core threads is allowed to timeout and therefore can shrink
+     * the pool size below the core pool size
+     * <p/>
+     * Is by default <tt>false</tt>
+     *
+     * @param allowCoreThreadTimeOut <tt>true</tt> to allow timeout
+     * @return the builder
+     */
+    public ThreadsDefinition allowCoreThreadTimeOut(String allowCoreThreadTimeOut) {
+        setAllowCoreThreadTimeOut(allowCoreThreadTimeOut);
         return this;
     }
 
@@ -276,11 +374,11 @@ public class ThreadsDefinition extends NoOutputDefinition<ThreadsDefinition> imp
         this.threadName = threadName;
     }
 
-    public ThreadPoolRejectedPolicy getRejectedPolicy() {
+    public String getRejectedPolicy() {
         return rejectedPolicy;
     }
 
-    public void setRejectedPolicy(ThreadPoolRejectedPolicy rejectedPolicy) {
+    public void setRejectedPolicy(String rejectedPolicy) {
         this.rejectedPolicy = rejectedPolicy;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/ThrottleDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/ThrottleDefinition.java
index f63613b..75fc5a2 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/ThrottleDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/ThrottleDefinition.java
@@ -106,7 +106,17 @@ public class ThrottleDefinition extends ExpressionNode implements ExecutorServic
      * @return the builder
      */
     public ThrottleDefinition timePeriodMillis(long timePeriodMillis) {
-        setTimePeriodMillis(Long.toString(timePeriodMillis));
+        return timePeriodMillis(Long.toString(timePeriodMillis));
+    }
+
+    /**
+     * Sets the time period during which the maximum request count is valid for
+     *
+     * @param timePeriodMillis period in millis
+     * @return the builder
+     */
+    public ThrottleDefinition timePeriodMillis(String timePeriodMillis) {
+        setTimePeriodMillis(timePeriodMillis);
         return this;
     }
 
@@ -123,6 +133,18 @@ public class ThrottleDefinition extends ExpressionNode implements ExecutorServic
     }
 
     /**
+     * Sets the time period during which the maximum request count per period
+     *
+     * @param maximumRequestsPerPeriod the maximum request count number per time
+     *            period
+     * @return the builder
+     */
+    public ThrottleDefinition maximumRequestsPerPeriod(String maximumRequestsPerPeriod) {
+        setExpression(ExpressionNodeHelper.toExpressionDefinition(ExpressionBuilder.simpleExpression(maximumRequestsPerPeriod)));
+        return this;
+    }
+
+    /**
      * Whether or not the caller should run the task when it was rejected by the
      * thread pool.
      * <p/>
@@ -132,7 +154,20 @@ public class ThrottleDefinition extends ExpressionNode implements ExecutorServic
      * @return the builder
      */
     public ThrottleDefinition callerRunsWhenRejected(boolean callerRunsWhenRejected) {
-        setCallerRunsWhenRejected(Boolean.toString(callerRunsWhenRejected));
+        return callerRunsWhenRejected(Boolean.toString(callerRunsWhenRejected));
+    }
+
+    /**
+     * Whether or not the caller should run the task when it was rejected by the
+     * thread pool.
+     * <p/>
+     * Is by default <tt>true</tt>
+     *
+     * @param callerRunsWhenRejected whether or not the caller should run
+     * @return the builder
+     */
+    public ThrottleDefinition callerRunsWhenRejected(String callerRunsWhenRejected) {
+        setCallerRunsWhenRejected(callerRunsWhenRejected);
         return this;
     }
 
@@ -143,7 +178,27 @@ public class ThrottleDefinition extends ExpressionNode implements ExecutorServic
      * @return the builder
      */
     public ThrottleDefinition asyncDelayed() {
-        setAsyncDelayed(Boolean.toString(true));
+        return asyncDelayed(true);
+    }
+
+    /**
+     * Enables asynchronous delay which means the thread will <b>not</b> block
+     * while delaying.
+     *
+     * @return the builder
+     */
+    public ThrottleDefinition asyncDelayed(boolean asyncDelayed) {
+        return asyncDelayed(Boolean.toString(asyncDelayed));
+    }
+
+    /**
+     * Enables asynchronous delay which means the thread will <b>not</b> block
+     * while delaying.
+     *
+     * @return the builder
+     */
+    public ThrottleDefinition asyncDelayed(String asyncDelayed) {
+        setAsyncDelayed(asyncDelayed);
         return this;
     }
 
@@ -158,7 +213,21 @@ public class ThrottleDefinition extends ExpressionNode implements ExecutorServic
      * @return the builder
      */
     public ThrottleDefinition rejectExecution(boolean rejectExecution) {
-        setRejectExecution(Boolean.toString(rejectExecution));
+        return rejectExecution(Boolean.toString(rejectExecution));
+    }
+
+    /**
+     * Whether or not throttler throws the ThrottlerRejectedExecutionException
+     * when the exchange exceeds the request limit
+     * <p/>
+     * Is by default <tt>false</tt>
+     *
+     * @param rejectExecution throw the RejectExecutionException if the exchange
+     *            exceeds the request limit
+     * @return the builder
+     */
+    public ThrottleDefinition rejectExecution(String rejectExecution) {
+        setRejectExecution(rejectExecution);
         return this;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/ToDynamicDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/ToDynamicDefinition.java
index ff5a109..240d540 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/ToDynamicDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/ToDynamicDefinition.java
@@ -49,13 +49,16 @@ public class ToDynamicDefinition extends NoOutputDefinition<ToDynamicDefinition>
     @Metadata(required = true)
     private String uri;
     @XmlAttribute
+    @Metadata(javaType = "org.apache.camel.ExchangePattern", enums = "InOnly,InOut,InOptionalOut")
     private String pattern;
     @XmlAttribute
+    @Metadata(javaType = "java.lang.Integer")
     private String cacheSize;
     @XmlAttribute
+    @Metadata(javaType = "java.lang.Boolean")
     private String ignoreInvalidEndpoint;
     @XmlAttribute
-    @Metadata(defaultValue = "true")
+    @Metadata(defaultValue = "true", javaType = "java.lang.Boolean")
     private String allowOptimisedComponents;
 
     public ToDynamicDefinition() {
@@ -87,7 +90,14 @@ public class ToDynamicDefinition extends NoOutputDefinition<ToDynamicDefinition>
      * Sets the optional {@link ExchangePattern} used to invoke this endpoint
      */
     public ToDynamicDefinition pattern(ExchangePattern pattern) {
-        setPattern(pattern.name());
+        return pattern(pattern.name());
+    }
+
+    /**
+     * Sets the optional {@link ExchangePattern} used to invoke this endpoint
+     */
+    public ToDynamicDefinition pattern(String pattern) {
+        setPattern(pattern);
         return this;
     }
 
@@ -101,7 +111,20 @@ public class ToDynamicDefinition extends NoOutputDefinition<ToDynamicDefinition>
      * @return the builder
      */
     public ToDynamicDefinition cacheSize(int cacheSize) {
-        setCacheSize(Integer.toString(cacheSize));
+        return cacheSize(Integer.toString(cacheSize));
+    }
+
+    /**
+     * Sets the maximum size used by the
+     * {@link org.apache.camel.spi.ConsumerCache} which is used to cache and
+     * reuse producers.
+     *
+     * @param cacheSize the cache size, use <tt>0</tt> for default cache size,
+     *            or <tt>-1</tt> to turn cache off.
+     * @return the builder
+     */
+    public ToDynamicDefinition cacheSize(String cacheSize) {
+        setCacheSize(cacheSize);
         return this;
     }
 
@@ -111,8 +134,18 @@ public class ToDynamicDefinition extends NoOutputDefinition<ToDynamicDefinition>
      *
      * @return the builder
      */
-    public ToDynamicDefinition ignoreInvalidEndpoint() {
-        setIgnoreInvalidEndpoint(Boolean.toString(true));
+    public ToDynamicDefinition ignoreInvalidEndpoint(boolean ignoreInvalidEndpoint) {
+        return ignoreInvalidEndpoint(Boolean.toString(ignoreInvalidEndpoint));
+    }
+
+    /**
+     * Ignore the invalidate endpoint exception when try to create a producer
+     * with that endpoint
+     *
+     * @return the builder
+     */
+    public ToDynamicDefinition ignoreInvalidEndpoint(String ignoreInvalidEndpoint) {
+        setIgnoreInvalidEndpoint(ignoreInvalidEndpoint);
         return this;
     }
 
@@ -122,8 +155,28 @@ public class ToDynamicDefinition extends NoOutputDefinition<ToDynamicDefinition>
      *
      * @return the builder
      */
+    public ToDynamicDefinition allowOptimisedComponents() {
+        return allowOptimisedComponents(true);
+    }
+
+    /**
+     * Whether to allow components to optimise toD if they are
+     * {@link org.apache.camel.spi.SendDynamicAware}.
+     *
+     * @return the builder
+     */
     public ToDynamicDefinition allowOptimisedComponents(boolean allowOptimisedComponents) {
-        setAllowOptimisedComponents(Boolean.toString(allowOptimisedComponents));
+        return allowOptimisedComponents(Boolean.toString(allowOptimisedComponents));
+    }
+
+    /**
+     * Whether to allow components to optimise toD if they are
+     * {@link org.apache.camel.spi.SendDynamicAware}.
+     *
+     * @return the builder
+     */
+    public ToDynamicDefinition allowOptimisedComponents(String allowOptimisedComponents) {
+        setAllowOptimisedComponents(allowOptimisedComponents);
         return this;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/WireTapDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/WireTapDefinition.java
index fff5e7b..9a80a65 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/WireTapDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/WireTapDefinition.java
@@ -54,10 +54,10 @@ public class WireTapDefinition<Type extends ProcessorDefinition<Type>> extends T
     @XmlAttribute
     private String executorServiceRef;
     @XmlAttribute
-    @Metadata(defaultValue = "true")
+    @Metadata(defaultValue = "true", javaType = "java.lang.Boolean")
     private String copy;
     @XmlAttribute
-    @Metadata(defaultValue = "true")
+    @Metadata(defaultValue = "true", javaType = "java.lang.Boolean")
     private String dynamicUri;
     @XmlAttribute
     private String onPrepareRef;
@@ -136,8 +136,7 @@ public class WireTapDefinition<Type extends ProcessorDefinition<Type>> extends T
      * @return the builder
      */
     public WireTapDefinition<Type> copy() {
-        setCopy(Boolean.toString(true));
-        return this;
+        return copy(true);
     }
 
     /**
@@ -148,7 +147,18 @@ public class WireTapDefinition<Type extends ProcessorDefinition<Type>> extends T
      * @return the builder
      */
     public WireTapDefinition<Type> copy(boolean copy) {
-        setCopy(Boolean.toString(copy));
+        return copy(Boolean.toString(copy));
+    }
+
+    /**
+     * Uses a copy of the original exchange
+     *
+     * @param copy if it is true camel will copy the original exchange, if it is
+     *            false camel will not copy the original exchange
+     * @return the builder
+     */
+    public WireTapDefinition<Type> copy(String copy) {
+        setCopy(copy);
         return this;
     }
 
@@ -163,7 +173,21 @@ public class WireTapDefinition<Type extends ProcessorDefinition<Type>> extends T
      * @return the builder
      */
     public WireTapDefinition<Type> dynamicUri(boolean dynamicUri) {
-        setDynamicUri(Boolean.toString(dynamicUri));
+        return dynamicUri(Boolean.toString(dynamicUri));
+    }
+
+    /**
+     * Whether the uri is dynamic or static. If the uri is dynamic then the
+     * simple language is used to evaluate a dynamic uri to use as the wire-tap
+     * destination, for each incoming message. This works similar to how the
+     * <tt>toD</tt> EIP pattern works. If static then the uri is used as-is as
+     * the wire-tap destination.
+     *
+     * @param dynamicUri whether to use dynamic or static uris
+     * @return the builder
+     */
+    public WireTapDefinition<Type> dynamicUri(String dynamicUri) {
+        setDynamicUri(dynamicUri);
         return this;
     }
 
@@ -264,7 +288,21 @@ public class WireTapDefinition<Type extends ProcessorDefinition<Type>> extends T
      */
     @Override
     public WireTapDefinition<Type> cacheSize(int cacheSize) {
-        setCacheSize(Integer.toString(cacheSize));
+        return cacheSize(Integer.toString(cacheSize));
+    }
+
+    /**
+     * Sets the maximum size used by the
+     * {@link org.apache.camel.spi.ProducerCache} which is used to cache and
+     * reuse producers, when uris are reused.
+     *
+     * @param cacheSize the cache size, use <tt>0</tt> for default cache size,
+     *            or <tt>-1</tt> to turn cache off.
+     * @return the builder
+     */
+    @Override
+    public WireTapDefinition<Type> cacheSize(String cacheSize) {
+        setCacheSize(cacheSize);
         return this;
     }
 
@@ -274,7 +312,6 @@ public class WireTapDefinition<Type extends ProcessorDefinition<Type>> extends T
      *
      * @return the builder
      */
-    @Override
     public WireTapDefinition<Type> ignoreInvalidEndpoint() {
         setIgnoreInvalidEndpoint(Boolean.toString(true));
         return this;
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/CachingServiceCallServiceDiscoveryConfiguration.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/CachingServiceCallServiceDiscoveryConfiguration.java
index 9763951..c58f5b6 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/CachingServiceCallServiceDiscoveryConfiguration.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/CachingServiceCallServiceDiscoveryConfiguration.java
@@ -28,7 +28,6 @@ import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.camel.CamelContext;
-import org.apache.camel.model.TimeUnitAdapter;
 import org.apache.camel.spi.Metadata;
 
 @Metadata(label = "routing,cloud,service-discovery")
@@ -39,9 +38,9 @@ public class CachingServiceCallServiceDiscoveryConfiguration extends ServiceCall
     @Metadata(defaultValue = "60", javaType = "java.lang.Integer")
     private String timeout = Integer.toString(60);
     @XmlAttribute
-    @XmlJavaTypeAdapter(TimeUnitAdapter.class)
-    @Metadata(defaultValue = "SECONDS")
-    private TimeUnit units = TimeUnit.SECONDS;
+    @Metadata(javaType = "java.util.concurrent.TimeUnit", defaultValue = "SECONDS",
+            enums = "NANOSECONDS,MICROSECONDS,MILLISECONDS,SECONDS,MINUTES,HOURS,DAYS")
+    private String units = TimeUnit.SECONDS.name();
     @XmlElements({@XmlElement(name = "consulServiceDiscovery", type = ConsulServiceCallServiceDiscoveryConfiguration.class),
                   @XmlElement(name = "dnsServiceDiscovery", type = DnsServiceCallServiceDiscoveryConfiguration.class),
                   @XmlElement(name = "etcdServiceDiscovery", type = EtcdServiceCallServiceDiscoveryConfiguration.class),
@@ -73,14 +72,14 @@ public class CachingServiceCallServiceDiscoveryConfiguration extends ServiceCall
         this.timeout = timeout;
     }
 
-    public TimeUnit getUnits() {
+    public String getUnits() {
         return units;
     }
 
     /**
      * Set the time unit for the timeout.
      */
-    public void setUnits(TimeUnit units) {
+    public void setUnits(String units) {
         this.units = units;
     }
 
@@ -103,7 +102,14 @@ public class CachingServiceCallServiceDiscoveryConfiguration extends ServiceCall
      * Set the time the services will be retained.
      */
     public CachingServiceCallServiceDiscoveryConfiguration timeout(int timeout) {
-        setTimeout(Integer.toString(timeout));
+        return timeout(Integer.toString(timeout));
+    }
+
+    /**
+     * Set the time the services will be retained.
+     */
+    public CachingServiceCallServiceDiscoveryConfiguration timeout(String timeout) {
+        setTimeout(timeout);
         return this;
     }
 
@@ -111,6 +117,13 @@ public class CachingServiceCallServiceDiscoveryConfiguration extends ServiceCall
      * Set the time unit for the timeout.
      */
     public CachingServiceCallServiceDiscoveryConfiguration units(TimeUnit units) {
+        return units(units.name());
+    }
+
+    /**
+     * Set the time unit for the timeout.
+     */
+    public CachingServiceCallServiceDiscoveryConfiguration units(String units) {
         setUnits(units);
         return this;
     }
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ConsulServiceCallServiceDiscoveryConfiguration.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ConsulServiceCallServiceDiscoveryConfiguration.java
index 3dcb373..50d3705 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ConsulServiceCallServiceDiscoveryConfiguration.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ConsulServiceCallServiceDiscoveryConfiguration.java
@@ -43,14 +43,17 @@ public class ConsulServiceCallServiceDiscoveryConfiguration extends ServiceCallS
     @Metadata(label = "security")
     private String password;
     @XmlAttribute
-    private Long connectTimeoutMillis;
+    @Metadata(javaType = "java.lang.Long")
+    private String connectTimeoutMillis;
     @XmlAttribute
-    private Long readTimeoutMillis;
+    @Metadata(javaType = "java.lang.Long")
+    private String readTimeoutMillis;
     @XmlAttribute
-    private Long writeTimeoutMillis;
+    @Metadata(javaType = "java.lang.Long")
+    private String writeTimeoutMillis;
     @XmlAttribute
-    @Metadata(defaultValue = "10")
-    private Integer blockSeconds = 10;
+    @Metadata(javaType = "java.lang.Integer", defaultValue = "10")
+    private String blockSeconds = Integer.toString(10);
     @XmlTransient
     private SSLContextParameters sslContextParameters;
 
@@ -121,47 +124,47 @@ public class ConsulServiceCallServiceDiscoveryConfiguration extends ServiceCallS
         this.password = password;
     }
 
-    public Long getConnectTimeoutMillis() {
+    public String getConnectTimeoutMillis() {
         return connectTimeoutMillis;
     }
 
     /**
      * Connect timeout for OkHttpClient
      */
-    public void setConnectTimeoutMillis(Long connectTimeoutMillis) {
+    public void setConnectTimeoutMillis(String connectTimeoutMillis) {
         this.connectTimeoutMillis = connectTimeoutMillis;
     }
 
-    public Long getReadTimeoutMillis() {
+    public String getReadTimeoutMillis() {
         return readTimeoutMillis;
     }
 
     /**
      * Read timeout for OkHttpClient
      */
-    public void setReadTimeoutMillis(Long readTimeoutMillis) {
+    public void setReadTimeoutMillis(String readTimeoutMillis) {
         this.readTimeoutMillis = readTimeoutMillis;
     }
 
-    public Long getWriteTimeoutMillis() {
+    public String getWriteTimeoutMillis() {
         return writeTimeoutMillis;
     }
 
     /**
      * Write timeout for OkHttpClient
      */
-    public void setWriteTimeoutMillis(Long writeTimeoutMillis) {
+    public void setWriteTimeoutMillis(String writeTimeoutMillis) {
         this.writeTimeoutMillis = writeTimeoutMillis;
     }
 
-    public Integer getBlockSeconds() {
+    public String getBlockSeconds() {
         return blockSeconds;
     }
 
     /**
      * The seconds to wait for a watch event, default 10 seconds
      */
-    public void setBlockSeconds(Integer blockSeconds) {
+    public void setBlockSeconds(String blockSeconds) {
         this.blockSeconds = blockSeconds;
     }
 
@@ -223,7 +226,14 @@ public class ConsulServiceCallServiceDiscoveryConfiguration extends ServiceCallS
     /**
      * Connect timeout for OkHttpClient
      */
-    public ConsulServiceCallServiceDiscoveryConfiguration connectTimeoutMillis(Long connectTimeoutMillis) {
+    public ConsulServiceCallServiceDiscoveryConfiguration connectTimeoutMillis(long connectTimeoutMillis) {
+        return connectTimeoutMillis(Long.toString(connectTimeoutMillis));
+    }
+
+    /**
+     * Connect timeout for OkHttpClient
+     */
+    public ConsulServiceCallServiceDiscoveryConfiguration connectTimeoutMillis(String connectTimeoutMillis) {
         setConnectTimeoutMillis(connectTimeoutMillis);
         return this;
     }
@@ -232,6 +242,13 @@ public class ConsulServiceCallServiceDiscoveryConfiguration extends ServiceCallS
      * Read timeout for OkHttpClient
      */
     public ConsulServiceCallServiceDiscoveryConfiguration readTimeoutMillis(Long readTimeoutMillis) {
+        return readTimeoutMillis(Long.toString(readTimeoutMillis));
+    }
+
+    /**
+     * Read timeout for OkHttpClient
+     */
+    public ConsulServiceCallServiceDiscoveryConfiguration readTimeoutMillis(String readTimeoutMillis) {
         setReadTimeoutMillis(readTimeoutMillis);
         return this;
     }
@@ -240,6 +257,13 @@ public class ConsulServiceCallServiceDiscoveryConfiguration extends ServiceCallS
      * Write timeout for OkHttpClient
      */
     public ConsulServiceCallServiceDiscoveryConfiguration writeTimeoutMillis(Long writeTimeoutMillis) {
+        return writeTimeoutMillis(Long.toString(writeTimeoutMillis));
+    }
+
+    /**
+     * Write timeout for OkHttpClient
+     */
+    public ConsulServiceCallServiceDiscoveryConfiguration writeTimeoutMillis(String writeTimeoutMillis) {
         setWriteTimeoutMillis(writeTimeoutMillis);
         return this;
     }
@@ -248,6 +272,13 @@ public class ConsulServiceCallServiceDiscoveryConfiguration extends ServiceCallS
      * The seconds to wait for a watch event, default 10 seconds
      */
     public ConsulServiceCallServiceDiscoveryConfiguration blockSeconds(Integer blockSeconds) {
+        return blockSeconds(Integer.toString(blockSeconds));
+    }
+
+    /**
+     * The seconds to wait for a watch event, default 10 seconds
+     */
+    public ConsulServiceCallServiceDiscoveryConfiguration blockSeconds(String blockSeconds) {
         setBlockSeconds(blockSeconds);
         return this;
     }
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/EtcdServiceCallServiceDiscoveryConfiguration.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/EtcdServiceCallServiceDiscoveryConfiguration.java
index 6851f25..97a515e 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/EtcdServiceCallServiceDiscoveryConfiguration.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/EtcdServiceCallServiceDiscoveryConfiguration.java
@@ -38,7 +38,8 @@ public class EtcdServiceCallServiceDiscoveryConfiguration extends ServiceCallSer
     @Metadata(label = "security")
     private String password;
     @XmlAttribute
-    private Long timeout;
+    @Metadata(javaType = "java.lang.Long")
+    private String timeout;
     @XmlAttribute
     @Metadata(defaultValue = "/services/")
     private String servicePath = "/services/";
@@ -93,14 +94,14 @@ public class EtcdServiceCallServiceDiscoveryConfiguration extends ServiceCallSer
         this.password = password;
     }
 
-    public Long getTimeout() {
+    public String getTimeout() {
         return timeout;
     }
 
     /**
      * To set the maximum time an action could take to complete.
      */
-    public void setTimeout(Long timeout) {
+    public void setTimeout(String timeout) {
         this.timeout = timeout;
     }
 
@@ -169,6 +170,13 @@ public class EtcdServiceCallServiceDiscoveryConfiguration extends ServiceCallSer
      * To set the maximum time an action could take to complete.
      */
     public EtcdServiceCallServiceDiscoveryConfiguration timeout(Long timeout) {
+        return timeout(Long.toString(timeout));
+    }
+
+    /**
+     * To set the maximum time an action could take to complete.
+     */
+    public EtcdServiceCallServiceDiscoveryConfiguration timeout(String timeout) {
         setTimeout(timeout);
         return this;
     }
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/KubernetesServiceCallServiceDiscoveryConfiguration.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/KubernetesServiceCallServiceDiscoveryConfiguration.java
index 5679c24..f7a2233 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/KubernetesServiceCallServiceDiscoveryConfiguration.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/KubernetesServiceCallServiceDiscoveryConfiguration.java
@@ -80,8 +80,8 @@ public class KubernetesServiceCallServiceDiscoveryConfiguration extends ServiceC
     @Metadata(label = "client")
     private String clientKeyPassphrase;
     @XmlAttribute
-    @Metadata(label = "client")
-    private Boolean trustCerts;
+    @Metadata(label = "client", javaType = "java.lang.Boolean")
+    private String trustCerts;
 
     public KubernetesServiceCallServiceDiscoveryConfiguration() {
         this(null);
@@ -313,14 +313,14 @@ public class KubernetesServiceCallServiceDiscoveryConfiguration extends ServiceC
         this.clientKeyPassphrase = clientKeyPassphrase;
     }
 
-    public Boolean getTrustCerts() {
+    public String getTrustCerts() {
         return trustCerts;
     }
 
     /**
      * Sets whether to turn on trust certificate check when using client lookup
      */
-    public void setTrustCerts(Boolean trustCerts) {
+    public void setTrustCerts(String trustCerts) {
         this.trustCerts = trustCerts;
     }
 
@@ -481,6 +481,13 @@ public class KubernetesServiceCallServiceDiscoveryConfiguration extends ServiceC
      * Sets whether to turn on trust certificate check when using client lookup
      */
     public KubernetesServiceCallServiceDiscoveryConfiguration trustCerts(boolean trustCerts) {
+        return trustCerts(Boolean.toString(trustCerts));
+    }
+
+    /**
+     * Sets whether to turn on trust certificate check when using client lookup
+     */
+    public KubernetesServiceCallServiceDiscoveryConfiguration trustCerts(String trustCerts) {
         setTrustCerts(trustCerts);
         return this;
     }
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallConfigurationDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallConfigurationDefinition.java
index 0a6ee01..1785e2b 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallConfigurationDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallConfigurationDefinition.java
@@ -47,7 +47,8 @@ public class ServiceCallConfigurationDefinition extends IdentifiedType {
     @Metadata(defaultValue = ServiceCallDefinitionConstants.DEFAULT_COMPONENT)
     private String component;
     @XmlAttribute
-    private ExchangePattern pattern;
+    @Metadata(javaType = "org.apache.camel.ExchangePattern", enums = "InOnly,InOut,InOptionalOut")
+    private String pattern;
     @XmlAttribute
     private String serviceDiscoveryRef;
     @XmlTransient
@@ -99,11 +100,11 @@ public class ServiceCallConfigurationDefinition extends IdentifiedType {
     // Properties
     // *****************************
 
-    public ExchangePattern getPattern() {
+    public String getPattern() {
         return pattern;
     }
 
-    public void setPattern(ExchangePattern pattern) {
+    public void setPattern(String pattern) {
         this.pattern = pattern;
     }
 
@@ -316,6 +317,13 @@ public class ServiceCallConfigurationDefinition extends IdentifiedType {
      * Sets the optional {@link ExchangePattern} used to invoke this endpoint
      */
     public ServiceCallConfigurationDefinition pattern(ExchangePattern pattern) {
+        return pattern(pattern.name());
+    }
+
+    /**
+     * Sets the optional {@link ExchangePattern} used to invoke this endpoint
+     */
+    public ServiceCallConfigurationDefinition pattern(String pattern) {
         setPattern(pattern);
         return this;
     }
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallDefinition.java
index f14f3a5..5628d32 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallDefinition.java
@@ -50,7 +50,8 @@ public class ServiceCallDefinition extends NoOutputDefinition<ServiceCallDefinit
     @Metadata(defaultValue = ServiceCallDefinitionConstants.DEFAULT_COMPONENT)
     private String component;
     @XmlAttribute
-    private ExchangePattern pattern;
+    @Metadata(required = true, javaType = "org.apache.camel.ExchangePattern", enums = "InOnly,InOut,InOptionalOut")
+    private String pattern;
     @XmlAttribute
     private String configurationRef;
     @XmlAttribute
@@ -131,14 +132,14 @@ public class ServiceCallDefinition extends NoOutputDefinition<ServiceCallDefinit
         this.name = name;
     }
 
-    public ExchangePattern getPattern() {
+    public String getPattern() {
         return pattern;
     }
 
     /**
      * Sets the optional {@link ExchangePattern} used to invoke this endpoint
      */
-    public void setPattern(ExchangePattern pattern) {
+    public void setPattern(String pattern) {
         this.pattern = pattern;
     }
 
@@ -338,6 +339,13 @@ public class ServiceCallDefinition extends NoOutputDefinition<ServiceCallDefinit
      * Sets the optional {@link ExchangePattern} used to invoke this endpoint
      */
     public ServiceCallDefinition pattern(ExchangePattern pattern) {
+        return pattern(pattern.name());
+    }
+
+    /**
+     * Sets the optional {@link ExchangePattern} used to invoke this endpoint
+     */
+    public ServiceCallDefinition pattern(String pattern) {
         setPattern(pattern);
         return this;
     }
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/BindyDataFormat.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/BindyDataFormat.java
index 5261e9d..c9118f6 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/BindyDataFormat.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/BindyDataFormat.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.model.dataformat;
 
+import java.util.Locale;
 import java.util.Objects;
 
 import javax.xml.bind.annotation.XmlAccessType;
@@ -36,17 +37,18 @@ import org.apache.camel.spi.Metadata;
 @XmlAccessorType(XmlAccessType.FIELD)
 public class BindyDataFormat extends DataFormatDefinition {
     @XmlAttribute(required = true)
-    private BindyType type;
+    @Metadata(required = true, javaType = "org.apache.camel.model.dataformat.BindyType", enums = "Csv,Fixed,KeyValue")
+    private String type;
     @XmlAttribute
     private String classType;
     @XmlAttribute
     private String locale;
     @XmlAttribute
-    @Metadata(defaultValue = "true")
-    private Boolean unwrapSingleInstance;
+    @Metadata(javaType = "java.lang.Boolean", defaultValue = "true")
+    private String unwrapSingleInstance;
     @XmlAttribute
-    @Metadata(defaultValue = "false")
-    private Boolean allowEmptyStream;
+    @Metadata(javaType = "java.lang.Boolean", defaultValue = "false")
+    private String allowEmptyStream;
     @XmlTransient
     private Class<?> clazz;
 
@@ -54,14 +56,14 @@ public class BindyDataFormat extends DataFormatDefinition {
         super("bindy");
     }
 
-    public BindyType getType() {
+    public String getType() {
         return type;
     }
 
     /**
      * Whether to use Csv, Fixed, or KeyValue.
      */
-    public void setType(BindyType type) {
+    public void setType(String type) {
         this.type = type;
     }
 
@@ -71,9 +73,9 @@ public class BindyDataFormat extends DataFormatDefinition {
 
     @Override
     public String getDataFormatName() {
-        if (type == BindyType.Csv) {
+        if ("Csv".equals(type)) {
             return "bindy-csv";
-        } else if (type == BindyType.Fixed) {
+        } else if ("Fixed".equals(type)) {
             return "bindy-fixed";
         } else {
             return "bindy-kvp";
@@ -119,7 +121,7 @@ public class BindyDataFormat extends DataFormatDefinition {
         this.locale = locale;
     }
 
-    public Boolean getUnwrapSingleInstance() {
+    public String getUnwrapSingleInstance() {
         return unwrapSingleInstance;
     }
 
@@ -127,11 +129,11 @@ public class BindyDataFormat extends DataFormatDefinition {
      * When unmarshalling should a single instance be unwrapped and returned
      * instead of wrapped in a <tt>java.util.List</tt>.
      */
-    public void setUnwrapSingleInstance(Boolean unwrapSingleInstance) {
+    public void setUnwrapSingleInstance(String unwrapSingleInstance) {
         this.unwrapSingleInstance = unwrapSingleInstance;
     }
 
-    public Boolean getAllowEmptyStream() {
+    public String getAllowEmptyStream() {
         return allowEmptyStream;
     }
     
@@ -139,8 +141,72 @@ public class BindyDataFormat extends DataFormatDefinition {
    * Whether to allow empty streams in the unmarshal process. If true, no
    * exception will be thrown when a body without records is provided.
    */
-    public void setAllowEmptyStream(Boolean allowEmptyStream) {
+    public void setAllowEmptyStream(String allowEmptyStream) {
         this.allowEmptyStream = allowEmptyStream;
     }
 
+    //
+    // Fluent builder api
+    //
+
+    public BindyDataFormat csv() {
+        return type(BindyType.Csv);
+    }
+
+    public BindyDataFormat fixed() {
+        return type(BindyType.Fixed);
+    }
+
+    public BindyDataFormat keyValue() {
+        return type(BindyType.KeyValue);
+    }
+
+    public BindyDataFormat type(BindyType type) {
+        return type(type.name());
+    }
+
+    public BindyDataFormat type(String type) {
+        this.type = type;
+        return this;
+    }
+
+    public BindyDataFormat classType(Class<?> classType) {
+        this.clazz = classType;
+        return this;
+    }
+
+    public BindyDataFormat classType(String classType) {
+        this.classType = classType;
+        return this;
+    }
+
+    public BindyDataFormat locale(Locale locale) {
+        return locale(locale.getCountry().isEmpty()
+                ? locale.getLanguage() : locale.getLanguage() + "-" + locale.getCountry());
+    }
+
+    public BindyDataFormat locale(String locale) {
+        this.locale = locale;
+        return this;
+    }
+
+    public BindyDataFormat unwrapSingleInstance(boolean unwrapSingleInstance) {
+        return unwrapSingleInstance(Boolean.toString(unwrapSingleInstance));
+    }
+
+    public BindyDataFormat unwrapSingleInstance(String unwrapSingleInstance) {
+        this.unwrapSingleInstance = unwrapSingleInstance;
+        return this;
+    }
+
+    public BindyDataFormat allowEmptyStream(boolean allowEmptyStream) {
+        return allowEmptyStream(Boolean.toString(allowEmptyStream));
+    }
+
+    public BindyDataFormat allowEmptyStream(String allowEmptyStream) {
+        this.allowEmptyStream = allowEmptyStream;
+        return this;
+    }
+
+
 }
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/CsvDataFormat.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/CsvDataFormat.java
index f13a106..0ff37b7 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/CsvDataFormat.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/CsvDataFormat.java
@@ -42,31 +42,39 @@ public class CsvDataFormat extends DataFormatDefinition {
     @Metadata(enums = "DEFAULT,EXCEL,INFORMIX_UNLOAD,INFORMIX_UNLOAD_CSV,MYSQL,RFC4180")
     private String formatName;
     @XmlAttribute
-    private Boolean commentMarkerDisabled;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String commentMarkerDisabled;
     @XmlAttribute
     private String commentMarker;
     @XmlAttribute
     private String delimiter;
     @XmlAttribute
-    private Boolean escapeDisabled;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String escapeDisabled;
     @XmlAttribute
     private String escape;
     @XmlAttribute
-    private Boolean headerDisabled;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String headerDisabled;
     @XmlElement
     private List<String> header;
     @XmlAttribute
-    private Boolean allowMissingColumnNames;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String allowMissingColumnNames;
     @XmlAttribute
-    private Boolean ignoreEmptyLines;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String ignoreEmptyLines;
     @XmlAttribute
-    private Boolean ignoreSurroundingSpaces;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String ignoreSurroundingSpaces;
     @XmlAttribute
-    private Boolean nullStringDisabled;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String nullStringDisabled;
     @XmlAttribute
     private String nullString;
     @XmlAttribute
-    private Boolean quoteDisabled;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String quoteDisabled;
     @XmlAttribute
     private String quote;
     @XmlAttribute
@@ -74,26 +82,33 @@ public class CsvDataFormat extends DataFormatDefinition {
     @XmlAttribute
     private String recordSeparator;
     @XmlAttribute
-    private Boolean skipHeaderRecord;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String skipHeaderRecord;
     @XmlAttribute
     private String quoteMode;
     @XmlAttribute
-    private Boolean ignoreHeaderCase;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String ignoreHeaderCase;
     @XmlAttribute
-    private Boolean trim;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String trim;
     @XmlAttribute
-    private Boolean trailingDelimiter;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String trailingDelimiter;
     @XmlAttribute
     @Metadata(label = "advanced")
     private String marshallerFactoryRef;
 
     // Unmarshall options
     @XmlAttribute
-    private Boolean lazyLoad;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String lazyLoad;
     @XmlAttribute
-    private Boolean useMaps;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String useMaps;
     @XmlAttribute
-    private Boolean useOrderedMaps;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String useOrderedMaps;
     @XmlAttribute
     private String recordConverterRef;
 
@@ -108,7 +123,7 @@ public class CsvDataFormat extends DataFormatDefinition {
 
     public CsvDataFormat(boolean lazyLoad) {
         this();
-        setLazyLoad(lazyLoad);
+        setLazyLoad(Boolean.toString(lazyLoad));
     }
 
     /**
@@ -156,14 +171,14 @@ public class CsvDataFormat extends DataFormatDefinition {
         this.formatName = formatName;
     }
 
-    public Boolean getCommentMarkerDisabled() {
+    public String getCommentMarkerDisabled() {
         return commentMarkerDisabled;
     }
 
     /**
      * Disables the comment marker of the reference format.
      */
-    public void setCommentMarkerDisabled(Boolean commentMarkerDisabled) {
+    public void setCommentMarkerDisabled(String commentMarkerDisabled) {
         this.commentMarkerDisabled = commentMarkerDisabled;
     }
 
@@ -191,14 +206,14 @@ public class CsvDataFormat extends DataFormatDefinition {
         this.delimiter = delimiter;
     }
 
-    public Boolean getEscapeDisabled() {
+    public String getEscapeDisabled() {
         return escapeDisabled;
     }
 
     /**
      * Use for disabling using escape character
      */
-    public void setEscapeDisabled(Boolean escapeDisabled) {
+    public void setEscapeDisabled(String escapeDisabled) {
         this.escapeDisabled = escapeDisabled;
     }
 
@@ -216,11 +231,11 @@ public class CsvDataFormat extends DataFormatDefinition {
     /**
      * Use for disabling headers
      */
-    public Boolean getHeaderDisabled() {
+    public String getHeaderDisabled() {
         return headerDisabled;
     }
 
-    public void setHeaderDisabled(Boolean headerDisabled) {
+    public void setHeaderDisabled(String headerDisabled) {
         this.headerDisabled = headerDisabled;
     }
 
@@ -235,47 +250,47 @@ public class CsvDataFormat extends DataFormatDefinition {
         this.header = header;
     }
 
-    public Boolean getAllowMissingColumnNames() {
+    public String getAllowMissingColumnNames() {
         return allowMissingColumnNames;
     }
 
     /**
      * Whether to allow missing column names.
      */
-    public void setAllowMissingColumnNames(Boolean allowMissingColumnNames) {
+    public void setAllowMissingColumnNames(String allowMissingColumnNames) {
         this.allowMissingColumnNames = allowMissingColumnNames;
     }
 
-    public Boolean getIgnoreEmptyLines() {
+    public String getIgnoreEmptyLines() {
         return ignoreEmptyLines;
     }
 
     /**
      * Whether to ignore empty lines.
      */
-    public void setIgnoreEmptyLines(Boolean ignoreEmptyLines) {
+    public void setIgnoreEmptyLines(String ignoreEmptyLines) {
         this.ignoreEmptyLines = ignoreEmptyLines;
     }
 
-    public Boolean getIgnoreSurroundingSpaces() {
+    public String getIgnoreSurroundingSpaces() {
         return ignoreSurroundingSpaces;
     }
 
     /**
      * Whether to ignore surrounding spaces
      */
-    public void setIgnoreSurroundingSpaces(Boolean ignoreSurroundingSpaces) {
+    public void setIgnoreSurroundingSpaces(String ignoreSurroundingSpaces) {
         this.ignoreSurroundingSpaces = ignoreSurroundingSpaces;
     }
 
-    public Boolean getNullStringDisabled() {
+    public String getNullStringDisabled() {
         return nullStringDisabled;
     }
 
     /**
      * Used to disable null strings
      */
-    public void setNullStringDisabled(Boolean nullStringDisabled) {
+    public void setNullStringDisabled(String nullStringDisabled) {
         this.nullStringDisabled = nullStringDisabled;
     }
 
@@ -290,14 +305,14 @@ public class CsvDataFormat extends DataFormatDefinition {
         this.nullString = nullString;
     }
 
-    public Boolean getQuoteDisabled() {
+    public String getQuoteDisabled() {
         return quoteDisabled;
     }
 
     /**
      * Used to disable quotes
      */
-    public void setQuoteDisabled(Boolean quoteDisabled) {
+    public void setQuoteDisabled(String quoteDisabled) {
         this.quoteDisabled = quoteDisabled;
     }
 
@@ -335,14 +350,14 @@ public class CsvDataFormat extends DataFormatDefinition {
         this.recordSeparator = recordSeparator;
     }
 
-    public Boolean getSkipHeaderRecord() {
+    public String getSkipHeaderRecord() {
         return skipHeaderRecord;
     }
 
     /**
      * Whether to skip the header record in the output
      */
-    public void setSkipHeaderRecord(Boolean skipHeaderRecord) {
+    public void setSkipHeaderRecord(String skipHeaderRecord) {
         this.skipHeaderRecord = skipHeaderRecord;
     }
 
@@ -357,7 +372,7 @@ public class CsvDataFormat extends DataFormatDefinition {
         this.quoteMode = quoteMode;
     }
 
-    public Boolean getLazyLoad() {
+    public String getLazyLoad() {
         return lazyLoad;
     }
 
@@ -365,11 +380,11 @@ public class CsvDataFormat extends DataFormatDefinition {
      * Whether the unmarshalling should produce an iterator that reads the lines
      * on the fly or if all the lines must be read at one.
      */
-    public void setLazyLoad(Boolean lazyLoad) {
+    public void setLazyLoad(String lazyLoad) {
         this.lazyLoad = lazyLoad;
     }
 
-    public Boolean getUseMaps() {
+    public String getUseMaps() {
         return useMaps;
     }
 
@@ -378,11 +393,11 @@ public class CsvDataFormat extends DataFormatDefinition {
      * values instead of lists. It requires to have header (either defined or
      * collected).
      */
-    public void setUseMaps(Boolean useMaps) {
+    public void setUseMaps(String useMaps) {
         this.useMaps = useMaps;
     }
 
-    public Boolean getUseOrderedMaps() {
+    public String getUseOrderedMaps() {
         return useOrderedMaps;
     }
 
@@ -391,7 +406,7 @@ public class CsvDataFormat extends DataFormatDefinition {
      * the lines values instead of lists. It requires to have header (either
      * defined or collected).
      */
-    public void setUseOrderedMaps(Boolean useOrderedMaps) {
+    public void setUseOrderedMaps(String useOrderedMaps) {
         this.useOrderedMaps = useOrderedMaps;
     }
 
@@ -410,33 +425,33 @@ public class CsvDataFormat extends DataFormatDefinition {
     /**
      * Sets whether or not to trim leading and trailing blanks.
      */
-    public void setTrim(Boolean trim) {
+    public void setTrim(String trim) {
         this.trim = trim;
     }
 
-    public Boolean getTrim() {
+    public String getTrim() {
         return trim;
     }
 
     /**
      * Sets whether or not to ignore case when accessing header names.
      */
-    public void setIgnoreHeaderCase(Boolean ignoreHeaderCase) {
+    public void setIgnoreHeaderCase(String ignoreHeaderCase) {
         this.ignoreHeaderCase = ignoreHeaderCase;
     }
 
-    public Boolean getIgnoreHeaderCase() {
+    public String getIgnoreHeaderCase() {
         return ignoreHeaderCase;
     }
 
     /**
      * Sets whether or not to add a trailing delimiter.
      */
-    public void setTrailingDelimiter(Boolean trailingDelimiter) {
+    public void setTrailingDelimiter(String trailingDelimiter) {
         this.trailingDelimiter = trailingDelimiter;
     }
 
-    public Boolean getTrailingDelimiter() {
+    public String getTrailingDelimiter() {
         return trailingDelimiter;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/FhirDataformat.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/FhirDataformat.java
index 696ec5c..6d8e289 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/FhirDataformat.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/FhirDataformat.java
@@ -35,7 +35,8 @@ public abstract class FhirDataformat extends DataFormatDefinition {
     private String fhirVersion;
 
     @XmlAttribute
-    private Boolean prettyPrint;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String prettyPrint;
 
     @XmlTransient
     @Metadata(label = "advanced")
@@ -58,12 +59,12 @@ public abstract class FhirDataformat extends DataFormatDefinition {
     private String serverBaseUrl;
 
     @XmlAttribute
-    @Metadata(label = "advanced")
-    private Boolean omitResourceId;
+    @Metadata(label = "advanced", javaType = "java.lang.Boolean")
+    private String omitResourceId;
 
     @XmlAttribute
-    @Metadata(label = "advanced")
-    private Boolean encodeElementsAppliesToChildResourcesOnly;
+    @Metadata(label = "advanced", javaType = "java.lang.Boolean")
+    private String encodeElementsAppliesToChildResourcesOnly;
 
     @XmlAttribute
     @Metadata(label = "advanced")
@@ -74,20 +75,20 @@ public abstract class FhirDataformat extends DataFormatDefinition {
     private Set<String> dontEncodeElements;
 
     @XmlAttribute
-    @Metadata(label = "advanced")
-    private Boolean stripVersionsFromReferences;
+    @Metadata(label = "advanced", javaType = "java.lang.Boolean")
+    private String stripVersionsFromReferences;
 
     @XmlAttribute
-    @Metadata(label = "advanced")
-    private Boolean overrideResourceIdWithBundleEntryFullUrl;
+    @Metadata(label = "advanced", javaType = "java.lang.Boolean")
+    private String overrideResourceIdWithBundleEntryFullUrl;
 
     @XmlAttribute
-    @Metadata(label = "advanced")
-    private Boolean summaryMode;
+    @Metadata(label = "advanced", javaType = "java.lang.Boolean")
+    private String summaryMode;
 
     @XmlAttribute
-    @Metadata(label = "advanced")
-    private Boolean suppressNarratives;
+    @Metadata(label = "advanced", javaType = "java.lang.Boolean")
+    private String suppressNarratives;
 
     @XmlAttribute
     @Metadata(label = "advanced")
@@ -121,7 +122,7 @@ public abstract class FhirDataformat extends DataFormatDefinition {
         this.fhirVersion = fhirVersion;
     }
 
-    public Boolean isPrettyPrint() {
+    public String getPrettyPrint() {
         return prettyPrint;
     }
 
@@ -132,7 +133,7 @@ public abstract class FhirDataformat extends DataFormatDefinition {
      *
      * @param prettyPrint The flag
      */
-    public void setPrettyPrint(Boolean prettyPrint) {
+    public void setPrettyPrint(String prettyPrint) {
         this.prettyPrint = prettyPrint;
     }
 
@@ -208,7 +209,7 @@ public abstract class FhirDataformat extends DataFormatDefinition {
         this.serverBaseUrl = serverBaseUrl;
     }
 
-    public Boolean isOmitResourceId() {
+    public String getOmitResourceId() {
         return omitResourceId;
     }
 
@@ -222,11 +223,11 @@ public abstract class FhirDataformat extends DataFormatDefinition {
      *
      * @param omitResourceId Should resource IDs be omitted
      */
-    public void setOmitResourceId(Boolean omitResourceId) {
+    public void setOmitResourceId(String omitResourceId) {
         this.omitResourceId = omitResourceId;
     }
 
-    public Boolean isEncodeElementsAppliesToChildResourcesOnly() {
+    public String getEncodeElementsAppliesToChildResourcesOnly() {
         return encodeElementsAppliesToChildResourcesOnly;
     }
 
@@ -236,7 +237,7 @@ public abstract class FhirDataformat extends DataFormatDefinition {
      * (typically a Bundle), but will be applied to any sub-resources contained
      * within it (i.e. search result resources in that bundle)
      */
-    public void setEncodeElementsAppliesToChildResourcesOnly(Boolean encodeElementsAppliesToChildResourcesOnly) {
+    public void setEncodeElementsAppliesToChildResourcesOnly(String encodeElementsAppliesToChildResourcesOnly) {
         this.encodeElementsAppliesToChildResourcesOnly = encodeElementsAppliesToChildResourcesOnly;
     }
 
@@ -294,7 +295,7 @@ public abstract class FhirDataformat extends DataFormatDefinition {
         this.dontEncodeElements = dontEncodeElements;
     }
 
-    public Boolean getStripVersionsFromReferences() {
+    public String getStripVersionsFromReferences() {
         return stripVersionsFromReferences;
     }
 
@@ -318,11 +319,11 @@ public abstract class FhirDataformat extends DataFormatDefinition {
      *            {@link #setParserOptions(Object)}
      * @see #setDontStripVersionsFromReferencesAtPaths(List)
      */
-    public void setStripVersionsFromReferences(Boolean stripVersionsFromReferences) {
+    public void setStripVersionsFromReferences(String stripVersionsFromReferences) {
         this.stripVersionsFromReferences = stripVersionsFromReferences;
     }
 
-    public Boolean getOverrideResourceIdWithBundleEntryFullUrl() {
+    public String getOverrideResourceIdWithBundleEntryFullUrl() {
         return overrideResourceIdWithBundleEntryFullUrl;
     }
 
@@ -340,11 +341,11 @@ public abstract class FhirDataformat extends DataFormatDefinition {
      *            <code>null</code> to apply the default setting from the
      *            {@link #setParserOptions(Object)})
      */
-    public void setOverrideResourceIdWithBundleEntryFullUrl(Boolean overrideResourceIdWithBundleEntryFullUrl) {
+    public void setOverrideResourceIdWithBundleEntryFullUrl(String overrideResourceIdWithBundleEntryFullUrl) {
         this.overrideResourceIdWithBundleEntryFullUrl = overrideResourceIdWithBundleEntryFullUrl;
     }
 
-    public Boolean isSummaryMode() {
+    public String getSummaryMode() {
         return summaryMode;
     }
 
@@ -353,11 +354,11 @@ public abstract class FhirDataformat extends DataFormatDefinition {
      * marked by the FHIR specification as being "summary elements" will be
      * included.
      */
-    public void setSummaryMode(Boolean summaryMode) {
+    public void setSummaryMode(String summaryMode) {
         this.summaryMode = summaryMode;
     }
 
-    public Boolean isSuppressNarratives() {
+    public String getSuppressNarratives() {
         return suppressNarratives;
     }
 
@@ -365,7 +366,7 @@ public abstract class FhirDataformat extends DataFormatDefinition {
      * If set to <code>true</code> (default is <code>false</code>), narratives
      * will not be included in the encoded values.
      */
-    public void setSuppressNarratives(Boolean suppressNarratives) {
+    public void setSuppressNarratives(String suppressNarratives) {
         this.suppressNarratives = suppressNarratives;
     }
 
@@ -380,9 +381,9 @@ public abstract class FhirDataformat extends DataFormatDefinition {
      * parsing process.
      * <p>
      * This method provides a finer-grained level of control than
-     * {@link #setStripVersionsFromReferences(Boolean)} and any paths specified
+     * {@link #setStripVersionsFromReferences(String)} and any paths specified
      * by this method will be encoded even if
-     * {@link #setStripVersionsFromReferences(Boolean)} has been set to
+     * {@link #setStripVersionsFromReferences(String)} has been set to
      * <code>true</code> (which is the default)
      * </p>
      *
@@ -394,7 +395,7 @@ public abstract class FhirDataformat extends DataFormatDefinition {
      *            repetition indicators, FluentPath expressions, etc.). Set to
      *            <code>null</code> to use the value set in the
      *            {@link #setParserOptions(Object)}
-     * @see #setStripVersionsFromReferences(Boolean)
+     * @see #setStripVersionsFromReferences(String)
      */
     public void setDontStripVersionsFromReferencesAtPaths(List<String> dontStripVersionsFromReferencesAtPaths) {
         this.dontStripVersionsFromReferencesAtPaths = dontStripVersionsFromReferencesAtPaths;
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/FlatpackDataFormat.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/FlatpackDataFormat.java
index 9ca5b95..d699265 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/FlatpackDataFormat.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/FlatpackDataFormat.java
@@ -35,19 +35,22 @@ public class FlatpackDataFormat extends DataFormatDefinition {
     @XmlAttribute
     private String definition;
     @XmlAttribute
-    private Boolean fixed;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String fixed;
     @XmlAttribute
-    @Metadata(defaultValue = "true")
-    private Boolean ignoreFirstRecord;
+    @Metadata(defaultValue = "true", javaType = "java.lang.Boolean")
+    private String ignoreFirstRecord;
     @XmlAttribute
     private String textQualifier;
     @XmlAttribute
     @Metadata(defaultValue = ",")
     private String delimiter;
     @XmlAttribute
-    private Boolean allowShortLines;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String allowShortLines;
     @XmlAttribute
-    private Boolean ignoreExtraColumns;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String ignoreExtraColumns;
     @XmlAttribute
     @Metadata(label = "advanced")
     private String parserFactoryRef;
@@ -68,18 +71,18 @@ public class FlatpackDataFormat extends DataFormatDefinition {
         this.definition = definition;
     }
 
-    public Boolean getFixed() {
+    public String getFixed() {
         return fixed;
     }
 
     /**
      * Delimited or fixed. Is by default false = delimited
      */
-    public void setFixed(Boolean fixed) {
+    public void setFixed(String fixed) {
         this.fixed = fixed;
     }
 
-    public Boolean getIgnoreFirstRecord() {
+    public String getIgnoreFirstRecord() {
         return ignoreFirstRecord;
     }
 
@@ -89,7 +92,7 @@ public class FlatpackDataFormat extends DataFormatDefinition {
      * <p/>
      * Is by default true.
      */
-    public void setIgnoreFirstRecord(Boolean ignoreFirstRecord) {
+    public void setIgnoreFirstRecord(String ignoreFirstRecord) {
         this.ignoreFirstRecord = ignoreFirstRecord;
     }
 
@@ -117,7 +120,7 @@ public class FlatpackDataFormat extends DataFormatDefinition {
         this.delimiter = delimiter;
     }
 
-    public Boolean getAllowShortLines() {
+    public String getAllowShortLines() {
         return allowShortLines;
     }
 
@@ -125,11 +128,11 @@ public class FlatpackDataFormat extends DataFormatDefinition {
      * Allows for lines to be shorter than expected and ignores the extra
      * characters
      */
-    public void setAllowShortLines(Boolean allowShortLines) {
+    public void setAllowShortLines(String allowShortLines) {
         this.allowShortLines = allowShortLines;
     }
 
-    public Boolean getIgnoreExtraColumns() {
+    public String getIgnoreExtraColumns() {
         return ignoreExtraColumns;
     }
 
@@ -137,7 +140,7 @@ public class FlatpackDataFormat extends DataFormatDefinition {
      * Allows for lines to be longer than expected and ignores the extra
      * characters.
      */
-    public void setIgnoreExtraColumns(Boolean ignoreExtraColumns) {
+    public void setIgnoreExtraColumns(String ignoreExtraColumns) {
         this.ignoreExtraColumns = ignoreExtraColumns;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/GrokDataFormat.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/GrokDataFormat.java
index 0e7f6e7..f956ebd 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/GrokDataFormat.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/GrokDataFormat.java
@@ -37,16 +37,16 @@ public class GrokDataFormat extends DataFormatDefinition {
     private String pattern;
 
     @XmlAttribute
-    @Metadata(defaultValue = "false")
-    private Boolean flattened = false;
+    @Metadata(defaultValue = "false", javaType = "java.lang.Boolean")
+    private String flattened = Boolean.toString(false);
 
     @XmlAttribute
-    @Metadata(defaultValue = "true")
-    private Boolean allowMultipleMatchesPerLine = true;
+    @Metadata(defaultValue = "true", javaType = "java.lang.Boolean")
+    private String allowMultipleMatchesPerLine = Boolean.toString(true);
 
     @XmlAttribute
-    @Metadata(defaultValue = "false")
-    private Boolean namedOnly = false;
+    @Metadata(defaultValue = "false", javaType = "java.lang.Boolean")
+    private String namedOnly = Boolean.toString(false);
 
     public GrokDataFormat() {
         super("grok");
@@ -63,7 +63,7 @@ public class GrokDataFormat extends DataFormatDefinition {
         this.pattern = pattern;
     }
 
-    public boolean isFlattened() {
+    public String getFlattened() {
         return flattened;
     }
 
@@ -71,11 +71,11 @@ public class GrokDataFormat extends DataFormatDefinition {
      * Turns on flattened mode. In flattened mode the exception is thrown when
      * there are multiple pattern matches with same key.
      */
-    public void setFlattened(boolean flattened) {
+    public void setFlattened(String flattened) {
         this.flattened = flattened;
     }
 
-    public boolean isAllowMultipleMatchesPerLine() {
+    public String getAllowMultipleMatchesPerLine() {
         return allowMultipleMatchesPerLine;
     }
 
@@ -83,11 +83,11 @@ public class GrokDataFormat extends DataFormatDefinition {
      * If false, every line of input is matched for pattern only once. Otherwise
      * the line can be scanned multiple times when non-terminal pattern is used.
      */
-    public void setAllowMultipleMatchesPerLine(boolean allowMultipleMatchesPerLine) {
+    public void setAllowMultipleMatchesPerLine(String allowMultipleMatchesPerLine) {
         this.allowMultipleMatchesPerLine = allowMultipleMatchesPerLine;
     }
 
-    public boolean isNamedOnly() {
+    public String getNamedOnly() {
         return namedOnly;
     }
 
@@ -95,7 +95,7 @@ public class GrokDataFormat extends DataFormatDefinition {
      * Whether to capture named expressions only or not (i.e. %{IP:ip} but not
      * ${IP})
      */
-    public void setNamedOnly(boolean namedOnly) {
+    public void setNamedOnly(String namedOnly) {
         this.namedOnly = namedOnly;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/HL7DataFormat.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/HL7DataFormat.java
index b2b27ba..33d3a62 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/HL7DataFormat.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/HL7DataFormat.java
@@ -34,8 +34,8 @@ import org.apache.camel.spi.Metadata;
 @XmlAccessorType(XmlAccessType.FIELD)
 public class HL7DataFormat extends DataFormatDefinition {
     @XmlAttribute
-    @Metadata(defaultValue = "true")
-    private Boolean validate;
+    @Metadata(defaultValue = "true", javaType = "java.lang.Boolean")
+    private String validate;
     @XmlTransient
     private Object parser;
 
@@ -43,12 +43,7 @@ public class HL7DataFormat extends DataFormatDefinition {
         super("hl7");
     }
 
-    public boolean isValidate() {
-        // defaults to true if not configured
-        return validate != null ? validate : true;
-    }
-
-    public Boolean getValidate() {
+    public String getValidate() {
         return validate;
     }
 
@@ -57,7 +52,7 @@ public class HL7DataFormat extends DataFormatDefinition {
      * <p/>
      * Is by default true.
      */
-    public void setValidate(Boolean validate) {
+    public void setValidate(String validate) {
         this.validate = validate;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/IcalDataFormat.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/IcalDataFormat.java
index daaefa0..3572328 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/IcalDataFormat.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/IcalDataFormat.java
@@ -32,20 +32,21 @@ import org.apache.camel.spi.Metadata;
 @XmlAccessorType(XmlAccessType.FIELD)
 public class IcalDataFormat extends DataFormatDefinition {
     @XmlAttribute
-    private Boolean validating;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String validating;
 
     public IcalDataFormat() {
         super("ical");
     }
 
-    public Boolean getValidating() {
+    public String getValidating() {
         return validating;
     }
 
     /**
      * Whether to validate.
      */
-    public void setValidating(Boolean validating) {
+    public void setValidating(String validating) {
         this.validating = validating;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/JaxbDataFormat.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/JaxbDataFormat.java
index 7c86eab..e84a2be 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/JaxbDataFormat.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/JaxbDataFormat.java
@@ -37,22 +37,28 @@ public class JaxbDataFormat extends DataFormatDefinition {
     @XmlAttribute
     private String schema;
     @XmlAttribute
-    @Metadata(enums = "0,1,2", defaultValue = "0")
-    private Integer schemaSeverityLevel;
+    @Metadata(javaType = "java.lang.Integer", enums = "0,1,2", defaultValue = "0")
+    private String schemaSeverityLevel;
     @XmlAttribute
-    private Boolean prettyPrint;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String prettyPrint;
     @XmlAttribute
-    private Boolean objectFactory;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String objectFactory;
     @XmlAttribute
-    private Boolean ignoreJAXBElement;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String ignoreJAXBElement;
     @XmlAttribute
-    private Boolean mustBeJAXBElement;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String mustBeJAXBElement;
     @XmlAttribute
-    private Boolean filterNonXmlChars;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String filterNonXmlChars;
     @XmlAttribute
     private String encoding;
     @XmlAttribute
-    private Boolean fragment;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String fragment;
     // Partial encoding
     @XmlAttribute
     private String partClass;
@@ -77,7 +83,7 @@ public class JaxbDataFormat extends DataFormatDefinition {
 
     public JaxbDataFormat(boolean prettyPrint) {
         this();
-        setPrettyPrint(prettyPrint);
+        setPrettyPrint(Boolean.toString(prettyPrint));
     }
 
     public String getContextPath() {
@@ -105,7 +111,7 @@ public class JaxbDataFormat extends DataFormatDefinition {
         this.schema = schema;
     }
 
-    public Integer getSchemaSeverityLevel() {
+    public String getSchemaSeverityLevel() {
         return schemaSeverityLevel;
     }
 
@@ -116,11 +122,11 @@ public class JaxbDataFormat extends DataFormatDefinition {
      * error (warning, error or fatal error) will trigger JAXB to stop. There
      * are the following three levels: 0=warning, 1=error, 2=fatal error.
      */
-    public void setSchemaSeverityLevel(Integer schemaSeverityLevel) {
+    public void setSchemaSeverityLevel(String schemaSeverityLevel) {
         this.schemaSeverityLevel = schemaSeverityLevel;
     }
 
-    public Boolean getPrettyPrint() {
+    public String getPrettyPrint() {
         return prettyPrint;
     }
 
@@ -129,11 +135,11 @@ public class JaxbDataFormat extends DataFormatDefinition {
      * <p/>
      * Is by default false.
      */
-    public void setPrettyPrint(Boolean prettyPrint) {
+    public void setPrettyPrint(String prettyPrint) {
         this.prettyPrint = prettyPrint;
     }
 
-    public Boolean getObjectFactory() {
+    public String getObjectFactory() {
         return objectFactory;
     }
 
@@ -142,11 +148,11 @@ public class JaxbDataFormat extends DataFormatDefinition {
      * during marshalling. This only applies to POJO classes that has not been
      * annotated with JAXB and providing jaxb.index descriptor files.
      */
-    public void setObjectFactory(Boolean objectFactory) {
+    public void setObjectFactory(String objectFactory) {
         this.objectFactory = objectFactory;
     }
 
-    public Boolean getIgnoreJAXBElement() {
+    public String getIgnoreJAXBElement() {
         return ignoreJAXBElement;
     }
 
@@ -154,11 +160,11 @@ public class JaxbDataFormat extends DataFormatDefinition {
      * Whether to ignore JAXBElement elements - only needed to be set to false
      * in very special use-cases.
      */
-    public void setIgnoreJAXBElement(Boolean ignoreJAXBElement) {
+    public void setIgnoreJAXBElement(String ignoreJAXBElement) {
         this.ignoreJAXBElement = ignoreJAXBElement;
     }
 
-    public Boolean getMustBeJAXBElement() {
+    public String getMustBeJAXBElement() {
         return mustBeJAXBElement;
     }
 
@@ -167,7 +173,7 @@ public class JaxbDataFormat extends DataFormatDefinition {
      * not then it fails. This option can be set to false to relax that, such as
      * when the data is already in XML format.
      */
-    public void setMustBeJAXBElement(Boolean mustBeJAXBElement) {
+    public void setMustBeJAXBElement(String mustBeJAXBElement) {
         this.mustBeJAXBElement = mustBeJAXBElement;
     }
 
@@ -180,22 +186,22 @@ public class JaxbDataFormat extends DataFormatDefinition {
      * behaviours you need set property partClass. Camel will pass this class to
      * JAXB's unmarshaler.
      */
-    public void setFragment(Boolean fragment) {
+    public void setFragment(String fragment) {
         this.fragment = fragment;
     }
 
-    public Boolean getFragment() {
+    public String getFragment() {
         return fragment;
     }
 
-    public Boolean getFilterNonXmlChars() {
+    public String getFilterNonXmlChars() {
         return filterNonXmlChars;
     }
 
     /**
      * To ignore non xml characheters and replace them with an empty space.
      */
-    public void setFilterNonXmlChars(Boolean filterNonXmlChars) {
+    public void setFilterNonXmlChars(String filterNonXmlChars) {
         this.filterNonXmlChars = filterNonXmlChars;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/JsonDataFormat.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/JsonDataFormat.java
index 69e36e9..433a4b4 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/JsonDataFormat.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/JsonDataFormat.java
@@ -37,10 +37,11 @@ public class JsonDataFormat extends DataFormatDefinition {
     @XmlAttribute
     private String objectMapper;
     @XmlAttribute
-    @Metadata(defaultValue = "true")
-    private Boolean useDefaultObjectMapper;
+    @Metadata(javaType = "java.lang.Boolean", defaultValue = "true")
+    private String useDefaultObjectMapper;
     @XmlAttribute
-    private Boolean prettyPrint;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String prettyPrint;
     @XmlAttribute
     @Metadata(defaultValue = "Jackson")
     private JsonLibrary library = JsonLibrary.Jackson;
@@ -53,15 +54,18 @@ public class JsonDataFormat extends DataFormatDefinition {
     @XmlAttribute
     private String include;
     @XmlAttribute
-    private Boolean allowJmsType;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String allowJmsType;
     @XmlAttribute
     private String collectionTypeName;
     @XmlTransient
     private Class<?> collectionType;
     @XmlAttribute
-    private Boolean useList;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String useList;
     @XmlAttribute
-    private Boolean enableJaxbAnnotationModule;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String enableJaxbAnnotationModule;
     @XmlAttribute
     private String moduleClassNames;
     @XmlAttribute
@@ -73,12 +77,13 @@ public class JsonDataFormat extends DataFormatDefinition {
     @XmlAttribute
     private String permissions;
     @XmlAttribute
-    private Boolean allowUnmarshallType;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String allowUnmarshallType;
     @XmlAttribute
     private String timezone;
     @XmlAttribute
-    @Metadata(defaultValue = "false")
-    private Boolean autoDiscoverObjectMapper;
+    @Metadata(javaType = "java.lang.Boolean", defaultValue = "false")
+    private String autoDiscoverObjectMapper;
 
     public JsonDataFormat() {
         super("json");
@@ -100,18 +105,18 @@ public class JsonDataFormat extends DataFormatDefinition {
         this.objectMapper = objectMapper;
     }
 
-    public Boolean getUseDefaultObjectMapper() {
+    public String getUseDefaultObjectMapper() {
         return useDefaultObjectMapper;
     }
 
     /**
      * Whether to lookup and use default Jackson ObjectMapper from the registry.
      */
-    public void setUseDefaultObjectMapper(Boolean useDefaultObjectMapper) {
+    public void setUseDefaultObjectMapper(String useDefaultObjectMapper) {
         this.useDefaultObjectMapper = useDefaultObjectMapper;
     }
 
-    public Boolean getPrettyPrint() {
+    public String getPrettyPrint() {
         return prettyPrint;
     }
 
@@ -120,7 +125,7 @@ public class JsonDataFormat extends DataFormatDefinition {
      * <p/>
      * Is by default false.
      */
-    public void setPrettyPrint(Boolean prettyPrint) {
+    public void setPrettyPrint(String prettyPrint) {
         this.prettyPrint = prettyPrint;
     }
 
@@ -184,7 +189,7 @@ public class JsonDataFormat extends DataFormatDefinition {
         this.include = include;
     }
 
-    public Boolean getAllowJmsType() {
+    public String getAllowJmsType() {
         return allowJmsType;
     }
 
@@ -192,7 +197,7 @@ public class JsonDataFormat extends DataFormatDefinition {
      * Used for JMS users to allow the JMSType header from the JMS spec to
      * specify a FQN classname to use to unmarshal to.
      */
-    public void setAllowJmsType(Boolean allowJmsType) {
+    public void setAllowJmsType(String allowJmsType) {
         this.allowJmsType = allowJmsType;
     }
 
@@ -217,18 +222,18 @@ public class JsonDataFormat extends DataFormatDefinition {
         this.collectionType = collectionType;
     }
 
-    public Boolean getUseList() {
+    public String getUseList() {
         return useList;
     }
 
     /**
      * To unarmshal to a List of Map or a List of Pojo.
      */
-    public void setUseList(Boolean useList) {
+    public void setUseList(String useList) {
         this.useList = useList;
     }
 
-    public Boolean getEnableJaxbAnnotationModule() {
+    public String getEnableJaxbAnnotationModule() {
         return enableJaxbAnnotationModule;
     }
 
@@ -236,7 +241,7 @@ public class JsonDataFormat extends DataFormatDefinition {
      * Whether to enable the JAXB annotations module when using jackson. When
      * enabled then JAXB annotations can be used by Jackson.
      */
-    public void setEnableJaxbAnnotationModule(Boolean enableJaxbAnnotationModule) {
+    public void setEnableJaxbAnnotationModule(String enableJaxbAnnotationModule) {
         this.enableJaxbAnnotationModule = enableJaxbAnnotationModule;
     }
 
@@ -342,7 +347,7 @@ public class JsonDataFormat extends DataFormatDefinition {
         setPermissions(csb.toString());
     }
 
-    public Boolean getAllowUnmarshallType() {
+    public String getAllowUnmarshallType() {
         return allowUnmarshallType;
     }
 
@@ -352,7 +357,7 @@ public class JsonDataFormat extends DataFormatDefinition {
      * <p/>
      * This should only be enabled when desired to be used.
      */
-    public void setAllowUnmarshallType(Boolean allowUnmarshallType) {
+    public void setAllowUnmarshallType(String allowUnmarshallType) {
         this.allowUnmarshallType = allowUnmarshallType;
     }
 
@@ -369,7 +374,7 @@ public class JsonDataFormat extends DataFormatDefinition {
         this.timezone = timezone;
     }
 
-    public Boolean isAutoDiscoverObjectMapper() {
+    public String getAutoDiscoverObjectMapper() {
         return autoDiscoverObjectMapper;
     }
 
@@ -377,7 +382,7 @@ public class JsonDataFormat extends DataFormatDefinition {
      * If set to true then Jackson will lookup for an objectMapper into the
      * registry
      */
-    public void setAutoDiscoverObjectMapper(Boolean autoDiscoverObjectMapper) {
+    public void setAutoDiscoverObjectMapper(String autoDiscoverObjectMapper) {
         this.autoDiscoverObjectMapper = autoDiscoverObjectMapper;
     }
 
@@ -387,4 +392,141 @@ public class JsonDataFormat extends DataFormatDefinition {
         return "json-" + library.name().toLowerCase();
     }
 
+    //
+    // Fluent builders
+    //
+
+    public JsonDataFormat objectMapper(String objectMapper) {
+        this.objectMapper = objectMapper;
+        return this;
+    }
+
+    public JsonDataFormat useDefaultObjectMapper(boolean useDefaultObjectMapper) {
+        return useDefaultObjectMapper(Boolean.toString(useDefaultObjectMapper));
+    }
+
+    public JsonDataFormat useDefaultObjectMapper(String useDefaultObjectMapper) {
+        this.useDefaultObjectMapper = useDefaultObjectMapper;
+        return this;
+    }
+
+    public JsonDataFormat prettyPrint(boolean prettyPrint) {
+        return prettyPrint(Boolean.toString(prettyPrint));
+    }
+
+    public JsonDataFormat prettyPrint(String prettyPrint) {
+        this.prettyPrint = prettyPrint;
+        return this;
+    }
+
+    public JsonDataFormat library(JsonLibrary library) {
+        this.library = library;
+        return this;
+    }
+
+    public JsonDataFormat unmarshalType(String unmarshalType) {
+        this.unmarshalTypeName = unmarshalType;
+        return this;
+    }
+
+    public JsonDataFormat unmarshalType(Class<?> unmarshalType) {
+        this.unmarshalType = unmarshalType;
+        return this;
+    }
+
+    public JsonDataFormat jsonView(Class<?> jsonView) {
+        this.jsonView = jsonView;
+        return this;
+    }
+
+    public JsonDataFormat include(String include) {
+        this.include = include;
+        return this;
+    }
+
+    public JsonDataFormat allowJmsType(boolean allowJmsType) {
+        return allowJmsType(Boolean.toString(allowJmsType));
+    }
+
+    public JsonDataFormat allowJmsType(String allowJmsType) {
+        this.allowJmsType = allowJmsType;
+        return this;
+    }
+
+    public JsonDataFormat collectionType(String collectionType) {
+        this.collectionTypeName = collectionType;
+        return this;
+    }
+
+    public JsonDataFormat collectionType(Class<?> collectionType) {
+        this.collectionType = collectionType;
+        return this;
+    }
+
+    public JsonDataFormat useList(boolean useList) {
+        return useList(Boolean.toString(useList));
+    }
+
+    public JsonDataFormat useList(String useList) {
+        this.useList = useList;
+        return this;
+    }
+
+    public JsonDataFormat enableJaxbAnnotationModule(boolean enableJaxbAnnotationModule) {
+        return enableJaxbAnnotationModule(Boolean.toString(enableJaxbAnnotationModule));
+    }
+
+    public JsonDataFormat enableJaxbAnnotationModule(String enableJaxbAnnotationModule) {
+        this.enableJaxbAnnotationModule = enableJaxbAnnotationModule;
+        return this;
+    }
+
+    public JsonDataFormat moduleClassNames(String moduleClassNames) {
+        this.moduleClassNames = moduleClassNames;
+        return this;
+    }
+
+    public JsonDataFormat moduleRefs(String moduleRefs) {
+        this.moduleRefs = moduleRefs;
+        return this;
+    }
+
+    public JsonDataFormat enableFeatures(String enableFeatures) {
+        this.enableFeatures = enableFeatures;
+        return this;
+    }
+
+    public JsonDataFormat disableFeatures(String disableFeatures) {
+        this.disableFeatures = disableFeatures;
+        return this;
+    }
+
+    public JsonDataFormat permissions(String permissions) {
+        this.permissions = permissions;
+        return this;
+    }
+
+    public JsonDataFormat allowUnmarshallType(boolean allowUnmarshallType) {
+        return allowUnmarshallType(Boolean.toString(allowUnmarshallType));
+    }
+
+    public JsonDataFormat allowUnmarshallType(String allowUnmarshallType) {
+        this.allowUnmarshallType = allowUnmarshallType;
+        return this;
+    }
+
+    public JsonDataFormat timezone(String timezone) {
+        this.timezone = timezone;
+        return this;
+    }
+
+    public JsonDataFormat autoDiscoverObjectMapper(boolean autoDiscoverObjectMapper) {
+        return autoDiscoverObjectMapper(Boolean.toString(autoDiscoverObjectMapper));
+    }
+
+    public JsonDataFormat autoDiscoverObjectMapper(String autoDiscoverObjectMapper) {
+        this.autoDiscoverObjectMapper = autoDiscoverObjectMapper;
+        return this;
+    }
+
 }
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/LZFDataFormat.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/LZFDataFormat.java
index b6f4bb9..69d4614 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/LZFDataFormat.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/LZFDataFormat.java
@@ -33,20 +33,21 @@ import org.apache.camel.spi.Metadata;
 @XmlAccessorType(XmlAccessType.FIELD)
 public class LZFDataFormat extends DataFormatDefinition {
     @XmlAttribute
-    private Boolean usingParallelCompression;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String usingParallelCompression;
 
     public LZFDataFormat() {
         super("lzf");
     }
 
-    public Boolean getUsingParallelCompression() {
+    public String getUsingParallelCompression() {
         return usingParallelCompression;
     }
 
     /**
      * Enable encoding (compress) using multiple processing cores.
      */
-    public void setUsingParallelCompression(Boolean usingParallelCompression) {
+    public void setUsingParallelCompression(String usingParallelCompression) {
         this.usingParallelCompression = usingParallelCompression;
     }
 }
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/MimeMultipartDataFormat.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/MimeMultipartDataFormat.java
index 0222961..2ccc2c6 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/MimeMultipartDataFormat.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/MimeMultipartDataFormat.java
@@ -37,13 +37,16 @@ public class MimeMultipartDataFormat extends DataFormatDefinition {
     @Metadata(defaultValue = "mixed")
     private String multipartSubType = "mixed";
     @XmlAttribute
-    private Boolean multipartWithoutAttachment;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String multipartWithoutAttachment;
     @XmlAttribute
-    private Boolean headersInline;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String headersInline;
     @XmlAttribute
     private String includeHeaders;
     @XmlAttribute
-    private Boolean binaryContent;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String binaryContent;
 
     public MimeMultipartDataFormat() {
         super("mime-multipart");
@@ -62,7 +65,7 @@ public class MimeMultipartDataFormat extends DataFormatDefinition {
         this.multipartSubType = multipartSubType;
     }
 
-    public Boolean getMultipartWithoutAttachment() {
+    public String getMultipartWithoutAttachment() {
         return multipartWithoutAttachment;
     }
 
@@ -72,11 +75,11 @@ public class MimeMultipartDataFormat extends DataFormatDefinition {
      * <p>
      * Default is "false".
      */
-    public void setMultipartWithoutAttachment(Boolean multipartWithoutAttachment) {
+    public void setMultipartWithoutAttachment(String multipartWithoutAttachment) {
         this.multipartWithoutAttachment = multipartWithoutAttachment;
     }
 
-    public Boolean getHeadersInline() {
+    public String getHeadersInline() {
         return headersInline;
     }
 
@@ -86,11 +89,11 @@ public class MimeMultipartDataFormat extends DataFormatDefinition {
      * <p>
      * Default is "false".
      */
-    public void setHeadersInline(Boolean headersInline) {
+    public void setHeadersInline(String headersInline) {
         this.headersInline = headersInline;
     }
 
-    public Boolean getBinaryContent() {
+    public String getBinaryContent() {
         return binaryContent;
     }
 
@@ -115,7 +118,7 @@ public class MimeMultipartDataFormat extends DataFormatDefinition {
      * <p>
      * Default is "false".
      */
-    public void setBinaryContent(Boolean binaryContent) {
+    public void setBinaryContent(String binaryContent) {
         this.binaryContent = binaryContent;
     }
 }
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/TarFileDataFormat.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/TarFileDataFormat.java
index 210381d..654e569 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/TarFileDataFormat.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/TarFileDataFormat.java
@@ -33,25 +33,28 @@ import org.apache.camel.spi.Metadata;
 @XmlAccessorType(XmlAccessType.FIELD)
 public class TarFileDataFormat extends DataFormatDefinition {
     @XmlAttribute
-    private Boolean usingIterator;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String usingIterator;
     @XmlAttribute
-    private Boolean allowEmptyDirectory;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String allowEmptyDirectory;
     @XmlAttribute
-    private Boolean preservePathElements;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String preservePathElements;
 
     public TarFileDataFormat() {
         super("tarfile");
     }
 
-    public Boolean getUsingIterator() {
+    public String getUsingIterator() {
         return usingIterator;
     }
 
-    public Boolean getAllowEmptyDirectory() {
+    public String getAllowEmptyDirectory() {
         return allowEmptyDirectory;
     }
 
-    public Boolean getPreservePathElements() {
+    public String getPreservePathElements() {
         return preservePathElements;
     }
 
@@ -60,7 +63,7 @@ public class TarFileDataFormat extends DataFormatDefinition {
      * allows to work with the splitter EIP, to split the data using an iterator
      * in a streaming mode.
      */
-    public void setUsingIterator(Boolean usingIterator) {
+    public void setUsingIterator(String usingIterator) {
         this.usingIterator = usingIterator;
     }
 
@@ -68,7 +71,7 @@ public class TarFileDataFormat extends DataFormatDefinition {
      * If the tar file has more then one entry, setting this option to true,
      * allows to get the iterator even if the directory is empty
      */
-    public void setAllowEmptyDirectory(Boolean allowEmptyDirectory) {
+    public void setAllowEmptyDirectory(String allowEmptyDirectory) {
         this.allowEmptyDirectory = allowEmptyDirectory;
     }
 
@@ -76,7 +79,7 @@ public class TarFileDataFormat extends DataFormatDefinition {
      * If the file name contains path elements, setting this option to true,
      * allows the path to be maintained in the tar file.
      */
-    public void setPreservePathElements(Boolean preservePathElements) {
+    public void setPreservePathElements(String preservePathElements) {
         this.preservePathElements = preservePathElements;
     }
 }
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/TidyMarkupDataFormat.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/TidyMarkupDataFormat.java
index 09ee252..f49b822 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/TidyMarkupDataFormat.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/TidyMarkupDataFormat.java
@@ -39,7 +39,8 @@ public class TidyMarkupDataFormat extends DataFormatDefinition {
     @Metadata(defaultValue = "org.w3c.dom.Node")
     private String dataObjectTypeName;
     @XmlAttribute
-    private Boolean omitXmlDeclaration;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String omitXmlDeclaration;
     @XmlTransient
     private Class<?> dataObjectType;
 
@@ -84,14 +85,14 @@ public class TidyMarkupDataFormat extends DataFormatDefinition {
         this.dataObjectTypeName = dataObjectTypeName;
     }
 
-    public Boolean getOmitXmlDeclaration() {
+    public String getOmitXmlDeclaration() {
         return omitXmlDeclaration;
     }
 
     /**
      * When returning a String, do we omit the XML declaration in the top.
      */
-    public void setOmitXmlDeclaration(Boolean omitXmlDeclaration) {
+    public void setOmitXmlDeclaration(String omitXmlDeclaration) {
         this.omitXmlDeclaration = omitXmlDeclaration;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/UniVocityAbstractDataFormat.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/UniVocityAbstractDataFormat.java
index 5af6caa..9fa2d35 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/UniVocityAbstractDataFormat.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/UniVocityAbstractDataFormat.java
@@ -37,22 +37,25 @@ public abstract class UniVocityAbstractDataFormat extends DataFormatDefinition {
     @XmlAttribute
     protected String nullValue;
     @XmlAttribute
-    @Metadata(defaultValue = "true")
-    protected Boolean skipEmptyLines;
+    @Metadata(javaType = "java.lang.Boolean", defaultValue = "true")
+    protected String skipEmptyLines;
     @XmlAttribute
-    @Metadata(defaultValue = "true")
-    protected Boolean ignoreTrailingWhitespaces;
+    @Metadata(javaType = "java.lang.Boolean", defaultValue = "true")
+    protected String ignoreTrailingWhitespaces;
     @XmlAttribute
-    @Metadata(defaultValue = "true")
-    protected Boolean ignoreLeadingWhitespaces;
+    @Metadata(javaType = "java.lang.Boolean", defaultValue = "true")
+    protected String ignoreLeadingWhitespaces;
     @XmlAttribute
-    protected Boolean headersDisabled;
+    @Metadata(javaType = "java.lang.Boolean")
+    protected String headersDisabled;
     @XmlElementRef
     protected List<UniVocityHeader> headers;
     @XmlAttribute
-    protected Boolean headerExtractionEnabled;
+    @Metadata(javaType = "java.lang.Boolean")
+    protected String headerExtractionEnabled;
     @XmlAttribute
-    protected Integer numberOfRecordsToRead;
+    @Metadata(javaType = "java.lang.Integer")
+    protected String numberOfRecordsToRead;
     @XmlAttribute
     protected String emptyValue;
     @XmlAttribute
@@ -64,9 +67,11 @@ public abstract class UniVocityAbstractDataFormat extends DataFormatDefinition {
     @Metadata(defaultValue = "#")
     protected String comment;
     @XmlAttribute
-    protected Boolean lazyLoad;
+    @Metadata(javaType = "java.lang.Boolean")
+    protected String lazyLoad;
     @XmlAttribute
-    protected Boolean asMap;
+    @Metadata(javaType = "java.lang.Boolean")
+    protected String asMap;
 
     protected UniVocityAbstractDataFormat() {
         // This constructor is needed by jaxb for schema generation
@@ -89,7 +94,7 @@ public abstract class UniVocityAbstractDataFormat extends DataFormatDefinition {
         this.nullValue = nullValue;
     }
 
-    public Boolean getSkipEmptyLines() {
+    public String getSkipEmptyLines() {
         return skipEmptyLines;
     }
 
@@ -98,11 +103,11 @@ public abstract class UniVocityAbstractDataFormat extends DataFormatDefinition {
      * <p/>
      * The default value is true
      */
-    public void setSkipEmptyLines(Boolean skipEmptyLines) {
+    public void setSkipEmptyLines(String skipEmptyLines) {
         this.skipEmptyLines = skipEmptyLines;
     }
 
-    public Boolean getIgnoreTrailingWhitespaces() {
+    public String getIgnoreTrailingWhitespaces() {
         return ignoreTrailingWhitespaces;
     }
 
@@ -111,11 +116,11 @@ public abstract class UniVocityAbstractDataFormat extends DataFormatDefinition {
      * <p/>
      * The default value is true
      */
-    public void setIgnoreTrailingWhitespaces(Boolean ignoreTrailingWhitespaces) {
+    public void setIgnoreTrailingWhitespaces(String ignoreTrailingWhitespaces) {
         this.ignoreTrailingWhitespaces = ignoreTrailingWhitespaces;
     }
 
-    public Boolean getIgnoreLeadingWhitespaces() {
+    public String getIgnoreLeadingWhitespaces() {
         return ignoreLeadingWhitespaces;
     }
 
@@ -124,11 +129,11 @@ public abstract class UniVocityAbstractDataFormat extends DataFormatDefinition {
      * <p/>
      * The default value is true
      */
-    public void setIgnoreLeadingWhitespaces(Boolean ignoreLeadingWhitespaces) {
+    public void setIgnoreLeadingWhitespaces(String ignoreLeadingWhitespaces) {
         this.ignoreLeadingWhitespaces = ignoreLeadingWhitespaces;
     }
 
-    public Boolean getHeadersDisabled() {
+    public String getHeadersDisabled() {
         return headersDisabled;
     }
 
@@ -139,7 +144,7 @@ public abstract class UniVocityAbstractDataFormat extends DataFormatDefinition {
      * <p/>
      * The default value is false
      */
-    public void setHeadersDisabled(Boolean headersDisabled) {
+    public void setHeadersDisabled(String headersDisabled) {
         this.headersDisabled = headersDisabled;
     }
 
@@ -154,7 +159,7 @@ public abstract class UniVocityAbstractDataFormat extends DataFormatDefinition {
         this.headers = headers;
     }
 
-    public Boolean getHeaderExtractionEnabled() {
+    public String getHeaderExtractionEnabled() {
         return headerExtractionEnabled;
     }
 
@@ -164,18 +169,18 @@ public abstract class UniVocityAbstractDataFormat extends DataFormatDefinition {
      * <p/>
      * The default value is false
      */
-    public void setHeaderExtractionEnabled(Boolean headerExtractionEnabled) {
+    public void setHeaderExtractionEnabled(String headerExtractionEnabled) {
         this.headerExtractionEnabled = headerExtractionEnabled;
     }
 
-    public Integer getNumberOfRecordsToRead() {
+    public String getNumberOfRecordsToRead() {
         return numberOfRecordsToRead;
     }
 
     /**
      * The maximum number of record to read.
      */
-    public void setNumberOfRecordsToRead(Integer numberOfRecordsToRead) {
+    public void setNumberOfRecordsToRead(String numberOfRecordsToRead) {
         this.numberOfRecordsToRead = numberOfRecordsToRead;
     }
 
@@ -229,7 +234,7 @@ public abstract class UniVocityAbstractDataFormat extends DataFormatDefinition {
         this.comment = comment;
     }
 
-    public Boolean getLazyLoad() {
+    public String getLazyLoad() {
         return lazyLoad;
     }
 
@@ -239,11 +244,11 @@ public abstract class UniVocityAbstractDataFormat extends DataFormatDefinition {
      * <p/>
      * The default value is false
      */
-    public void setLazyLoad(Boolean lazyLoad) {
+    public void setLazyLoad(String lazyLoad) {
         this.lazyLoad = lazyLoad;
     }
 
-    public Boolean getAsMap() {
+    public String getAsMap() {
         return asMap;
     }
 
@@ -254,7 +259,7 @@ public abstract class UniVocityAbstractDataFormat extends DataFormatDefinition {
      * <p/>
      * The default value is false
      */
-    public void setAsMap(Boolean asMap) {
+    public void setAsMap(String asMap) {
         this.asMap = asMap;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/UniVocityCsvDataFormat.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/UniVocityCsvDataFormat.java
index 61ef82d..4c6e4a0 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/UniVocityCsvDataFormat.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/UniVocityCsvDataFormat.java
@@ -32,7 +32,8 @@ import org.apache.camel.spi.Metadata;
 @XmlAccessorType(XmlAccessType.FIELD)
 public class UniVocityCsvDataFormat extends UniVocityAbstractDataFormat {
     @XmlAttribute
-    private Boolean quoteAllFields;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String quoteAllFields;
     @XmlAttribute
     @Metadata(defaultValue = "\"")
     private String quote;
@@ -47,14 +48,14 @@ public class UniVocityCsvDataFormat extends UniVocityAbstractDataFormat {
         super("univocity-csv");
     }
 
-    public Boolean getQuoteAllFields() {
+    public String getQuoteAllFields() {
         return quoteAllFields;
     }
 
     /**
      * Whether or not all values must be quoted when writing them.
      */
-    public void setQuoteAllFields(Boolean quoteAllFields) {
+    public void setQuoteAllFields(String quoteAllFields) {
         this.quoteAllFields = quoteAllFields;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/UniVocityFixedWidthDataFormat.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/UniVocityFixedWidthDataFormat.java
index b35eca0..4d35e89 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/UniVocityFixedWidthDataFormat.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/UniVocityFixedWidthDataFormat.java
@@ -32,9 +32,11 @@ import org.apache.camel.spi.Metadata;
 @XmlAccessorType(XmlAccessType.FIELD)
 public class UniVocityFixedWidthDataFormat extends UniVocityAbstractDataFormat {
     @XmlAttribute
-    private Boolean skipTrailingCharsUntilNewline;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String skipTrailingCharsUntilNewline;
     @XmlAttribute
-    private Boolean recordEndsOnNewline;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String recordEndsOnNewline;
     @XmlAttribute
     private String padding;
 
@@ -42,7 +44,7 @@ public class UniVocityFixedWidthDataFormat extends UniVocityAbstractDataFormat {
         super("univocity-fixed");
     }
 
-    public Boolean getSkipTrailingCharsUntilNewline() {
+    public String getSkipTrailingCharsUntilNewline() {
         return skipTrailingCharsUntilNewline;
     }
 
@@ -51,11 +53,11 @@ public class UniVocityFixedWidthDataFormat extends UniVocityAbstractDataFormat {
      * <p/>
      * The default value is false
      */
-    public void setSkipTrailingCharsUntilNewline(Boolean skipTrailingCharsUntilNewline) {
+    public void setSkipTrailingCharsUntilNewline(String skipTrailingCharsUntilNewline) {
         this.skipTrailingCharsUntilNewline = skipTrailingCharsUntilNewline;
     }
 
-    public Boolean getRecordEndsOnNewline() {
+    public String getRecordEndsOnNewline() {
         return recordEndsOnNewline;
     }
 
@@ -64,7 +66,7 @@ public class UniVocityFixedWidthDataFormat extends UniVocityAbstractDataFormat {
      * <p/>
      * The default value is false
      */
-    public void setRecordEndsOnNewline(Boolean recordEndsOnNewline) {
+    public void setRecordEndsOnNewline(String recordEndsOnNewline) {
         this.recordEndsOnNewline = recordEndsOnNewline;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/XMLSecurityDataFormat.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/XMLSecurityDataFormat.java
index 573d47e..fae29cf 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/XMLSecurityDataFormat.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/XMLSecurityDataFormat.java
@@ -49,7 +49,8 @@ public class XMLSecurityDataFormat extends DataFormatDefinition implements Names
     @XmlAttribute
     private String secureTag;
     @XmlAttribute
-    private Boolean secureTagContents;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String secureTagContents;
     @XmlAttribute
     @Metadata(defaultValue = "RSA_OAEP")
     private String keyCipherAlgorithm;
@@ -66,8 +67,8 @@ public class XMLSecurityDataFormat extends DataFormatDefinition implements Names
     @Metadata(defaultValue = "MGF1_SHA1")
     private String mgfAlgorithm;
     @XmlAttribute
-    @Metadata(defaultValue = "true")
-    private Boolean addKeyValueForEncryptedKey;
+    @Metadata(javaType = "java.lang.Boolean", defaultValue = "true")
+    private String addKeyValueForEncryptedKey;
     @XmlTransient
     private KeyStoreParameters keyOrTrustStoreParameters;
     @XmlTransient
@@ -144,7 +145,7 @@ public class XMLSecurityDataFormat extends DataFormatDefinition implements Names
         this.secureTag = secureTag;
     }
 
-    public Boolean getSecureTagContents() {
+    public String getSecureTagContents() {
         return secureTagContents;
     }
 
@@ -153,7 +154,7 @@ public class XMLSecurityDataFormat extends DataFormatDefinition implements Names
      * the contents of the XML Element false = Element Level true = Element
      * Content Level
      */
-    public void setSecureTagContents(Boolean secureTagContents) {
+    public void setSecureTagContents(String secureTagContents) {
         this.secureTagContents = secureTagContents;
     }
 
@@ -261,7 +262,7 @@ public class XMLSecurityDataFormat extends DataFormatDefinition implements Names
         this.mgfAlgorithm = mgfAlgorithm;
     }
 
-    public Boolean getAddKeyValueForEncryptedKey() {
+    public String getAddKeyValueForEncryptedKey() {
         return addKeyValueForEncryptedKey;
     }
 
@@ -269,7 +270,7 @@ public class XMLSecurityDataFormat extends DataFormatDefinition implements Names
      * Whether to add the public key used to encrypt the session key as a
      * KeyValue in the EncryptedKey structure or not.
      */
-    public void setAddKeyValueForEncryptedKey(Boolean addKeyValueForEncryptedKey) {
+    public void setAddKeyValueForEncryptedKey(String addKeyValueForEncryptedKey) {
         this.addKeyValueForEncryptedKey = addKeyValueForEncryptedKey;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/XmlRpcDataFormat.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/XmlRpcDataFormat.java
index 68f6613..a4a4bdd 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/XmlRpcDataFormat.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/XmlRpcDataFormat.java
@@ -32,13 +32,14 @@ import org.apache.camel.spi.Metadata;
 @XmlAccessorType(XmlAccessType.FIELD)
 public class XmlRpcDataFormat extends DataFormatDefinition {
     @XmlAttribute
-    private Boolean request;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String request;
 
     public XmlRpcDataFormat() {
         super("xmlrpc");
     }
 
-    public Boolean getRequest() {
+    public String getRequest() {
         return request;
     }
 
@@ -47,7 +48,7 @@ public class XmlRpcDataFormat extends DataFormatDefinition {
      * <p/>
      * Is by default false
      */
-    public void setRequest(Boolean request) {
+    public void setRequest(String request) {
         this.request = request;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/YAMLDataFormat.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/YAMLDataFormat.java
index d1b9192..ef273c8 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/YAMLDataFormat.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/YAMLDataFormat.java
@@ -53,14 +53,14 @@ public class YAMLDataFormat extends DataFormatDefinition {
     @XmlAttribute
     private String resolver;
     @XmlAttribute
-    @Metadata(defaultValue = "true")
-    private Boolean useApplicationContextClassLoader = true;
+    @Metadata(javaType = "java.lang.Boolean", defaultValue = "true")
+    private String useApplicationContextClassLoader = Boolean.toString(true);
     @XmlAttribute
-    @Metadata(defaultValue = "false")
-    private Boolean prettyFlow = false;
+    @Metadata(javaType = "java.lang.Boolean", defaultValue = "false")
+    protected String prettyFlow = Boolean.toString(false);
     @XmlAttribute
-    @Metadata(defaultValue = "false")
-    private Boolean allowAnyType = false;
+    @Metadata(javaType = "java.lang.Boolean", defaultValue = "false")
+    protected String allowAnyType = Boolean.toString(false);
     @XmlElement(name = "typeFilter")
     private List<YAMLTypeFilterDefinition> typeFilters;
 
@@ -170,18 +170,18 @@ public class YAMLDataFormat extends DataFormatDefinition {
         this.resolver = resolver;
     }
 
-    public boolean isUseApplicationContextClassLoader() {
+    public String getUseApplicationContextClassLoader() {
         return useApplicationContextClassLoader;
     }
 
     /**
      * Use ApplicationContextClassLoader as custom ClassLoader
      */
-    public void setUseApplicationContextClassLoader(boolean useApplicationContextClassLoader) {
+    public void setUseApplicationContextClassLoader(String useApplicationContextClassLoader) {
         this.useApplicationContextClassLoader = useApplicationContextClassLoader;
     }
 
-    public boolean isPrettyFlow() {
+    public String getPrettyFlow() {
         return prettyFlow;
     }
 
@@ -189,18 +189,18 @@ public class YAMLDataFormat extends DataFormatDefinition {
      * Force the emitter to produce a pretty YAML document when using the flow
      * style.
      */
-    public void setPrettyFlow(boolean prettyFlow) {
+    public void setPrettyFlow(String prettyFlow) {
         this.prettyFlow = prettyFlow;
     }
 
-    public boolean isAllowAnyType() {
+    public String getAllowAnyType() {
         return allowAnyType;
     }
 
     /**
      * Allow any class to be un-marshaled
      */
-    public void setAllowAnyType(boolean allowAnyType) {
+    public void setAllowAnyType(String allowAnyType) {
         this.allowAnyType = allowAnyType;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/YAMLTypeFilterDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/YAMLTypeFilterDefinition.java
index 5be83d7..e27c5ad 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/YAMLTypeFilterDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/YAMLTypeFilterDefinition.java
@@ -30,7 +30,8 @@ public final class YAMLTypeFilterDefinition {
     @XmlAttribute
     private String value;
     @XmlAttribute
-    private YAMLTypeFilterType type;
+    @Metadata(javaType = "org.apache.camel.model.dataformat.YAMLTypeFilterType")
+    private String type;
 
     public String getValue() {
         return value;
@@ -43,14 +44,14 @@ public final class YAMLTypeFilterDefinition {
         this.value = value;
     }
 
-    public YAMLTypeFilterType getType() {
+    public String getType() {
         return type;
     }
 
     /**
      * Whether to filter by class type or regular expression
      */
-    public void setType(YAMLTypeFilterType type) {
+    public void setType(String type) {
         this.type = type;
     }
 }
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/ZipDeflaterDataFormat.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/ZipDeflaterDataFormat.java
index 0503897..d12f8ab 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/ZipDeflaterDataFormat.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/ZipDeflaterDataFormat.java
@@ -33,14 +33,14 @@ import org.apache.camel.spi.Metadata;
 @XmlAccessorType(XmlAccessType.FIELD)
 public class ZipDeflaterDataFormat extends DataFormatDefinition {
     @XmlAttribute
-    @Metadata(defaultValue = "-1")
-    private Integer compressionLevel;
+    @Metadata(javaType = "java.lang.Integer", defaultValue = "-1")
+    private String compressionLevel;
 
     public ZipDeflaterDataFormat() {
         super("zipdeflater");
     }
 
-    public Integer getCompressionLevel() {
+    public String getCompressionLevel() {
         return compressionLevel;
     }
 
@@ -48,7 +48,7 @@ public class ZipDeflaterDataFormat extends DataFormatDefinition {
      * To specify a specific compression between 0-9. -1 is default compression,
      * 0 is no compression, and 9 is best compression.
      */
-    public void setCompressionLevel(Integer compressionLevel) {
+    public void setCompressionLevel(String compressionLevel) {
         this.compressionLevel = compressionLevel;
     }
 }
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/ZipFileDataFormat.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/ZipFileDataFormat.java
index 5b95d9a..bea1989 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/ZipFileDataFormat.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/ZipFileDataFormat.java
@@ -33,25 +33,28 @@ import org.apache.camel.spi.Metadata;
 @XmlAccessorType(XmlAccessType.FIELD)
 public class ZipFileDataFormat extends DataFormatDefinition {
     @XmlAttribute
-    private Boolean usingIterator;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String usingIterator;
     @XmlAttribute
-    private Boolean allowEmptyDirectory;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String allowEmptyDirectory;
     @XmlAttribute
-    private Boolean preservePathElements;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String preservePathElements;
 
     public ZipFileDataFormat() {
         super("zipfile");
     }
 
-    public Boolean getUsingIterator() {
+    public String getUsingIterator() {
         return usingIterator;
     }
 
-    public Boolean getAllowEmptyDirectory() {
+    public String getAllowEmptyDirectory() {
         return allowEmptyDirectory;
     }
 
-    public Boolean getPreservePathElements() {
+    public String getPreservePathElements() {
         return preservePathElements;
     }
 
@@ -60,7 +63,7 @@ public class ZipFileDataFormat extends DataFormatDefinition {
      * allows to work with the splitter EIP, to split the data using an iterator
      * in a streaming mode.
      */
-    public void setUsingIterator(Boolean usingIterator) {
+    public void setUsingIterator(String usingIterator) {
         this.usingIterator = usingIterator;
     }
 
@@ -68,7 +71,7 @@ public class ZipFileDataFormat extends DataFormatDefinition {
      * If the zip file has more then one entry, setting this option to true,
      * allows to get the iterator even if the directory is empty
      */
-    public void setAllowEmptyDirectory(Boolean allowEmptyDirectory) {
+    public void setAllowEmptyDirectory(String allowEmptyDirectory) {
         this.allowEmptyDirectory = allowEmptyDirectory;
     }
 
@@ -76,7 +79,7 @@ public class ZipFileDataFormat extends DataFormatDefinition {
      * If the file name contains path elements, setting this option to true,
      * allows the path to be maintained in the zip file.
      */
-    public void setPreservePathElements(Boolean preservePathElements) {
+    public void setPreservePathElements(String preservePathElements) {
         this.preservePathElements = preservePathElements;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/rest/RestDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/rest/RestDefinition.java
index 21209d2..f270e22 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/rest/RestDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/rest/RestDefinition.java
@@ -38,7 +38,6 @@ import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.model.OptionalIdentifiedDefinition;
 import org.apache.camel.model.ProcessorDefinition;
-import org.apache.camel.model.ProcessorDefinitionHelper;
 import org.apache.camel.model.RouteDefinition;
 import org.apache.camel.model.ToDefinition;
 import org.apache.camel.model.ToDynamicDefinition;
@@ -811,16 +810,18 @@ public class RestDefinition extends OptionalIdentifiedDefinition<RestDefinition>
             }
             for (RestOperationParamDefinition param : verb.getParams()) {
                 // register all the default values for the query parameters
-                if (RestParamType.query == param.getType() && ObjectHelper.isNotEmpty(param.getDefaultValue())) {
+                RestParamType type = param.getType();
+                if (RestParamType.query == type && ObjectHelper.isNotEmpty(param.getDefaultValue())) {
                     binding.addDefaultValue(param.getName(), param.getDefaultValue());
                 }
                 // register which parameters are required
-                if (param.getRequired()) {
-                    if (RestParamType.query == param.getType()) {
+                Boolean required = param.getRequired();
+                if (required != null && required) {
+                    if (RestParamType.query == type) {
                         binding.addRequiredQueryParameter(param.getName());
-                    } else if (RestParamType.header == param.getType()) {
+                    } else if (RestParamType.header == type) {
                         binding.addRequiredHeader(param.getName());
-                    } else if (RestParamType.body == param.getType()) {
+                    } else if (RestParamType.body == type) {
                         binding.setRequiredBody(true);
                     }
                 }
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/rest/RestSecurityApiKey.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/rest/RestSecurityApiKey.java
index 5da55fd..ceabd61 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/rest/RestSecurityApiKey.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/rest/RestSecurityApiKey.java
@@ -36,10 +36,12 @@ public class RestSecurityApiKey extends RestSecurityDefinition {
     private String name;
 
     @XmlAttribute(name = "inHeader")
-    private Boolean inHeader;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String inHeader;
 
     @XmlAttribute(name = "inQuery")
-    private Boolean inQuery;
+    @Metadata(javaType = "java.lang.Boolean")
+    private String inQuery;
 
     public RestSecurityApiKey() {
     }
@@ -59,39 +61,39 @@ public class RestSecurityApiKey extends RestSecurityDefinition {
         this.name = name;
     }
 
-    public Boolean getInHeader() {
+    public String getInHeader() {
         return inHeader;
     }
 
     /**
      * To use header as the location of the API key.
      */
-    public void setInHeader(Boolean inHeader) {
+    public void setInHeader(String inHeader) {
         this.inHeader = inHeader;
     }
 
-    public Boolean getInQuery() {
+    public String getInQuery() {
         return inQuery;
     }
 
     /**
      * To use query parameter as the location of the API key.
      */
-    public void setInQuery(Boolean inQuery) {
+    public void setInQuery(String inQuery) {
         this.inQuery = inQuery;
     }
 
     public RestSecurityApiKey withHeader(String name) {
         setName(name);
-        setInHeader(true);
-        setInQuery(false);
+        setInHeader(Boolean.toString(true));
+        setInQuery(Boolean.toString(false));
         return this;
     }
 
     public RestSecurityApiKey withQuery(String name) {
         setName(name);
-        setInQuery(true);
-        setInHeader(false);
+        setInQuery(Boolean.toString(true));
+        setInHeader(Boolean.toString(false));
         return this;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/OnCompletionReifier.java b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/OnCompletionReifier.java
index 41645f4..c0ed578 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/OnCompletionReifier.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/OnCompletionReifier.java
@@ -79,7 +79,7 @@ public class OnCompletionReifier extends ProcessorReifier<OnCompletionDefinition
         ExecutorService threadPool = getConfiguredExecutorService("OnCompletion", definition, isParallelProcessing);
 
         // should be after consumer by default
-        boolean afterConsumer = definition.getMode() == null || definition.getMode() == OnCompletionMode.AfterConsumer;
+        boolean afterConsumer = definition.getMode() == null || parse(OnCompletionMode.class, definition.getMode()) == OnCompletionMode.AfterConsumer;
 
         OnCompletionProcessor answer = new OnCompletionProcessor(camelContext, internal, threadPool, shutdownThreadPool, isOnCompleteOnly, isOnFailureOnly, when,
                                                                  original, afterConsumer);
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/RouteReifier.java b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/RouteReifier.java
index c7a7ba5..283fce8 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/RouteReifier.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/RouteReifier.java
@@ -28,6 +28,8 @@ import org.apache.camel.NoSuchEndpointException;
 import org.apache.camel.Processor;
 import org.apache.camel.Route;
 import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.ShutdownRoute;
+import org.apache.camel.ShutdownRunningTask;
 import org.apache.camel.builder.AdviceWithRouteBuilder;
 import org.apache.camel.builder.AdviceWithTask;
 import org.apache.camel.builder.EndpointConsumerBuilder;
@@ -345,11 +347,11 @@ public class RouteReifier extends ProcessorReifier<RouteDefinition> {
         // configure shutdown
         if (definition.getShutdownRoute() != null) {
             log.debug("Using ShutdownRoute {} on route: {}", definition.getShutdownRoute(), definition.getId());
-            routeContext.setShutdownRoute(definition.getShutdownRoute());
+            routeContext.setShutdownRoute(parse(ShutdownRoute.class, definition.getShutdownRoute()));
         }
         if (definition.getShutdownRunningTask() != null) {
             log.debug("Using ShutdownRunningTask {} on route: {}", definition.getShutdownRunningTask(), definition.getId());
-            routeContext.setShutdownRunningTask(definition.getShutdownRunningTask());
+            routeContext.setShutdownRunningTask(parse(ShutdownRunningTask.class, definition.getShutdownRunningTask()));
         }
 
         // should inherit the intercept strategies we have defined
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/SetExchangePatternReifier.java b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/SetExchangePatternReifier.java
index 1262438..71ed650 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/SetExchangePatternReifier.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/SetExchangePatternReifier.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.reifier;
 
+import org.apache.camel.ExchangePattern;
 import org.apache.camel.Processor;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.SetExchangePatternDefinition;
@@ -30,6 +31,6 @@ public class SetExchangePatternReifier extends ProcessorReifier<SetExchangePatte
 
     @Override
     public Processor createProcessor() {
-        return new ExchangePatternProcessor(definition.getPattern());
+        return new ExchangePatternProcessor(parse(ExchangePattern.class, definition.getPattern()));
     }
 }
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/ThreadsReifier.java b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/ThreadsReifier.java
index fa2f942..29b13db 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/ThreadsReifier.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/ThreadsReifier.java
@@ -107,7 +107,7 @@ public class ThreadsReifier extends ProcessorReifier<ThreadsDefinition> {
                 return threadPoolProfile.getRejectedPolicy();
             }
         }
-        return definition.getRejectedPolicy();
+        return parse(ThreadPoolRejectedPolicy.class, definition.getRejectedPolicy());
     }
 
 }
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/ToDynamicReifier.java b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/ToDynamicReifier.java
index 19098db..bf3368a 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/ToDynamicReifier.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/ToDynamicReifier.java
@@ -60,6 +60,9 @@ public class ToDynamicReifier<T extends ToDynamicDefinition> extends ProcessorRe
         if (definition.getIgnoreInvalidEndpoint() != null) {
             processor.setIgnoreInvalidEndpoint(parseBoolean(definition.getIgnoreInvalidEndpoint(), false));
         }
+        if  (definition.getAllowOptimisedComponents() != null) {
+            processor.setAllowOptimisedComponents(parseBoolean(definition.getAllowOptimisedComponents(), true));
+        }
         return processor;
     }
 
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/dataformat/FhirDataFormatReifier.java b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/dataformat/FhirDataFormatReifier.java
index e0420f1..2fc2703 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/dataformat/FhirDataFormatReifier.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/dataformat/FhirDataFormatReifier.java
@@ -40,11 +40,11 @@ public class FhirDataFormatReifier<T extends FhirDataformat> extends DataFormatR
         properties.put("preferTypes", definition.getPreferTypes());
         properties.put("parserOptions", definition.getParserOptions());
         properties.put("parserErrorHandler", definition.getParserErrorHandler());
-        properties.put("encodeElementsAppliesToChildResourcesOnly", definition.isEncodeElementsAppliesToChildResourcesOnly());
-        properties.put("omitResourceId", definition.isOmitResourceId());
-        properties.put("prettyPrint", definition.isPrettyPrint());
-        properties.put("suppressNarratives", definition.isSuppressNarratives());
-        properties.put("summaryMode", definition.isSummaryMode());
+        properties.put("encodeElementsAppliesToChildResourcesOnly", definition.getEncodeElementsAppliesToChildResourcesOnly());
+        properties.put("omitResourceId", definition.getOmitResourceId());
+        properties.put("prettyPrint", definition.getPrettyPrint());
+        properties.put("suppressNarratives", definition.getSuppressNarratives());
+        properties.put("summaryMode", definition.getSummaryMode());
         properties.put("overrideResourceIdWithBundleEntryFullUrl", definition.getOverrideResourceIdWithBundleEntryFullUrl());
         properties.put("stripVersionsFromReferences", definition.getStripVersionsFromReferences());
     }
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/dataformat/GrokDataFormatReifier.java b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/dataformat/GrokDataFormatReifier.java
index 5c5407b..415ca44 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/dataformat/GrokDataFormatReifier.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/dataformat/GrokDataFormatReifier.java
@@ -31,8 +31,8 @@ public class GrokDataFormatReifier extends DataFormatReifier<GrokDataFormat> {
     @Override
     protected void prepareDataFormatConfig(Map<String, Object> properties) {
         properties.put("pattern", definition.getPattern());
-        properties.put("flattened", definition.isFlattened());
-        properties.put("allowMultipleMatchesPerLine", definition.isAllowMultipleMatchesPerLine());
-        properties.put("namedOnly", definition.isNamedOnly());
+        properties.put("flattened", definition.getFlattened());
+        properties.put("allowMultipleMatchesPerLine", definition.getAllowMultipleMatchesPerLine());
+        properties.put("namedOnly", definition.getNamedOnly());
     }
 }
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/dataformat/HL7DataFormatReifier.java b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/dataformat/HL7DataFormatReifier.java
index 58670c4..c515cf0 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/dataformat/HL7DataFormatReifier.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/dataformat/HL7DataFormatReifier.java
@@ -31,7 +31,7 @@ public class HL7DataFormatReifier extends DataFormatReifier<HL7DataFormat> {
     @Override
     protected void prepareDataFormatConfig(Map<String, Object> properties) {
         properties.put("parser", definition.getParser());
-        properties.put("validate", definition.isValidate());
+        properties.put("validate", definition.getValidate());
     }
 
 }
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/dataformat/YAMLDataFormatReifier.java b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/dataformat/YAMLDataFormatReifier.java
index ee1b147..6f05c17 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/dataformat/YAMLDataFormatReifier.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/dataformat/YAMLDataFormatReifier.java
@@ -43,9 +43,9 @@ public class YAMLDataFormatReifier extends DataFormatReifier<YAMLDataFormat> {
     protected void configureSnakeDataFormat(Map<String, Object> properties) {
         properties.put("unmarshalType", or(definition.getUnmarshalType(), definition.getUnmarshalTypeName()));
         properties.put("classLoader", definition.getClassLoader());
-        properties.put("useApplicationContextClassLoader", definition.isUseApplicationContextClassLoader());
-        properties.put("prettyFlow", definition.isPrettyFlow());
-        properties.put("allowAnyType", definition.isAllowAnyType());
+        properties.put("useApplicationContextClassLoader", definition.getUseApplicationContextClassLoader());
+        properties.put("prettyFlow", definition.getPrettyFlow());
+        properties.put("allowAnyType", definition.getAllowAnyType());
         properties.put("typeFilterDefinitions", getTypeFilterDefinitions());
         properties.put("constructor", definition.getConstructor());
         properties.put("representer", definition.getRepresenter());
@@ -57,10 +57,10 @@ public class YAMLDataFormatReifier extends DataFormatReifier<YAMLDataFormat> {
         if (definition.getTypeFilters() != null && !definition.getTypeFilters().isEmpty()) {
             List<String> typeFilterDefinitions = new ArrayList<>(definition.getTypeFilters().size());
             for (YAMLTypeFilterDefinition definition : definition.getTypeFilters()) {
-                String value = definition.getValue();
+                String value = parseString(definition.getValue());
 
                 if (!value.startsWith("type") && !value.startsWith("regexp")) {
-                    YAMLTypeFilterType type = definition.getType();
+                    YAMLTypeFilterType type = parse(YAMLTypeFilterType.class, definition.getType());
                     if (type == null) {
                         type = YAMLTypeFilterType.type;
                     }
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 cb75e0c..a0df2b1 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
@@ -23,6 +23,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 import javax.xml.bind.annotation.XmlAccessType;
@@ -1021,7 +1022,8 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex
         // use custom profiles defined in the CamelContext
         if (getThreadPoolProfiles() != null && !getThreadPoolProfiles().isEmpty()) {
             for (ThreadPoolProfileDefinition definition : getThreadPoolProfiles()) {
-                if (definition.isDefaultProfile()) {
+                Boolean defaultProfile = CamelContextHelper.parseBoolean(getContext(), definition.getDefaultProfile());
+                if (defaultProfile != null && defaultProfile) {
                     LOG.info("Using custom default ThreadPoolProfile with id: {} and implementation: {}", definition.getId(), definition);
                     context.getExecutorServiceManager().setDefaultThreadPoolProfile(asThreadPoolProfile(context, definition));
                     defaultIds.add(definition.getId());
@@ -1047,14 +1049,14 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex
     private ThreadPoolProfile asThreadPoolProfile(CamelContext context, ThreadPoolProfileDefinition definition) throws Exception {
         ThreadPoolProfile answer = new ThreadPoolProfile();
         answer.setId(definition.getId());
-        answer.setDefaultProfile(definition.getDefaultProfile());
+        answer.setDefaultProfile(CamelContextHelper.parseBoolean(context, definition.getDefaultProfile()));
         answer.setPoolSize(CamelContextHelper.parseInteger(context, definition.getPoolSize()));
         answer.setMaxPoolSize(CamelContextHelper.parseInteger(context, definition.getMaxPoolSize()));
         answer.setKeepAliveTime(CamelContextHelper.parseLong(context, definition.getKeepAliveTime()));
         answer.setMaxQueueSize(CamelContextHelper.parseInteger(context, definition.getMaxQueueSize()));
         answer.setAllowCoreThreadTimeOut(CamelContextHelper.parseBoolean(context, definition.getAllowCoreThreadTimeOut()));
         answer.setRejectedPolicy(CamelContextHelper.parse(context, ThreadPoolRejectedPolicy.class, definition.getRejectedPolicy()));
-        answer.setTimeUnit(definition.getTimeUnit());
+        answer.setTimeUnit(CamelContextHelper.parse(context, TimeUnit.class, definition.getTimeUnit()));
         return answer;
     }
 
diff --git a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
index e1bfa0d..aa2e538 100644
--- a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
+++ b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
@@ -22,11 +22,7 @@ package org.apache.camel.xml.in;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.Reader;
-import java.util.concurrent.TimeUnit;
 import javax.annotation.Generated;
-import org.apache.camel.ExchangePattern;
-import org.apache.camel.ShutdownRoute;
-import org.apache.camel.ShutdownRunningTask;
 import org.apache.camel.model.*;
 import org.apache.camel.model.cloud.*;
 import org.apache.camel.model.config.BatchResequencerConfig;
@@ -38,7 +34,6 @@ import org.apache.camel.model.loadbalancer.*;
 import org.apache.camel.model.rest.*;
 import org.apache.camel.model.transformer.*;
 import org.apache.camel.model.validator.*;
-import org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy;
 import org.apache.camel.xml.io.XmlPullParserException;
 
 @SuppressWarnings("unused")
@@ -599,7 +594,7 @@ public class ModelParser extends BaseParser {
         return doParse(new OnCompletionDefinition(), (def, key, val) -> {
             switch (key) {
                 case "executorServiceRef": def.setExecutorServiceRef(val); break;
-                case "mode": def.setMode(OnCompletionMode.valueOf(val)); break;
+                case "mode": def.setMode(val); break;
                 case "onCompleteOnly": def.setOnCompleteOnly(val); break;
                 case "onFailureOnly": def.setOnFailureOnly(val); break;
                 case "parallelProcessing": def.setParallelProcessing(val); break;
@@ -923,8 +918,8 @@ public class ModelParser extends BaseParser {
                 case "logMask": def.setLogMask(val); break;
                 case "messageHistory": def.setMessageHistory(val); break;
                 case "routePolicyRef": def.setRoutePolicyRef(val); break;
-                case "shutdownRoute": def.setShutdownRoute(ShutdownRoute.valueOf(val)); break;
-                case "shutdownRunningTask": def.setShutdownRunningTask(ShutdownRunningTask.valueOf(val)); break;
+                case "shutdownRoute": def.setShutdownRoute(val); break;
+                case "shutdownRunningTask": def.setShutdownRunningTask(val); break;
                 case "startupOrder": def.setStartupOrder(Integer.valueOf(val)); break;
                 case "streamCache": def.setStreamCache(val); break;
                 case "trace": def.setTrace(val); break;
@@ -1082,7 +1077,7 @@ public class ModelParser extends BaseParser {
     protected SetExchangePatternDefinition doParseSetExchangePatternDefinition() throws IOException, XmlPullParserException {
         return doParse(new SetExchangePatternDefinition(), (def, key, val) -> {
             if ("pattern".equals(key)) {
-                def.setPattern(ExchangePattern.valueOf(val));
+                def.setPattern(val);
                 return true;
             }
             return processorDefinitionAttributeHandler().accept(def, key, val);
@@ -1147,13 +1142,13 @@ public class ModelParser extends BaseParser {
         return doParse(new ThreadPoolProfileDefinition(), (def, key, val) -> {
             switch (key) {
                 case "allowCoreThreadTimeOut": def.setAllowCoreThreadTimeOut(val); break;
-                case "defaultProfile": def.setDefaultProfile(Boolean.valueOf(val)); break;
+                case "defaultProfile": def.setDefaultProfile(val); break;
                 case "keepAliveTime": def.setKeepAliveTime(val); break;
                 case "maxPoolSize": def.setMaxPoolSize(val); break;
                 case "maxQueueSize": def.setMaxQueueSize(val); break;
                 case "poolSize": def.setPoolSize(val); break;
                 case "rejectedPolicy": def.setRejectedPolicy(val); break;
-                case "timeUnit": def.setTimeUnit(TimeUnit.valueOf(val)); break;
+                case "timeUnit": def.setTimeUnit(val); break;
                 default: return optionalIdentifiedDefinitionAttributeHandler().accept(def, key, val);
             }
             return true;
@@ -1169,7 +1164,7 @@ public class ModelParser extends BaseParser {
                 case "maxPoolSize": def.setMaxPoolSize(val); break;
                 case "maxQueueSize": def.setMaxQueueSize(val); break;
                 case "poolSize": def.setPoolSize(val); break;
-                case "rejectedPolicy": def.setRejectedPolicy(ThreadPoolRejectedPolicy.valueOf(val)); break;
+                case "rejectedPolicy": def.setRejectedPolicy(val); break;
                 case "threadName": def.setThreadName(val); break;
                 case "timeUnit": def.setTimeUnit(val); break;
                 default: return processorDefinitionAttributeHandler().accept(def, key, val);
@@ -1315,7 +1310,7 @@ public class ModelParser extends BaseParser {
         return doParse(new CachingServiceCallServiceDiscoveryConfiguration(), (def, key, val) -> {
             switch (key) {
                 case "timeout": def.setTimeout(val); break;
-                case "units": def.setUnits(TimeUnit.valueOf(val)); break;
+                case "units": def.setUnits(val); break;
                 default: return identifiedTypeAttributeHandler().accept(def, key, val);
             }
             return true;
@@ -1368,14 +1363,14 @@ public class ModelParser extends BaseParser {
         return doParse(new ConsulServiceCallServiceDiscoveryConfiguration(), (def, key, val) -> {
             switch (key) {
                 case "aclToken": def.setAclToken(val); break;
-                case "blockSeconds": def.setBlockSeconds(Integer.valueOf(val)); break;
-                case "connectTimeoutMillis": def.setConnectTimeoutMillis(Long.valueOf(val)); break;
+                case "blockSeconds": def.setBlockSeconds(val); break;
+                case "connectTimeoutMillis": def.setConnectTimeoutMillis(val); break;
                 case "datacenter": def.setDatacenter(val); break;
                 case "password": def.setPassword(val); break;
-                case "readTimeoutMillis": def.setReadTimeoutMillis(Long.valueOf(val)); break;
+                case "readTimeoutMillis": def.setReadTimeoutMillis(val); break;
                 case "url": def.setUrl(val); break;
                 case "userName": def.setUserName(val); break;
-                case "writeTimeoutMillis": def.setWriteTimeoutMillis(Long.valueOf(val)); break;
+                case "writeTimeoutMillis": def.setWriteTimeoutMillis(val); break;
                 default: return identifiedTypeAttributeHandler().accept(def, key, val);
             }
             return true;
@@ -1413,7 +1408,7 @@ public class ModelParser extends BaseParser {
             switch (key) {
                 case "password": def.setPassword(val); break;
                 case "servicePath": def.setServicePath(val); break;
-                case "timeout": def.setTimeout(Long.valueOf(val)); break;
+                case "timeout": def.setTimeout(val); break;
                 case "type": def.setType(val); break;
                 case "uris": def.setUris(val); break;
                 case "userName": def.setUserName(val); break;
@@ -1446,7 +1441,7 @@ public class ModelParser extends BaseParser {
                 case "password": def.setPassword(val); break;
                 case "portName": def.setPortName(val); break;
                 case "portProtocol": def.setPortProtocol(val); break;
-                case "trustCerts": def.setTrustCerts(Boolean.valueOf(val)); break;
+                case "trustCerts": def.setTrustCerts(val); break;
                 case "username": def.setUsername(val); break;
                 default: return identifiedTypeAttributeHandler().accept(def, key, val);
             }
@@ -1475,7 +1470,7 @@ public class ModelParser extends BaseParser {
                 case "component": def.setComponent(val); break;
                 case "expressionRef": def.setExpressionRef(val); break;
                 case "loadBalancerRef": def.setLoadBalancerRef(val); break;
-                case "pattern": def.setPattern(ExchangePattern.valueOf(val)); break;
+                case "pattern": def.setPattern(val); break;
                 case "serviceChooserRef": def.setServiceChooserRef(val); break;
                 case "serviceDiscoveryRef": def.setServiceDiscoveryRef(val); break;
                 case "serviceFilterRef": def.setServiceFilterRef(val); break;
@@ -1531,7 +1526,7 @@ public class ModelParser extends BaseParser {
                 case "expressionRef": def.setExpressionRef(val); break;
                 case "loadBalancerRef": def.setLoadBalancerRef(val); break;
                 case "name": def.setName(val); break;
-                case "pattern": def.setPattern(ExchangePattern.valueOf(val)); break;
+                case "pattern": def.setPattern(val); break;
                 case "serviceChooserRef": def.setServiceChooserRef(val); break;
                 case "serviceDiscoveryRef": def.setServiceDiscoveryRef(val); break;
                 case "serviceFilterRef": def.setServiceFilterRef(val); break;
@@ -1697,11 +1692,11 @@ public class ModelParser extends BaseParser {
     protected BindyDataFormat doParseBindyDataFormat() throws IOException, XmlPullParserException {
         return doParse(new BindyDataFormat(), (def, key, val) -> {
             switch (key) {
-                case "allowEmptyStream": def.setAllowEmptyStream(Boolean.valueOf(val)); break;
+                case "allowEmptyStream": def.setAllowEmptyStream(val); break;
                 case "classType": def.setClassType(val); break;
                 case "locale": def.setLocale(val); break;
-                case "type": def.setType(BindyType.valueOf(val)); break;
-                case "unwrapSingleInstance": def.setUnwrapSingleInstance(Boolean.valueOf(val)); break;
+                case "type": def.setType(val); break;
+                case "unwrapSingleInstance": def.setUnwrapSingleInstance(val); break;
                 default: return dataFormatDefinitionAttributeHandler().accept(def, key, val);
             }
             return true;
@@ -1745,33 +1740,33 @@ public class ModelParser extends BaseParser {
     protected CsvDataFormat doParseCsvDataFormat() throws IOException, XmlPullParserException {
         return doParse(new CsvDataFormat(), (def, key, val) -> {
             switch (key) {
-                case "allowMissingColumnNames": def.setAllowMissingColumnNames(Boolean.valueOf(val)); break;
+                case "allowMissingColumnNames": def.setAllowMissingColumnNames(val); break;
                 case "commentMarker": def.setCommentMarker(val); break;
-                case "commentMarkerDisabled": def.setCommentMarkerDisabled(Boolean.valueOf(val)); break;
+                case "commentMarkerDisabled": def.setCommentMarkerDisabled(val); break;
                 case "delimiter": def.setDelimiter(val); break;
                 case "escape": def.setEscape(val); break;
-                case "escapeDisabled": def.setEscapeDisabled(Boolean.valueOf(val)); break;
+                case "escapeDisabled": def.setEscapeDisabled(val); break;
                 case "formatName": def.setFormatName(val); break;
                 case "formatRef": def.setFormatRef(val); break;
-                case "headerDisabled": def.setHeaderDisabled(Boolean.valueOf(val)); break;
-                case "ignoreEmptyLines": def.setIgnoreEmptyLines(Boolean.valueOf(val)); break;
-                case "ignoreHeaderCase": def.setIgnoreHeaderCase(Boolean.valueOf(val)); break;
-                case "ignoreSurroundingSpaces": def.setIgnoreSurroundingSpaces(Boolean.valueOf(val)); break;
-                case "lazyLoad": def.setLazyLoad(Boolean.valueOf(val)); break;
+                case "headerDisabled": def.setHeaderDisabled(val); break;
+                case "ignoreEmptyLines": def.setIgnoreEmptyLines(val); break;
+                case "ignoreHeaderCase": def.setIgnoreHeaderCase(val); break;
+                case "ignoreSurroundingSpaces": def.setIgnoreSurroundingSpaces(val); break;
+                case "lazyLoad": def.setLazyLoad(val); break;
                 case "marshallerFactoryRef": def.setMarshallerFactoryRef(val); break;
                 case "nullString": def.setNullString(val); break;
-                case "nullStringDisabled": def.setNullStringDisabled(Boolean.valueOf(val)); break;
+                case "nullStringDisabled": def.setNullStringDisabled(val); break;
                 case "quote": def.setQuote(val); break;
-                case "quoteDisabled": def.setQuoteDisabled(Boolean.valueOf(val)); break;
+                case "quoteDisabled": def.setQuoteDisabled(val); break;
                 case "quoteMode": def.setQuoteMode(val); break;
                 case "recordConverterRef": def.setRecordConverterRef(val); break;
                 case "recordSeparator": def.setRecordSeparator(val); break;
                 case "recordSeparatorDisabled": def.setRecordSeparatorDisabled(val); break;
-                case "skipHeaderRecord": def.setSkipHeaderRecord(Boolean.valueOf(val)); break;
-                case "trailingDelimiter": def.setTrailingDelimiter(Boolean.valueOf(val)); break;
-                case "trim": def.setTrim(Boolean.valueOf(val)); break;
-                case "useMaps": def.setUseMaps(Boolean.valueOf(val)); break;
-                case "useOrderedMaps": def.setUseOrderedMaps(Boolean.valueOf(val)); break;
+                case "skipHeaderRecord": def.setSkipHeaderRecord(val); break;
+                case "trailingDelimiter": def.setTrailingDelimiter(val); break;
+                case "trim": def.setTrim(val); break;
+                case "useMaps": def.setUseMaps(val); break;
+                case "useOrderedMaps": def.setUseOrderedMaps(val); break;
                 default: return dataFormatDefinitionAttributeHandler().accept(def, key, val);
             }
             return true;
@@ -1813,15 +1808,15 @@ public class ModelParser extends BaseParser {
                 case "dontEncodeElements": def.setDontEncodeElements(asStringSet(val)); break;
                 case "dontStripVersionsFromReferencesAtPaths": def.setDontStripVersionsFromReferencesAtPaths(asStringList(val)); break;
                 case "encodeElements": def.setEncodeElements(asStringSet(val)); break;
-                case "encodeElementsAppliesToChildResourcesOnly": def.setEncodeElementsAppliesToChildResourcesOnly(Boolean.valueOf(val)); break;
+                case "encodeElementsAppliesToChildResourcesOnly": def.setEncodeElementsAppliesToChildResourcesOnly(val); break;
                 case "fhirVersion": def.setFhirVersion(val); break;
-                case "omitResourceId": def.setOmitResourceId(Boolean.valueOf(val)); break;
-                case "overrideResourceIdWithBundleEntryFullUrl": def.setOverrideResourceIdWithBundleEntryFullUrl(Boolean.valueOf(val)); break;
-                case "prettyPrint": def.setPrettyPrint(Boolean.valueOf(val)); break;
+                case "omitResourceId": def.setOmitResourceId(val); break;
+                case "overrideResourceIdWithBundleEntryFullUrl": def.setOverrideResourceIdWithBundleEntryFullUrl(val); break;
+                case "prettyPrint": def.setPrettyPrint(val); break;
                 case "serverBaseUrl": def.setServerBaseUrl(val); break;
-                case "stripVersionsFromReferences": def.setStripVersionsFromReferences(Boolean.valueOf(val)); break;
-                case "summaryMode": def.setSummaryMode(Boolean.valueOf(val)); break;
-                case "suppressNarratives": def.setSuppressNarratives(Boolean.valueOf(val)); break;
+                case "stripVersionsFromReferences": def.setStripVersionsFromReferences(val); break;
+                case "summaryMode": def.setSummaryMode(val); break;
+                case "suppressNarratives": def.setSuppressNarratives(val); break;
                 default: return dataFormatDefinitionAttributeHandler().accept(def, key, val);
             }
             return true;
@@ -1834,12 +1829,12 @@ public class ModelParser extends BaseParser {
     protected FlatpackDataFormat doParseFlatpackDataFormat() throws IOException, XmlPullParserException {
         return doParse(new FlatpackDataFormat(), (def, key, val) -> {
             switch (key) {
-                case "allowShortLines": def.setAllowShortLines(Boolean.valueOf(val)); break;
+                case "allowShortLines": def.setAllowShortLines(val); break;
                 case "definition": def.setDefinition(val); break;
                 case "delimiter": def.setDelimiter(val); break;
-                case "fixed": def.setFixed(Boolean.valueOf(val)); break;
-                case "ignoreExtraColumns": def.setIgnoreExtraColumns(Boolean.valueOf(val)); break;
-                case "ignoreFirstRecord": def.setIgnoreFirstRecord(Boolean.valueOf(val)); break;
+                case "fixed": def.setFixed(val); break;
+                case "ignoreExtraColumns": def.setIgnoreExtraColumns(val); break;
+                case "ignoreFirstRecord": def.setIgnoreFirstRecord(val); break;
                 case "parserFactoryRef": def.setParserFactoryRef(val); break;
                 case "textQualifier": def.setTextQualifier(val); break;
                 default: return dataFormatDefinitionAttributeHandler().accept(def, key, val);
@@ -1850,9 +1845,9 @@ public class ModelParser extends BaseParser {
     protected GrokDataFormat doParseGrokDataFormat() throws IOException, XmlPullParserException {
         return doParse(new GrokDataFormat(), (def, key, val) -> {
             switch (key) {
-                case "allowMultipleMatchesPerLine": def.setAllowMultipleMatchesPerLine(Boolean.valueOf(val)); break;
-                case "flattened": def.setFlattened(Boolean.valueOf(val)); break;
-                case "namedOnly": def.setNamedOnly(Boolean.valueOf(val)); break;
+                case "allowMultipleMatchesPerLine": def.setAllowMultipleMatchesPerLine(val); break;
+                case "flattened": def.setFlattened(val); break;
+                case "namedOnly": def.setNamedOnly(val); break;
                 case "pattern": def.setPattern(val); break;
                 default: return dataFormatDefinitionAttributeHandler().accept(def, key, val);
             }
@@ -1866,7 +1861,7 @@ public class ModelParser extends BaseParser {
     protected HL7DataFormat doParseHL7DataFormat() throws IOException, XmlPullParserException {
         return doParse(new HL7DataFormat(), (def, key, val) -> {
             if ("validate".equals(key)) {
-                def.setValidate(Boolean.valueOf(val));
+                def.setValidate(val);
                 return true;
             }
             return dataFormatDefinitionAttributeHandler().accept(def, key, val);
@@ -1875,7 +1870,7 @@ public class ModelParser extends BaseParser {
     protected IcalDataFormat doParseIcalDataFormat() throws IOException, XmlPullParserException {
         return doParse(new IcalDataFormat(), (def, key, val) -> {
             if ("validating".equals(key)) {
-                def.setValidating(Boolean.valueOf(val));
+                def.setValidating(val);
                 return true;
             }
             return dataFormatDefinitionAttributeHandler().accept(def, key, val);
@@ -1908,20 +1903,20 @@ public class ModelParser extends BaseParser {
             switch (key) {
                 case "contextPath": def.setContextPath(val); break;
                 case "encoding": def.setEncoding(val); break;
-                case "filterNonXmlChars": def.setFilterNonXmlChars(Boolean.valueOf(val)); break;
-                case "fragment": def.setFragment(Boolean.valueOf(val)); break;
-                case "ignoreJAXBElement": def.setIgnoreJAXBElement(Boolean.valueOf(val)); break;
+                case "filterNonXmlChars": def.setFilterNonXmlChars(val); break;
+                case "fragment": def.setFragment(val); break;
+                case "ignoreJAXBElement": def.setIgnoreJAXBElement(val); break;
                 case "jaxbProviderProperties": def.setJaxbProviderProperties(val); break;
-                case "mustBeJAXBElement": def.setMustBeJAXBElement(Boolean.valueOf(val)); break;
+                case "mustBeJAXBElement": def.setMustBeJAXBElement(val); break;
                 case "namespacePrefixRef": def.setNamespacePrefixRef(val); break;
                 case "noNamespaceSchemaLocation": def.setNoNamespaceSchemaLocation(val); break;
-                case "objectFactory": def.setObjectFactory(Boolean.valueOf(val)); break;
+                case "objectFactory": def.setObjectFactory(val); break;
                 case "partClass": def.setPartClass(val); break;
                 case "partNamespace": def.setPartNamespace(val); break;
-                case "prettyPrint": def.setPrettyPrint(Boolean.valueOf(val)); break;
+                case "prettyPrint": def.setPrettyPrint(val); break;
                 case "schema": def.setSchema(val); break;
                 case "schemaLocation": def.setSchemaLocation(val); break;
-                case "schemaSeverityLevel": def.setSchemaSeverityLevel(Integer.valueOf(val)); break;
+                case "schemaSeverityLevel": def.setSchemaSeverityLevel(val); break;
                 case "xmlStreamWriterWrapper": def.setXmlStreamWriterWrapper(val); break;
                 default: return dataFormatDefinitionAttributeHandler().accept(def, key, val);
             }
@@ -1941,13 +1936,13 @@ public class ModelParser extends BaseParser {
     protected JsonDataFormat doParseJsonDataFormat() throws IOException, XmlPullParserException {
         return doParse(new JsonDataFormat(), (def, key, val) -> {
             switch (key) {
-                case "allowJmsType": def.setAllowJmsType(Boolean.valueOf(val)); break;
-                case "allowUnmarshallType": def.setAllowUnmarshallType(Boolean.valueOf(val)); break;
-                case "autoDiscoverObjectMapper": def.setAutoDiscoverObjectMapper(Boolean.valueOf(val)); break;
+                case "allowJmsType": def.setAllowJmsType(val); break;
+                case "allowUnmarshallType": def.setAllowUnmarshallType(val); break;
+                case "autoDiscoverObjectMapper": def.setAutoDiscoverObjectMapper(val); break;
                 case "collectionTypeName": def.setCollectionTypeName(val); break;
                 case "disableFeatures": def.setDisableFeatures(val); break;
                 case "enableFeatures": def.setEnableFeatures(val); break;
-                case "enableJaxbAnnotationModule": def.setEnableJaxbAnnotationModule(Boolean.valueOf(val)); break;
+                case "enableJaxbAnnotationModule": def.setEnableJaxbAnnotationModule(val); break;
                 case "include": def.setInclude(val); break;
                 case "jsonView": def.setJsonView(asClass(val)); break;
                 case "library": def.setLibrary(JsonLibrary.valueOf(val)); break;
@@ -1955,11 +1950,11 @@ public class ModelParser extends BaseParser {
                 case "moduleRefs": def.setModuleRefs(val); break;
                 case "objectMapper": def.setObjectMapper(val); break;
                 case "permissions": def.setPermissions(val); break;
-                case "prettyPrint": def.setPrettyPrint(Boolean.valueOf(val)); break;
+                case "prettyPrint": def.setPrettyPrint(val); break;
                 case "timezone": def.setTimezone(val); break;
                 case "unmarshalTypeName": def.setUnmarshalTypeName(val); break;
-                case "useDefaultObjectMapper": def.setUseDefaultObjectMapper(Boolean.valueOf(val)); break;
-                case "useList": def.setUseList(Boolean.valueOf(val)); break;
+                case "useDefaultObjectMapper": def.setUseDefaultObjectMapper(val); break;
+                case "useList": def.setUseList(val); break;
                 default: return dataFormatDefinitionAttributeHandler().accept(def, key, val);
             }
             return true;
@@ -1968,7 +1963,7 @@ public class ModelParser extends BaseParser {
     protected LZFDataFormat doParseLZFDataFormat() throws IOException, XmlPullParserException {
         return doParse(new LZFDataFormat(), (def, key, val) -> {
             if ("usingParallelCompression".equals(key)) {
-                def.setUsingParallelCompression(Boolean.valueOf(val));
+                def.setUsingParallelCompression(val);
                 return true;
             }
             return dataFormatDefinitionAttributeHandler().accept(def, key, val);
@@ -1977,11 +1972,11 @@ public class ModelParser extends BaseParser {
     protected MimeMultipartDataFormat doParseMimeMultipartDataFormat() throws IOException, XmlPullParserException {
         return doParse(new MimeMultipartDataFormat(), (def, key, val) -> {
             switch (key) {
-                case "binaryContent": def.setBinaryContent(Boolean.valueOf(val)); break;
-                case "headersInline": def.setHeadersInline(Boolean.valueOf(val)); break;
+                case "binaryContent": def.setBinaryContent(val); break;
+                case "headersInline": def.setHeadersInline(val); break;
                 case "includeHeaders": def.setIncludeHeaders(val); break;
                 case "multipartSubType": def.setMultipartSubType(val); break;
-                case "multipartWithoutAttachment": def.setMultipartWithoutAttachment(Boolean.valueOf(val)); break;
+                case "multipartWithoutAttachment": def.setMultipartWithoutAttachment(val); break;
                 default: return dataFormatDefinitionAttributeHandler().accept(def, key, val);
             }
             return true;
@@ -2044,9 +2039,9 @@ public class ModelParser extends BaseParser {
     protected TarFileDataFormat doParseTarFileDataFormat() throws IOException, XmlPullParserException {
         return doParse(new TarFileDataFormat(), (def, key, val) -> {
             switch (key) {
-                case "allowEmptyDirectory": def.setAllowEmptyDirectory(Boolean.valueOf(val)); break;
-                case "preservePathElements": def.setPreservePathElements(Boolean.valueOf(val)); break;
-                case "usingIterator": def.setUsingIterator(Boolean.valueOf(val)); break;
+                case "allowEmptyDirectory": def.setAllowEmptyDirectory(val); break;
+                case "preservePathElements": def.setPreservePathElements(val); break;
+                case "usingIterator": def.setUsingIterator(val); break;
                 default: return dataFormatDefinitionAttributeHandler().accept(def, key, val);
             }
             return true;
@@ -2066,7 +2061,7 @@ public class ModelParser extends BaseParser {
         return doParse(new TidyMarkupDataFormat(), (def, key, val) -> {
             switch (key) {
                 case "dataObjectType": def.setDataObjectTypeName(val); break;
-                case "omitXmlDeclaration": def.setOmitXmlDeclaration(Boolean.valueOf(val)); break;
+                case "omitXmlDeclaration": def.setOmitXmlDeclaration(val); break;
                 default: return dataFormatDefinitionAttributeHandler().accept(def, key, val);
             }
             return true;
@@ -2077,7 +2072,7 @@ public class ModelParser extends BaseParser {
             switch (key) {
                 case "delimiter": def.setDelimiter(val); break;
                 case "quote": def.setQuote(val); break;
-                case "quoteAllFields": def.setQuoteAllFields(Boolean.valueOf(val)); break;
+                case "quoteAllFields": def.setQuoteAllFields(val); break;
                 case "quoteEscape": def.setQuoteEscape(val); break;
                 default: return uniVocityAbstractDataFormatAttributeHandler().accept(def, key, val);
             }
@@ -2087,19 +2082,19 @@ public class ModelParser extends BaseParser {
     protected <T extends UniVocityAbstractDataFormat> AttributeHandler<T> uniVocityAbstractDataFormatAttributeHandler() {
         return (def, key, val) -> {
             switch (key) {
-                case "asMap": def.setAsMap(Boolean.valueOf(val)); break;
+                case "asMap": def.setAsMap(val); break;
                 case "comment": def.setComment(val); break;
                 case "emptyValue": def.setEmptyValue(val); break;
-                case "headerExtractionEnabled": def.setHeaderExtractionEnabled(Boolean.valueOf(val)); break;
-                case "headersDisabled": def.setHeadersDisabled(Boolean.valueOf(val)); break;
-                case "ignoreLeadingWhitespaces": def.setIgnoreLeadingWhitespaces(Boolean.valueOf(val)); break;
-                case "ignoreTrailingWhitespaces": def.setIgnoreTrailingWhitespaces(Boolean.valueOf(val)); break;
-                case "lazyLoad": def.setLazyLoad(Boolean.valueOf(val)); break;
+                case "headerExtractionEnabled": def.setHeaderExtractionEnabled(val); break;
+                case "headersDisabled": def.setHeadersDisabled(val); break;
+                case "ignoreLeadingWhitespaces": def.setIgnoreLeadingWhitespaces(val); break;
+                case "ignoreTrailingWhitespaces": def.setIgnoreTrailingWhitespaces(val); break;
+                case "lazyLoad": def.setLazyLoad(val); break;
                 case "lineSeparator": def.setLineSeparator(val); break;
                 case "normalizedLineSeparator": def.setNormalizedLineSeparator(val); break;
                 case "nullValue": def.setNullValue(val); break;
-                case "numberOfRecordsToRead": def.setNumberOfRecordsToRead(Integer.valueOf(val)); break;
-                case "skipEmptyLines": def.setSkipEmptyLines(Boolean.valueOf(val)); break;
+                case "numberOfRecordsToRead": def.setNumberOfRecordsToRead(val); break;
+                case "skipEmptyLines": def.setSkipEmptyLines(val); break;
                 default: return dataFormatDefinitionAttributeHandler().accept(def, key, val);
             }
             return true;
@@ -2127,8 +2122,8 @@ public class ModelParser extends BaseParser {
         return doParse(new UniVocityFixedWidthDataFormat(), (def, key, val) -> {
             switch (key) {
                 case "padding": def.setPadding(val); break;
-                case "recordEndsOnNewline": def.setRecordEndsOnNewline(Boolean.valueOf(val)); break;
-                case "skipTrailingCharsUntilNewline": def.setSkipTrailingCharsUntilNewline(Boolean.valueOf(val)); break;
+                case "recordEndsOnNewline": def.setRecordEndsOnNewline(val); break;
+                case "skipTrailingCharsUntilNewline": def.setSkipTrailingCharsUntilNewline(val); break;
                 default: return uniVocityAbstractDataFormatAttributeHandler().accept(def, key, val);
             }
             return true;
@@ -2146,7 +2141,7 @@ public class ModelParser extends BaseParser {
     protected XMLSecurityDataFormat doParseXMLSecurityDataFormat() throws IOException, XmlPullParserException {
         return doParse(new XMLSecurityDataFormat(), (def, key, val) -> {
             switch (key) {
-                case "addKeyValueForEncryptedKey": def.setAddKeyValueForEncryptedKey(Boolean.valueOf(val)); break;
+                case "addKeyValueForEncryptedKey": def.setAddKeyValueForEncryptedKey(val); break;
                 case "digestAlgorithm": def.setDigestAlgorithm(val); break;
                 case "keyCipherAlgorithm": def.setKeyCipherAlgorithm(val); break;
                 case "keyOrTrustStoreParametersRef": def.setKeyOrTrustStoreParametersRef(val); break;
@@ -2156,7 +2151,7 @@ public class ModelParser extends BaseParser {
                 case "passPhraseByte": def.setPassPhraseByte(asByteArray(val)); break;
                 case "recipientKeyAlias": def.setRecipientKeyAlias(val); break;
                 case "secureTag": def.setSecureTag(val); break;
-                case "secureTagContents": def.setSecureTagContents(Boolean.valueOf(val)); break;
+                case "secureTagContents": def.setSecureTagContents(val); break;
                 case "xmlCipherAlgorithm": def.setXmlCipherAlgorithm(val); break;
                 default: return dataFormatDefinitionAttributeHandler().accept(def, key, val);
             }
@@ -2277,7 +2272,7 @@ public class ModelParser extends BaseParser {
     protected XmlRpcDataFormat doParseXmlRpcDataFormat() throws IOException, XmlPullParserException {
         return doParse(new XmlRpcDataFormat(), (def, key, val) -> {
             if ("request".equals(key)) {
-                def.setRequest(Boolean.valueOf(val));
+                def.setRequest(val);
                 return true;
             }
             return dataFormatDefinitionAttributeHandler().accept(def, key, val);
@@ -2286,15 +2281,15 @@ public class ModelParser extends BaseParser {
     protected YAMLDataFormat doParseYAMLDataFormat() throws IOException, XmlPullParserException {
         return doParse(new YAMLDataFormat(), (def, key, val) -> {
             switch (key) {
-                case "allowAnyType": def.setAllowAnyType(Boolean.valueOf(val)); break;
+                case "allowAnyType": def.setAllowAnyType(val); break;
                 case "constructor": def.setConstructor(val); break;
                 case "dumperOptions": def.setDumperOptions(val); break;
                 case "library": def.setLibrary(YAMLLibrary.valueOf(val)); break;
-                case "prettyFlow": def.setPrettyFlow(Boolean.valueOf(val)); break;
+                case "prettyFlow": def.setPrettyFlow(val); break;
                 case "representer": def.setRepresenter(val); break;
                 case "resolver": def.setResolver(val); break;
                 case "unmarshalTypeName": def.setUnmarshalTypeName(val); break;
-                case "useApplicationContextClassLoader": def.setUseApplicationContextClassLoader(Boolean.valueOf(val)); break;
+                case "useApplicationContextClassLoader": def.setUseApplicationContextClassLoader(val); break;
                 default: return dataFormatDefinitionAttributeHandler().accept(def, key, val);
             }
             return true;
@@ -2309,7 +2304,7 @@ public class ModelParser extends BaseParser {
     protected YAMLTypeFilterDefinition doParseYAMLTypeFilterDefinition() throws IOException, XmlPullParserException {
         return doParse(new YAMLTypeFilterDefinition(), (def, key, val) -> {
             switch (key) {
-                case "type": def.setType(YAMLTypeFilterType.valueOf(val)); break;
+                case "type": def.setType(val); break;
                 case "value": def.setValue(val); break;
                 default: return false;
             }
@@ -2319,7 +2314,7 @@ public class ModelParser extends BaseParser {
     protected ZipDeflaterDataFormat doParseZipDeflaterDataFormat() throws IOException, XmlPullParserException {
         return doParse(new ZipDeflaterDataFormat(), (def, key, val) -> {
             if ("compressionLevel".equals(key)) {
-                def.setCompressionLevel(Integer.valueOf(val));
+                def.setCompressionLevel(val);
                 return true;
             }
             return dataFormatDefinitionAttributeHandler().accept(def, key, val);
@@ -2328,9 +2323,9 @@ public class ModelParser extends BaseParser {
     protected ZipFileDataFormat doParseZipFileDataFormat() throws IOException, XmlPullParserException {
         return doParse(new ZipFileDataFormat(), (def, key, val) -> {
             switch (key) {
-                case "allowEmptyDirectory": def.setAllowEmptyDirectory(Boolean.valueOf(val)); break;
-                case "preservePathElements": def.setPreservePathElements(Boolean.valueOf(val)); break;
-                case "usingIterator": def.setUsingIterator(Boolean.valueOf(val)); break;
+                case "allowEmptyDirectory": def.setAllowEmptyDirectory(val); break;
+                case "preservePathElements": def.setPreservePathElements(val); break;
+                case "usingIterator": def.setUsingIterator(val); break;
                 default: return dataFormatDefinitionAttributeHandler().accept(def, key, val);
             }
             return true;
@@ -2739,8 +2734,8 @@ public class ModelParser extends BaseParser {
     protected RestSecurityApiKey doParseRestSecurityApiKey() throws IOException, XmlPullParserException {
         return doParse(new RestSecurityApiKey(), (def, key, val) -> {
             switch (key) {
-                case "inHeader": def.setInHeader(Boolean.valueOf(val)); break;
-                case "inQuery": def.setInQuery(Boolean.valueOf(val)); break;
+                case "inHeader": def.setInHeader(val); break;
+                case "inQuery": def.setInQuery(val); break;
                 case "name": def.setName(val); break;
                 default: return restSecurityDefinitionAttributeHandler().accept(def, key, val);
             }
diff --git a/docs/components/modules/ROOT/pages/fhirJson-dataformat.adoc b/docs/components/modules/ROOT/pages/fhirJson-dataformat.adoc
index 92f5bcd..82479cf 100644
--- a/docs/components/modules/ROOT/pages/fhirJson-dataformat.adoc
+++ b/docs/components/modules/ROOT/pages/fhirJson-dataformat.adoc
@@ -29,7 +29,7 @@ The FHIR JSon dataformat supports 13 options, which are listed below.
 | overrideResourceIdWithBundleEntryFullUrl | false | Boolean | If set to true (which is the default), the Bundle.entry.fullUrl will override the Bundle.entry.resource's resource id if the fullUrl is defined. This behavior happens when parsing the source data into a Bundle object. Set this to false if this is not the desired behavior (e.g. the client code wishes to perform additional validation checks between the fullUrl and the resource id).
 | summaryMode | false | Boolean | If set to true (default is false) only elements marked by the FHIR specification as being summary elements will be included.
 | suppressNarratives | false | Boolean | If set to true (default is false), narratives will not be included in the encoded values.
-| dontStripVersionsFromReferencesAtPaths |  | List | If supplied value(s), any resource references at the specified paths will have their resource versions encoded instead of being automatically stripped during the encoding process. This setting has no effect on the parsing process. This method provides a finer-grained level of control than setStripVersionsFromReferences(Boolean) and any paths specified by this method will be encoded even if setStripVersionsFromReferences(Boolean) has be [...]
+| dontStripVersionsFromReferencesAtPaths |  | List | If supplied value(s), any resource references at the specified paths will have their resource versions encoded instead of being automatically stripped during the encoding process. This setting has no effect on the parsing process. This method provides a finer-grained level of control than setStripVersionsFromReferences(String) and any paths specified by this method will be encoded even if setStripVersionsFromReferences(String) has been [...]
 | contentTypeHeader | false | Boolean | Whether the data format should set the Content-Type header with the type from the data format if the data format is capable of doing so. For example application/xml for data formats marshalling to XML, or application/json for data formats marshalling to JSon etc.
 |===
 // dataformat options: END
diff --git a/docs/components/modules/ROOT/pages/fhirXml-dataformat.adoc b/docs/components/modules/ROOT/pages/fhirXml-dataformat.adoc
index 7643b11..a5a9dcc 100644
--- a/docs/components/modules/ROOT/pages/fhirXml-dataformat.adoc
+++ b/docs/components/modules/ROOT/pages/fhirXml-dataformat.adoc
@@ -29,7 +29,7 @@ The FHIR XML dataformat supports 13 options, which are listed below.
 | overrideResourceIdWithBundleEntryFullUrl | false | Boolean | If set to true (which is the default), the Bundle.entry.fullUrl will override the Bundle.entry.resource's resource id if the fullUrl is defined. This behavior happens when parsing the source data into a Bundle object. Set this to false if this is not the desired behavior (e.g. the client code wishes to perform additional validation checks between the fullUrl and the resource id).
 | summaryMode | false | Boolean | If set to true (default is false) only elements marked by the FHIR specification as being summary elements will be included.
 | suppressNarratives | false | Boolean | If set to true (default is false), narratives will not be included in the encoded values.
-| dontStripVersionsFromReferencesAtPaths |  | List | If supplied value(s), any resource references at the specified paths will have their resource versions encoded instead of being automatically stripped during the encoding process. This setting has no effect on the parsing process. This method provides a finer-grained level of control than setStripVersionsFromReferences(Boolean) and any paths specified by this method will be encoded even if setStripVersionsFromReferences(Boolean) has be [...]
+| dontStripVersionsFromReferencesAtPaths |  | List | If supplied value(s), any resource references at the specified paths will have their resource versions encoded instead of being automatically stripped during the encoding process. This setting has no effect on the parsing process. This method provides a finer-grained level of control than setStripVersionsFromReferences(String) and any paths specified by this method will be encoded even if setStripVersionsFromReferences(String) has been [...]
 | contentTypeHeader | false | Boolean | Whether the data format should set the Content-Type header with the type from the data format if the data format is capable of doing so. For example application/xml for data formats marshalling to XML, or application/json for data formats marshalling to JSon etc.
 |===
 // dataformat options: END

Reply | Threaded
Open this post in threaded view
|

[camel] 03/05: Fix unit test which always fail the second time

gnodet
In reply to this post by gnodet
This is an automated email from the ASF dual-hosted git repository.

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

commit 6974495a07cc233bcf9287265a0901a76e8d07e9
Author: Guillaume Nodet <[hidden email]>
AuthorDate: Thu Feb 13 12:49:43 2020 +0100

    Fix unit test which always fail the second time
---
 .../dsl/component/ComponentsDslMetadataRegistryTest.java      | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/tooling/maven/camel-package-maven-plugin/src/test/java/org/apache/camel/maven/packaging/dsl/component/ComponentsDslMetadataRegistryTest.java b/tooling/maven/camel-package-maven-plugin/src/test/java/org/apache/camel/maven/packaging/dsl/component/ComponentsDslMetadataRegistryTest.java
index 2f346e8..08f023b 100644
--- a/tooling/maven/camel-package-maven-plugin/src/test/java/org/apache/camel/maven/packaging/dsl/component/ComponentsDslMetadataRegistryTest.java
+++ b/tooling/maven/camel-package-maven-plugin/src/test/java/org/apache/camel/maven/packaging/dsl/component/ComponentsDslMetadataRegistryTest.java
@@ -19,6 +19,8 @@ package org.apache.camel.maven.packaging.dsl.component;
 import java.io.File;
 import java.io.IOException;
 import java.nio.file.FileSystems;
+import java.nio.file.Files;
+import java.nio.file.StandardCopyOption;
 import java.util.Objects;
 
 import org.apache.camel.tooling.model.ComponentModel;
@@ -36,13 +38,16 @@ class ComponentsDslMetadataRegistryTest {
     public void testIfSyncCorrectly() throws IOException {
         final String json = PackageHelper.loadText(new File(Objects.requireNonNull(getClass().getClassLoader().getResource("json/test_component2.json")).getFile()));
         final File metadata = new File(Objects.requireNonNull(getClass().getClassLoader().getResource("json/component_metadata.json")).getFile());
+        final File metadataWork = metadata.toPath().resolveSibling("component_metadata_work.json").toFile();
 
-        final String metadataJson = PackageHelper.loadText(metadata);
+        Files.copy(metadata.toPath(), metadataWork.toPath(), StandardCopyOption.REPLACE_EXISTING);
+
+        final String metadataJson = PackageHelper.loadText(metadataWork);
 
         final File classesDir = FileSystems.getDefault().getPath(".").resolve("src/test/java/org/apache/camel/maven/packaging/dsl/component").toFile();
 
         final ComponentModel componentModel = JsonMapper.generateComponentModel(json);
-        final ComponentsDslMetadataRegistry componentsDslMetadataRegistry = new ComponentsDslMetadataRegistry(classesDir, metadata);
+        final ComponentsDslMetadataRegistry componentsDslMetadataRegistry = new ComponentsDslMetadataRegistry(classesDir, metadataWork);
 
         // check for size
         assertEquals(2, componentsDslMetadataRegistry.getComponentCacheFromMemory().size());
@@ -57,7 +62,7 @@ class ComponentsDslMetadataRegistryTest {
         // first it adds to he memory cache and then it sync the metadata file by checking existing classes and delete whatever not presented there
         componentsDslMetadataRegistry.addComponentToMetadataAndSyncMetadataFile(componentModel, "ComponentsDslMetadataRegistryTest");
 
-        final String updatedMetadataJson = PackageHelper.loadText(metadata);
+        final String updatedMetadataJson = PackageHelper.loadText(metadataWork);
 
         // check for the size
         assertEquals(1, componentsDslMetadataRegistry.getComponentCacheFromMemory().size());

Reply | Threaded
Open this post in threaded view
|

[camel] 04/05: Do not trim stack traces

gnodet
In reply to this post by gnodet
This is an automated email from the ASF dual-hosted git repository.

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

commit f856a2003a97b7304b834bfb51820128710e5e1a
Author: Guillaume Nodet <[hidden email]>
AuthorDate: Thu Feb 13 12:50:09 2020 +0100

    Do not trim stack traces
---
 parent/pom.xml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/parent/pom.xml b/parent/pom.xml
index 862d9c8..8f879cc 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -39,6 +39,7 @@
         <cxf.codegen.jvmArgs/>
         <camel.surefire.fork.vmargs/>
         <cxf.xjc.jvmArgs/>
+        <trimStackTrace>false</trimStackTrace>
         <!-- dependency versions -->
         <abdera-version>1.1.3</abdera-version>
         <!-- Note that activemq dependency is only used for testing! -->

Reply | Threaded
Open this post in threaded view
|

[camel] 05/05: [CAMEL-14559] Use String in definition fields to be able to leverage property placeholders

gnodet
In reply to this post by gnodet
This is an automated email from the ASF dual-hosted git repository.

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

commit 16e1fc12ca57eb9c1160569ed4259624816f76ac
Merge: f856a20 4d6cfed
Author: Guillaume Nodet <[hidden email]>
AuthorDate: Thu Feb 13 13:49:16 2020 +0100

    [CAMEL-14559] Use String in definition fields to be able to leverage property placeholders

 .../XmlSignatureComponentConfigurer.java           |  29 ++++
 .../xmlsecurity/XmlSignerEndpointConfigurer.java   |  79 +++++++++
 .../XmlVerifierComponentConfigurer.java            |  29 ++++
 .../xmlsecurity/XmlVerifierEndpointConfigurer.java |  60 +++++++
 .../services/org/apache/camel/component.properties |   2 +-
 .../component/{xmlsecurity => xmlsecurity-sign}    |   0
 .../org/apache/camel/component/xmlsecurity-verify  |   2 +
 .../xmlsecurity-sign-component}                    |   2 +-
 .../camel/configurer/xmlsecurity-sign-endpoint     |   2 +
 .../camel/configurer/xmlsecurity-verify-component  |   2 +
 .../camel/configurer/xmlsecurity-verify-endpoint   |   2 +
 .../component/xmlsecurity/xmlsecurity-sign.json    |  58 +++++++
 .../component/xmlsecurity/xmlsecurity-verify.json  |  48 +++++
 .../camel/component/xmlsecurity/xmlsecurity.json   |  68 --------
 ...ponent.adoc => xmlsecurity-sign-component.adoc} |  94 +++++-----
 ...nent.adoc => xmlsecurity-verify-component.adoc} |  84 ++++-----
 .../camel/component/xmlsecurity/XmlCommand.java    |  22 ---
 ...atureProducer.java => XmlSecurityProducer.java} |  87 +++++-----
 .../xmlsecurity/XmlSignatureComponent.java         |  60 +------
 .../xmlsecurity/XmlSignatureEndpoint.java          | 161 -----------------
 .../component/xmlsecurity/XmlSignerEndpoint.java   | 193 ++++-----------------
 .../xmlsecurity/XmlVerifierComponent.java          |  65 +++++++
 .../component/xmlsecurity/XmlVerifierEndpoint.java | 107 +++++-------
 .../api/DefaultValidationFailedHandler.java        |  10 +-
 .../api/DefaultXAdESSignatureProperties.java       |   4 +-
 .../api/DefaultXmlSignature2Message.java           |  30 ++--
 .../xmlsecurity/api/XAdESSignatureProperties.java  |  12 +-
 .../xmlsecurity/api/XmlSignatureHelper.java        |  12 +-
 .../xmlsecurity/api/XmlSignatureProperties.java    |   2 +-
 .../xmlsecurity/processor/SantuarioUtil.java       |   4 +-
 .../processor/XmlSignatureProcessor.java           |   2 +-
 .../processor/XmlSignerConfiguration.java          |  36 ++--
 .../xmlsecurity/processor/XmlSignerProcessor.java  |  22 +--
 .../processor/XmlVerifierConfiguration.java        |  16 +-
 .../processor/XmlVerifierProcessor.java            |  10 +-
 .../xmlsecurity/XMLSecurityDataFormat.java         |   4 +-
 .../component/xmlsecurity/ECDSASignatureTest.java  |  24 +--
 .../xmlsecurity/SignatureAlgorithmTest.java        |  68 ++++----
 .../xmlsecurity/SignatureDigestMethodTest.java     |  44 ++---
 .../xmlsecurity/SpringXmlSignatureTest.java        |  12 +-
 .../xmlsecurity/XAdESSignaturePropertiesTest.java  |  84 ++++-----
 .../component/xmlsecurity/XmlSignatureTest.java    | 157 ++++++++---------
 .../xmlsecurity/SpringXmlSignatureTests.xml        |  80 ++++-----
 .../component/ComponentsBuilderFactory.java        |  19 +-
 ...=> XmlsecuritySignComponentBuilderFactory.java} |  41 ++---
 ... XmlsecurityVerifyComponentBuilderFactory.java} |  57 +++---
 .../src/generated/resources/metadata.json          |  30 +++-
 docs/components/modules/ROOT/nav.adoc              |   3 +-
 docs/components/modules/ROOT/pages/index.adoc      |   6 +-
 .../ROOT/pages/xmlsecurity-sign-component.adoc     |  67 ++++---
 ...nent.adoc => xmlsecurity-verify-component.adoc} |  57 +++---
 .../modules/ROOT/pages/camel-3x-upgrade-guide.adoc |  19 ++
 52 files changed, 1051 insertions(+), 1137 deletions(-)