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

davsclaus pushed a commit to branch 
worktree-CAMEL-23593-normalize-rest-routeconfig
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 9bb70213d6b67b6680448eb4dff7cbe6391d35f5
Author: Claus Ibsen <[email protected]>
AuthorDate: Thu May 21 09:06:36 2026 +0200

    CAMEL-23593: camel-yaml-io - Fix YAML dump for REST DSL and 
routeConfigurations
    
    The YamlWriter only special-cased "routes" and "dataFormats" as root
    container elements. When dumping REST DSL or routeConfiguration blocks,
    startElement/endElement fell through to the EipModel lookup path,
    producing empty objects like "rests: {}" or "routeConfigurations: {}".
    
    Add "rests" and "routeConfigurations" to the container name checks in
    both startElement() and endElement(), and fix NPE in the normalize
    command by wiring up the MavenResolverMixin.
    
    Co-Authored-By: Claude <[email protected]>
---
 .../src/main/java/org/apache/camel/yaml/io/YamlWriter.java        | 8 ++++----
 .../dsl/jbang/core/commands/validate/YamlNormalizeCommand.java    | 5 +++++
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git 
a/core/camel-yaml-io/src/main/java/org/apache/camel/yaml/io/YamlWriter.java 
b/core/camel-yaml-io/src/main/java/org/apache/camel/yaml/io/YamlWriter.java
index e9cf74145946..715128aa5e8c 100644
--- a/core/camel-yaml-io/src/main/java/org/apache/camel/yaml/io/YamlWriter.java
+++ b/core/camel-yaml-io/src/main/java/org/apache/camel/yaml/io/YamlWriter.java
@@ -106,8 +106,8 @@ public class YamlWriter extends ServiceSupport implements 
CamelContextAware {
     }
 
     public void startElement(String name) throws IOException {
-        if ("routes".equals(name) || "dataFormats".equals(name)) {
-            // special for routes or dataFormats
+        if ("routes".equals(name) || "rests".equals(name) || 
"routeConfigurations".equals(name)
+                || "dataFormats".equals(name)) {
             routesIsRoot = true;
             return;
         }
@@ -138,8 +138,8 @@ public class YamlWriter extends ServiceSupport implements 
CamelContextAware {
     }
 
     public void endElement(String name) throws IOException {
-        if ("routes".equals(name) || "dataFormats".equals(name)) {
-            // we are done
+        if ("routes".equals(name) || "rests".equals(name) || 
"routeConfigurations".equals(name)
+                || "dataFormats".equals(name)) {
             writer.write(toYaml());
             return;
         }
diff --git 
a/dsl/camel-jbang/camel-jbang-plugin-validate/src/main/java/org/apache/camel/dsl/jbang/core/commands/validate/YamlNormalizeCommand.java
 
b/dsl/camel-jbang/camel-jbang-plugin-validate/src/main/java/org/apache/camel/dsl/jbang/core/commands/validate/YamlNormalizeCommand.java
index 9281ccfafd59..8e569c2eed00 100644
--- 
a/dsl/camel-jbang/camel-jbang-plugin-validate/src/main/java/org/apache/camel/dsl/jbang/core/commands/validate/YamlNormalizeCommand.java
+++ 
b/dsl/camel-jbang/camel-jbang-plugin-validate/src/main/java/org/apache/camel/dsl/jbang/core/commands/validate/YamlNormalizeCommand.java
@@ -26,6 +26,7 @@ import java.util.Stack;
 
 import org.apache.camel.dsl.jbang.core.commands.CamelCommand;
 import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain;
+import org.apache.camel.dsl.jbang.core.commands.MavenResolverMixin;
 import org.apache.camel.dsl.jbang.core.commands.Run;
 import org.apache.camel.dsl.jbang.core.common.CamelJBangConstants;
 import org.apache.camel.dsl.jbang.core.common.CommandLineHelper;
@@ -41,6 +42,9 @@ public class YamlNormalizeCommand extends CamelCommand {
 
     private static final String IGNORE_FILE = "application";
 
+    @CommandLine.Mixin
+    MavenResolverMixin mavenResolver;
+
     @CommandLine.Option(names = { "--output" },
                         description = "File or directory to write normalized 
output. If not specified, output is printed to console.")
     private String output;
@@ -86,6 +90,7 @@ public class YamlNormalizeCommand extends CamelCommand {
                 main.addInitialProperty("camel.language.bean.validate", 
"false");
             }
         };
+        run.mavenResolver = mavenResolver;
         run.files = matched;
         run.executionLimitOptions.maxSeconds = 1;
         Integer exit = run.runTransform(true);

Reply via email to