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 2024/08/21 14:16:25 UTC
(camel) branch main updated (ab2106eb672 -> 420d6361243)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
from ab2106eb672 CAMEL-21103: camel-platform-http-main - Add download functionality (#15255)
new a8b77d1dd35 Revert "dev console - source to be able to download using raw mode (#15248)"
new 420d6361243 CAMEL-21099: Fix filter in some dev consoles.
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../platform/http/main/MainHttpServer.java | 69 ++++-------
.../java/org/apache/camel/console/DevConsole.java | 3 +-
.../camel/impl/console/SourceDevConsole.java | 127 ++++-----------------
.../camel/support/console/AbstractDevConsole.java | 16 +--
4 files changed, 43 insertions(+), 172 deletions(-)
(camel) 02/02: CAMEL-21099: Fix filter in some dev consoles.
Posted by da...@apache.org.
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
commit 420d6361243838d04d7c48e92be417c8a74c538f
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Aug 21 16:16:10 2024 +0200
CAMEL-21099: Fix filter in some dev consoles.
---
.../main/java/org/apache/camel/impl/console/RouteDevConsole.java | 5 ++++-
.../java/org/apache/camel/impl/console/RouteDumpDevConsole.java | 5 ++++-
.../main/java/org/apache/camel/impl/console/SourceDevConsole.java | 4 +++-
.../main/java/org/apache/camel/impl/console/TopDevConsole.java | 4 +++-
.../src/main/java/org/apache/camel/support/LoggerHelper.java | 8 ++++++++
5 files changed, 22 insertions(+), 4 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..e0b17232700 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
@@ -155,9 +155,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) {
(camel) 01/02: Revert "dev console - source to be able to download using raw mode (#15248)"
Posted by da...@apache.org.
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
commit a8b77d1dd35d2b9b0dcc28811a0edb0205b88ea7
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Aug 21 15:56:55 2024 +0200
Revert "dev console - source to be able to download using raw mode (#15248)"
This reverts commit 07f3ab882f9eca232322f6ceaf24e78f68643e66.
---
.../platform/http/main/MainHttpServer.java | 69 ++++-------
.../java/org/apache/camel/console/DevConsole.java | 3 +-
.../apache/camel/impl/console/RouteDevConsole.java | 5 +-
.../camel/impl/console/RouteDumpDevConsole.java | 5 +-
.../camel/impl/console/SourceDevConsole.java | 131 ++++-----------------
.../apache/camel/impl/console/TopDevConsole.java | 4 +-
.../org/apache/camel/support/LoggerHelper.java | 8 --
.../camel/support/console/AbstractDevConsole.java | 16 +--
8 files changed, 47 insertions(+), 194 deletions(-)
diff --git a/components/camel-platform-http-main/src/main/java/org/apache/camel/component/platform/http/main/MainHttpServer.java b/components/camel-platform-http-main/src/main/java/org/apache/camel/component/platform/http/main/MainHttpServer.java
index 1f20f3fb44d..d53aa48d101 100644
--- a/components/camel-platform-http-main/src/main/java/org/apache/camel/component/platform/http/main/MainHttpServer.java
+++ b/components/camel-platform-http-main/src/main/java/org/apache/camel/component/platform/http/main/MainHttpServer.java
@@ -35,7 +35,6 @@ import java.util.Optional;
import java.util.Set;
import java.util.StringJoiner;
import java.util.TreeSet;
-import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
import io.vertx.core.Handler;
@@ -466,7 +465,7 @@ public class MainHttpServer extends ServiceSupport implements CamelContextAware,
@Override
public void handle(RoutingContext ctx) {
- ctx.response().putHeader("Content-Type", "application/json");
+ ctx.response().putHeader("content-type", "application/json");
JsonObject root = new JsonObject();
JsonObject jo = new JsonObject();
@@ -567,7 +566,7 @@ public class MainHttpServer extends ServiceSupport implements CamelContextAware,
Handler<RoutingContext> handler = new Handler<RoutingContext>() {
@Override
public void handle(RoutingContext ctx) {
- ctx.response().putHeader("Content-Type", "application/json");
+ ctx.response().putHeader("content-type", "application/json");
HealthCheckRegistry registry = HealthCheckRegistry.get(camelContext);
String level = ctx.request().getParam("exposureLevel");
@@ -764,22 +763,10 @@ public class MainHttpServer extends ServiceSupport implements CamelContextAware,
devSub.method(HttpMethod.GET);
devSub.produces("text/plain");
devSub.produces("application/json");
- devSub.produces("application/octet-stream");
Handler<RoutingContext> handler = new Handler<RoutingContext>() {
@Override
public void handle(RoutingContext ctx) {
- if (!camelContext.isDevConsole()) {
- ctx.response().putHeader("Content-Type", "text/plain");
- ctx.end("Developer Console is not enabled on CamelContext. Set camel.context.dev-console=true in application.properties");
- }
- DevConsoleRegistry dcr = camelContext.getCamelContextExtension().getContextPlugin(DevConsoleRegistry.class);
- if (dcr == null || !dcr.isEnabled()) {
- ctx.response().putHeader("Content-Type", "text/plain");
- ctx.end("Developer Console is not enabled");
- return;
- }
-
String acp = ctx.request().getHeader("Accept");
int pos1 = acp != null ? acp.indexOf("html") : Integer.MAX_VALUE;
if (pos1 == -1) {
@@ -789,13 +776,20 @@ public class MainHttpServer extends ServiceSupport implements CamelContextAware,
if (pos2 == -1) {
pos2 = Integer.MAX_VALUE;
}
- // special for download mode where we want to make it easy from a web-browser
- final boolean download = "true".equals(ctx.request().getParam("download"));
- final boolean raw = download || acp != null && acp.contains("application/octet-stream");
- final boolean html = !raw && pos1 < pos2;
- final boolean json = !raw && pos2 < pos1;
- final DevConsole.MediaType mediaType
- = raw ? DevConsole.MediaType.RAW : json ? DevConsole.MediaType.JSON : DevConsole.MediaType.TEXT;
+ final boolean html = pos1 < pos2;
+ final boolean json = pos2 < pos1;
+ final DevConsole.MediaType mediaType = json ? DevConsole.MediaType.JSON : DevConsole.MediaType.TEXT;
+
+ ctx.response().putHeader("content-type", "text/plain");
+
+ if (!camelContext.isDevConsole()) {
+ ctx.end("Developer Console is not enabled on CamelContext. Set camel.context.dev-console=true in application.properties");
+ }
+ DevConsoleRegistry dcr = camelContext.getCamelContextExtension().getContextPlugin(DevConsoleRegistry.class);
+ if (dcr == null || !dcr.isEnabled()) {
+ ctx.end("Developer Console is not enabled");
+ return;
+ }
String path = StringHelper.after(ctx.request().path(), "/q/dev/");
String s = path;
@@ -834,13 +828,11 @@ public class MainHttpServer extends ServiceSupport implements CamelContextAware,
if (!sb.isEmpty()) {
String out = sb.toString();
if (html) {
- ctx.response().putHeader("Content-Type", "text/html");
- } else {
- ctx.response().putHeader("Content-Type", "text/plain");
+ ctx.response().putHeader("content-type", "text/html");
}
ctx.end(out);
} else if (!root.isEmpty()) {
- ctx.response().putHeader("Content-Type", "application/json");
+ ctx.response().putHeader("content-type", "application/json");
String out = root.toJson();
ctx.end(out);
} else {
@@ -852,7 +844,6 @@ public class MainHttpServer extends ServiceSupport implements CamelContextAware,
params.put(Exchange.HTTP_PATH, path);
StringBuilder sb = new StringBuilder();
JsonObject root = new JsonObject();
- final AtomicBoolean found = new AtomicBoolean();
// sort according to index by given id
dcr.stream().sorted((o1, o2) -> {
@@ -863,45 +854,25 @@ public class MainHttpServer extends ServiceSupport implements CamelContextAware,
boolean include = "all".equals(id) || c.getId().equalsIgnoreCase(id);
if (include && c.supportMediaType(mediaType)) {
Object out = c.call(mediaType, params);
- found.set(true);
if (out != null && mediaType == DevConsole.MediaType.TEXT) {
sb.append(c.getDisplayName()).append(":");
sb.append("\n\n");
sb.append(out);
sb.append("\n\n");
- } else if (out != null && mediaType == DevConsole.MediaType.RAW) {
- sb.append(out);
} else if (out != null && mediaType == DevConsole.MediaType.JSON) {
root.put(c.getId(), out);
}
}
});
if (!sb.isEmpty()) {
- if (raw) {
- ctx.response().putHeader("Content-Type", "application/octet-stream");
- // in raw mode we may download files so put this into header information
- String disposition = (String) params.get("Content-Disposition");
- if (disposition != null) {
- ctx.response().putHeader("Content-Disposition", disposition);
- }
- } else {
- ctx.response().putHeader("Content-Type", "text/plain");
- }
String out = sb.toString();
ctx.end(out);
} else if (!root.isEmpty()) {
- // root is json object
- ctx.response().putHeader("Content-Type", "application/json");
+ ctx.response().putHeader("content-type", "application/json");
String out = root.toJson();
ctx.end(out);
} else {
- if (!found.get()) {
- ctx.response().putHeader("Content-Type", "text/plain");
- ctx.end("Developer Console not found: " + id);
- } else {
- ctx.response().setStatusCode(204);
- ctx.end();
- }
+ ctx.end("Developer Console not found: " + id);
}
}
}
diff --git a/core/camel-api/src/main/java/org/apache/camel/console/DevConsole.java b/core/camel-api/src/main/java/org/apache/camel/console/DevConsole.java
index add78556a56..bdcdf069b6c 100644
--- a/core/camel-api/src/main/java/org/apache/camel/console/DevConsole.java
+++ b/core/camel-api/src/main/java/org/apache/camel/console/DevConsole.java
@@ -29,8 +29,7 @@ public interface DevConsole {
enum MediaType {
TEXT,
- JSON,
- RAW
+ JSON
}
/**
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 57df94a720f..01358928afd 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,7 +35,6 @@ 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;
@@ -440,11 +439,9 @@ 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(onlyName, filter);
+ || PatternHelper.matchPattern(mrb.getSourceLocationShort(), 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 aacea236c85..65b46aeb838 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,7 +28,6 @@ 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;
@@ -167,11 +166,9 @@ 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(onlyName, filter);
+ || PatternHelper.matchPattern(mrb.getSourceLocationShort(), 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 b02b232ce50..82c7f57fbee 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
@@ -21,8 +21,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Function;
import org.apache.camel.Exchange;
@@ -52,37 +50,13 @@ 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";
-
- /**
- * Whether to make downloading the source file easier from a web browser
- */
- public static final String DOWNLOAD = "download";
-
public SourceDevConsole() {
super("camel", "source", "Source", "Dump route source code");
}
- @Override
- public boolean supportMediaType(MediaType mediaType) {
- // also supports raw
- return true;
- }
-
@Override
protected String doCallText(Map<String, Object> options) {
final StringBuilder sb = new StringBuilder();
-
- boolean download = "true".equals(options.getOrDefault(DOWNLOAD, "false"));
- if (download) {
- // use raw mode instead
- return doCallRaw(options);
- }
-
- boolean dump = "true".equals(options.getOrDefault(DUMP, "true"));
Function<ManagedRouteMBean, Object> task = mrb -> {
String loc = mrb.getSourceLocation();
if (loc != null) {
@@ -91,22 +65,21 @@ public class SourceDevConsole extends AbstractDevConsole {
try {
Resource resource = PluginHelper.getResourceLoader(getCamelContext()).resolveResource(loc);
if (resource != null) {
- if (dump) {
- if (!sb.isEmpty()) {
- 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 (!sb.isEmpty()) {
+ 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);
}
} catch (Exception e) {
// ignore
@@ -114,7 +87,6 @@ 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");
@@ -131,8 +103,6 @@ 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<>();
@@ -142,75 +112,20 @@ public class SourceDevConsole extends AbstractDevConsole {
jo.put("routeId", mrb.getRouteId());
jo.put("from", mrb.getEndpointUri());
- String loc = mrb.getSourceLocation();
- 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);
- }
- }
+ if (mrb.getSourceLocation() != null) {
+ jo.put("source", mrb.getSourceLocation());
}
- return null;
- };
- doCall(options, task);
- root.put("routes", list);
- return root;
- }
-
- @Override
- protected String doCallRaw(Map<String, Object> options) {
- final StringBuilder sb = new StringBuilder();
- boolean dump = "true".equals(options.getOrDefault(DUMP, "true"));
- final AtomicInteger counter = new AtomicInteger();
- final AtomicReference<String> name = new AtomicReference<>();
-
- Function<ManagedRouteMBean, Object> task = mrb -> {
String loc = mrb.getSourceLocation();
- if (loc != null) {
- loc = LoggerHelper.stripSourceLocationLineNumber(loc);
- StringBuilder code = new StringBuilder();
- try {
- String onlyName = LoggerHelper.sourceNameOnly(mrb.getSourceLocation());
- Resource resource = PluginHelper.getResourceLoader(getCamelContext()).resolveResource(loc);
- if (resource != null) {
- if (dump) {
- // if we select only 1 file then remember the filename
- if (counter.incrementAndGet() == 1) {
- name.set(onlyName);
- } else {
- name.set(null);
- }
- if (!sb.isEmpty()) {
- sb.append("\n");
- }
- String text = IOHelper.loadText(resource.getInputStream());
- code.append(text);
- } else {
- // list of names
- sb.append(onlyName);
- }
- }
- } catch (Exception e) {
- // ignore
- }
- if (!code.isEmpty()) {
- sb.append(code);
- }
+ List<JsonObject> code = ConsoleHelper.loadSourceAsJson(getCamelContext(), loc);
+ if (code != null) {
+ jo.put("code", code);
}
- sb.append("\n");
return null;
};
doCall(options, task);
-
- if (name.get() != null) {
- options.put("Content-Disposition", String.format("attachment; filename=\"%s\"", name.get()));
- }
-
- return sb.toString();
+ root.put("routes", list);
+ return root;
}
protected void doCall(Map<String, Object> options, Function<ManagedRouteMBean, Object> task) {
@@ -240,11 +155,9 @@ 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(onlyName, filter);
+ || PatternHelper.matchPattern(mrb.getSourceLocationShort(), 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 82be71ac99f..6bf8d32d321 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,11 +319,9 @@ 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(onlyName, filter);
+ || PatternHelper.matchPattern(mrb.getSourceLocationShort(), 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 b0495908de6..a871604bdc7 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,14 +99,6 @@ 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) {
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/console/AbstractDevConsole.java b/core/camel-support/src/main/java/org/apache/camel/support/console/AbstractDevConsole.java
index 3d14a5050df..c664c61d3b0 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/console/AbstractDevConsole.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/console/AbstractDevConsole.java
@@ -57,8 +57,7 @@ public abstract class AbstractDevConsole extends ServiceSupport implements DevCo
@Override
public boolean supportMediaType(MediaType mediaType) {
- // text and json supported by default
- return mediaType == MediaType.TEXT || mediaType == MediaType.JSON;
+ return true;
}
@Override
@@ -106,8 +105,6 @@ public abstract class AbstractDevConsole extends ServiceSupport implements DevCo
try {
if (mediaType == MediaType.JSON) {
return doCallJson(options);
- } else if (mediaType == MediaType.RAW && supportMediaType(MediaType.RAW)) {
- return doCallRaw(options);
} else {
return doCallText(options);
}
@@ -116,17 +113,6 @@ public abstract class AbstractDevConsole extends ServiceSupport implements DevCo
}
}
- /**
- * Invokes and gets the output from this console in raw format.
- *
- * The returned object can for example be binary data for file downloads
- *
- * @see DevConsole#call(MediaType, Map)
- */
- protected Object doCallRaw(Map<String, Object> options) {
- return null;
- }
-
/**
* Invokes and gets the output from this console in json format.
*