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/08/24 09:25:59 UTC

[camel] branch camel-3.18.x updated: CAMEL-18424: camel-jbang - Dependency downloaded issue with camel-aws-s3

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch camel-3.18.x
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/camel-3.18.x by this push:
     new da5aacd839e CAMEL-18424: camel-jbang - Dependency downloaded issue with camel-aws-s3
da5aacd839e is described below

commit da5aacd839e39960db48b0a4599025164bd1e8ba
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Aug 24 11:23:26 2022 +0200

    CAMEL-18424: camel-jbang - Dependency downloaded issue with camel-aws-s3
---
 .../camel/main/download/MavenDependencyDownloader.java      | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

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 853cb5e1db4..130660862d8 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
@@ -32,6 +32,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
 import org.apache.camel.support.service.ServiceHelper;
 import org.apache.camel.support.service.ServiceSupport;
+import org.apache.camel.util.FileUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -238,17 +239,23 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
             ClassLoader cl = camelContext.getApplicationContextClassLoader();
             if (cl instanceof URLClassLoader) {
                 URLClassLoader ucl = (URLClassLoader) cl;
+                // create path like target to match against the file url
+                String urlTarget = groupId + "/" + artifactId;
+                urlTarget = urlTarget.replace('.', '/');
+                urlTarget += "/" + version + "/" + target + ".jar";
+                urlTarget = FileUtil.normalizePath(urlTarget); // windows vs linux
                 for (URL u : ucl.getURLs()) {
                     String s = u.toString();
-                    if (s.contains(target)) {
+                    s = FileUtil.normalizePath(s);
+                    if (s.contains(urlTarget)) {
                         // trigger listener
                         if (listener) {
                             for (DownloadListener dl : downloadListeners) {
                                 dl.onDownloadDependency(groupId, artifactId, version);
                             }
+                            // already on classpath
+                            return true;
                         }
-                        // already on classpath
-                        return true;
                     }
                 }
             }