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 2022/06/16 07:56:04 UTC
[camel] branch main updated: camel-jbang - Improved detect already on classpath
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 56858306040 camel-jbang - Improved detect already on classpath
56858306040 is described below
commit 568583060403da3ed49fb4758c08fe5f18c0baa1
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Jun 16 09:55:53 2022 +0200
camel-jbang - Improved detect already on classpath
---
.../main/console/DependencyDownloaderConsole.java | 3 ++-
.../main/download/MavenDependencyDownloader.java | 26 ++++++++++++++++++++++
2 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/console/DependencyDownloaderConsole.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/console/DependencyDownloaderConsole.java
index d2220ff2d8a..0ffc31a0d5d 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/console/DependencyDownloaderConsole.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/console/DependencyDownloaderConsole.java
@@ -27,7 +27,8 @@ import org.apache.camel.util.json.JsonObject;
public class DependencyDownloaderConsole extends AbstractDevConsole {
public DependencyDownloaderConsole() {
- super("jvm", "dependency-downloader", "Maven Dependency Downloader", "Displays information about dependencies downloaded at runtime");
+ super("jvm", "dependency-downloader", "Maven Dependency Downloader",
+ "Displays information about dependencies downloaded at runtime");
}
@Override
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java
index e409e735e2a..2606a5d45ff 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java
@@ -17,6 +17,8 @@
package org.apache.camel.main.download;
import java.io.File;
+import java.lang.management.ManagementFactory;
+import java.lang.management.RuntimeMXBean;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
@@ -38,6 +40,7 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
private static final Logger LOG = LoggerFactory.getLogger(MavenDependencyDownloader.class);
private static final String CP = System.getProperty("java.class.path");
+ private String[] bootClasspath;
private DownloadThreadPool threadPool;
private CamelContext camelContext;
private DownloadListener downloadListener;
@@ -152,6 +155,20 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
target = target + "-" + version;
}
+ if (bootClasspath != null) {
+ for (String s : bootClasspath) {
+ if (s.contains(target)) {
+ // trigger listener
+ DownloadListener listener = camelContext.getExtension(DownloadListener.class);
+ if (listener != null) {
+ listener.onAlreadyDownloadedDependency(groupId, artifactId, version);
+ }
+ // already on classpath
+ return true;
+ }
+ }
+ }
+
if (camelContext.getApplicationContextClassLoader() != null) {
ClassLoader cl = camelContext.getApplicationContextClassLoader();
if (cl instanceof URLClassLoader) {
@@ -180,6 +197,15 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
ServiceHelper.buildService(threadPool);
}
+ @Override
+ protected void doInit() throws Exception {
+ RuntimeMXBean mb = ManagementFactory.getRuntimeMXBean();
+ if (mb != null) {
+ bootClasspath = mb.getClassPath().split("[:|;]");
+ }
+ ServiceHelper.initService(threadPool);
+ }
+
@Override
protected void doStop() throws Exception {
ServiceHelper.stopAndShutdownService(threadPool);