This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch raw in repository https://gitbox.apache.org/repos/asf/camel.git
commit 963a3446d64e9dff8cd8e995fa7387f3def7ad96 Author: Claus Ibsen <[email protected]> AuthorDate: Wed Aug 21 09:10:57 2024 +0200 CAMEL-21099: Fix filter in some dev consoles. --- .../apache/camel/impl/console/RouteDevConsole.java | 5 +- .../camel/impl/console/RouteDumpDevConsole.java | 5 +- .../camel/impl/console/SourceDevConsole.java | 55 ++++++++++++++-------- .../apache/camel/impl/console/TopDevConsole.java | 4 +- .../org/apache/camel/support/LoggerHelper.java | 8 ++++ 5 files changed, 55 insertions(+), 22 deletions(-) diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDevConsole.java index 01358928afd..57df94a720f 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDevConsole.java @@ -35,6 +35,7 @@ import org.apache.camel.api.management.ManagedCamelContext; import org.apache.camel.api.management.mbean.ManagedProcessorMBean; import org.apache.camel.api.management.mbean.ManagedRouteMBean; import org.apache.camel.spi.annotations.DevConsole; +import org.apache.camel.support.LoggerHelper; import org.apache.camel.support.PatternHelper; import org.apache.camel.support.console.AbstractDevConsole; import org.apache.camel.util.StringHelper; @@ -439,9 +440,11 @@ public class RouteDevConsole extends AbstractDevConsole { return true; } + String onlyName = LoggerHelper.sourceNameOnly(mrb.getSourceLocation()); return PatternHelper.matchPattern(mrb.getRouteId(), filter) || PatternHelper.matchPattern(mrb.getEndpointUri(), filter) - || PatternHelper.matchPattern(mrb.getSourceLocationShort(), filter); + || PatternHelper.matchPattern(mrb.getSourceLocationShort(), filter) + || PatternHelper.matchPattern(onlyName, filter); } private static int sort(ManagedRouteMBean o1, ManagedRouteMBean o2) { 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 65b46aeb838..aacea236c85 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 @@ -28,6 +28,7 @@ import org.apache.camel.Route; import org.apache.camel.api.management.ManagedCamelContext; import org.apache.camel.api.management.mbean.ManagedRouteMBean; import org.apache.camel.spi.annotations.DevConsole; +import org.apache.camel.support.LoggerHelper; import org.apache.camel.support.PatternHelper; import org.apache.camel.support.console.AbstractDevConsole; import org.apache.camel.util.StringHelper; @@ -166,9 +167,11 @@ public class RouteDumpDevConsole extends AbstractDevConsole { return true; } + String onlyName = LoggerHelper.sourceNameOnly(mrb.getSourceLocation()); return PatternHelper.matchPattern(mrb.getRouteId(), filter) || PatternHelper.matchPattern(mrb.getEndpointUri(), filter) - || PatternHelper.matchPattern(mrb.getSourceLocationShort(), filter); + || PatternHelper.matchPattern(mrb.getSourceLocationShort(), filter) + || PatternHelper.matchPattern(onlyName, filter); } private static int sort(ManagedRouteMBean o1, ManagedRouteMBean o2) { diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/SourceDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/SourceDevConsole.java index 82c7f57fbee..fd8aa2973ee 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/SourceDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/SourceDevConsole.java @@ -50,6 +50,11 @@ public class SourceDevConsole extends AbstractDevConsole { */ public static final String LIMIT = "limit"; + /** + * Whether to dump or list file names only + */ + public static final String DUMP = "dump"; + public SourceDevConsole() { super("camel", "source", "Source", "Dump route source code"); } @@ -57,6 +62,9 @@ public class SourceDevConsole extends AbstractDevConsole { @Override protected String doCallText(Map<String, Object> options) { final StringBuilder sb = new StringBuilder(); + + boolean dump = "true".equals(options.getOrDefault(DUMP, "true")); + Function<ManagedRouteMBean, Object> task = mrb -> { String loc = mrb.getSourceLocation(); if (loc != null) { @@ -69,17 +77,19 @@ public class SourceDevConsole extends AbstractDevConsole { sb.append("\n"); } - LineNumberReader reader = new LineNumberReader(resource.getReader()); - int i = 0; - String t; - do { - t = reader.readLine(); - if (t != null) { - i++; - code.append(String.format("\n #%s %s", i, t)); - } - } while (t != null); - IOHelper.close(reader); + if (dump) { + LineNumberReader reader = new LineNumberReader(resource.getReader()); + int i = 0; + String t; + do { + t = reader.readLine(); + if (t != null) { + i++; + code.append(String.format("\n #%s %s", i, t)); + } + } while (t != null); + IOHelper.close(reader); + } } } catch (Exception e) { // ignore @@ -87,6 +97,7 @@ public class SourceDevConsole extends AbstractDevConsole { sb.append(String.format(" Id: %s", mrb.getRouteId())); if (mrb.getSourceLocation() != null) { sb.append(String.format("\n Source: %s", mrb.getSourceLocation())); + sb.append(String.format("\n File: %s", LoggerHelper.sourceNameOnly(loc))); } if (!code.isEmpty()) { sb.append("\n"); @@ -103,6 +114,8 @@ public class SourceDevConsole extends AbstractDevConsole { @Override protected JsonObject doCallJson(Map<String, Object> options) { + boolean dump = "true".equals(options.getOrDefault(DUMP, "true")); + final JsonObject root = new JsonObject(); final List<JsonObject> list = new ArrayList<>(); @@ -112,14 +125,16 @@ public class SourceDevConsole extends AbstractDevConsole { jo.put("routeId", mrb.getRouteId()); jo.put("from", mrb.getEndpointUri()); - if (mrb.getSourceLocation() != null) { - jo.put("source", mrb.getSourceLocation()); - } - String loc = mrb.getSourceLocation(); - List<JsonObject> code = ConsoleHelper.loadSourceAsJson(getCamelContext(), loc); - if (code != null) { - jo.put("code", code); + if (loc != null) { + jo.put("source", loc); + jo.put("file", LoggerHelper.sourceNameOnly(loc)); + if (dump) { + List<JsonObject> code = ConsoleHelper.loadSourceAsJson(getCamelContext(), loc); + if (code != null) { + jo.put("code", code); + } + } } return null; }; @@ -155,9 +170,11 @@ public class SourceDevConsole extends AbstractDevConsole { return true; } + String onlyName = LoggerHelper.sourceNameOnly(mrb.getSourceLocation()); return PatternHelper.matchPattern(mrb.getRouteId(), filter) || PatternHelper.matchPattern(mrb.getEndpointUri(), filter) - || PatternHelper.matchPattern(mrb.getSourceLocationShort(), filter); + || PatternHelper.matchPattern(mrb.getSourceLocationShort(), filter) + || PatternHelper.matchPattern(onlyName, filter); } private static int sort(ManagedRouteMBean o1, ManagedRouteMBean o2) { diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/TopDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/TopDevConsole.java index 6bf8d32d321..82be71ac99f 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/TopDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/TopDevConsole.java @@ -319,9 +319,11 @@ public class TopDevConsole extends AbstractDevConsole { return true; } + String onlyName = LoggerHelper.sourceNameOnly(mrb.getSourceLocation()); return PatternHelper.matchPattern(mrb.getRouteId(), filter) || PatternHelper.matchPattern(mrb.getEndpointUri(), filter) - || PatternHelper.matchPattern(mrb.getSourceLocationShort(), filter); + || PatternHelper.matchPattern(mrb.getSourceLocationShort(), filter) + || PatternHelper.matchPattern(onlyName, filter); } private static boolean acceptProcessor(ManagedProcessorMBean mpb, String filter) { diff --git a/core/camel-support/src/main/java/org/apache/camel/support/LoggerHelper.java b/core/camel-support/src/main/java/org/apache/camel/support/LoggerHelper.java index a871604bdc7..b0495908de6 100644 --- a/core/camel-support/src/main/java/org/apache/camel/support/LoggerHelper.java +++ b/core/camel-support/src/main/java/org/apache/camel/support/LoggerHelper.java @@ -99,6 +99,14 @@ public final class LoggerHelper { } } + public static String stripScheme(String location) { + return StringHelper.after(location, ":", location); + } + + public static String sourceNameOnly(String location) { + return stripScheme(stripSourceLocationLineNumber(location)); + } + public static Integer extractSourceLocationLineNumber(String location) { int cnt = StringHelper.countChar(location, ':'); if (cnt > 1) {
