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/08/21 11:55:50 UTC
[camel] 11/14: CAMEL-19765: camel-core - SPI for DumpRouteStrategy.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch ds
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 6b8080ec9e08fdcc06031c0d9cd33134c6464e3e
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Aug 21 12:58:47 2023 +0200
CAMEL-19765: camel-core - SPI for DumpRouteStrategy.
---
.../apache/camel/impl/DefaultDumpRoutesStrategy.java | 17 ++++++++++-------
.../camel/management/ManagedRouteDumpStrategyTest.java | 12 +++++++++++-
2 files changed, 21 insertions(+), 8 deletions(-)
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultDumpRoutesStrategy.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultDumpRoutesStrategy.java
index 7c9797c8824..ca28c5fa828 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultDumpRoutesStrategy.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultDumpRoutesStrategy.java
@@ -170,7 +170,7 @@ public class DefaultDumpRoutesStrategy extends ServiceSupport implements DumpRou
Resource resource = entry.getKey();
StringBuilder local = new StringBuilder();
- doDumpYaml(camelContext, def, resource == dummy ? null : resource, dumper, "rests", sb);
+ doDumpYaml(camelContext, def, resource == dummy ? null : resource, dumper, "rests", local);
sb.append(local);
// dump each resource into its own file
doDumpTiDisk(resource, local, "rests", "yaml");
@@ -201,7 +201,7 @@ public class DefaultDumpRoutesStrategy extends ServiceSupport implements DumpRou
Resource resource = entry.getKey();
StringBuilder local = new StringBuilder();
- doDumpYaml(camelContext, def, resource == dummy ? null : resource, dumper, "route-templates", sb);
+ doDumpYaml(camelContext, def, resource == dummy ? null : resource, dumper, "route-templates", local);
sb.append(local);
// dump each resource into its own file
doDumpTiDisk(resource, local, "route-templates", "yaml");
@@ -248,7 +248,7 @@ public class DefaultDumpRoutesStrategy extends ServiceSupport implements DumpRou
Resource resource = entry.getKey();
StringBuilder local = new StringBuilder();
- doDumpXml(camelContext, def, resource == dummy ? null : resource, dumper, "route", "routes", sb);
+ doDumpXml(camelContext, def, resource == dummy ? null : resource, dumper, "route", "routes", local);
sb.append(local);
// dump each resource into its own file
doDumpTiDisk(resource, local, "routes", "xml");
@@ -278,7 +278,7 @@ public class DefaultDumpRoutesStrategy extends ServiceSupport implements DumpRou
Resource resource = entry.getKey();
StringBuilder local = new StringBuilder();
- doDumpXml(camelContext, def, resource == dummy ? null : resource, dumper, "rest", "rests", sb);
+ doDumpXml(camelContext, def, resource == dummy ? null : resource, dumper, "rest", "rests", local);
sb.append(local);
// dump each resource into its own file
doDumpTiDisk(resource, local, "rests", "xml");
@@ -310,7 +310,7 @@ public class DefaultDumpRoutesStrategy extends ServiceSupport implements DumpRou
StringBuilder local = new StringBuilder();
doDumpXml(camelContext, def, resource == dummy ? null : resource, dumper, "routeTemplate",
- "route-templates", sb);
+ "route-templates", local);
sb.append(local);
// dump each resource into its own file
doDumpTiDisk(resource, local, "route-templates", "xml");
@@ -339,12 +339,15 @@ public class DefaultDumpRoutesStrategy extends ServiceSupport implements DumpRou
}
protected void doDumpTiDisk(Resource resource, StringBuilder local, String kind, String ext) {
- if (directory != null) {
+ if (directory != null && !local.isEmpty()) {
// make sure directory exists
File dir = new File(directory);
dir.mkdirs();
- String name = resource != null ? resource.getLocation() : "dump" + counter.incrementAndGet();
+ String name = resource != null ? resource.getLocation() : null;
+ if (name == null) {
+ name = "dump" + counter.incrementAndGet();
+ }
// strip scheme
if (name.contains(":")) {
name = StringHelper.after(name, ":");
diff --git a/core/camel-management/src/test/java/org/apache/camel/management/ManagedRouteDumpStrategyTest.java b/core/camel-management/src/test/java/org/apache/camel/management/ManagedRouteDumpStrategyTest.java
index 56d7cbab2f6..080dcb55c7e 100644
--- a/core/camel-management/src/test/java/org/apache/camel/management/ManagedRouteDumpStrategyTest.java
+++ b/core/camel-management/src/test/java/org/apache/camel/management/ManagedRouteDumpStrategyTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.management;
+import java.io.File;
import java.util.Set;
import javax.management.MBeanServer;
@@ -38,8 +39,11 @@ public class ManagedRouteDumpStrategyTest extends ManagementTestSupport {
@Override
protected CamelContext createCamelContext() throws Exception {
+ testDirectory(true);
+ String dir = testDirectory().toString();
+
CamelContext context = super.createCamelContext();
- context.setDumpRoutes("xml?include=all&log=false"); // dump route is lazy
+ context.setDumpRoutes("xml?include=all&log=false&directory=" + dir); // dump route is lazy
return context;
}
@@ -66,6 +70,12 @@ public class ManagedRouteDumpStrategyTest extends ManagementTestSupport {
assertEquals("all", include);
Boolean log = (Boolean) mbeanServer.getAttribute(on, "Log");
assertFalse(log);
+
+ // dump should pre-exist
+ File dir = testDirectory().toFile();
+ String[] files = dir.list();
+ assertEquals(1, files.length);
+ assertEquals("dump1.xml", files[0]);
}
@Override