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) {

Reply via email to