You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2023/06/19 14:23:33 UTC

[camel] branch main updated (e48494e50e0 -> dfe17fc7bf9)

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

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


    from e48494e50e0 Removed outdated disclaimer (#10432)
     new b2b20f6d11a CAMEL-17528: camel-core-model - <description> should be attribute
     new dfe17fc7bf9 CAMEL-17528: camel-core-model - <description> should be attribute

The 2 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:
 .../org/apache/camel/catalog/models.properties     |   1 -
 .../apache/camel/catalog/models/description.json   |  17 --
 .../camel/catalog/releases/camel-releases.json     |  14 ++
 .../apache/camel/catalog/schemas/camel-spring.xsd  |  25 ++-
 ...SpringRestOpenApiReaderModelApiSecurityTest.xml |  12 +-
 .../rest/SpringFromRestIdAndDescriptionTest.xml    |  15 +-
 .../camel/spring/issues/CustomIdIssueTest.xml      |   9 +-
 .../SpringRouteTemplateLocalBeanTest.xml           |   3 +-
 .../routebuilder/SpringRouteTemplateTest.xml       |   3 +-
 .../routebuilder/SpringTemplatedRouteTest.xml      |   3 +-
 .../camel/spring/routebuilder/myTemplates.xml      |   3 +-
 .../services/org/apache/camel/model.properties     |   1 -
 .../org/apache/camel/model/description.json        |  17 --
 .../resources/org/apache/camel/model/jaxb.index    |   1 -
 .../apache/camel/model/DescriptionDefinition.java  |  55 ------
 .../camel/model/OptionalIdentifiedDefinition.java  |  24 +--
 .../apache/camel/model/ProcessorDefinition.java    |   4 +-
 .../org/apache/camel/model/RouteDefinition.java    |   4 +-
 .../camel/model/RouteTemplateDefinition.java       |   6 +-
 .../apache/camel/model/rest/RestDefinition.java    |   6 +-
 .../util/DumpModelAsXmlDanishCharactersTest.java   |   2 +-
 .../java/org/apache/camel/xml/in/ModelParser.java  |  14 +-
 .../java/org/apache/camel/xml/out/ModelWriter.java |  97 +---------
 .../org/apache/camel/xml/LwModelToXMLDumper.java   |   4 +
 .../org/apache/camel/yaml/out/ModelWriter.java     |  97 +---------
 .../ROOT/pages/camel-4-migration-guide.adoc        |  31 +++-
 .../dsl/yaml/deserializers/ModelDeserializers.java | 198 ++++++++-------------
 .../deserializers/ModelDeserializersResolver.java  |   2 -
 .../deserializers/FromDefinitionDeserializer.java  |   5 +-
 .../OutputAwareFromDefinitionDeserializer.java     |   4 +-
 .../deserializers/RouteDefinitionDeserializer.java |   3 +-
 .../RouteTemplateDefinitionDeserializer.java       |   5 +
 .../dsl/yaml/GenerateYamlDeserializersMojo.java    |   2 +-
 .../generated/resources/schema/camel-yaml-dsl.json |  15 +-
 .../generated/resources/schema/camelYamlDsl.json   |  15 +-
 .../org/apache/camel/dsl/yaml/RoutesTest.groovy    |  10 +-
 .../OpenApiPetstoreWithRestComponentXml.txt        |  27 +--
 .../src/test/resources/OpenApiPetstoreXml.txt      |  27 +--
 .../OpenApiV3PetstoreWithRestComponentXml.txt      |  27 +--
 .../src/test/resources/OpenApiV3PetstoreXml.txt    |  27 +--
 40 files changed, 232 insertions(+), 603 deletions(-)
 delete mode 100644 catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/description.json
 delete mode 100644 core/camel-core-model/src/generated/resources/org/apache/camel/model/description.json
 delete mode 100644 core/camel-core-model/src/main/java/org/apache/camel/model/DescriptionDefinition.java


[camel] 02/02: CAMEL-17528: camel-core-model - should be attribute

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

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

commit dfe17fc7bf9dd9ca11de4edce6b69899b1de0f56
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Jun 19 15:58:05 2023 +0200

    CAMEL-17528: camel-core-model - <description> should be attribute
---
 .../OpenApiPetstoreWithRestComponentXml.txt        | 27 ++++++++--------------
 .../src/test/resources/OpenApiPetstoreXml.txt      | 27 ++++++++--------------
 .../OpenApiV3PetstoreWithRestComponentXml.txt      | 27 ++++++++--------------
 .../src/test/resources/OpenApiV3PetstoreXml.txt    | 27 ++++++++--------------
 4 files changed, 36 insertions(+), 72 deletions(-)

diff --git a/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiPetstoreWithRestComponentXml.txt b/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiPetstoreWithRestComponentXml.txt
index 61c1888eedb..1e4ad5b28b2 100644
--- a/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiPetstoreWithRestComponentXml.txt
+++ b/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiPetstoreWithRestComponentXml.txt
@@ -11,18 +11,15 @@
             <param dataType="boolean" defaultValue="false" description="Verbose data" name="verbose" required="false" type="query"/>
             <to uri="direct:addPet"/>
         </post>
-        <get id="findPetsByStatus" produces="application/xml,application/json" path="/pet/findByStatus">
-            <description>Multiple status values can be provided with comma separated strings</description>
+        <get id="findPetsByStatus" description="Multiple status values can be provided with comma separated strings" produces="application/xml,application/json" path="/pet/findByStatus">
             <param arrayType="string" collectionFormat="multi" dataType="array" description="Status values that need to be considered for filter" name="status" required="true" type="query"/>
             <to uri="direct:findPetsByStatus"/>
         </get>
-        <get id="findPetsByTags" produces="application/xml,application/json" path="/pet/findByTags">
-            <description>Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.</description>
+        <get id="findPetsByTags" description="Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing." produces="application/xml,application/json" path="/pet/findByTags">
             <param arrayType="string" collectionFormat="multi" dataType="array" description="Tags to filter by" name="tags" required="true" type="query"/>
             <to uri="direct:findPetsByTags"/>
         </get>
-        <get id="getPetById" produces="application/xml,application/json" path="/pet/{petId}">
-            <description>Returns a single pet</description>
+        <get id="getPetById" description="Returns a single pet" produces="application/xml,application/json" path="/pet/{petId}">
             <param dataType="integer" description="ID of pet to return" name="petId" required="true" type="path"/>
             <to uri="direct:getPetById"/>
         </get>
@@ -43,26 +40,22 @@
             <param dataType="file" description="file to upload" name="file" required="false" type="formData"/>
             <to uri="direct:uploadFile"/>
         </post>
-        <get id="getInventory" produces="application/json" path="/store/inventory">
-            <description>Returns a map of status codes to quantities</description>
+        <get id="getInventory" description="Returns a map of status codes to quantities" produces="application/json" path="/store/inventory">
             <to uri="direct:getInventory"/>
         </get>
         <post id="placeOrder" produces="application/xml,application/json" path="/store/order">
             <param description="order placed for purchasing the pet" name="body" required="true" type="body"/>
             <to uri="direct:placeOrder"/>
         </post>
-        <get id="getOrderById" produces="application/xml,application/json" path="/store/order/{orderId}">
-            <description>For valid response try integer IDs with value &gt;= 1 and &lt;= 10. Other values will generated exceptions</description>
+        <get id="getOrderById" description="For valid response try integer IDs with value &gt;= 1 and &lt;= 10. Other values will generated exceptions" produces="application/xml,application/json" path="/store/order/{orderId}">
             <param dataType="integer" description="ID of pet that needs to be fetched" name="orderId" required="true" type="path"/>
             <to uri="direct:getOrderById"/>
         </get>
-        <delete id="deleteOrder" produces="application/xml,application/json" path="/store/order/{orderId}">
-            <description>For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors</description>
+        <delete id="deleteOrder" description="For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors" produces="application/xml,application/json" path="/store/order/{orderId}">
             <param dataType="integer" description="ID of the order that needs to be deleted" name="orderId" required="true" type="path"/>
             <to uri="direct:deleteOrder"/>
         </delete>
-        <post id="createUser" produces="application/xml,application/json" path="/user">
-            <description>This can only be done by the logged in user.</description>
+        <post id="createUser" description="This can only be done by the logged in user." produces="application/xml,application/json" path="/user">
             <param description="Created user object" name="body" required="true" type="body"/>
             <to uri="direct:createUser"/>
         </post>
@@ -86,14 +79,12 @@
             <param dataType="string" description="The name that needs to be fetched. Use user1 for testing. " name="username" required="true" type="path"/>
             <to uri="direct:getUserByName"/>
         </get>
-        <put id="updateUser" produces="application/xml,application/json" path="/user/{username}">
-            <description>This can only be done by the logged in user.</description>
+        <put id="updateUser" description="This can only be done by the logged in user." produces="application/xml,application/json" path="/user/{username}">
             <param dataType="string" description="name that need to be updated" name="username" required="true" type="path"/>
             <param description="Updated user object" name="body" required="true" type="body"/>
             <to uri="direct:updateUser"/>
         </put>
-        <delete id="deleteUser" produces="application/xml,application/json" path="/user/{username}">
-            <description>This can only be done by the logged in user.</description>
+        <delete id="deleteUser" description="This can only be done by the logged in user." produces="application/xml,application/json" path="/user/{username}">
             <param dataType="string" description="The name that needs to be deleted" name="username" required="true" type="path"/>
             <to uri="direct:deleteUser"/>
         </delete>
diff --git a/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiPetstoreXml.txt b/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiPetstoreXml.txt
index 3c51257cb3e..0468f7e3a03 100644
--- a/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiPetstoreXml.txt
+++ b/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiPetstoreXml.txt
@@ -10,18 +10,15 @@
             <param dataType="boolean" defaultValue="false" description="Verbose data" name="verbose" required="false" type="query"/>
             <to uri="direct:addPet"/>
         </post>
-        <get id="findPetsByStatus" produces="application/xml,application/json" path="/pet/findByStatus">
-            <description>Multiple status values can be provided with comma separated strings</description>
+        <get id="findPetsByStatus" description="Multiple status values can be provided with comma separated strings" produces="application/xml,application/json" path="/pet/findByStatus">
             <param arrayType="string" collectionFormat="multi" dataType="array" description="Status values that need to be considered for filter" name="status" required="true" type="query"/>
             <to uri="direct:findPetsByStatus"/>
         </get>
-        <get id="findPetsByTags" produces="application/xml,application/json" path="/pet/findByTags">
-            <description>Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.</description>
+        <get id="findPetsByTags" description="Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing." produces="application/xml,application/json" path="/pet/findByTags">
             <param arrayType="string" collectionFormat="multi" dataType="array" description="Tags to filter by" name="tags" required="true" type="query"/>
             <to uri="direct:findPetsByTags"/>
         </get>
-        <get id="getPetById" produces="application/xml,application/json" path="/pet/{petId}">
-            <description>Returns a single pet</description>
+        <get id="getPetById" description="Returns a single pet" produces="application/xml,application/json" path="/pet/{petId}">
             <param dataType="integer" description="ID of pet to return" name="petId" required="true" type="path"/>
             <to uri="direct:getPetById"/>
         </get>
@@ -42,26 +39,22 @@
             <param dataType="file" description="file to upload" name="file" required="false" type="formData"/>
             <to uri="direct:uploadFile"/>
         </post>
-        <get id="getInventory" produces="application/json" path="/store/inventory">
-            <description>Returns a map of status codes to quantities</description>
+        <get id="getInventory" description="Returns a map of status codes to quantities" produces="application/json" path="/store/inventory">
             <to uri="direct:getInventory"/>
         </get>
         <post id="placeOrder" produces="application/xml,application/json" path="/store/order">
             <param description="order placed for purchasing the pet" name="body" required="true" type="body"/>
             <to uri="direct:placeOrder"/>
         </post>
-        <get id="getOrderById" produces="application/xml,application/json" path="/store/order/{orderId}">
-            <description>For valid response try integer IDs with value &gt;= 1 and &lt;= 10. Other values will generated exceptions</description>
+        <get id="getOrderById" description="For valid response try integer IDs with value &gt;= 1 and &lt;= 10. Other values will generated exceptions" produces="application/xml,application/json" path="/store/order/{orderId}">
             <param dataType="integer" description="ID of pet that needs to be fetched" name="orderId" required="true" type="path"/>
             <to uri="direct:getOrderById"/>
         </get>
-        <delete id="deleteOrder" produces="application/xml,application/json" path="/store/order/{orderId}">
-            <description>For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors</description>
+        <delete id="deleteOrder" description="For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors" produces="application/xml,application/json" path="/store/order/{orderId}">
             <param dataType="integer" description="ID of the order that needs to be deleted" name="orderId" required="true" type="path"/>
             <to uri="direct:deleteOrder"/>
         </delete>
-        <post id="createUser" produces="application/xml,application/json" path="/user">
-            <description>This can only be done by the logged in user.</description>
+        <post id="createUser" description="This can only be done by the logged in user." produces="application/xml,application/json" path="/user">
             <param description="Created user object" name="body" required="true" type="body"/>
             <to uri="direct:createUser"/>
         </post>
@@ -85,14 +78,12 @@
             <param dataType="string" description="The name that needs to be fetched. Use user1 for testing. " name="username" required="true" type="path"/>
             <to uri="direct:getUserByName"/>
         </get>
-        <put id="updateUser" produces="application/xml,application/json" path="/user/{username}">
-            <description>This can only be done by the logged in user.</description>
+        <put id="updateUser" description="This can only be done by the logged in user." produces="application/xml,application/json" path="/user/{username}">
             <param dataType="string" description="name that need to be updated" name="username" required="true" type="path"/>
             <param description="Updated user object" name="body" required="true" type="body"/>
             <to uri="direct:updateUser"/>
         </put>
-        <delete id="deleteUser" produces="application/xml,application/json" path="/user/{username}">
-            <description>This can only be done by the logged in user.</description>
+        <delete id="deleteUser" description="This can only be done by the logged in user." produces="application/xml,application/json" path="/user/{username}">
             <param dataType="string" description="The name that needs to be deleted" name="username" required="true" type="path"/>
             <to uri="direct:deleteUser"/>
         </delete>
diff --git a/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreWithRestComponentXml.txt b/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreWithRestComponentXml.txt
index 2816496bf41..457df54e7e1 100644
--- a/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreWithRestComponentXml.txt
+++ b/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreWithRestComponentXml.txt
@@ -9,18 +9,15 @@
             <param description="Pet object that needs to be added to the store" name="body" required="true" type="body"/>
             <to uri="direct:addPet"/>
         </post>
-        <get id="findPetsByStatus" produces="application/xml,application/json" path="/pet/findByStatus">
-            <description>Multiple status values can be provided with comma separated strings</description>
+        <get id="findPetsByStatus" description="Multiple status values can be provided with comma separated strings" produces="application/xml,application/json" path="/pet/findByStatus">
             <param arrayType="string" collectionFormat="multi" dataType="array" description="Status values that need to be considered for filter" name="status" required="true" type="query"/>
             <to uri="direct:findPetsByStatus"/>
         </get>
-        <get id="findPetsByTags" produces="application/xml,application/json" path="/pet/findByTags">
-            <description>Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.</description>
+        <get id="findPetsByTags" description="Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing." produces="application/xml,application/json" path="/pet/findByTags">
             <param arrayType="string" collectionFormat="multi" dataType="array" description="Tags to filter by" name="tags" required="true" type="query"/>
             <to uri="direct:findPetsByTags"/>
         </get>
-        <get id="getPetById" produces="application/xml,application/json" path="/pet/{petId}">
-            <description>Returns a single pet</description>
+        <get id="getPetById" description="Returns a single pet" produces="application/xml,application/json" path="/pet/{petId}">
             <param dataType="integer" description="ID of pet to return" name="petId" required="true" type="path"/>
             <to uri="direct:getPetById"/>
         </get>
@@ -41,26 +38,22 @@
             <param dataType="string" description="file to upload" name="file" required="true" type="formData"/>
             <to uri="direct:uploadFile"/>
         </post>
-        <get id="getInventory" produces="application/json" path="/store/inventory">
-            <description>Returns a map of status codes to quantities</description>
+        <get id="getInventory" description="Returns a map of status codes to quantities" produces="application/json" path="/store/inventory">
             <to uri="direct:getInventory"/>
         </get>
         <post consumes="*/*" id="placeOrder" produces="application/xml,application/json" path="/store/order">
             <param description="order placed for purchasing the pet" name="body" required="true" type="body"/>
             <to uri="direct:placeOrder"/>
         </post>
-        <get id="getOrderById" produces="application/xml,application/json" path="/store/order/{orderId}">
-            <description>For valid response try integer IDs with value &gt;= 1 and &lt;= 10. Other values will generated exceptions</description>
+        <get id="getOrderById" description="For valid response try integer IDs with value &gt;= 1 and &lt;= 10. Other values will generated exceptions" produces="application/xml,application/json" path="/store/order/{orderId}">
             <param dataType="integer" description="ID of pet that needs to be fetched" name="orderId" required="true" type="path"/>
             <to uri="direct:getOrderById"/>
         </get>
-        <delete id="deleteOrder" path="/store/order/{orderId}">
-            <description>For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors</description>
+        <delete id="deleteOrder" description="For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors" path="/store/order/{orderId}">
             <param dataType="integer" description="ID of the order that needs to be deleted" name="orderId" required="true" type="path"/>
             <to uri="direct:deleteOrder"/>
         </delete>
-        <post consumes="*/*" id="createUser" path="/user">
-            <description>This can only be done by the logged in user.</description>
+        <post consumes="*/*" id="createUser" description="This can only be done by the logged in user." path="/user">
             <param description="Created user object" name="body" required="true" type="body"/>
             <to uri="direct:createUser"/>
         </post>
@@ -84,14 +77,12 @@
             <param dataType="string" description="The name that needs to be fetched. Use user1 for testing. " name="username" required="true" type="path"/>
             <to uri="direct:getUserByName"/>
         </get>
-        <put consumes="*/*" id="updateUser" path="/user/{username}">
-            <description>This can only be done by the logged in user.</description>
+        <put consumes="*/*" id="updateUser" description="This can only be done by the logged in user." path="/user/{username}">
             <param dataType="string" description="name that need to be updated" name="username" required="true" type="path"/>
             <param description="Updated user object" name="body" required="true" type="body"/>
             <to uri="direct:updateUser"/>
         </put>
-        <delete id="deleteUser" path="/user/{username}">
-            <description>This can only be done by the logged in user.</description>
+        <delete id="deleteUser" description="This can only be done by the logged in user." path="/user/{username}">
             <param dataType="string" description="The name that needs to be deleted" name="username" required="true" type="path"/>
             <to uri="direct:deleteUser"/>
         </delete>
diff --git a/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreXml.txt b/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreXml.txt
index 612c2cd2248..acf189cf08b 100644
--- a/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreXml.txt
+++ b/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreXml.txt
@@ -9,18 +9,15 @@
             <param description="Pet object that needs to be added to the store" name="body" required="true" type="body"/>
             <to uri="direct:addPet"/>
         </post>
-        <get id="findPetsByStatus" produces="application/xml,application/json" path="/pet/findByStatus">
-            <description>Multiple status values can be provided with comma separated strings</description>
+        <get id="findPetsByStatus" description="Multiple status values can be provided with comma separated strings" produces="application/xml,application/json" path="/pet/findByStatus">
             <param arrayType="string" collectionFormat="multi" dataType="array" description="Status values that need to be considered for filter" name="status" required="true" type="query"/>
             <to uri="direct:findPetsByStatus"/>
         </get>
-        <get id="findPetsByTags" produces="application/xml,application/json" path="/pet/findByTags">
-            <description>Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.</description>
+        <get id="findPetsByTags" description="Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing." produces="application/xml,application/json" path="/pet/findByTags">
             <param arrayType="string" collectionFormat="multi" dataType="array" description="Tags to filter by" name="tags" required="true" type="query"/>
             <to uri="direct:findPetsByTags"/>
         </get>
-        <get id="getPetById" produces="application/xml,application/json" path="/pet/{petId}">
-            <description>Returns a single pet</description>
+        <get id="getPetById" description="Returns a single pet" produces="application/xml,application/json" path="/pet/{petId}">
             <param dataType="integer" description="ID of pet to return" name="petId" required="true" type="path"/>
             <to uri="direct:getPetById"/>
         </get>
@@ -41,26 +38,22 @@
             <param dataType="string" description="file to upload" name="file" required="true" type="formData"/>
             <to uri="direct:uploadFile"/>
         </post>
-        <get id="getInventory" produces="application/json" path="/store/inventory">
-            <description>Returns a map of status codes to quantities</description>
+        <get id="getInventory" description="Returns a map of status codes to quantities" produces="application/json" path="/store/inventory">
             <to uri="direct:getInventory"/>
         </get>
         <post consumes="*/*" id="placeOrder" produces="application/xml,application/json" path="/store/order">
             <param description="order placed for purchasing the pet" name="body" required="true" type="body"/>
             <to uri="direct:placeOrder"/>
         </post>
-        <get id="getOrderById" produces="application/xml,application/json" path="/store/order/{orderId}">
-            <description>For valid response try integer IDs with value &gt;= 1 and &lt;= 10. Other values will generated exceptions</description>
+        <get id="getOrderById" description="For valid response try integer IDs with value &gt;= 1 and &lt;= 10. Other values will generated exceptions" produces="application/xml,application/json" path="/store/order/{orderId}">
             <param dataType="integer" description="ID of pet that needs to be fetched" name="orderId" required="true" type="path"/>
             <to uri="direct:getOrderById"/>
         </get>
-        <delete id="deleteOrder" path="/store/order/{orderId}">
-            <description>For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors</description>
+        <delete id="deleteOrder" description="For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors" path="/store/order/{orderId}">
             <param dataType="integer" description="ID of the order that needs to be deleted" name="orderId" required="true" type="path"/>
             <to uri="direct:deleteOrder"/>
         </delete>
-        <post consumes="*/*" id="createUser" path="/user">
-            <description>This can only be done by the logged in user.</description>
+        <post consumes="*/*" id="createUser" description="This can only be done by the logged in user." path="/user">
             <param description="Created user object" name="body" required="true" type="body"/>
             <to uri="direct:createUser"/>
         </post>
@@ -84,14 +77,12 @@
             <param dataType="string" description="The name that needs to be fetched. Use user1 for testing. " name="username" required="true" type="path"/>
             <to uri="direct:getUserByName"/>
         </get>
-        <put consumes="*/*" id="updateUser" path="/user/{username}">
-            <description>This can only be done by the logged in user.</description>
+        <put consumes="*/*" id="updateUser" description="This can only be done by the logged in user." path="/user/{username}">
             <param dataType="string" description="name that need to be updated" name="username" required="true" type="path"/>
             <param description="Updated user object" name="body" required="true" type="body"/>
             <to uri="direct:updateUser"/>
         </put>
-        <delete id="deleteUser" path="/user/{username}">
-            <description>This can only be done by the logged in user.</description>
+        <delete id="deleteUser" description="This can only be done by the logged in user." path="/user/{username}">
             <param dataType="string" description="The name that needs to be deleted" name="username" required="true" type="path"/>
             <to uri="direct:deleteUser"/>
         </delete>


[camel] 01/02: CAMEL-17528: camel-core-model - should be attribute

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

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

commit b2b20f6d11a08818d8e6736f7df57d47c228b8f7
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Jun 19 15:48:33 2023 +0200

    CAMEL-17528: camel-core-model - <description> should be attribute
---
 .../org/apache/camel/catalog/models.properties     |   1 -
 .../apache/camel/catalog/models/description.json   |  17 --
 .../camel/catalog/releases/camel-releases.json     |  14 ++
 .../apache/camel/catalog/schemas/camel-spring.xsd  |  25 ++-
 ...SpringRestOpenApiReaderModelApiSecurityTest.xml |  12 +-
 .../rest/SpringFromRestIdAndDescriptionTest.xml    |  15 +-
 .../camel/spring/issues/CustomIdIssueTest.xml      |   9 +-
 .../SpringRouteTemplateLocalBeanTest.xml           |   3 +-
 .../routebuilder/SpringRouteTemplateTest.xml       |   3 +-
 .../routebuilder/SpringTemplatedRouteTest.xml      |   3 +-
 .../camel/spring/routebuilder/myTemplates.xml      |   3 +-
 .../services/org/apache/camel/model.properties     |   1 -
 .../org/apache/camel/model/description.json        |  17 --
 .../resources/org/apache/camel/model/jaxb.index    |   1 -
 .../apache/camel/model/DescriptionDefinition.java  |  55 ------
 .../camel/model/OptionalIdentifiedDefinition.java  |  24 +--
 .../apache/camel/model/ProcessorDefinition.java    |   4 +-
 .../org/apache/camel/model/RouteDefinition.java    |   4 +-
 .../camel/model/RouteTemplateDefinition.java       |   6 +-
 .../apache/camel/model/rest/RestDefinition.java    |   6 +-
 .../util/DumpModelAsXmlDanishCharactersTest.java   |   2 +-
 .../java/org/apache/camel/xml/in/ModelParser.java  |  14 +-
 .../java/org/apache/camel/xml/out/ModelWriter.java |  97 +---------
 .../org/apache/camel/xml/LwModelToXMLDumper.java   |   4 +
 .../org/apache/camel/yaml/out/ModelWriter.java     |  97 +---------
 .../ROOT/pages/camel-4-migration-guide.adoc        |  31 +++-
 .../dsl/yaml/deserializers/ModelDeserializers.java | 198 ++++++++-------------
 .../deserializers/ModelDeserializersResolver.java  |   2 -
 .../deserializers/FromDefinitionDeserializer.java  |   5 +-
 .../OutputAwareFromDefinitionDeserializer.java     |   4 +-
 .../deserializers/RouteDefinitionDeserializer.java |   3 +-
 .../RouteTemplateDefinitionDeserializer.java       |   5 +
 .../dsl/yaml/GenerateYamlDeserializersMojo.java    |   2 +-
 .../generated/resources/schema/camel-yaml-dsl.json |  15 +-
 .../generated/resources/schema/camelYamlDsl.json   |  15 +-
 .../org/apache/camel/dsl/yaml/RoutesTest.groovy    |  10 +-
 36 files changed, 196 insertions(+), 531 deletions(-)

diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties
index 57d98feccb6..33d1fd59b17 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties
@@ -36,7 +36,6 @@ defaultErrorHandler
 defaultLoadBalancer
 delay
 delete
-description
 dnsServiceDiscovery
 doCatch
 doFinally
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/description.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/description.json
deleted file mode 100644
index 22f15cb7c44..00000000000
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/description.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
-  "model": {
-    "kind": "model",
-    "name": "description",
-    "title": "Description",
-    "description": "To provide comments about the node.",
-    "deprecated": false,
-    "label": "configuration",
-    "javaType": "org.apache.camel.model.DescriptionDefinition",
-    "abstract": false,
-    "input": false,
-    "output": false
-  },
-  "properties": {
-    "text": { "index": 0, "kind": "value", "displayName": "Text", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The description as human-readable text" }
-  }
-}
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/releases/camel-releases.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/releases/camel-releases.json
index 5f7bdea3d65..34d41a17efc 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/releases/camel-releases.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/releases/camel-releases.json
@@ -425,6 +425,13 @@
         "kind": "lts",
         "jdk": "8,11"
     },
+    {
+        "version": "3.14.9",
+        "date": "2023-06-19",
+        "eol": "2023-12-16",
+        "kind": "lts",
+        "jdk": "8, 11"
+    },
     {
         "version": "3.15.0",
         "date": "2022-02-04",
@@ -496,6 +503,13 @@
         "kind": "lts",
         "jdk": "11,17"
     },
+    {
+        "version": "3.18.8",
+        "date": "2023-06-16",
+        "eol": "2023-07-06",
+        "kind": "lts",
+        "jdk": "11, 17"
+    },
     {
         "version": "3.19.0",
         "date": "2022-10-03",
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
index 66472a8156a..d4d47558890 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
@@ -368,15 +368,6 @@ Delays processing for a specified length of time
       <xs:documentation xml:lang="en">
 <![CDATA[
 Rest DELETE command
-]]>
-      </xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:element name="description" type="tns:descriptionDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-To provide comments about the node.
 ]]>
       </xs:documentation>
     </xs:annotation>
@@ -3356,10 +3347,17 @@ later at runtime. Default value: false
     </xs:complexContent>
   </xs:complexType>
   <xs:complexType abstract="true" name="optionalIdentifiedDefinition">
-    <xs:sequence>
-      <xs:element minOccurs="0" ref="tns:description"/>
-    </xs:sequence>
+    <xs:sequence/>
     <xs:attribute name="customId" type="xs:boolean"/>
+    <xs:attribute name="description" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">
+<![CDATA[
+Sets the description of this node.
+]]>
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
     <xs:attribute name="id" type="xs:string">
       <xs:annotation>
         <xs:documentation xml:lang="en">
@@ -3370,9 +3368,6 @@ Sets the id of this node.
       </xs:annotation>
     </xs:attribute>
   </xs:complexType>
-  <xs:simpleType name="descriptionDefinition">
-    <xs:restriction base="xs:string"/>
-  </xs:simpleType>
   <xs:complexType name="aggregateDefinition">
     <xs:complexContent>
       <xs:extension base="tns:output">
diff --git a/components/camel-openapi-java/src/test/resources/org/apache/camel/openapi/SpringRestOpenApiReaderModelApiSecurityTest.xml b/components/camel-openapi-java/src/test/resources/org/apache/camel/openapi/SpringRestOpenApiReaderModelApiSecurityTest.xml
index 2b48097370f..caf6c946165 100644
--- a/components/camel-openapi-java/src/test/resources/org/apache/camel/openapi/SpringRestOpenApiReaderModelApiSecurityTest.xml
+++ b/components/camel-openapi-java/src/test/resources/org/apache/camel/openapi/SpringRestOpenApiReaderModelApiSecurityTest.xml
@@ -31,15 +31,13 @@
 
   <camelContext xmlns="http://camel.apache.org/schema/spring">
 
-    <rest path="/user" tag="dude" consumes="application/json" produces="application/json">
-      <description>User rest service</description>
+    <rest path="/user" tag="dude" description="User rest service" consumes="application/json" produces="application/json">
       <securityDefinitions>
         <oauth2 key="petstore_auth" authorizationUrl="http://petstore.swagger.io/oauth/dialog"/>
         <apiKey key="api_key" name="myHeader" inHeader="true"/>
       </securityDefinitions>
 
-      <get path="/{id}/{date}" outType="org.apache.camel.openapi.User">
-        <description>Find user by id and date</description>
+      <get path="/{id}/{date}" description="Find user by id and date" outType="org.apache.camel.openapi.User">
         <param name="id" type="path" description="The id of the user to get"/>
         <param name="date" type="path" dataFormat="date" description="The date"/>
         <responseMessage message="The user returned"/>
@@ -47,15 +45,13 @@
         <to uri="bean:userService?method=getUser(${header.id})"/>
       </get>
 
-      <put type="org.apache.camel.openapi.User">
-        <description>Updates or create a user</description>
+      <put description="Updates or create a user" type="org.apache.camel.openapi.User">
         <param name="body" type="body" description="The user to update or create"/>
         <security key="petstore_auth" scopes="write:pets,read:pets"/>
         <to uri="bean:userService?method=updateUser"/>
       </put>
 
-      <get path="/findAll" outType="org.apache.camel.openapi.User[]">
-        <description>Find all users</description>
+      <get path="/findAll" description="Find all users" outType="org.apache.camel.openapi.User[]">
         <responseMessage message="All the found users"/>
         <to uri="bean:userService?method=listUsers"/>
       </get>
diff --git a/components/camel-spring-xml/src/test/resources/org/apache/camel/component/rest/SpringFromRestIdAndDescriptionTest.xml b/components/camel-spring-xml/src/test/resources/org/apache/camel/component/rest/SpringFromRestIdAndDescriptionTest.xml
index d99351b1e57..567005f0a9b 100644
--- a/components/camel-spring-xml/src/test/resources/org/apache/camel/component/rest/SpringFromRestIdAndDescriptionTest.xml
+++ b/components/camel-spring-xml/src/test/resources/org/apache/camel/component/rest/SpringFromRestIdAndDescriptionTest.xml
@@ -32,17 +32,13 @@
     <propertyPlaceholder id="properties" location="custom.properties" ignoreMissingLocation="true">
     </propertyPlaceholder>
 
-    <rest id="hello" path="/say/hello">
-      <description>Hello Service</description>
-      <get id="get-say">
-        <description>Says hello to you</description>
+    <rest id="hello" description="Hello Service" path="/say/hello">
+      <get id="get-say" description="Says hello to you">
         <to uri="direct:hello"/>
       </get>
     </rest>
-    <rest id="bye" path="/say/bye">
-      <description>Bye Service</description>
-      <get consumes="application/json" id="{{mySpecialId}}">
-        <description>Says bye to you</description>
+    <rest id="bye" path="/say/bye" description="Bye Service">
+      <get consumes="application/json" id="{{mySpecialId}}" description="Says bye to you">
           <param name="header_count" type="header" description="header param description1" dataType="integer" defaultValue="1" required="true">
               <allowableValues>
                   <value>1</value>
@@ -65,8 +61,7 @@
           <responseMessage code="error" message="does not work"/>
         <to uri="direct:bye"/>
       </get>
-      <post>
-        <description>Updates the bye message</description>
+      <post description="Updates the bye message">
         <to uri="mock:update"/>
       </post>
     </rest>
diff --git a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/issues/CustomIdIssueTest.xml b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/issues/CustomIdIssueTest.xml
index 16de22dc414..baba9e24aa7 100644
--- a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/issues/CustomIdIssueTest.xml
+++ b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/issues/CustomIdIssueTest.xml
@@ -25,13 +25,8 @@
        http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
 
   <camelContext xmlns="http://camel.apache.org/schema/spring">
-    <route customId="true" id="myRoute">
-      <description>here is a sample which processes the input files
-        (leaving them in place - see the 'noop' flag)
-        then performs content based routing on the message using XPath</description>
-      <from uri="file:src/data?initialDelay=0&amp;delay=10&amp;noop=true" customId="true" id="fromFile">
-        <description/>
-      </from>
+    <route customId="true" id="myRoute" description="here is a sample which processes the input files (leaving them in place - see the 'noop' flag) then performs content based routing on the message using XPath">
+      <from uri="file:src/data?initialDelay=0&amp;delay=10&amp;noop=true" customId="true" id="fromFile"/>
       <choice customId="true" id="myChoice">
         <when customId="true" id="UK">
           <xpath>/person/city = 'London'</xpath>
diff --git a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/routebuilder/SpringRouteTemplateLocalBeanTest.xml b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/routebuilder/SpringRouteTemplateLocalBeanTest.xml
index bb4a3f6c358..d1e56089433 100644
--- a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/routebuilder/SpringRouteTemplateLocalBeanTest.xml
+++ b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/routebuilder/SpringRouteTemplateLocalBeanTest.xml
@@ -26,8 +26,7 @@
             http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
 
     <camelContext id="foo" xmlns="http://camel.apache.org/schema/spring">
-        <routeTemplate id="myTemplate">
-            <description>blah blah</description>
+        <routeTemplate id="myTemplate" description="blah blah">
             <templateParameter name="foo"/>
             <templateParameter name="bar"/>
             <templateParameter name="greeting"/>
diff --git a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/routebuilder/SpringRouteTemplateTest.xml b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/routebuilder/SpringRouteTemplateTest.xml
index b7c813fc709..b93d9bfaedd 100644
--- a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/routebuilder/SpringRouteTemplateTest.xml
+++ b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/routebuilder/SpringRouteTemplateTest.xml
@@ -26,8 +26,7 @@
             http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
 
     <camelContext id="foo" xmlns="http://camel.apache.org/schema/spring">
-        <routeTemplate id="myTemplate">
-            <description>blah blah</description>
+        <routeTemplate id="myTemplate" description="blah blah">
             <templateParameter name="foo"/>
             <templateParameter name="bar"/>
             <route>
diff --git a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/routebuilder/SpringTemplatedRouteTest.xml b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/routebuilder/SpringTemplatedRouteTest.xml
index 6465947f166..65e61b47442 100644
--- a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/routebuilder/SpringTemplatedRouteTest.xml
+++ b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/routebuilder/SpringTemplatedRouteTest.xml
@@ -24,8 +24,7 @@
             http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
 
     <camelContext id="foo" xmlns="http://camel.apache.org/schema/spring">
-        <routeTemplate id="myTemplate">
-            <description>blah blah</description>
+        <routeTemplate id="myTemplate" description="blah blah">
             <templateParameter name="foo"/>
             <templateParameter name="bar"/>
             <route>
diff --git a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/routebuilder/myTemplates.xml b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/routebuilder/myTemplates.xml
index 7733da5ca75..2d3e9e7ee00 100644
--- a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/routebuilder/myTemplates.xml
+++ b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/routebuilder/myTemplates.xml
@@ -27,8 +27,7 @@
 
     <!-- this is an included XML file where we only the routeTemplateContext -->
     <routeTemplateContext id="myCoolTemplates" xmlns="http://camel.apache.org/schema/spring">
-        <routeTemplate id="myTemplate">
-            <description>blah blah</description>
+        <routeTemplate id="myTemplate" description="blah blah">
             <templateParameter name="foo"/>
             <templateParameter name="bar"/>
             <route>
diff --git a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/model.properties b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/model.properties
index 2125f2df0aa..3dcbb97fe86 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/model.properties
+++ b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/model.properties
@@ -37,7 +37,6 @@ defaultErrorHandler
 defaultLoadBalancer
 delay
 delete
-description
 dnsServiceDiscovery
 doCatch
 doFinally
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/description.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/description.json
deleted file mode 100644
index 22f15cb7c44..00000000000
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/description.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
-  "model": {
-    "kind": "model",
-    "name": "description",
-    "title": "Description",
-    "description": "To provide comments about the node.",
-    "deprecated": false,
-    "label": "configuration",
-    "javaType": "org.apache.camel.model.DescriptionDefinition",
-    "abstract": false,
-    "input": false,
-    "output": false
-  },
-  "properties": {
-    "text": { "index": 0, "kind": "value", "displayName": "Text", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The description as human-readable text" }
-  }
-}
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/jaxb.index b/core/camel-core-model/src/generated/resources/org/apache/camel/model/jaxb.index
index 9eb184c435f..268ba39711a 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/jaxb.index
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/jaxb.index
@@ -10,7 +10,6 @@ ContextScanDefinition
 ConvertBodyDefinition
 DataFormatDefinition
 DelayDefinition
-DescriptionDefinition
 DynamicRouterDefinition
 EnrichDefinition
 ErrorHandlerDefinition
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/DescriptionDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/DescriptionDefinition.java
deleted file mode 100644
index cd32ce83c29..00000000000
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/DescriptionDefinition.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.model;
-
-import jakarta.xml.bind.annotation.XmlAccessType;
-import jakarta.xml.bind.annotation.XmlAccessorType;
-import jakarta.xml.bind.annotation.XmlRootElement;
-import jakarta.xml.bind.annotation.XmlValue;
-
-import org.apache.camel.spi.Metadata;
-
-/**
- * To provide comments about the node.
- */
-@Metadata(label = "configuration")
-@XmlRootElement(name = "description")
-@XmlAccessorType(XmlAccessType.FIELD)
-public class DescriptionDefinition {
-
-    @XmlValue
-    private String text;
-
-    public DescriptionDefinition() {
-    }
-
-    public DescriptionDefinition(String text) {
-        this.text = text;
-    }
-
-    public String getText() {
-        return text;
-    }
-
-    /**
-     * The description as human-readable text
-     */
-    public void setText(String text) {
-        this.text = text;
-    }
-
-}
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java
index 1aa20b6d133..cbc6f1a6e9e 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java
@@ -19,7 +19,6 @@ package org.apache.camel.model;
 import jakarta.xml.bind.annotation.XmlAccessType;
 import jakarta.xml.bind.annotation.XmlAccessorType;
 import jakarta.xml.bind.annotation.XmlAttribute;
-import jakarta.xml.bind.annotation.XmlElement;
 import jakarta.xml.bind.annotation.XmlTransient;
 import jakarta.xml.bind.annotation.XmlType;
 
@@ -42,7 +41,7 @@ public abstract class OptionalIdentifiedDefinition<T extends OptionalIdentifiedD
     private CamelContext camelContext;
     private String id;
     private Boolean customId;
-    private DescriptionDefinition description;
+    private String description;
     private int lineNumber = -1;
     private String location;
 
@@ -78,7 +77,7 @@ public abstract class OptionalIdentifiedDefinition<T extends OptionalIdentifiedD
         customId = null;
     }
 
-    public DescriptionDefinition getDescription() {
+    public String getDescription() {
         return description;
     }
 
@@ -87,9 +86,9 @@ public abstract class OptionalIdentifiedDefinition<T extends OptionalIdentifiedD
      *
      * @param description sets the text description, use null to not set a text
      */
-    @XmlElement
+    @XmlAttribute
     @Metadata(description = "The description for this node")
-    public void setDescription(DescriptionDefinition description) {
+    public void setDescription(String description) {
         this.description = description;
     }
 
@@ -126,17 +125,12 @@ public abstract class OptionalIdentifiedDefinition<T extends OptionalIdentifiedD
     /**
      * Sets the description of this node
      *
-     * @param  text sets the text description, use null to not set a text
-     * @return      the builder
+     * @param  description sets the text description, use null to not set a text
+     * @return             the builder
      */
     @SuppressWarnings("unchecked")
-    public T description(String text) {
-        if (text != null) {
-            if (description == null) {
-                description = new DescriptionDefinition();
-            }
-            description.setText(text);
-        }
+    public T description(String description) {
+        this.description = description;
         return (T) this;
     }
 
@@ -205,7 +199,7 @@ public abstract class OptionalIdentifiedDefinition<T extends OptionalIdentifiedD
      */
     @Override
     public String getDescriptionText() {
-        return (description != null) ? description.getText() : null;
+        return description;
     }
 
     // Implementation methods
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinition.java
index a58bb3afb76..e766c76f42b 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinition.java
@@ -677,9 +677,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
 
         RouteDefinition route = ProcessorDefinitionHelper.getRoute(def);
         if (route != null) {
-            DescriptionDefinition desc = new DescriptionDefinition();
-            desc.setText(description);
-            route.setDescription(desc);
+            route.setDescription(description);
         }
 
         return asType();
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinition.java
index eda0330e094..e13f577c014 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinition.java
@@ -275,9 +275,7 @@ public class RouteDefinition extends OutputDefinition<RouteDefinition>
      */
     @Override
     public RouteDefinition routeDescription(String description) {
-        DescriptionDefinition desc = new DescriptionDefinition();
-        desc.setText(description);
-        setDescription(desc);
+        setDescription(description);
         return this;
     }
 
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteTemplateDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteTemplateDefinition.java
index 0a7c6c30a2e..1609e36bd9a 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteTemplateDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteTemplateDefinition.java
@@ -129,10 +129,8 @@ public class RouteTemplateDefinition extends OptionalIdentifiedDefinition {
     }
 
     @Override
-    public RouteTemplateDefinition description(String text) {
-        DescriptionDefinition def = new DescriptionDefinition();
-        def.setText(text);
-        setDescription(def);
+    public RouteTemplateDefinition description(String description) {
+        setDescription(description);
         return this;
     }
 
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/rest/RestDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/rest/RestDefinition.java
index bf400dbfcfe..ae020ff6614 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/rest/RestDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/rest/RestDefinition.java
@@ -403,13 +403,13 @@ public class RestDefinition extends OptionalIdentifiedDefinition<RestDefinition>
     }
 
     @Override
-    public RestDefinition description(String text) {
+    public RestDefinition description(String description) {
         if (getVerbs().isEmpty()) {
-            super.description(text);
+            super.description(description);
         } else {
             // add on last verb as that is how the Java DSL works
             VerbDefinition verb = getVerbs().get(getVerbs().size() - 1);
-            verb.description(text);
+            verb.description(description);
         }
 
         return this;
diff --git a/core/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlDanishCharactersTest.java b/core/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlDanishCharactersTest.java
index c3eea200a85..20ac4e8bf8c 100644
--- a/core/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlDanishCharactersTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlDanishCharactersTest.java
@@ -45,7 +45,7 @@ public class DumpModelAsXmlDanishCharactersTest extends ContextTestSupport {
         log.info(xml);
 
         assertTrue(xml.contains("<simple>Hello ${body}</simple>"));
-        assertTrue(xml.contains("<description>Hello danish \u00C6\u00D8\u00C5</description>"));
+        assertTrue(xml.contains("description=\"Hello danish \u00C6\u00D8\u00C5\""));
     }
 
     @Override
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 102ed75482a..e4f5932df7f 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
@@ -171,6 +171,7 @@ public class ModelParser extends BaseParser {
         return (def, key, val) -> {
             switch (key) {
                 case "customId": def.setCustomId(Boolean.valueOf(val)); break;
+                case "description": def.setDescription(val); break;
                 case "id": def.setId(val); break;
                 default: return false;
             }
@@ -179,18 +180,13 @@ public class ModelParser extends BaseParser {
     }
     protected <T extends OptionalIdentifiedDefinition> ElementHandler<T> optionalIdentifiedDefinitionElementHandler() {
         return (def, key) -> {
-            switch (key) {
-                case "description": def.setDescription(doParseDescriptionDefinition()); break;
-                case "generatedId": def.setGeneratedId(doParseText()); break;
-                default: return false;
+            if ("generatedId".equals(key)) {
+                def.setGeneratedId(doParseText());
+                return true;
             }
-            return true;
+            return false;
         };
     }
-    protected DescriptionDefinition doParseDescriptionDefinition() throws IOException, XmlPullParserException {
-        return doParse(new DescriptionDefinition(),
-            noAttributeHandler(), noElementHandler(), (def, val) -> def.setText(val));
-    }
     protected BeanDefinition doParseBeanDefinition() throws IOException, XmlPullParserException {
         return doParse(new BeanDefinition(), (def, key, val) -> {
             switch (key) {
diff --git a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/out/ModelWriter.java b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/out/ModelWriter.java
index 28bd49d589c..530682f71e0 100644
--- a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/out/ModelWriter.java
+++ b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/out/ModelWriter.java
@@ -89,11 +89,6 @@ public class ModelWriter extends BaseWriter {
     public void writeDelayDefinition(DelayDefinition def) throws IOException {
         doWriteDelayDefinition("delay", def);
     }
-    public void writeDescriptionDefinition(
-            DescriptionDefinition def)
-            throws IOException {
-        doWriteDescriptionDefinition("description", def);
-    }
     public void writeDynamicRouterDefinition(
             DynamicRouterDefinition def)
             throws IOException {
@@ -1049,7 +1044,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("discardOnCompletionTimeout", def.getDiscardOnCompletionTimeout());
         doWriteAttribute("completionTimeoutCheckerInterval", def.getCompletionTimeoutCheckerInterval());
         doWriteAttribute("optimisticLocking", def.getOptimisticLocking());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement("optimisticLockRetryPolicy", def.getOptimisticLockRetryPolicyDefinition(), this::doWriteOptimisticLockRetryPolicyDefinition);
         doWriteElement("correlationExpression", def.getCorrelationExpression(), this::doWriteExpressionSubElementDefinition);
         doWriteElement("completionPredicate", def.getCompletionPredicate(), this::doWriteExpressionSubElementDefinition);
@@ -1068,7 +1062,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("method", def.getMethod());
         doWriteAttribute("scope", def.getScope());
         doWriteAttribute("beanType", def.getBeanType());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteBeanFactoryDefinitionAttributes(
@@ -1100,7 +1093,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement("onWhen", def.getOnWhen(), this::doWriteWhenDefinition);
         doWriteList(null, "exception", def.getExceptions(), this::doWriteString);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
@@ -1113,7 +1105,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("precondition", def.getPrecondition());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement("otherwise", def.getOtherwise(), this::doWriteOtherwiseDefinition);
         doWriteList(null, null, def.getWhenClauses(), this::doWriteWhenDefinitionRef);
         endElement(name);
@@ -1125,7 +1116,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("configuration", def.getConfiguration());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement("faultToleranceConfiguration", def.getFaultToleranceConfiguration(), this::doWriteFaultToleranceConfigurationDefinition);
         doWriteElement("resilience4jConfiguration", def.getResilience4jConfiguration(), this::doWriteResilience4jConfigurationDefinition);
         doWriteElement("onFallback", def.getOnFallback(), this::doWriteOnFallbackDefinition);
@@ -1143,7 +1133,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("aggregationStrategyMethodName", def.getAggregationStrategyMethodName());
         doWriteAttribute("operation", def.getOperation());
         doWriteAttribute("key", def.getKey());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteContextScanDefinition(
@@ -1165,7 +1154,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("charset", def.getCharset());
         doWriteAttribute("type", def.getType());
         doWriteAttribute("mandatory", def.getMandatory());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteDataFormatDefinitionAttributes(
@@ -1193,14 +1181,6 @@ public class ModelWriter extends BaseWriter {
         doWriteExpressionNodeElements(def);
         endElement(name);
     }
-    protected void doWriteDescriptionDefinition(
-            String name,
-            DescriptionDefinition def)
-            throws IOException {
-        startElement(name);
-        doWriteValue(def.getText());
-        endElement(name);
-    }
     protected void doWriteDynamicRouterDefinition(
             String name,
             DynamicRouterDefinition<?> def)
@@ -1255,7 +1235,6 @@ public class ModelWriter extends BaseWriter {
     protected void doWriteExpressionNodeElements(
             ExpressionNode def)
             throws IOException {
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement(null, def.getExpression(), this::doWriteExpressionDefinitionRef);
     }
     protected void doWriteExpressionNode(
@@ -1325,7 +1304,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
         endElement(name);
     }
@@ -1336,7 +1314,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteOptionalIdentifiedDefinitionAttributes(def);
         doWriteAttribute("uri", def.getUri());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteGlobalOptionDefinition(
@@ -1391,7 +1368,6 @@ public class ModelWriter extends BaseWriter {
         doWriteOptionalIdentifiedDefinitionAttributes(def);
         doWriteAttribute("urn", def.getUrn());
         doWriteAttribute("validate", def.getValidate());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteInterceptDefinitionAttributes(
@@ -1402,7 +1378,6 @@ public class ModelWriter extends BaseWriter {
     protected void doWriteInterceptDefinitionElements(
             InterceptDefinition def)
             throws IOException {
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
     }
     protected void doWriteInterceptDefinition(
@@ -1433,7 +1408,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("afterUri", def.getAfterUri());
         doWriteAttribute("uri", def.getUri());
         doWriteAttribute("skipSendToOriginalEndpoint", def.getSkipSendToOriginalEndpoint());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
         endElement(name);
     }
@@ -1444,7 +1418,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("name", def.getName());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
         endElement(name);
     }
@@ -1454,7 +1427,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement(null, def.getLoadBalancerType(), (n, v) -> {
             switch (v.getClass().getSimpleName()) {
                 case "CustomLoadBalancerDefinition" -> doWriteCustomLoadBalancerDefinition("customLoadBalancer", (CustomLoadBalancerDefinition) def.getLoadBalancerType());
@@ -1493,7 +1465,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("logger", def.getLogger());
         doWriteAttribute("message", def.getMessage());
         doWriteAttribute("loggingLevel", def.getLoggingLevel());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteLoopDefinition(
@@ -1514,7 +1485,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement(null, def.getDataFormatType(), (n, v) -> {
             switch (v.getClass().getSimpleName()) {
                 case "ASN1DataFormat" -> doWriteASN1DataFormat("asn1", (ASN1DataFormat) def.getDataFormatType());
@@ -1578,7 +1548,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("parallelAggregate", def.getParallelAggregate());
         doWriteAttribute("shareUnitOfWork", def.getShareUnitOfWork());
         doWriteAttribute("aggregationStrategyMethodAllowNull", def.getAggregationStrategyMethodAllowNull());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
         endElement(name);
     }
@@ -1594,7 +1563,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("onCompleteOnly", def.getOnCompleteOnly());
         doWriteAttribute("executorService", def.getExecutorService());
         doWriteAttribute("onFailureOnly", def.getOnFailureOnly());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement("onWhen", def.getOnWhen(), this::doWriteWhenDefinition);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
         endElement(name);
@@ -1610,7 +1578,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("useOriginalBody", def.getUseOriginalBody());
         doWriteAttribute("onExceptionOccurredRef", def.getOnExceptionOccurredRef());
         doWriteAttribute("redeliveryPolicyRef", def.getRedeliveryPolicyRef());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement("continued", def.getContinued(), this::doWriteExpressionSubElementDefinition);
         doWriteList(null, "exception", def.getExceptions(), this::doWriteString);
         doWriteElement("retryWhile", def.getRetryWhile(), this::doWriteExpressionSubElementDefinition);
@@ -1627,7 +1594,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("fallbackViaNetwork", def.getFallbackViaNetwork());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
         endElement(name);
     }
@@ -1646,21 +1612,16 @@ public class ModelWriter extends BaseWriter {
     protected void doWriteOptionalIdentifiedDefinitionAttributes(
             OptionalIdentifiedDefinition<?> def)
             throws IOException {
+        doWriteAttribute("description", def.getDescription());
         doWriteAttribute("id", def.getId());
         doWriteAttribute("customId", toString(def.getCustomId()));
     }
-    protected void doWriteOptionalIdentifiedDefinitionElements(
-            OptionalIdentifiedDefinition<?> def)
-            throws IOException {
-        doWriteElement("description", def.getDescription(), this::doWriteDescriptionDefinition);
-    }
     protected void doWriteOptionalIdentifiedDefinition(
             String name,
             OptionalIdentifiedDefinition<?> def)
             throws IOException {
         startElement(name);
         doWriteOptionalIdentifiedDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteOtherwiseDefinition(
@@ -1669,7 +1630,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
         endElement(name);
     }
@@ -1701,7 +1661,6 @@ public class ModelWriter extends BaseWriter {
         doWriteOptionalIdentifiedDefinitionAttributes(def);
         doWriteAttribute("urn", def.getUrn());
         doWriteAttribute("validate", def.getValidate());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWritePackageScanDefinition(
@@ -1722,7 +1681,6 @@ public class ModelWriter extends BaseWriter {
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("untilCheck", def.getUntilCheck());
         doWriteAttribute("consumerListener", def.getConsumerListener());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWritePipelineDefinition(
@@ -1731,7 +1689,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
         endElement(name);
     }
@@ -1742,7 +1699,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("ref", def.getRef());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
         endElement(name);
     }
@@ -1769,7 +1725,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("ref", def.getRef());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteProcessorDefinitionAttributes(
@@ -1779,18 +1734,12 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("inheritErrorHandler", toString(def.isInheritErrorHandler()));
         doWriteAttribute("disabled", def.getDisabled());
     }
-    protected void doWriteProcessorDefinitionElements(
-            ProcessorDefinition<?> def)
-            throws IOException {
-        doWriteOptionalIdentifiedDefinitionElements(def);
-    }
     protected void doWriteProcessorDefinition(
             String name,
             ProcessorDefinition<?> def)
             throws IOException {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
-        doWriteProcessorDefinitionElements(def);
         endElement(name);
     }
     protected void doWritePropertyDefinition(
@@ -1881,7 +1830,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("name", def.getName());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteRemoveHeadersDefinition(
@@ -1892,7 +1840,6 @@ public class ModelWriter extends BaseWriter {
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("excludePattern", def.getExcludePattern());
         doWriteAttribute("pattern", def.getPattern());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteRemovePropertiesDefinition(
@@ -1903,7 +1850,6 @@ public class ModelWriter extends BaseWriter {
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("excludePattern", def.getExcludePattern());
         doWriteAttribute("pattern", def.getPattern());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteRemovePropertyDefinition(
@@ -1913,7 +1859,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("name", def.getName());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteResequenceDefinition(
@@ -1922,7 +1867,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement(null, def.getExpression(), this::doWriteExpressionDefinitionRef);
         doWriteElement(null, def.getResequencerConfig(), (n, v) -> {
             switch (v.getClass().getSimpleName()) {
@@ -1991,7 +1935,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("resumeStrategy", def.getResumeStrategy());
         doWriteAttribute("intermittent", def.getIntermittent());
         doWriteAttribute("loggingLevel", def.getLoggingLevel());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteRollbackDefinition(
@@ -2003,7 +1946,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("markRollbackOnly", def.getMarkRollbackOnly());
         doWriteAttribute("message", def.getMessage());
         doWriteAttribute("markRollbackOnlyLast", def.getMarkRollbackOnlyLast());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteRouteBuilderDefinition(
@@ -2030,7 +1972,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteOptionalIdentifiedDefinitionAttributes(def);
         doWriteAttribute("precondition", def.getPrecondition());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, "onException", def.getOnExceptions(), this::doWriteOnExceptionDefinition);
         doWriteList(null, "onCompletion", def.getOnCompletions(), this::doWriteOnCompletionDefinition);
         doWriteList(null, "interceptSendToEndpoint", def.getInterceptSendTos(), this::doWriteInterceptSendToEndpointDefinition);
@@ -2078,7 +2019,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("delayer", def.getDelayer());
         doWriteAttribute("group", def.getGroup());
         doWriteAttribute("errorHandlerRef", def.getErrorHandlerRef());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, "routeProperty", def.getRouteProperties(), this::doWritePropertyDefinition);
         doWriteElement(null, def.getInput(), this::doWriteFromDefinitionRef);
         doWriteElement(null, def.getInputType(), this::doWriteInputTypeDefinitionRef);
@@ -2109,7 +2049,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteOptionalIdentifiedDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, "templateParameter", def.getTemplateParameters(), this::doWriteRouteTemplateParameterDefinition);
         doWriteElement("route", def.getRoute(), this::doWriteRouteDefinition);
         doWriteList(null, "templateBean", def.getTemplateBeans(), this::doWriteRouteTemplateBeanDefinition);
@@ -2132,7 +2071,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteOptionalIdentifiedDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getRouteTemplates(), this::doWriteRouteTemplateDefinitionRef);
         endElement(name);
     }
@@ -2142,7 +2080,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteOptionalIdentifiedDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getRoutes(), this::doWriteRouteDefinitionRef);
         endElement(name);
     }
@@ -2164,7 +2101,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteSendDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteSagaDefinition(
@@ -2177,7 +2113,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("completionMode", def.getCompletionMode());
         doWriteAttribute("sagaService", def.getSagaService());
         doWriteAttribute("timeout", def.getTimeout());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement("completion", def.getCompletion(), this::doWriteSagaActionUriDefinition);
         doWriteList(null, "option", def.getOptions(), this::doWritePropertyExpressionDefinition);
         doWriteElement("compensation", def.getCompensation(), this::doWriteSagaActionUriDefinition);
@@ -2192,7 +2127,6 @@ public class ModelWriter extends BaseWriter {
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("messageFrequency", def.getMessageFrequency());
         doWriteAttribute("samplePeriod", def.getSamplePeriod());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteScriptDefinition(
@@ -2210,18 +2144,12 @@ public class ModelWriter extends BaseWriter {
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("uri", def.getUri());
     }
-    protected void doWriteSendDefinitionElements(
-            SendDefinition<?> def)
-            throws IOException {
-        doWriteOptionalIdentifiedDefinitionElements(def);
-    }
     protected void doWriteSendDefinition(
             String name,
             SendDefinition<?> def)
             throws IOException {
         startElement(name);
         doWriteSendDefinitionAttributes(def);
-        doWriteSendDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteSetBodyDefinition(
@@ -2240,7 +2168,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("pattern", def.getPattern());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteSetHeaderDefinition(
@@ -2300,7 +2227,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
         endElement(name);
     }
@@ -2310,7 +2236,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteTemplatedRouteBeanDefinition(
@@ -2349,7 +2274,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteOptionalIdentifiedDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getTemplatedRoutes(), this::doWriteTemplatedRouteDefinitionRef);
         endElement(name);
     }
@@ -2367,7 +2291,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("maxPoolSize", def.getMaxPoolSize());
         doWriteAttribute("rejectedPolicy", def.getRejectedPolicy());
         doWriteAttribute("timeUnit", def.getTimeUnit());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteThreadsDefinition(
@@ -2386,7 +2309,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("threadName", def.getThreadName());
         doWriteAttribute("rejectedPolicy", def.getRejectedPolicy());
         doWriteAttribute("timeUnit", def.getTimeUnit());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteThrottleDefinition(
@@ -2413,7 +2335,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("exceptionType", def.getExceptionType());
         doWriteAttribute("ref", def.getRef());
         doWriteAttribute("message", def.getMessage());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteToDefinition(
@@ -2423,7 +2344,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteSendDefinitionAttributes(def);
         doWriteAttribute("pattern", def.getPattern());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteToDynamicDefinitionAttributes(
@@ -2437,18 +2357,12 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("allowOptimisedComponents", def.getAllowOptimisedComponents());
         doWriteAttribute("uri", def.getUri());
     }
-    protected void doWriteToDynamicDefinitionElements(
-            ToDynamicDefinition def)
-            throws IOException {
-        doWriteOptionalIdentifiedDefinitionElements(def);
-    }
     protected void doWriteToDynamicDefinition(
             String name,
             ToDynamicDefinition def)
             throws IOException {
         startElement(name);
         doWriteToDynamicDefinitionAttributes(def);
-        doWriteToDynamicDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteTransactedDefinition(
@@ -2458,7 +2372,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("ref", def.getRef());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
         endElement(name);
     }
@@ -2477,7 +2390,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
         endElement(name);
     }
@@ -2488,7 +2400,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("allowNullBody", def.getAllowNullBody());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement(null, def.getDataFormatType(), (n, v) -> {
             switch (v.getClass().getSimpleName()) {
                 case "ASN1DataFormat" -> doWriteASN1DataFormat("asn1", (ASN1DataFormat) def.getDataFormatType());
@@ -2572,7 +2483,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("onPrepare", def.getOnPrepare());
         doWriteAttribute("executorService", def.getExecutorService());
         doWriteAttribute("copy", def.getCopy());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteApplicationDefinition(
@@ -2875,7 +2785,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("serviceFilterRef", def.getServiceFilterRef());
         doWriteAttribute("name", def.getName());
         doWriteAttribute("serviceChooserRef", def.getServiceChooserRef());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement(null, def.getServiceFilterConfiguration(), (n, v) -> {
             switch (v.getClass().getSimpleName()) {
                 case "BlacklistServiceCallServiceFilterConfiguration" -> doWriteBlacklistServiceCallServiceFilterConfiguration("blacklistServiceFilter", (BlacklistServiceCallServiceFilterConfiguration) def.getServiceFilterConfiguration());
@@ -4415,7 +4324,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("clientRequestValidation", def.getClientRequestValidation());
         doWriteAttribute("produces", def.getProduces());
         doWriteAttribute("consumes", def.getConsumes());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteRestConfigurationDefinition(
@@ -4468,7 +4376,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("disabled", def.getDisabled());
         doWriteAttribute("tag", def.getTag());
         doWriteAttribute("consumes", def.getConsumes());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, "securityRequirements", def.getSecurityRequirements(), this::doWriteSecurityDefinition);
         doWriteList(null, null, def.getVerbs(), this::doWriteVerbDefinitionRef);
         doWriteElement("securityDefinitions", def.getSecurityDefinitions(), this::doWriteRestSecuritiesDefinition);
@@ -4520,7 +4427,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteOptionalIdentifiedDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getRests(), this::doWriteRestDefinitionRef);
         endElement(name);
     }
@@ -4554,7 +4460,6 @@ public class ModelWriter extends BaseWriter {
     protected void doWriteVerbDefinitionElements(
             VerbDefinition def)
             throws IOException {
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getParams(), this::doWriteParamDefinitionRef);
         doWriteList(null, null, def.getSecurity(), this::doWriteSecurityDefinitionRef);
         doWriteList(null, null, def.getResponseMsgs(), this::doWriteResponseMessageDefinitionRef);
diff --git a/core/camel-xml-io/src/main/java/org/apache/camel/xml/LwModelToXMLDumper.java b/core/camel-xml-io/src/main/java/org/apache/camel/xml/LwModelToXMLDumper.java
index 6e593ec74bb..5e379f9836a 100644
--- a/core/camel-xml-io/src/main/java/org/apache/camel/xml/LwModelToXMLDumper.java
+++ b/core/camel-xml-io/src/main/java/org/apache/camel/xml/LwModelToXMLDumper.java
@@ -90,6 +90,10 @@ public class LwModelToXMLDumper implements ModelToXMLDumper {
                 }
                 // write id
                 doWriteAttribute("id", def.getId());
+                // write description
+                if (def.getDescriptionText() != null) {
+                    doWriteAttribute("description", def.getDescriptionText());
+                }
                 // write location information
                 if (context.isDebugging()) {
                     String loc = (def instanceof RouteDefinition ? ((RouteDefinition) def).getInput() : def).getLocation();
diff --git a/core/camel-yaml-io/src/generated/java/org/apache/camel/yaml/out/ModelWriter.java b/core/camel-yaml-io/src/generated/java/org/apache/camel/yaml/out/ModelWriter.java
index e67f7440221..5ce1bd53bdc 100644
--- a/core/camel-yaml-io/src/generated/java/org/apache/camel/yaml/out/ModelWriter.java
+++ b/core/camel-yaml-io/src/generated/java/org/apache/camel/yaml/out/ModelWriter.java
@@ -89,11 +89,6 @@ public class ModelWriter extends BaseWriter {
     public void writeDelayDefinition(DelayDefinition def) throws IOException {
         doWriteDelayDefinition("delay", def);
     }
-    public void writeDescriptionDefinition(
-            DescriptionDefinition def)
-            throws IOException {
-        doWriteDescriptionDefinition("description", def);
-    }
     public void writeDynamicRouterDefinition(
             DynamicRouterDefinition def)
             throws IOException {
@@ -1049,7 +1044,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("discardOnCompletionTimeout", def.getDiscardOnCompletionTimeout());
         doWriteAttribute("completionTimeoutCheckerInterval", def.getCompletionTimeoutCheckerInterval());
         doWriteAttribute("optimisticLocking", def.getOptimisticLocking());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement("optimisticLockRetryPolicy", def.getOptimisticLockRetryPolicyDefinition(), this::doWriteOptimisticLockRetryPolicyDefinition);
         doWriteElement("correlationExpression", def.getCorrelationExpression(), this::doWriteExpressionSubElementDefinition);
         doWriteElement("completionPredicate", def.getCompletionPredicate(), this::doWriteExpressionSubElementDefinition);
@@ -1068,7 +1062,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("method", def.getMethod());
         doWriteAttribute("scope", def.getScope());
         doWriteAttribute("beanType", def.getBeanType());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteBeanFactoryDefinitionAttributes(
@@ -1100,7 +1093,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement("onWhen", def.getOnWhen(), this::doWriteWhenDefinition);
         doWriteList(null, "exception", def.getExceptions(), this::doWriteString);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
@@ -1113,7 +1105,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("precondition", def.getPrecondition());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement("otherwise", def.getOtherwise(), this::doWriteOtherwiseDefinition);
         doWriteList(null, null, def.getWhenClauses(), this::doWriteWhenDefinitionRef);
         endElement(name);
@@ -1125,7 +1116,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("configuration", def.getConfiguration());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement("faultToleranceConfiguration", def.getFaultToleranceConfiguration(), this::doWriteFaultToleranceConfigurationDefinition);
         doWriteElement("resilience4jConfiguration", def.getResilience4jConfiguration(), this::doWriteResilience4jConfigurationDefinition);
         doWriteElement("onFallback", def.getOnFallback(), this::doWriteOnFallbackDefinition);
@@ -1143,7 +1133,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("aggregationStrategyMethodName", def.getAggregationStrategyMethodName());
         doWriteAttribute("operation", def.getOperation());
         doWriteAttribute("key", def.getKey());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteContextScanDefinition(
@@ -1165,7 +1154,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("charset", def.getCharset());
         doWriteAttribute("type", def.getType());
         doWriteAttribute("mandatory", def.getMandatory());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteDataFormatDefinitionAttributes(
@@ -1193,14 +1181,6 @@ public class ModelWriter extends BaseWriter {
         doWriteExpressionNodeElements(def);
         endElement(name);
     }
-    protected void doWriteDescriptionDefinition(
-            String name,
-            DescriptionDefinition def)
-            throws IOException {
-        startElement(name);
-        doWriteValue(def.getText());
-        endElement(name);
-    }
     protected void doWriteDynamicRouterDefinition(
             String name,
             DynamicRouterDefinition<?> def)
@@ -1255,7 +1235,6 @@ public class ModelWriter extends BaseWriter {
     protected void doWriteExpressionNodeElements(
             ExpressionNode def)
             throws IOException {
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement(null, def.getExpression(), this::doWriteExpressionDefinitionRef);
     }
     protected void doWriteExpressionNode(
@@ -1325,7 +1304,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
         endElement(name);
     }
@@ -1336,7 +1314,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteOptionalIdentifiedDefinitionAttributes(def);
         doWriteAttribute("uri", def.getUri());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteGlobalOptionDefinition(
@@ -1391,7 +1368,6 @@ public class ModelWriter extends BaseWriter {
         doWriteOptionalIdentifiedDefinitionAttributes(def);
         doWriteAttribute("urn", def.getUrn());
         doWriteAttribute("validate", def.getValidate());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteInterceptDefinitionAttributes(
@@ -1402,7 +1378,6 @@ public class ModelWriter extends BaseWriter {
     protected void doWriteInterceptDefinitionElements(
             InterceptDefinition def)
             throws IOException {
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
     }
     protected void doWriteInterceptDefinition(
@@ -1433,7 +1408,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("afterUri", def.getAfterUri());
         doWriteAttribute("uri", def.getUri());
         doWriteAttribute("skipSendToOriginalEndpoint", def.getSkipSendToOriginalEndpoint());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
         endElement(name);
     }
@@ -1444,7 +1418,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("name", def.getName());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
         endElement(name);
     }
@@ -1454,7 +1427,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement(null, def.getLoadBalancerType(), (n, v) -> {
             switch (v.getClass().getSimpleName()) {
                 case "CustomLoadBalancerDefinition" -> doWriteCustomLoadBalancerDefinition("customLoadBalancer", (CustomLoadBalancerDefinition) def.getLoadBalancerType());
@@ -1493,7 +1465,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("logger", def.getLogger());
         doWriteAttribute("message", def.getMessage());
         doWriteAttribute("loggingLevel", def.getLoggingLevel());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteLoopDefinition(
@@ -1514,7 +1485,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement(null, def.getDataFormatType(), (n, v) -> {
             switch (v.getClass().getSimpleName()) {
                 case "ASN1DataFormat" -> doWriteASN1DataFormat("asn1", (ASN1DataFormat) def.getDataFormatType());
@@ -1578,7 +1548,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("parallelAggregate", def.getParallelAggregate());
         doWriteAttribute("shareUnitOfWork", def.getShareUnitOfWork());
         doWriteAttribute("aggregationStrategyMethodAllowNull", def.getAggregationStrategyMethodAllowNull());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
         endElement(name);
     }
@@ -1594,7 +1563,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("onCompleteOnly", def.getOnCompleteOnly());
         doWriteAttribute("executorService", def.getExecutorService());
         doWriteAttribute("onFailureOnly", def.getOnFailureOnly());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement("onWhen", def.getOnWhen(), this::doWriteWhenDefinition);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
         endElement(name);
@@ -1610,7 +1578,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("useOriginalBody", def.getUseOriginalBody());
         doWriteAttribute("onExceptionOccurredRef", def.getOnExceptionOccurredRef());
         doWriteAttribute("redeliveryPolicyRef", def.getRedeliveryPolicyRef());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement("continued", def.getContinued(), this::doWriteExpressionSubElementDefinition);
         doWriteList(null, "exception", def.getExceptions(), this::doWriteString);
         doWriteElement("retryWhile", def.getRetryWhile(), this::doWriteExpressionSubElementDefinition);
@@ -1627,7 +1594,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("fallbackViaNetwork", def.getFallbackViaNetwork());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
         endElement(name);
     }
@@ -1646,21 +1612,16 @@ public class ModelWriter extends BaseWriter {
     protected void doWriteOptionalIdentifiedDefinitionAttributes(
             OptionalIdentifiedDefinition<?> def)
             throws IOException {
+        doWriteAttribute("description", def.getDescription());
         doWriteAttribute("id", def.getId());
         doWriteAttribute("customId", toString(def.getCustomId()));
     }
-    protected void doWriteOptionalIdentifiedDefinitionElements(
-            OptionalIdentifiedDefinition<?> def)
-            throws IOException {
-        doWriteElement("description", def.getDescription(), this::doWriteDescriptionDefinition);
-    }
     protected void doWriteOptionalIdentifiedDefinition(
             String name,
             OptionalIdentifiedDefinition<?> def)
             throws IOException {
         startElement(name);
         doWriteOptionalIdentifiedDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteOtherwiseDefinition(
@@ -1669,7 +1630,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
         endElement(name);
     }
@@ -1701,7 +1661,6 @@ public class ModelWriter extends BaseWriter {
         doWriteOptionalIdentifiedDefinitionAttributes(def);
         doWriteAttribute("urn", def.getUrn());
         doWriteAttribute("validate", def.getValidate());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWritePackageScanDefinition(
@@ -1722,7 +1681,6 @@ public class ModelWriter extends BaseWriter {
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("untilCheck", def.getUntilCheck());
         doWriteAttribute("consumerListener", def.getConsumerListener());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWritePipelineDefinition(
@@ -1731,7 +1689,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
         endElement(name);
     }
@@ -1742,7 +1699,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("ref", def.getRef());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
         endElement(name);
     }
@@ -1769,7 +1725,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("ref", def.getRef());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteProcessorDefinitionAttributes(
@@ -1779,18 +1734,12 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("inheritErrorHandler", toString(def.isInheritErrorHandler()));
         doWriteAttribute("disabled", def.getDisabled());
     }
-    protected void doWriteProcessorDefinitionElements(
-            ProcessorDefinition<?> def)
-            throws IOException {
-        doWriteOptionalIdentifiedDefinitionElements(def);
-    }
     protected void doWriteProcessorDefinition(
             String name,
             ProcessorDefinition<?> def)
             throws IOException {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
-        doWriteProcessorDefinitionElements(def);
         endElement(name);
     }
     protected void doWritePropertyDefinition(
@@ -1881,7 +1830,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("name", def.getName());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteRemoveHeadersDefinition(
@@ -1892,7 +1840,6 @@ public class ModelWriter extends BaseWriter {
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("excludePattern", def.getExcludePattern());
         doWriteAttribute("pattern", def.getPattern());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteRemovePropertiesDefinition(
@@ -1903,7 +1850,6 @@ public class ModelWriter extends BaseWriter {
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("excludePattern", def.getExcludePattern());
         doWriteAttribute("pattern", def.getPattern());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteRemovePropertyDefinition(
@@ -1913,7 +1859,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("name", def.getName());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteResequenceDefinition(
@@ -1922,7 +1867,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement(null, def.getExpression(), this::doWriteExpressionDefinitionRef);
         doWriteElement(null, def.getResequencerConfig(), (n, v) -> {
             switch (v.getClass().getSimpleName()) {
@@ -1991,7 +1935,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("resumeStrategy", def.getResumeStrategy());
         doWriteAttribute("intermittent", def.getIntermittent());
         doWriteAttribute("loggingLevel", def.getLoggingLevel());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteRollbackDefinition(
@@ -2003,7 +1946,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("markRollbackOnly", def.getMarkRollbackOnly());
         doWriteAttribute("message", def.getMessage());
         doWriteAttribute("markRollbackOnlyLast", def.getMarkRollbackOnlyLast());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteRouteBuilderDefinition(
@@ -2030,7 +1972,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteOptionalIdentifiedDefinitionAttributes(def);
         doWriteAttribute("precondition", def.getPrecondition());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, "onException", def.getOnExceptions(), this::doWriteOnExceptionDefinition);
         doWriteList(null, "onCompletion", def.getOnCompletions(), this::doWriteOnCompletionDefinition);
         doWriteList(null, "interceptSendToEndpoint", def.getInterceptSendTos(), this::doWriteInterceptSendToEndpointDefinition);
@@ -2078,7 +2019,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("delayer", def.getDelayer());
         doWriteAttribute("group", def.getGroup());
         doWriteAttribute("errorHandlerRef", def.getErrorHandlerRef());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, "routeProperty", def.getRouteProperties(), this::doWritePropertyDefinition);
         doWriteElement(null, def.getInput(), this::doWriteFromDefinitionRef);
         doWriteElement(null, def.getInputType(), this::doWriteInputTypeDefinitionRef);
@@ -2109,7 +2049,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteOptionalIdentifiedDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, "templateParameter", def.getTemplateParameters(), this::doWriteRouteTemplateParameterDefinition);
         doWriteElement("route", def.getRoute(), this::doWriteRouteDefinition);
         doWriteList(null, "templateBean", def.getTemplateBeans(), this::doWriteRouteTemplateBeanDefinition);
@@ -2132,7 +2071,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteOptionalIdentifiedDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getRouteTemplates(), this::doWriteRouteTemplateDefinitionRef);
         endElement(name);
     }
@@ -2142,7 +2080,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteOptionalIdentifiedDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getRoutes(), this::doWriteRouteDefinitionRef);
         endElement(name);
     }
@@ -2164,7 +2101,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteSendDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteSagaDefinition(
@@ -2177,7 +2113,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("completionMode", def.getCompletionMode());
         doWriteAttribute("sagaService", def.getSagaService());
         doWriteAttribute("timeout", def.getTimeout());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement("completion", def.getCompletion(), this::doWriteSagaActionUriDefinition);
         doWriteList(null, "option", def.getOptions(), this::doWritePropertyExpressionDefinition);
         doWriteElement("compensation", def.getCompensation(), this::doWriteSagaActionUriDefinition);
@@ -2192,7 +2127,6 @@ public class ModelWriter extends BaseWriter {
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("messageFrequency", def.getMessageFrequency());
         doWriteAttribute("samplePeriod", def.getSamplePeriod());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteScriptDefinition(
@@ -2210,18 +2144,12 @@ public class ModelWriter extends BaseWriter {
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("uri", def.getUri());
     }
-    protected void doWriteSendDefinitionElements(
-            SendDefinition<?> def)
-            throws IOException {
-        doWriteOptionalIdentifiedDefinitionElements(def);
-    }
     protected void doWriteSendDefinition(
             String name,
             SendDefinition<?> def)
             throws IOException {
         startElement(name);
         doWriteSendDefinitionAttributes(def);
-        doWriteSendDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteSetBodyDefinition(
@@ -2240,7 +2168,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("pattern", def.getPattern());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteSetHeaderDefinition(
@@ -2300,7 +2227,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
         endElement(name);
     }
@@ -2310,7 +2236,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteTemplatedRouteBeanDefinition(
@@ -2349,7 +2274,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteOptionalIdentifiedDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getTemplatedRoutes(), this::doWriteTemplatedRouteDefinitionRef);
         endElement(name);
     }
@@ -2367,7 +2291,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("maxPoolSize", def.getMaxPoolSize());
         doWriteAttribute("rejectedPolicy", def.getRejectedPolicy());
         doWriteAttribute("timeUnit", def.getTimeUnit());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteThreadsDefinition(
@@ -2386,7 +2309,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("threadName", def.getThreadName());
         doWriteAttribute("rejectedPolicy", def.getRejectedPolicy());
         doWriteAttribute("timeUnit", def.getTimeUnit());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteThrottleDefinition(
@@ -2413,7 +2335,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("exceptionType", def.getExceptionType());
         doWriteAttribute("ref", def.getRef());
         doWriteAttribute("message", def.getMessage());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteToDefinition(
@@ -2423,7 +2344,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteSendDefinitionAttributes(def);
         doWriteAttribute("pattern", def.getPattern());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteToDynamicDefinitionAttributes(
@@ -2437,18 +2357,12 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("allowOptimisedComponents", def.getAllowOptimisedComponents());
         doWriteAttribute("uri", def.getUri());
     }
-    protected void doWriteToDynamicDefinitionElements(
-            ToDynamicDefinition def)
-            throws IOException {
-        doWriteOptionalIdentifiedDefinitionElements(def);
-    }
     protected void doWriteToDynamicDefinition(
             String name,
             ToDynamicDefinition def)
             throws IOException {
         startElement(name);
         doWriteToDynamicDefinitionAttributes(def);
-        doWriteToDynamicDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteTransactedDefinition(
@@ -2458,7 +2372,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("ref", def.getRef());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
         endElement(name);
     }
@@ -2477,7 +2390,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
         endElement(name);
     }
@@ -2488,7 +2400,6 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("allowNullBody", def.getAllowNullBody());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement(null, def.getDataFormatType(), (n, v) -> {
             switch (v.getClass().getSimpleName()) {
                 case "ASN1DataFormat" -> doWriteASN1DataFormat("asn1", (ASN1DataFormat) def.getDataFormatType());
@@ -2572,7 +2483,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("onPrepare", def.getOnPrepare());
         doWriteAttribute("executorService", def.getExecutorService());
         doWriteAttribute("copy", def.getCopy());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteApplicationDefinition(
@@ -2875,7 +2785,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("serviceFilterRef", def.getServiceFilterRef());
         doWriteAttribute("name", def.getName());
         doWriteAttribute("serviceChooserRef", def.getServiceChooserRef());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteElement(null, def.getServiceFilterConfiguration(), (n, v) -> {
             switch (v.getClass().getSimpleName()) {
                 case "BlacklistServiceCallServiceFilterConfiguration" -> doWriteBlacklistServiceCallServiceFilterConfiguration("blacklistServiceFilter", (BlacklistServiceCallServiceFilterConfiguration) def.getServiceFilterConfiguration());
@@ -4415,7 +4324,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("clientRequestValidation", def.getClientRequestValidation());
         doWriteAttribute("produces", def.getProduces());
         doWriteAttribute("consumes", def.getConsumes());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         endElement(name);
     }
     protected void doWriteRestConfigurationDefinition(
@@ -4468,7 +4376,6 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("disabled", def.getDisabled());
         doWriteAttribute("tag", def.getTag());
         doWriteAttribute("consumes", def.getConsumes());
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, "securityRequirements", def.getSecurityRequirements(), this::doWriteSecurityDefinition);
         doWriteList(null, null, def.getVerbs(), this::doWriteVerbDefinitionRef);
         doWriteElement("securityDefinitions", def.getSecurityDefinitions(), this::doWriteRestSecuritiesDefinition);
@@ -4520,7 +4427,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteOptionalIdentifiedDefinitionAttributes(def);
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getRests(), this::doWriteRestDefinitionRef);
         endElement(name);
     }
@@ -4554,7 +4460,6 @@ public class ModelWriter extends BaseWriter {
     protected void doWriteVerbDefinitionElements(
             VerbDefinition def)
             throws IOException {
-        doWriteOptionalIdentifiedDefinitionElements(def);
         doWriteList(null, null, def.getParams(), this::doWriteParamDefinitionRef);
         doWriteList(null, null, def.getSecurity(), this::doWriteSecurityDefinitionRef);
         doWriteList(null, null, def.getResponseMsgs(), this::doWriteResponseMessageDefinitionRef);
diff --git a/docs/user-manual/modules/ROOT/pages/camel-4-migration-guide.adoc b/docs/user-manual/modules/ROOT/pages/camel-4-migration-guide.adoc
index 50880b28781..4c7d2d6c9c4 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4-migration-guide.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4-migration-guide.adoc
@@ -96,17 +96,42 @@ Removed `lang` attribute for the `<description>` on every EIPs.
 The `InOnly` and `InOut` EIPs has been removed.
 Instead, use `SetExchangePattern` or `To` where you can specify exchange pattern to use.
 
-=== Type Converter
+== XML DSL
+
+The `<description>` to set a description on a route or node, has been changed from an element to an attribute.
+
+Before:
+
+[source,xml]
+----
+<route id="myRoute">
+  <description>Something that this route do</description>
+  <from uri="kafka:cheese"/>
+  ...
+</route>
+----
+
+After:
+
+[source,xml]
+----
+<route id="myRoute" description="Something that this route do">
+  <from uri="kafka:cheese"/>
+  ...
+</route>
+----
+
+== Type Converter
 
 The `String` -> `java.io.File` converter has been removed.
 
-=== Tracing
+== Tracing
 
 The xref:tracer.adoc[Tracer] and xref:backlog-tracer.adoc[Backlog Tracer] no longer includes internal tracing events
 from routes that was created by Rest DSL or route templates or Kamelets. You can turn this on, by setting
 `traceTemplates=true` in the tracer.
 
-=== UseOriginalMessage / UseOriginalBody
+== UseOriginalMessage / UseOriginalBody
 
 When `useOriginalMessage` or `useOriginalBody` is enabled in `OnException`, `OnCompletion` or error handlers,
 then the original message body is defensively copied and if possible converted to `StreamCache` to ensure
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
index ca6273b7217..28aaf1dff1b 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
@@ -20,7 +20,6 @@ import org.apache.camel.model.ContextScanDefinition;
 import org.apache.camel.model.ConvertBodyDefinition;
 import org.apache.camel.model.DataFormatDefinition;
 import org.apache.camel.model.DelayDefinition;
-import org.apache.camel.model.DescriptionDefinition;
 import org.apache.camel.model.DynamicRouterDefinition;
 import org.apache.camel.model.EnrichDefinition;
 import org.apache.camel.model.ErrorHandlerDefinition;
@@ -505,7 +504,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -1106,7 +1105,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -1743,7 +1742,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -1819,7 +1818,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -1904,7 +1903,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -1994,7 +1993,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -2519,7 +2518,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -4297,7 +4296,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -4449,47 +4448,8 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
-                    target.setDescription(val);
-                    break;
-                }
-                default: {
-                    return false;
-                }
-            }
-            return true;
-        }
-    }
-
-    @YamlType(
-            nodes = "description",
-            inline = true,
-            types = org.apache.camel.model.DescriptionDefinition.class,
-            order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
-            properties = @YamlProperty(name = "text", type = "string")
-    )
-    public static class DescriptionDefinitionDeserializer extends YamlDeserializerBase<DescriptionDefinition> {
-        public DescriptionDefinitionDeserializer() {
-            super(DescriptionDefinition.class);
-        }
-
-        @Override
-        protected DescriptionDefinition newInstance() {
-            return new DescriptionDefinition();
-        }
-
-        @Override
-        protected DescriptionDefinition newInstance(String value) {
-            return new DescriptionDefinition(value);
-        }
-
-        @Override
-        protected boolean setProperty(DescriptionDefinition target, String propertyKey,
-                String propertyName, Node node) {
-            switch(propertyKey) {
-                case "text": {
                     String val = asText(node);
-                    target.setText(val);
+                    target.setDescription(val);
                     break;
                 }
                 default: {
@@ -4625,7 +4585,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -4846,7 +4806,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -5527,7 +5487,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -5597,7 +5557,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -5827,7 +5787,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -6254,7 +6214,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -6575,7 +6535,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -6644,7 +6604,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -6698,7 +6658,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -6771,7 +6731,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -6856,7 +6816,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -8196,7 +8156,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -8289,7 +8249,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -8368,7 +8328,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -8679,7 +8639,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -8953,7 +8913,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -9343,7 +9303,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -9471,7 +9431,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -9538,7 +9498,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -9708,7 +9668,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -9765,7 +9725,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -9825,7 +9785,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -10324,7 +10284,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -10389,7 +10349,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -10443,7 +10403,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -10507,7 +10467,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -10616,7 +10576,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -10768,7 +10728,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -10867,7 +10827,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -11261,7 +11221,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -11509,7 +11469,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -11932,7 +11892,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -12006,7 +11966,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -12080,7 +12040,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -12148,7 +12108,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -12226,7 +12186,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -12636,7 +12596,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -13050,7 +13010,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -13244,7 +13204,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -13315,7 +13275,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -13392,7 +13352,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -13622,7 +13582,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -13769,7 +13729,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -13882,7 +13842,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -13978,7 +13938,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -14053,7 +14013,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -14113,7 +14073,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -14559,7 +14519,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -14860,7 +14820,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -14937,7 +14897,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -15006,7 +14966,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -15084,7 +15044,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -15304,7 +15264,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -15514,7 +15474,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -15753,7 +15713,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -15851,7 +15811,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -16259,7 +16219,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -16372,7 +16332,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -16527,7 +16487,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -16610,7 +16570,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -16738,7 +16698,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -16843,7 +16803,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -17058,7 +17018,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -17122,7 +17082,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -17267,7 +17227,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -18033,7 +17993,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -18099,7 +18059,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -18328,7 +18288,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -18405,7 +18365,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
@@ -18541,7 +18501,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     break;
                 }
                 case "description": {
-                    org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class);
+                    String val = asText(node);
                     target.setDescription(val);
                     break;
                 }
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java
index 3e2b9a8516a..3f512865fa4 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java
@@ -119,8 +119,6 @@ public final class ModelDeserializersResolver implements YamlDeserializerResolve
             case "org.apache.camel.model.DelayDefinition": return new ModelDeserializers.DelayDefinitionDeserializer();
             case "delete": return new ModelDeserializers.DeleteDefinitionDeserializer();
             case "org.apache.camel.model.rest.DeleteDefinition": return new ModelDeserializers.DeleteDefinitionDeserializer();
-            case "description": return new ModelDeserializers.DescriptionDefinitionDeserializer();
-            case "org.apache.camel.model.DescriptionDefinition": return new ModelDeserializers.DescriptionDefinitionDeserializer();
             case "dns-service-discovery": return new ModelDeserializers.DnsServiceCallServiceDiscoveryConfigurationDeserializer();
             case "dnsServiceDiscovery": return new ModelDeserializers.DnsServiceCallServiceDiscoveryConfigurationDeserializer();
             case "org.apache.camel.model.cloud.DnsServiceCallServiceDiscoveryConfiguration": return new ModelDeserializers.DnsServiceCallServiceDiscoveryConfigurationDeserializer();
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/FromDefinitionDeserializer.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/FromDefinitionDeserializer.java
index 81ec92fb738..5e17eeff940 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/FromDefinitionDeserializer.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/FromDefinitionDeserializer.java
@@ -30,7 +30,6 @@ import org.snakeyaml.engine.v2.nodes.NodeTuple;
 import org.snakeyaml.engine.v2.nodes.NodeType;
 
 import static org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.asText;
-import static org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.asType;
 import static org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.getDeserializationContext;
 
 @YamlType(
@@ -53,7 +52,7 @@ public class FromDefinitionDeserializer implements ConstructNode {
             line = node.getStartMark().get().getLine();
         }
 
-        org.apache.camel.model.DescriptionDefinition desc = null;
+        String desc = null;
         String id = null;
         if (node.getNodeType() == NodeType.MAPPING) {
             final MappingNode mn = (MappingNode) node;
@@ -65,7 +64,7 @@ public class FromDefinitionDeserializer implements ConstructNode {
                         line = tuple.getKeyNode().getStartMark().get().getLine() + 1;
                     }
                 } else if ("description".equals(key)) {
-                    desc = asType(tuple.getValueNode(), org.apache.camel.model.DescriptionDefinition.class);
+                    desc = asText(tuple.getValueNode());
                 } else if ("id".equals(key)) {
                     id = asText(tuple.getValueNode());
                 }
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/OutputAwareFromDefinitionDeserializer.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/OutputAwareFromDefinitionDeserializer.java
index b3757ec10c3..8f30ff62a34 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/OutputAwareFromDefinitionDeserializer.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/OutputAwareFromDefinitionDeserializer.java
@@ -67,7 +67,7 @@ public class OutputAwareFromDefinitionDeserializer extends YamlDeserializerBase<
 
         String uri = null;
         String id = null;
-        org.apache.camel.model.DescriptionDefinition desc = null;
+        String desc = null;
         Map<String, Object> parameters = null;
 
         for (NodeTuple tuple : node.getValue()) {
@@ -81,7 +81,7 @@ public class OutputAwareFromDefinitionDeserializer extends YamlDeserializerBase<
                     id = asText(val);
                     break;
                 case "description":
-                    desc = asType(val, org.apache.camel.model.DescriptionDefinition.class);
+                    desc = asText(val);
                     break;
                 case "uri":
                     uri = asText(val);
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/RouteDefinitionDeserializer.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/RouteDefinitionDeserializer.java
index 08072f756f3..38ba442f082 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/RouteDefinitionDeserializer.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/RouteDefinitionDeserializer.java
@@ -20,7 +20,6 @@ import org.apache.camel.dsl.yaml.common.YamlDeserializationContext;
 import org.apache.camel.dsl.yaml.common.YamlDeserializerBase;
 import org.apache.camel.dsl.yaml.common.YamlDeserializerResolver;
 import org.apache.camel.dsl.yaml.common.exception.UnsupportedFieldException;
-import org.apache.camel.model.DescriptionDefinition;
 import org.apache.camel.model.FromDefinition;
 import org.apache.camel.model.RouteDefinition;
 import org.apache.camel.spi.annotations.YamlIn;
@@ -77,7 +76,7 @@ public class RouteDefinitionDeserializer extends YamlDeserializerBase<RouteDefin
                     target.setId(asText(val));
                     break;
                 case "description":
-                    target.setDescription(new DescriptionDefinition(asText(val)));
+                    target.setDescription(asText(val));
                     break;
                 case "precondition":
                     target.setPrecondition(asText(val));
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/RouteTemplateDefinitionDeserializer.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/RouteTemplateDefinitionDeserializer.java
index dc56ef08c35..5ddec2ff3c1 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/RouteTemplateDefinitionDeserializer.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/RouteTemplateDefinitionDeserializer.java
@@ -38,6 +38,7 @@ import org.snakeyaml.engine.v2.nodes.Node;
                   @YamlProperty(name = "id",
                                 type = "string",
                                 required = true),
+                  @YamlProperty(name = "description", type = "string"),
                   @YamlProperty(name = "route",
                                 type = "object:org.apache.camel.model.RouteDefinition"),
                   @YamlProperty(name = "from",
@@ -66,6 +67,10 @@ public class RouteTemplateDefinitionDeserializer extends YamlDeserializerBase<Ro
                 target.setId(asText(node));
                 break;
             }
+            case "description": {
+                target.setDescription(asText(node));
+                break;
+            }
             case "route": {
                 RouteDefinition route = asType(node, RouteDefinition.class);
                 target.setRoute(route);
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlDeserializersMojo.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlDeserializersMojo.java
index 6aebfb59411..8315f9e19d5 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlDeserializersMojo.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlDeserializersMojo.java
@@ -487,7 +487,7 @@ public class GenerateYamlDeserializersMojo extends GenerateYamlSupportMojo {
             setProperty.addStatement("break");
             setProperty.endControlFlow();
             setProperty.beginControlFlow("case $S:", "description");
-            setProperty.addStatement("org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class)");
+            setProperty.addStatement("String val = asText(node)");
             setProperty.addStatement("target.setDescription(val)");
             setProperty.addStatement("break");
             setProperty.endControlFlow();
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camel-yaml-dsl.json b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camel-yaml-dsl.json
index 20366b45682..3d3b6d14411 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camel-yaml-dsl.json
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camel-yaml-dsl.json
@@ -735,18 +735,6 @@
           }
         }
       },
-      "org.apache.camel.model.DescriptionDefinition" : {
-        "oneOf" : [ {
-          "type" : "string"
-        }, {
-          "type" : "object",
-          "properties" : {
-            "text" : {
-              "type" : "string"
-            }
-          }
-        } ]
-      },
       "org.apache.camel.model.DynamicRouterDefinition" : {
         "type" : "object",
         "anyOf" : [ {
@@ -2563,6 +2551,9 @@
               "$ref" : "#/items/definitions/org.apache.camel.model.RouteTemplateBeanDefinition"
             }
           },
+          "description" : {
+            "type" : "string"
+          },
           "from" : {
             "$ref" : "#/items/definitions/org.apache.camel.model.FromDefinition"
           },
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json
index 829da78065b..5a94fa93312 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json
@@ -648,18 +648,6 @@
           }
         }
       },
-      "org.apache.camel.model.DescriptionDefinition" : {
-        "oneOf" : [ {
-          "type" : "string"
-        }, {
-          "type" : "object",
-          "properties" : {
-            "text" : {
-              "type" : "string"
-            }
-          }
-        } ]
-      },
       "org.apache.camel.model.DynamicRouterDefinition" : {
         "type" : "object",
         "anyOf" : [ {
@@ -2473,6 +2461,9 @@
               "$ref" : "#/items/definitions/org.apache.camel.model.RouteTemplateBeanDefinition"
             }
           },
+          "description" : {
+            "type" : "string"
+          },
           "from" : {
             "$ref" : "#/items/definitions/org.apache.camel.model.FromDefinition"
           },
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RoutesTest.groovy b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RoutesTest.groovy
index 32038c0a122..983782d5577 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RoutesTest.groovy
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RoutesTest.groovy
@@ -58,7 +58,7 @@ class RoutesTest extends YamlTestSupport {
 
         with(context.routeDefinitions[0], RouteDefinition) {
             input.id == 'from-demo'
-            input.description.text == 'from something cool'
+            input.description == 'from something cool'
             input.endpointUri == 'direct:info'
 
             with (outputs[0], LogDefinition) {
@@ -242,7 +242,7 @@ class RoutesTest extends YamlTestSupport {
 
         with(context.routeDefinitions[0], RouteDefinition) {
             routeId == 'demo-route'
-            description.text == 'something cool'
+            description == 'something cool'
             input.endpointUri == 'direct:info'
 
             with (outputs[0], LogDefinition) {
@@ -268,7 +268,7 @@ class RoutesTest extends YamlTestSupport {
 
         with(context.routeDefinitions[0], RouteDefinition) {
             routeId == 'demo-route'
-            description.text == 'something cool'
+            description == 'something cool'
             input.endpointUri == 'direct:info'
             precondition == '{{?red}}'
 
@@ -296,10 +296,10 @@ class RoutesTest extends YamlTestSupport {
 
         with(context.routeDefinitions[0], RouteDefinition) {
             routeId == 'demo-route'
-            description.text == 'something cool'
+            description == 'something cool'
 
             input.id == 'from-demo'
-            input.description.text == 'from something cool'
+            input.description == 'from something cool'
             input.endpointUri == 'direct:info'
 
             with (outputs[0], LogDefinition) {