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 08:59:24 UTC
[camel] branch main updated: CAMEL-19449: camel-yaml-io - Add option to dump with uri-as-parameters. Removed methods for dumping XML that are not really needed.
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 bd81497c86a CAMEL-19449: camel-yaml-io - Add option to dump with uri-as-parameters. Removed methods for dumping XML that are not really needed.
bd81497c86a is described below
commit bd81497c86a7048153b28fc22e5fcfb76052d8eb
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Jun 19 10:54:18 2023 +0200
CAMEL-19449: camel-yaml-io - Add option to dump with uri-as-parameters. Removed methods for dumping XML that are not really needed.
---
.../routebuilder/SpringRouteTemplateTest.java | 4 +-
.../org/apache/camel/spi/ModelToXMLDumper.java | 15 ++---
.../org/apache/camel/spi/ModelToYAMLDumper.java | 15 +++--
.../camel/impl/console/RouteDumpDevConsole.java | 13 +++-
.../org/apache/camel/impl/DefaultCamelContext.java | 12 ++--
.../util/DumpModelAsXmlFromRouteTemplateTest.java | 6 +-
.../management/mbean/ManagedCamelContextMBean.java | 5 +-
.../api/management/mbean/ManagedRouteMBean.java | 5 +-
.../management/mbean/ManagedCamelContext.java | 17 ++---
.../camel/management/mbean/ManagedRoute.java | 14 ++---
.../ManagedCamelContextDumpRoutesAsXmlTest.java | 22 -------
.../ManagedCamelContextDumpRoutesAsYamlTest.java | 14 +++--
.../management/ManagedRouteDumpRouteAsXmlTest.java | 28 ---------
.../org/apache/camel/xml/LwModelToXMLDumper.java | 20 ++----
.../camel/xml/jaxb/JaxbModelToXMLDumper.java | 73 ++++++++--------------
.../org/apache/camel/yaml/LwModelToYAMLDumper.java | 20 ++----
.../java/org/apache/camel/yaml/io/YamlWriter.java | 7 ++-
.../java/org/apache/camel/yaml/out/BaseWriter.java | 4 ++
.../org/apache/camel/yaml/out/ModelWriterTest.java | 4 +-
...st.java => ModelWriterUriAsParametersTest.java} | 12 +++-
core/camel-yaml-io/src/test/resources/route0b.yaml | 10 +++
core/camel-yaml-io/src/test/resources/route8b.yaml | 20 ++++++
.../ROOT/pages/camel-4-migration-guide.adoc | 2 +
.../camel/cli/connector/LocalCliConnector.java | 4 +-
.../core/commands/action/CamelRouteDumpAction.java | 5 ++
25 files changed, 150 insertions(+), 201 deletions(-)
diff --git a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/routebuilder/SpringRouteTemplateTest.java b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/routebuilder/SpringRouteTemplateTest.java
index 82dd0f8d412..3a678a7cfff 100644
--- a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/routebuilder/SpringRouteTemplateTest.java
+++ b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/routebuilder/SpringRouteTemplateTest.java
@@ -155,7 +155,7 @@ public class SpringRouteTemplateTest extends SpringTestSupport {
RouteDefinition def = context.getRouteDefinition("first");
- String xml = PluginHelper.getModelToXMLDumper(context).dumpModelAsXml(context, def, true, true);
+ String xml = PluginHelper.getModelToXMLDumper(context).dumpModelAsXml(context, def, true);
assertNotNull(xml);
Assertions.assertTrue(xml.contains("<from uri=\"direct:one\"/>"));
@@ -171,7 +171,7 @@ public class SpringRouteTemplateTest extends SpringTestSupport {
RoutesDefinition def = new RoutesDefinition();
def.setRoutes(context.getRouteDefinitions());
- String xml = PluginHelper.getModelToXMLDumper(context).dumpModelAsXml(context, def, true, true);
+ String xml = PluginHelper.getModelToXMLDumper(context).dumpModelAsXml(context, def, true);
assertNotNull(xml);
Assertions.assertTrue(xml.contains("<from uri=\"direct:one\"/>"));
diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/ModelToXMLDumper.java b/core/camel-api/src/main/java/org/apache/camel/spi/ModelToXMLDumper.java
index 3dfd7ff3a85..cbd9b885316 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/ModelToXMLDumper.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/ModelToXMLDumper.java
@@ -42,17 +42,14 @@ public interface ModelToXMLDumper {
/**
* Dumps the definition as XML
*
- * @param context the CamelContext
- * @param definition the definition, such as a {@link org.apache.camel.NamedNode}
- * @param resolvePlaceholders whether to resolve property placeholders in the dumped XML
- * @param resolveDelegateEndpoints whether to resolve delegate endpoints in the dumped XML (limited to endpoints
- * used in uri attributes in the model)
- * @return the output in XML (is formatted)
- * @throws Exception is throw if error marshalling to XML
+ * @param context the CamelContext
+ * @param definition the definition, such as a {@link org.apache.camel.NamedNode}
+ * @param resolvePlaceholders whether to resolve property placeholders in the dumped XML
+ * @return the output in XML (is formatted)
+ * @throws Exception is throw if error marshalling to XML
*/
String dumpModelAsXml(
- CamelContext context, NamedNode definition,
- boolean resolvePlaceholders, boolean resolveDelegateEndpoints)
+ CamelContext context, NamedNode definition, boolean resolvePlaceholders)
throws Exception;
}
diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/ModelToYAMLDumper.java b/core/camel-api/src/main/java/org/apache/camel/spi/ModelToYAMLDumper.java
index ceb87c48270..6c76313bd9d 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/ModelToYAMLDumper.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/ModelToYAMLDumper.java
@@ -42,17 +42,16 @@ public interface ModelToYAMLDumper {
/**
* Dumps the definition as YAML
*
- * @param context the CamelContext
- * @param definition the definition, such as a {@link NamedNode}
- * @param resolvePlaceholders whether to resolve property placeholders in the dumped YAML
- * @param resolveDelegateEndpoints whether to resolve delegate endpoints in the dumped YAML (limited to endpoints
- * used in uri attributes in the model)
- * @return the output in YAML (is formatted)
- * @throws Exception is throw if error marshalling to YAML
+ * @param context the CamelContext
+ * @param definition the definition, such as a {@link NamedNode}
+ * @param resolvePlaceholders whether to resolve property placeholders in the dumped YAML
+ * @param uriAsParameters whether to expand uri into a key/value parameters
+ * @return the output in YAML (is formatted)
+ * @throws Exception is throw if error marshalling to YAML
*/
String dumpModelAsYaml(
CamelContext context, NamedNode definition,
- boolean resolvePlaceholders, boolean resolveDelegateEndpoints)
+ boolean resolvePlaceholders, boolean uriAsParameters)
throws Exception;
}
diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDumpDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDumpDevConsole.java
index f4e2d2001ab..71ebdb7d26d 100644
--- a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDumpDevConsole.java
+++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDumpDevConsole.java
@@ -50,12 +50,19 @@ public class RouteDumpDevConsole extends AbstractDevConsole {
*/
public static final String LIMIT = "limit";
+ /**
+ * Whether to expand URIs into separated key/value parameters
+ */
+ public static final String URI_AS_PARAMETERS = "uriAsParameters";
+
public RouteDumpDevConsole() {
super("camel", "route-dump", "Route Dump", "Dump route structure in XML or YAML format");
}
@Override
protected String doCallText(Map<String, Object> options) {
+ final String uriAsParameters = (String) options.getOrDefault(URI_AS_PARAMETERS, "false");
+
final StringBuilder sb = new StringBuilder();
Function<ManagedRouteMBean, Object> task = mrb -> {
String dump = null;
@@ -64,7 +71,7 @@ public class RouteDumpDevConsole extends AbstractDevConsole {
if (format == null || "xml".equals(format)) {
dump = mrb.dumpRouteAsXml();
} else if ("yaml".equals(format)) {
- dump = mrb.dumpRouteAsYaml();
+ dump = mrb.dumpRouteAsYaml(true, "true".equals(uriAsParameters));
}
} catch (Exception e) {
// ignore
@@ -90,6 +97,8 @@ public class RouteDumpDevConsole extends AbstractDevConsole {
@Override
protected JsonObject doCallJson(Map<String, Object> options) {
+ final String uriAsParameters = (String) options.getOrDefault(URI_AS_PARAMETERS, "false");
+
final JsonObject root = new JsonObject();
final List<JsonObject> list = new ArrayList<>();
@@ -111,7 +120,7 @@ public class RouteDumpDevConsole extends AbstractDevConsole {
dump = mrb.dumpRouteAsXml();
} else if ("yaml".equals(format)) {
jo.put("format", "yaml");
- dump = mrb.dumpRouteAsYaml();
+ dump = mrb.dumpRouteAsYaml(true, "true".equals(uriAsParameters));
}
if (dump != null) {
List<JsonObject> code = ConsoleHelper.loadSourceAsJson(new StringReader(dump), null);
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultCamelContext.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
index e6d7e035fd0..7a38fe8f0b4 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
@@ -172,7 +172,7 @@ public class DefaultCamelContext extends SimpleCamelContext implements ModelCame
RoutesDefinition def = new RoutesDefinition();
def.setRoutes(getRouteDefinitions());
try {
- String xml = dumper.dumpModelAsXml(this, def, true, true);
+ String xml = dumper.dumpModelAsXml(this, def, true);
// lets separate routes with empty line
xml = StringHelper.replaceFirst(xml, "xmlns=\"http://camel.apache.org/schema/spring\">",
"xmlns=\"http://camel.apache.org/schema/spring\">\n");
@@ -190,7 +190,7 @@ public class DefaultCamelContext extends SimpleCamelContext implements ModelCame
RestsDefinition def = new RestsDefinition();
def.setRests(getRestDefinitions());
try {
- String xml = dumper.dumpModelAsXml(this, def, true, true);
+ String xml = dumper.dumpModelAsXml(this, def, true);
// lets separate rests with empty line
xml = StringHelper.replaceFirst(xml, "xmlns=\"http://camel.apache.org/schema/spring\">",
"xmlns=\"http://camel.apache.org/schema/spring\">\n");
@@ -208,7 +208,7 @@ public class DefaultCamelContext extends SimpleCamelContext implements ModelCame
RouteTemplatesDefinition def = new RouteTemplatesDefinition();
def.setRouteTemplates(getRouteTemplateDefinitions());
try {
- String xml = dumper.dumpModelAsXml(this, def, true, true);
+ String xml = dumper.dumpModelAsXml(this, def, true);
// lets separate rests with empty line
xml = StringHelper.replaceFirst(xml, "xmlns=\"http://camel.apache.org/schema/spring\">",
"xmlns=\"http://camel.apache.org/schema/spring\">\n");
@@ -229,7 +229,7 @@ public class DefaultCamelContext extends SimpleCamelContext implements ModelCame
RoutesDefinition def = new RoutesDefinition();
def.setRoutes(getRouteDefinitions());
try {
- String yaml = dumper.dumpModelAsYaml(this, def, true, true);
+ String yaml = dumper.dumpModelAsYaml(this, def, true, false);
LOG.info("\n\n{}\n", yaml);
} catch (Exception e) {
LOG.warn("Error dumping routes to YAML due to {}. This exception is ignored.", e.getMessage(), e);
@@ -242,7 +242,7 @@ public class DefaultCamelContext extends SimpleCamelContext implements ModelCame
RestsDefinition def = new RestsDefinition();
def.setRests(getRestDefinitions());
try {
- String taml = dumper.dumpModelAsYaml(this, def, true, true);
+ String taml = dumper.dumpModelAsYaml(this, def, true, false);
LOG.info("\n\n{}\n", taml);
} catch (Exception e) {
LOG.warn("Error dumping rests to YAML due to {}. This exception is ignored.", e.getMessage(), e);
@@ -255,7 +255,7 @@ public class DefaultCamelContext extends SimpleCamelContext implements ModelCame
RouteTemplatesDefinition def = new RouteTemplatesDefinition();
def.setRouteTemplates(getRouteTemplateDefinitions());
try {
- String yaml = dumper.dumpModelAsYaml(this, def, true, true);
+ String yaml = dumper.dumpModelAsYaml(this, def, true, false);
LOG.info("\n\n{}\n", yaml);
} catch (Exception e) {
LOG.warn("Error dumping route-templates to YAML due to {}. This exception is ignored.", e.getMessage(), e);
diff --git a/core/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlFromRouteTemplateTest.java b/core/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlFromRouteTemplateTest.java
index e86e4443165..8174cee9e8e 100644
--- a/core/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlFromRouteTemplateTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlFromRouteTemplateTest.java
@@ -81,8 +81,7 @@ public class DumpModelAsXmlFromRouteTemplateTest extends ContextTestSupport {
map.put("whereto", "Jacks");
context.addRouteFromTemplate("bar2", "myTemplate", map);
- String xml = PluginHelper.getModelToXMLDumper(context).dumpModelAsXml(context, context.getRouteDefinition("bar"), true,
- false);
+ String xml = PluginHelper.getModelToXMLDumper(context).dumpModelAsXml(context, context.getRouteDefinition("bar"), true);
assertNotNull(xml);
log.info(xml);
@@ -104,8 +103,7 @@ public class DumpModelAsXmlFromRouteTemplateTest extends ContextTestSupport {
node = (Element) nodes.item(0);
assertEquals("bar", node.getAttribute("id"));
- xml = PluginHelper.getModelToXMLDumper(context).dumpModelAsXml(context, context.getRouteDefinition("bar2"), true,
- false);
+ xml = PluginHelper.getModelToXMLDumper(context).dumpModelAsXml(context, context.getRouteDefinition("bar2"), true);
assertNotNull(xml);
log.info(xml);
diff --git a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java
index 9f71a946cdc..d7de3e7fb1c 100644
--- a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java
+++ b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java
@@ -195,9 +195,6 @@ public interface ManagedCamelContextMBean extends ManagedPerformanceCounterMBean
@ManagedOperation(description = "Dumps the routes as XML")
String dumpRoutesAsXml(boolean resolvePlaceholders) throws Exception;
- @ManagedOperation(description = "Dumps the routes as XML")
- String dumpRoutesAsXml(boolean resolvePlaceholders, boolean resolveDelegateEndpoints) throws Exception;
-
@ManagedOperation(description = "Dumps the CamelContext and routes stats as XML")
String dumpRoutesStatsAsXml(boolean fullStats, boolean includeProcessors) throws Exception;
@@ -217,7 +214,7 @@ public interface ManagedCamelContextMBean extends ManagedPerformanceCounterMBean
String dumpRoutesAsYaml(boolean resolvePlaceholders) throws Exception;
@ManagedOperation(description = "Dumps the routes as YAML")
- String dumpRoutesAsYaml(boolean resolvePlaceholders, boolean resolveDelegateEndpoints) throws Exception;
+ String dumpRoutesAsYaml(boolean resolvePlaceholders, boolean uriAsParameters) throws Exception;
/**
* Creates the endpoint by the given uri
diff --git a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java
index 1908180f2a4..4f6e7dc2b8a 100644
--- a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java
+++ b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java
@@ -121,9 +121,6 @@ public interface ManagedRouteMBean extends ManagedPerformanceCounterMBean {
@ManagedOperation(description = "Dumps the route as XML")
String dumpRouteAsXml(boolean resolvePlaceholders) throws Exception;
- @ManagedOperation(description = "Dumps the route as XML")
- String dumpRouteAsXml(boolean resolvePlaceholders, boolean resolveDelegateEndpoints) throws Exception;
-
@ManagedOperation(description = "Dumps the route as YAML")
String dumpRouteAsYaml() throws Exception;
@@ -131,7 +128,7 @@ public interface ManagedRouteMBean extends ManagedPerformanceCounterMBean {
String dumpRouteAsYaml(boolean resolvePlaceholders) throws Exception;
@ManagedOperation(description = "Dumps the route as YAML")
- String dumpRouteAsYaml(boolean resolvePlaceholders, boolean resolveDelegateEndpoints) throws Exception;
+ String dumpRouteAsYaml(boolean resolvePlaceholders, boolean uriAsParameters) throws Exception;
@ManagedOperation(description = "Dumps the route stats as XML")
String dumpRouteStatsAsXml(boolean fullStats, boolean includeProcessors) throws Exception;
diff --git a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
index 1684cf344b2..382f54fa0c0 100644
--- a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
+++ b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
@@ -465,21 +465,16 @@ public class ManagedCamelContext extends ManagedPerformanceCounter implements Ti
RestsDefinition def = new RestsDefinition();
def.setRests(rests);
- return PluginHelper.getModelToXMLDumper(context).dumpModelAsXml(context, def, resolvePlaceholders, false);
+ return PluginHelper.getModelToXMLDumper(context).dumpModelAsXml(context, def, resolvePlaceholders);
}
@Override
public String dumpRoutesAsXml() throws Exception {
- return dumpRoutesAsXml(false, false);
+ return dumpRoutesAsXml(false);
}
@Override
public String dumpRoutesAsXml(boolean resolvePlaceholders) throws Exception {
- return dumpRoutesAsXml(resolvePlaceholders, false);
- }
-
- @Override
- public String dumpRoutesAsXml(boolean resolvePlaceholders, boolean resolveDelegateEndpoints) throws Exception {
List<RouteDefinition> routes = context.getCamelContextExtension().getContextPlugin(Model.class).getRouteDefinitions();
if (routes.isEmpty()) {
return null;
@@ -489,8 +484,7 @@ public class ManagedCamelContext extends ManagedPerformanceCounter implements Ti
RoutesDefinition def = new RoutesDefinition();
def.setRoutes(routes);
- return PluginHelper.getModelToXMLDumper(context).dumpModelAsXml(context, def, resolvePlaceholders,
- resolveDelegateEndpoints);
+ return PluginHelper.getModelToXMLDumper(context).dumpModelAsXml(context, def, resolvePlaceholders);
}
@Override
@@ -504,7 +498,7 @@ public class ManagedCamelContext extends ManagedPerformanceCounter implements Ti
}
@Override
- public String dumpRoutesAsYaml(boolean resolvePlaceholders, boolean resolveDelegateEndpoints) throws Exception {
+ public String dumpRoutesAsYaml(boolean resolvePlaceholders, boolean uriAsParameters) throws Exception {
List<RouteDefinition> routes = context.getCamelContextExtension().getContextPlugin(Model.class).getRouteDefinitions();
if (routes.isEmpty()) {
return null;
@@ -514,8 +508,7 @@ public class ManagedCamelContext extends ManagedPerformanceCounter implements Ti
RoutesDefinition def = new RoutesDefinition();
def.setRoutes(routes);
- return PluginHelper.getModelToYAMLDumper(context).dumpModelAsYaml(context, def, resolvePlaceholders,
- resolveDelegateEndpoints);
+ return PluginHelper.getModelToYAMLDumper(context).dumpModelAsYaml(context, def, resolvePlaceholders, uriAsParameters);
}
@Override
diff --git a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
index 6387afd1c7b..7b8154c363e 100644
--- a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
+++ b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
@@ -383,21 +383,15 @@ public class ManagedRoute extends ManagedPerformanceCounter implements TimerList
@Override
public String dumpRouteAsXml() throws Exception {
- return dumpRouteAsXml(false, false);
+ return dumpRouteAsXml(false);
}
@Override
public String dumpRouteAsXml(boolean resolvePlaceholders) throws Exception {
- return dumpRouteAsXml(resolvePlaceholders, false);
- }
-
- @Override
- public String dumpRouteAsXml(boolean resolvePlaceholders, boolean resolveDelegateEndpoints) throws Exception {
String id = route.getId();
RouteDefinition def = context.getCamelContextExtension().getContextPlugin(Model.class).getRouteDefinition(id);
if (def != null) {
- return PluginHelper.getModelToXMLDumper(context).dumpModelAsXml(context, def, resolvePlaceholders,
- resolveDelegateEndpoints);
+ return PluginHelper.getModelToXMLDumper(context).dumpModelAsXml(context, def, resolvePlaceholders);
}
return null;
@@ -414,12 +408,12 @@ public class ManagedRoute extends ManagedPerformanceCounter implements TimerList
}
@Override
- public String dumpRouteAsYaml(boolean resolvePlaceholders, boolean resolveDelegateEndpoints) throws Exception {
+ public String dumpRouteAsYaml(boolean resolvePlaceholders, boolean uriAsParameters) throws Exception {
String id = route.getId();
RouteDefinition def = context.getCamelContextExtension().getContextPlugin(Model.class).getRouteDefinition(id);
if (def != null) {
return PluginHelper.getModelToYAMLDumper(context).dumpModelAsYaml(context, def, resolvePlaceholders,
- resolveDelegateEndpoints);
+ uriAsParameters);
}
return null;
diff --git a/core/camel-management/src/test/java/org/apache/camel/management/ManagedCamelContextDumpRoutesAsXmlTest.java b/core/camel-management/src/test/java/org/apache/camel/management/ManagedCamelContextDumpRoutesAsXmlTest.java
index 1769312e2b7..30a5c5f8f75 100644
--- a/core/camel-management/src/test/java/org/apache/camel/management/ManagedCamelContextDumpRoutesAsXmlTest.java
+++ b/core/camel-management/src/test/java/org/apache/camel/management/ManagedCamelContextDumpRoutesAsXmlTest.java
@@ -73,28 +73,6 @@ public class ManagedCamelContextDumpRoutesAsXmlTest extends ManagementTestSuppor
assertTrue(xml.contains("<header>bar</header>"));
}
- @Test
- public void testDumpAsXmlResolvePlaceholderDelegateEndpoint() throws Exception {
- MBeanServer mbeanServer = getMBeanServer();
-
- ObjectName on = getContextObjectName();
-
- String xml = (String) mbeanServer.invoke(on, "dumpRoutesAsXml", new Object[] { true, true },
- new String[] { "boolean", "boolean" });
- assertNotNull(xml);
- log.info(xml);
-
- assertTrue(xml.contains("route"));
- assertTrue(xml.contains("myRoute"));
- assertTrue(xml.contains("myOtherRoute"));
- assertTrue(xml.contains("direct:start"));
- assertTrue(xml.contains("mock:result"));
- assertTrue(xml.contains("bar"));
- assertTrue(xml.contains("seda:bar"));
- assertTrue(xml.contains("mock://bar"));
- assertTrue(xml.contains("<header>bar</header>"));
- }
-
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
diff --git a/core/camel-management/src/test/java/org/apache/camel/management/ManagedCamelContextDumpRoutesAsYamlTest.java b/core/camel-management/src/test/java/org/apache/camel/management/ManagedCamelContextDumpRoutesAsYamlTest.java
index a7a27c5055e..4e2f049c17b 100644
--- a/core/camel-management/src/test/java/org/apache/camel/management/ManagedCamelContextDumpRoutesAsYamlTest.java
+++ b/core/camel-management/src/test/java/org/apache/camel/management/ManagedCamelContextDumpRoutesAsYamlTest.java
@@ -48,7 +48,7 @@ public class ManagedCamelContextDumpRoutesAsYamlTest extends ManagementTestSuppo
assertTrue(yaml.contains("myOtherRoute"));
assertTrue(yaml.contains("direct:start"));
assertTrue(yaml.contains("{{result}}"));
- assertTrue(yaml.contains("seda:bar"));
+ assertTrue(yaml.contains("seda:bar?size=1234&multipleConsumers=true"));
assertTrue(yaml.contains("ref:bar"));
assertTrue(yaml.contains("expression: bar"));
}
@@ -68,13 +68,13 @@ public class ManagedCamelContextDumpRoutesAsYamlTest extends ManagementTestSuppo
assertTrue(yaml.contains("myOtherRoute"));
assertTrue(yaml.contains("direct:start"));
assertTrue(yaml.contains("mock:result"));
- assertTrue(yaml.contains("seda:bar"));
+ assertTrue(yaml.contains("seda:bar?size=1234&multipleConsumers=true"));
assertTrue(yaml.contains("ref:bar"));
assertTrue(yaml.contains("expression: bar"));
}
@Test
- public void testDumpAsYamlResolvePlaceholderDelegateEndpoint() throws Exception {
+ public void testDumpAsYamlUriAsParameters() throws Exception {
MBeanServer mbeanServer = getMBeanServer();
ObjectName on = getContextObjectName();
@@ -89,9 +89,11 @@ public class ManagedCamelContextDumpRoutesAsYamlTest extends ManagementTestSuppo
assertTrue(yaml.contains("myOtherRoute"));
assertTrue(yaml.contains("direct:start"));
assertTrue(yaml.contains("mock:result"));
- assertTrue(yaml.contains("bar"));
assertTrue(yaml.contains("seda:bar"));
- assertTrue(yaml.contains("mock://bar"));
+ assertTrue(yaml.contains("ref:bar"));
+ assertTrue(yaml.contains("parameters:"));
+ assertTrue(yaml.contains("size: 1234"));
+ assertTrue(yaml.contains("multipleConsumers: true"));
assertTrue(yaml.contains("expression: bar"));
}
@@ -111,7 +113,7 @@ public class ManagedCamelContextDumpRoutesAsYamlTest extends ManagementTestSuppo
.log("Got ${body}")
.to("{{result}}");
- from("seda:bar").routeId("myOtherRoute")
+ from("seda:bar?size=1234&multipleConsumers=true").routeId("myOtherRoute")
.filter().header("bar")
.to("ref:bar")
.end();
diff --git a/core/camel-management/src/test/java/org/apache/camel/management/ManagedRouteDumpRouteAsXmlTest.java b/core/camel-management/src/test/java/org/apache/camel/management/ManagedRouteDumpRouteAsXmlTest.java
index ba5e22306e4..8bd844eb749 100644
--- a/core/camel-management/src/test/java/org/apache/camel/management/ManagedRouteDumpRouteAsXmlTest.java
+++ b/core/camel-management/src/test/java/org/apache/camel/management/ManagedRouteDumpRouteAsXmlTest.java
@@ -90,34 +90,6 @@ public class ManagedRouteDumpRouteAsXmlTest extends ManagementTestSupport {
assertTrue(xml.contains("java.lang.Exception"));
}
- @Test
- public void testDumpAsXmlResolvePlaceholderDelegateEndpoint() throws Exception {
- MBeanServer mbeanServer = getMBeanServer();
- ObjectName on = getRouteObjectName(mbeanServer);
-
- MockEndpoint mock = getMockEndpoint("mock:result");
- mock.expectedBodiesReceived("Hello World");
-
- template.sendBody("direct:start", "Hello World");
-
- assertMockEndpointsSatisfied();
-
- // should be started
- String routeId = (String) mbeanServer.getAttribute(on, "RouteId");
- assertEquals("myRoute", routeId);
-
- String xml = (String) mbeanServer.invoke(on, "dumpRouteAsXml", new Object[] { true, true },
- new String[] { "boolean", "boolean" });
- assertNotNull(xml);
- log.info(xml);
-
- assertTrue(xml.contains("route"));
- assertTrue(xml.contains("myRoute"));
- assertTrue(xml.contains("mock://bar"));
- assertTrue(xml.contains("mock:result"));
- assertTrue(xml.contains("java.lang.Exception"));
- }
-
static ObjectName getRouteObjectName(MBeanServer mbeanServer) throws Exception {
Set<ObjectName> set = mbeanServer.queryNames(new ObjectName("*:type=routes,*"), null);
assertEquals(1, set.size());
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 5fc74f2664f..6e593ec74bb 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
@@ -26,8 +26,6 @@ import java.util.Properties;
import java.util.function.Consumer;
import org.apache.camel.CamelContext;
-import org.apache.camel.DelegateEndpoint;
-import org.apache.camel.Endpoint;
import org.apache.camel.Expression;
import org.apache.camel.NamedNode;
import org.apache.camel.model.ExpressionNode;
@@ -56,12 +54,12 @@ public class LwModelToXMLDumper implements ModelToXMLDumper {
@Override
public String dumpModelAsXml(CamelContext context, NamedNode definition) throws Exception {
- return dumpModelAsXml(context, definition, false, false);
+ return dumpModelAsXml(context, definition, false);
}
@Override
public String dumpModelAsXml(
- CamelContext context, NamedNode definition, boolean resolvePlaceholders, boolean resolveDelegateEndpoints)
+ CamelContext context, NamedNode definition, boolean resolvePlaceholders)
throws Exception {
Properties properties = new Properties();
@@ -137,18 +135,8 @@ public class LwModelToXMLDumper implements ModelToXMLDumper {
@Override
protected void attribute(String name, Object value) throws IOException {
- if (value != null) {
- if (resolveDelegateEndpoints && "uri".equals(name)) {
- String uri = resolve(value.toString(), properties);
- Endpoint endpoint = context.hasEndpoint(uri);
- if (endpoint instanceof DelegateEndpoint) {
- endpoint = ((DelegateEndpoint) endpoint).getEndpoint();
- value = endpoint.getEndpointUri();
- }
- }
- if (resolvePlaceholders) {
- value = resolve(value.toString(), properties);
- }
+ if (resolvePlaceholders && value != null) {
+ value = resolve(value.toString(), properties);
}
super.attribute(name, value);
}
diff --git a/core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/JaxbModelToXMLDumper.java b/core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/JaxbModelToXMLDumper.java
index bc82155839e..4495e74b37a 100644
--- a/core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/JaxbModelToXMLDumper.java
+++ b/core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/JaxbModelToXMLDumper.java
@@ -40,8 +40,6 @@ import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.apache.camel.CamelContext;
-import org.apache.camel.DelegateEndpoint;
-import org.apache.camel.Endpoint;
import org.apache.camel.NamedNode;
import org.apache.camel.TypeConversionException;
import org.apache.camel.converter.jaxp.XmlConverter;
@@ -154,72 +152,51 @@ public class JaxbModelToXMLDumper implements ModelToXMLDumper {
@Override
public String dumpModelAsXml(
- CamelContext context, NamedNode definition, boolean resolvePlaceholders, boolean resolveDelegateEndpoints)
+ CamelContext context, NamedNode definition, boolean resolvePlaceholders)
throws Exception {
String xml = dumpModelAsXml(context, definition);
// if resolving placeholders we parse the xml, and resolve the property
// placeholders during parsing
- if (resolvePlaceholders || resolveDelegateEndpoints) {
+ if (resolvePlaceholders) {
final AtomicBoolean changed = new AtomicBoolean();
final InputStream is = new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8));
final Document dom = XmlLineNumberParser.parseXml(is, new XmlLineNumberParser.XmlTextTransformer() {
- private String prev;
@Override
public String transform(String text) {
String after = text;
- if (resolveDelegateEndpoints && "uri".equals(prev)) {
- try {
- // must resolve placeholder as the endpoint may use
- // property placeholders
- String uri = context.resolvePropertyPlaceholders(text);
- Endpoint endpoint = context.hasEndpoint(uri);
- if (endpoint instanceof DelegateEndpoint) {
- endpoint = ((DelegateEndpoint) endpoint).getEndpoint();
- after = endpoint.getEndpointUri();
- }
- } catch (Exception e) {
- // ignore
- }
- }
- if (resolvePlaceholders) {
- PropertiesComponent pc = context.getPropertiesComponent();
- Properties prop = new Properties();
- Iterator<?> it = null;
- if (definition instanceof RouteDefinition) {
- it = ObjectHelper.createIterator(definition);
- } else if (definition instanceof RoutesDefinition) {
- it = ObjectHelper.createIterator(((RoutesDefinition) definition).getRoutes());
- }
- while (it != null && it.hasNext()) {
- RouteDefinition routeDefinition = (RouteDefinition) it.next();
- // if the route definition was created via a route template then we need to prepare its parameters when the route is being created and started
- if (routeDefinition.isTemplate() != null && routeDefinition.isTemplate()
- && routeDefinition.getTemplateParameters() != null) {
- prop.putAll(routeDefinition.getTemplateParameters());
- }
- }
- pc.setLocalProperties(prop);
- try {
- after = context.resolvePropertyPlaceholders(after);
- } catch (Exception e) {
- // ignore
- } finally {
- // clear local after the route is dumped
- pc.setLocalProperties(null);
+ PropertiesComponent pc = context.getPropertiesComponent();
+ Properties prop = new Properties();
+ Iterator<?> it = null;
+ if (definition instanceof RouteDefinition) {
+ it = ObjectHelper.createIterator(definition);
+ } else if (definition instanceof RoutesDefinition) {
+ it = ObjectHelper.createIterator(((RoutesDefinition) definition).getRoutes());
+ }
+ while (it != null && it.hasNext()) {
+ RouteDefinition routeDefinition = (RouteDefinition) it.next();
+ // if the route definition was created via a route template then we need to prepare its parameters when the route is being created and started
+ if (routeDefinition.isTemplate() != null && routeDefinition.isTemplate()
+ && routeDefinition.getTemplateParameters() != null) {
+ prop.putAll(routeDefinition.getTemplateParameters());
}
}
+ pc.setLocalProperties(prop);
+ try {
+ after = context.resolvePropertyPlaceholders(after);
+ } catch (Exception e) {
+ // ignore
+ } finally {
+ // clear local after the route is dumped
+ pc.setLocalProperties(null);
+ }
if (!changed.get()) {
changed.set(!text.equals(after));
}
- // okay the previous must be the attribute key with uri, so
- // it refers to an endpoint
- prev = text;
-
return after;
}
});
diff --git a/core/camel-yaml-io/src/main/java/org/apache/camel/yaml/LwModelToYAMLDumper.java b/core/camel-yaml-io/src/main/java/org/apache/camel/yaml/LwModelToYAMLDumper.java
index d111e5c27b1..bd43ccaa839 100644
--- a/core/camel-yaml-io/src/main/java/org/apache/camel/yaml/LwModelToYAMLDumper.java
+++ b/core/camel-yaml-io/src/main/java/org/apache/camel/yaml/LwModelToYAMLDumper.java
@@ -26,8 +26,6 @@ import java.util.Properties;
import java.util.function.Consumer;
import org.apache.camel.CamelContext;
-import org.apache.camel.DelegateEndpoint;
-import org.apache.camel.Endpoint;
import org.apache.camel.Expression;
import org.apache.camel.NamedNode;
import org.apache.camel.model.ExpressionNode;
@@ -61,7 +59,8 @@ public class LwModelToYAMLDumper implements ModelToYAMLDumper {
@Override
public String dumpModelAsYaml(
- CamelContext context, NamedNode definition, boolean resolvePlaceholders, boolean resolveDelegateEndpoints)
+ CamelContext context, NamedNode definition, boolean resolvePlaceholders,
+ boolean uriAsParameters)
throws Exception {
Properties properties = new Properties();
Map<String, String> namespaces = new LinkedHashMap<>();
@@ -119,18 +118,8 @@ public class LwModelToYAMLDumper implements ModelToYAMLDumper {
@Override
protected void attribute(String name, Object value) throws IOException {
- if (value != null) {
- if (resolveDelegateEndpoints && "uri".equals(name)) {
- String uri = resolve(value.toString(), properties);
- Endpoint endpoint = context.hasEndpoint(uri);
- if (endpoint instanceof DelegateEndpoint) {
- endpoint = ((DelegateEndpoint) endpoint).getEndpoint();
- value = endpoint.getEndpointUri();
- }
- }
- if (resolvePlaceholders) {
- value = resolve(value.toString(), properties);
- }
+ if (resolvePlaceholders && value != null) {
+ value = resolve(value.toString(), properties);
}
super.attribute(name, value);
}
@@ -147,6 +136,7 @@ public class LwModelToYAMLDumper implements ModelToYAMLDumper {
}
}
};
+ writer.setUriAsParameters(uriAsParameters);
// gather all namespaces from the routes or route which is stored on the expression nodes
if (definition instanceof RouteTemplatesDefinition templates) {
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 0ab60e15869..c0b10d10e08 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
@@ -58,6 +58,7 @@ public class YamlWriter {
private boolean routesIsRoot;
private final Stack<EipModel> models = new Stack<>();
private String expression;
+ private boolean uriAsParameters;
public YamlWriter(Writer writer) {
this.writer = writer;
@@ -67,6 +68,10 @@ public class YamlWriter {
this.catalog.start();
}
+ public void setUriAsParameters(boolean uriAsParameters) {
+ this.uriAsParameters = uriAsParameters;
+ }
+
public void startElement(String name) throws IOException {
if ("routes".equals(name)) {
routesIsRoot = true;
@@ -181,7 +186,7 @@ public class YamlWriter {
EipModel last = models.isEmpty() ? null : models.peek();
if (last != null) {
// uri should be expanded into more human-readable with parameters
- if ("uri".equals(name) && value != null) {
+ if (uriAsParameters && "uri".equals(name) && value != null) {
try {
String base = URISupport.stripQuery(value.toString());
String query = URISupport.extractQuery(value.toString());
diff --git a/core/camel-yaml-io/src/main/java/org/apache/camel/yaml/out/BaseWriter.java b/core/camel-yaml-io/src/main/java/org/apache/camel/yaml/out/BaseWriter.java
index 4b751c4bc59..76e9e724482 100644
--- a/core/camel-yaml-io/src/main/java/org/apache/camel/yaml/out/BaseWriter.java
+++ b/core/camel-yaml-io/src/main/java/org/apache/camel/yaml/out/BaseWriter.java
@@ -33,6 +33,10 @@ public class BaseWriter {
// namespace is only for XML
}
+ public void setUriAsParameters(boolean uriAsParameters) {
+ this.writer.setUriAsParameters(uriAsParameters);
+ }
+
public String toYaml() {
return writer.toYaml();
}
diff --git a/core/camel-yaml-io/src/test/java/org/apache/camel/yaml/out/ModelWriterTest.java b/core/camel-yaml-io/src/test/java/org/apache/camel/yaml/out/ModelWriterTest.java
index c50e4031b63..ea45413f77f 100644
--- a/core/camel-yaml-io/src/test/java/org/apache/camel/yaml/out/ModelWriterTest.java
+++ b/core/camel-yaml-io/src/test/java/org/apache/camel/yaml/out/ModelWriterTest.java
@@ -61,7 +61,7 @@ public class ModelWriterTest {
writer.writeRouteDefinition(route);
String out = sw.toString();
- String expected = IOHelper.loadText(new FileInputStream("src/test/resources/route0.yaml"));
+ String expected = IOHelper.loadText(new FileInputStream("src/test/resources/route0b.yaml"));
Assertions.assertEquals(expected, out);
}
@@ -272,7 +272,7 @@ public class ModelWriterTest {
writer.writeRoutesDefinition(routes);
String out = sw.toString();
- String expected = IOHelper.loadText(new FileInputStream("src/test/resources/route8.yaml"));
+ String expected = IOHelper.loadText(new FileInputStream("src/test/resources/route8b.yaml"));
Assertions.assertEquals(expected, out);
}
diff --git a/core/camel-yaml-io/src/test/java/org/apache/camel/yaml/out/ModelWriterTest.java b/core/camel-yaml-io/src/test/java/org/apache/camel/yaml/out/ModelWriterUriAsParametersTest.java
similarity index 96%
copy from core/camel-yaml-io/src/test/java/org/apache/camel/yaml/out/ModelWriterTest.java
copy to core/camel-yaml-io/src/test/java/org/apache/camel/yaml/out/ModelWriterUriAsParametersTest.java
index c50e4031b63..6148224029d 100644
--- a/core/camel-yaml-io/src/test/java/org/apache/camel/yaml/out/ModelWriterTest.java
+++ b/core/camel-yaml-io/src/test/java/org/apache/camel/yaml/out/ModelWriterUriAsParametersTest.java
@@ -43,12 +43,13 @@ import org.apache.camel.util.IOHelper;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
-public class ModelWriterTest {
+public class ModelWriterUriAsParametersTest {
@Test
public void testTimerLog() throws Exception {
StringWriter sw = new StringWriter();
ModelWriter writer = new ModelWriter(sw);
+ writer.setUriAsParameters(true);
RouteDefinition route = new RouteDefinition();
route.setId("myRoute0");
@@ -69,6 +70,7 @@ public class ModelWriterTest {
public void testFromTo() throws Exception {
StringWriter sw = new StringWriter();
ModelWriter writer = new ModelWriter(sw);
+ writer.setUriAsParameters(true);
RouteDefinition route = new RouteDefinition();
route.setId("myRoute1");
@@ -90,6 +92,7 @@ public class ModelWriterTest {
public void testFromSplitTo() throws Exception {
StringWriter sw = new StringWriter();
ModelWriter writer = new ModelWriter(sw);
+ writer.setUriAsParameters(true);
RouteDefinition route = new RouteDefinition();
route.setId("myRoute2");
@@ -116,6 +119,7 @@ public class ModelWriterTest {
public void testFromAggregateTo() throws Exception {
StringWriter sw = new StringWriter();
ModelWriter writer = new ModelWriter(sw);
+ writer.setUriAsParameters(true);
RouteDefinition route = new RouteDefinition();
route.setId("myRoute3");
@@ -146,6 +150,7 @@ public class ModelWriterTest {
public void testFromSetBodyTo() throws Exception {
StringWriter sw = new StringWriter();
ModelWriter writer = new ModelWriter(sw);
+ writer.setUriAsParameters(true);
RouteDefinition route = new RouteDefinition();
route.setId("myRoute4");
@@ -167,6 +172,7 @@ public class ModelWriterTest {
public void testFromLogSetBodyTo() throws Exception {
StringWriter sw = new StringWriter();
ModelWriter writer = new ModelWriter(sw);
+ writer.setUriAsParameters(true);
RouteDefinition route = new RouteDefinition();
route.setId("myRoute5");
@@ -192,6 +198,7 @@ public class ModelWriterTest {
public void testFromChoice() throws Exception {
StringWriter sw = new StringWriter();
ModelWriter writer = new ModelWriter(sw);
+ writer.setUriAsParameters(true);
RouteDefinition route = new RouteDefinition();
route.setId("myRoute6");
@@ -215,6 +222,7 @@ public class ModelWriterTest {
public void testFromTryCatch() throws Exception {
StringWriter sw = new StringWriter();
ModelWriter writer = new ModelWriter(sw);
+ writer.setUriAsParameters(true);
CamelContext context = new DefaultCamelContext();
context.addRoutes(new RouteBuilder() {
@@ -247,6 +255,7 @@ public class ModelWriterTest {
public void testTwoRoutes() throws Exception {
StringWriter sw = new StringWriter();
ModelWriter writer = new ModelWriter(sw);
+ writer.setUriAsParameters(true);
RoutesDefinition routes = new RoutesDefinition();
@@ -280,6 +289,7 @@ public class ModelWriterTest {
public void testMarshal() throws Exception {
StringWriter sw = new StringWriter();
ModelWriter writer = new ModelWriter(sw);
+ writer.setUriAsParameters(true);
RouteDefinition route = new RouteDefinition();
route.setId("myRoute9");
diff --git a/core/camel-yaml-io/src/test/resources/route0b.yaml b/core/camel-yaml-io/src/test/resources/route0b.yaml
new file mode 100644
index 00000000000..8bedbf86912
--- /dev/null
+++ b/core/camel-yaml-io/src/test/resources/route0b.yaml
@@ -0,0 +1,10 @@
+- route:
+ id: myRoute0
+ from:
+ uri: timer:yaml?period=1234&includeMetadata=true
+ steps:
+ - setBody:
+ constant:
+ expression: Hello from yaml
+ - log:
+ message: "${body}"
\ No newline at end of file
diff --git a/core/camel-yaml-io/src/test/resources/route8b.yaml b/core/camel-yaml-io/src/test/resources/route8b.yaml
new file mode 100644
index 00000000000..5fed92320d1
--- /dev/null
+++ b/core/camel-yaml-io/src/test/resources/route8b.yaml
@@ -0,0 +1,20 @@
+- route:
+ id: myRoute0
+ from:
+ uri: timer:yaml?period=1234
+ steps:
+ - setBody:
+ constant:
+ expression: Hello from yaml
+ - log:
+ message: "${body}"
+- route:
+ id: myRoute1
+ from:
+ uri: direct:start
+ steps:
+ - to:
+ uri: log:input
+ - to:
+ uri: mock:result
+ pattern: InOut
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 926d95992c1..287e9acdcfc 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
@@ -127,6 +127,8 @@ Camel now also include MBeans for `doCatch` and `doFinally` in the tree of proce
The `ManagedChoiceMBean` have renamed `choiceStatistics` to `extendedInformation`.
The `ManagedFailoverLoadBalancerMBean` have renamed `exceptionStatistics` to `extendedInformation`.
+The `CamelContextMBean` and `CamelRouteMBean` has removed method `dumpRouteAsXml(boolean resolvePlaceholders, boolean resolveDelegateEndpoints)`.
+
== YAML DSL
The backwards compatible mode Camel 3.14 or older, which allowed to have _steps_ as child to _route_ has been removed.
diff --git a/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java b/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
index dfb52400226..c748fd242dd 100644
--- a/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
+++ b/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
@@ -309,8 +309,10 @@ public class LocalCliConnector extends ServiceSupport implements CliConnector, C
if (dc != null) {
String filter = root.getString("filter");
String format = root.getString("format");
+ String uriAsParameters = root.getString("uriAsParameters");
JsonObject json
- = (JsonObject) dc.call(DevConsole.MediaType.JSON, Map.of("filter", filter, "format", format));
+ = (JsonObject) dc.call(DevConsole.MediaType.JSON,
+ Map.of("filter", filter, "format", format, "uriAsParameters", uriAsParameters));
LOG.trace("Updating output file: {}", outputFile);
IOHelper.writeText(json.toJson(), outputFile);
}
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelRouteDumpAction.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelRouteDumpAction.java
index 1974a709710..18f3e7ec476 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelRouteDumpAction.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelRouteDumpAction.java
@@ -61,6 +61,10 @@ public class CamelRouteDumpAction extends ActionBaseCommand {
description = "To output raw without metadata")
boolean raw;
+ @CommandLine.Option(names = { "--uri-as-parameters" },
+ description = "Whether to expand URIs into separated key/value parameters (only in use for YAML format)")
+ boolean uriAsParameters;
+
@CommandLine.Option(names = { "--filter" },
description = "Filter route by filename (multiple names can be separated by comma)")
String filter;
@@ -98,6 +102,7 @@ public class CamelRouteDumpAction extends ActionBaseCommand {
root.put("action", "route-dump");
root.put("filter", "*");
root.put("format", format);
+ root.put("uriAsParameters", uriAsParameters);
File file = getActionFile(Long.toString(pid));
try {
IOHelper.writeText(root.toJson(), file);