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/27 07:51:57 UTC

[camel] branch main updated: CAMEL-19330: Dump model for Choice should have otherwise last

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

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


The following commit(s) were added to refs/heads/main by this push:
     new d25e31d574d CAMEL-19330: Dump model for Choice should have otherwise last
d25e31d574d is described below

commit d25e31d574d637e0d3dd18fc7c577bb84e46b0c2
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Jun 27 09:51:43 2023 +0200

    CAMEL-19330: Dump model for Choice should have otherwise last
---
 .../src/main/java/org/apache/camel/model/ChoiceDefinition.java        | 2 +-
 .../src/generated/java/org/apache/camel/xml/out/ModelWriter.java      | 2 +-
 .../src/generated/java/org/apache/camel/yaml/out/ModelWriter.java     | 2 +-
 .../org/apache/camel/maven/packaging/ModelWriterGeneratorMojo.java    | 4 +++-
 4 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/ChoiceDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/ChoiceDefinition.java
index fbb16e7a5b1..44c6df0b270 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/ChoiceDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/ChoiceDefinition.java
@@ -89,7 +89,7 @@ public class ChoiceDefinition extends ProcessorDefinition<ChoiceDefinition> impl
                 }
                 throw new IllegalArgumentException(
                         "Expected either a WhenDefinition or OtherwiseDefinition but was "
-                                + ObjectHelper.classCanonicalName(def));
+                                                   + ObjectHelper.classCanonicalName(def));
             }
 
             public int size() {
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 a54d8d00148..2104066297c 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
@@ -1102,8 +1102,8 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("precondition", def.getPrecondition());
-        doWriteElement("otherwise", def.getOtherwise(), this::doWriteOtherwiseDefinition);
         doWriteList(null, null, def.getWhenClauses(), this::doWriteWhenDefinitionRef);
+        doWriteElement("otherwise", def.getOtherwise(), this::doWriteOtherwiseDefinition);
         endElement(name);
     }
     protected void doWriteCircuitBreakerDefinition(
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 feaca8f21d9..9b00f8064dc 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
@@ -1102,8 +1102,8 @@ public class ModelWriter extends BaseWriter {
         startElement(name);
         doWriteProcessorDefinitionAttributes(def);
         doWriteAttribute("precondition", def.getPrecondition());
-        doWriteElement("otherwise", def.getOtherwise(), this::doWriteOtherwiseDefinition);
         doWriteList(null, null, def.getWhenClauses(), this::doWriteWhenDefinitionRef);
+        doWriteElement("otherwise", def.getOtherwise(), this::doWriteOtherwiseDefinition);
         endElement(name);
     }
     protected void doWriteCircuitBreakerDefinition(
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ModelWriterGeneratorMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ModelWriterGeneratorMojo.java
index 976d63120fd..9bc82744eb4 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ModelWriterGeneratorMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ModelWriterGeneratorMojo.java
@@ -689,8 +689,10 @@ public abstract class ModelWriterGeneratorMojo extends AbstractGeneratorMojo {
         if (xmlType != null) {
             String[] propOrder = xmlType.propOrder();
             if (propOrder != null && propOrder.length > 0) {
+                // special for choice where whenClauses should use when in xml-io parser
+                final List<String> list = Arrays.stream(propOrder).map(o -> o.equals("whenClauses") ? "when" : o).toList();
                 properties = properties
-                        .sorted(Comparator.comparing(p -> Arrays.binarySearch(propOrder, p.getName())));
+                        .sorted(Comparator.comparing(p -> Arrays.binarySearch(list.toArray(), p.getName())));
             }
         }
         return properties.toList();