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

davsclaus pushed a commit to branch fix/CAMEL-23763
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 55b6d25b59c4cedbfe8d265ec15b16ef9e333fcc
Author: Claus Ibsen <[email protected]>
AuthorDate: Tue Jun 16 13:03:59 2026 +0200

    CAMEL-23763: Make rest/template/kamelet on RouteDefinition @XmlTransient
    
    These boolean fields are runtime transients (marking routes created by
    REST DSL, route templates, or kamelets) and should never be serialized
    to XML. The @XmlAttribute annotation caused the ModelWriter to emit
    spurious attributes like kamelet="false" on the route element, while
    the kamelet attribute also shadowed the KameletDefinition EIP child
    element in the parser, breaking XML round-trip.
    
    Co-Authored-By: Claude <[email protected]>
    Signed-off-by: Claus Ibsen <[email protected]>
---
 .../resources/org/apache/camel/catalog/schemas/camel-spring.xsd  | 3 ---
 .../resources/org/apache/camel/catalog/schemas/camel-xml-io.xsd  | 3 ---
 .../src/main/java/org/apache/camel/model/RouteDefinition.java    | 9 +++------
 .../src/generated/java/org/apache/camel/xml/in/ModelParser.java  | 3 ---
 .../src/generated/java/org/apache/camel/xml/out/ModelWriter.java | 3 ---
 5 files changed, 3 insertions(+), 18 deletions(-)

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 d8333f69fbd4..4f2740ae8617 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
@@ -12975,7 +12975,6 @@ The group name for this route. Multiple routes can 
belong to the same group.
             </xs:documentation>
           </xs:annotation>
         </xs:attribute>
-        <xs:attribute name="kamelet" type="xs:boolean"/>
         <xs:attribute name="logMask" type="xs:string">
           <xs:annotation>
             <xs:documentation xml:lang="en">
@@ -13013,7 +13012,6 @@ or not.
             </xs:documentation>
           </xs:annotation>
         </xs:attribute>
-        <xs:attribute name="rest" type="xs:boolean"/>
         <xs:attribute name="routeConfigurationId" type="xs:string">
           <xs:annotation>
             <xs:documentation xml:lang="en">
@@ -13070,7 +13068,6 @@ Whether stream caching is enabled on this route. 
Default value: false
             </xs:documentation>
           </xs:annotation>
         </xs:attribute>
-        <xs:attribute name="template" type="xs:boolean"/>
         <xs:attribute name="trace" type="xs:string">
           <xs:annotation>
             <xs:documentation xml:lang="en">
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-xml-io.xsd
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-xml-io.xsd
index 58730483c54e..4f429d305ed2 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-xml-io.xsd
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-xml-io.xsd
@@ -11659,7 +11659,6 @@ The group name for this route. Multiple routes can 
belong to the same group.
             </xs:documentation>
           </xs:annotation>
         </xs:attribute>
-        <xs:attribute name="kamelet" type="xs:boolean"/>
         <xs:attribute name="logMask" type="xs:string">
           <xs:annotation>
             <xs:documentation xml:lang="en">
@@ -11697,7 +11696,6 @@ or not.
             </xs:documentation>
           </xs:annotation>
         </xs:attribute>
-        <xs:attribute name="rest" type="xs:boolean"/>
         <xs:attribute name="routeConfigurationId" type="xs:string">
           <xs:annotation>
             <xs:documentation xml:lang="en">
@@ -11754,7 +11752,6 @@ Whether stream caching is enabled on this route. 
Default value: false
             </xs:documentation>
           </xs:annotation>
         </xs:attribute>
-        <xs:attribute name="template" type="xs:boolean"/>
         <xs:attribute name="trace" type="xs:string">
           <xs:annotation>
             <xs:documentation xml:lang="en">
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 8b5d32ee992d..2fbc957be1e6 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
@@ -1279,12 +1279,11 @@ public class RouteDefinition extends 
OutputDefinition<RouteDefinition>
     /**
      * This route is created from REST DSL
      */
+    @XmlTransient
     public void setRest(Boolean rest) {
         this.rest = rest;
     }
 
-    @XmlAttribute
-    @Metadata(label = "advanced")
     public Boolean isRest() {
         return rest;
     }
@@ -1292,12 +1291,11 @@ public class RouteDefinition extends 
OutputDefinition<RouteDefinition>
     /**
      * This route is created from a route template (or from a Kamelet).
      */
+    @XmlTransient
     public void setTemplate(Boolean template) {
         this.template = template;
     }
 
-    @XmlAttribute
-    @Metadata(label = "advanced")
     public Boolean isTemplate() {
         return template;
     }
@@ -1305,12 +1303,11 @@ public class RouteDefinition extends 
OutputDefinition<RouteDefinition>
     /**
      * This route is created from a Kamelet.
      */
+    @XmlTransient
     public void setKamelet(Boolean kamelet) {
         this.kamelet = kamelet;
     }
 
-    @XmlAttribute
-    @Metadata(label = "advanced")
     public Boolean isKamelet() {
         return kamelet;
     }
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 d4f1127a263f..4fe4e629303c 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
@@ -922,11 +922,8 @@ public class ModelParser extends BaseParser {
                 case "errorHandler": 
def.setErrorHandler(doParseErrorHandlerDefinition()); yield true;
                 case "from": def.setInput(doParseFromDefinition()); yield true;
                 case "inputType": 
def.setInputType(doParseInputTypeDefinition()); yield true;
-                case "kamelet": 
def.setKamelet(Boolean.valueOf(doParseText())); yield true;
                 case "outputType": 
def.setOutputType(doParseOutputTypeDefinition()); yield true;
-                case "rest": def.setRest(Boolean.valueOf(doParseText())); 
yield true;
                 case "routeProperty": doAdd(doParsePropertyDefinition(), 
def.getRouteProperties(), def::setRouteProperties); yield true;
-                case "template": 
def.setTemplate(Boolean.valueOf(doParseText())); yield true;
                 default: yield outputDefinitionElementHandler().accept(def, 
key);
             }, noValueHandler());
     }
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 5e81fda70cc7..4f167655eec5 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
@@ -1588,9 +1588,6 @@ public class ModelWriter extends BaseWriter {
     protected void doWriteRouteDefinition(String name, RouteDefinition def) 
throws IOException {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
-        doWriteAttribute("template", toString(def.isTemplate()), null);
-        doWriteAttribute("kamelet", toString(def.isKamelet()), null);
-        doWriteAttribute("rest", toString(def.isRest()), null);
         doWriteAttribute("group", def.getGroup(), null);
         doWriteAttribute("nodePrefixId", def.getNodePrefixId(), null);
         doWriteAttribute("routeConfigurationId", 
def.getRouteConfigurationId(), null);

Reply via email to