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/03/02 12:25:22 UTC

[camel] branch main updated: CAMEL-17734: camel-jbang - Fix download JARs to work with kamelets and better in general using version in match for CP

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 4ecad08  CAMEL-17734: camel-jbang - Fix download JARs to work with kamelets and better in general using version in match for CP
4ecad08 is described below

commit 4ecad08eb66cb62759940f253de4d93ba80bc6b5
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Mar 2 13:23:40 2022 +0100

    CAMEL-17734: camel-jbang - Fix download JARs to work with kamelets and better in general using version in match for CP
---
 .../apache/camel/main/CommandLineDependencyDownloader.java    |  2 +-
 .../apache/camel/main/DependencyDownloaderClassResolver.java  |  2 +-
 .../camel/main/DependencyDownloaderComponentResolver.java     |  2 +-
 .../camel/main/DependencyDownloaderDataFormatResolver.java    |  2 +-
 .../camel/main/DependencyDownloaderLanguageResolver.java      |  2 +-
 .../main/DependencyDownloaderPropertyBindingListener.java     |  2 +-
 .../apache/camel/main/DependencyDownloaderRoutesLoader.java   |  2 +-
 .../org/apache/camel/main/DependencyDownloaderStrategy.java   |  2 +-
 .../src/main/java/org/apache/camel/main/DownloaderHelper.java | 11 ++++++++---
 .../main/java/org/apache/camel/main/KameletYamlRoutes.java    |  2 +-
 10 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/CommandLineDependencyDownloader.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/CommandLineDependencyDownloader.java
index 4146d19..f6f4b82 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/CommandLineDependencyDownloader.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/CommandLineDependencyDownloader.java
@@ -70,7 +70,7 @@ public class CommandLineDependencyDownloader extends ServiceSupport implements C
 
     private boolean isValidGav(String gav) {
         MavenGav mg = MavenGav.parseGav(camelContext, gav);
-        boolean exists = DownloaderHelper.alreadyOnClasspath(camelContext, mg.getArtifactId());
+        boolean exists = DownloaderHelper.alreadyOnClasspath(camelContext, mg.getArtifactId(), mg.getVersion());
         // valid if not already on classpath
         return !exists;
     }
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderClassResolver.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderClassResolver.java
index fa1fe5e..2f73a8e 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderClassResolver.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderClassResolver.java
@@ -42,7 +42,7 @@ final class DependencyDownloaderClassResolver extends DefaultClassResolver {
             // okay maybe the class is from a known GAV that we can download first and then load the class
             MavenGav gav = knownDependenciesResolver.mavenGavForClass(name);
             if (gav != null) {
-                if (!DownloaderHelper.alreadyOnClasspath(getCamelContext(), gav.getArtifactId())) {
+                if (!DownloaderHelper.alreadyOnClasspath(getCamelContext(), gav.getArtifactId(), gav.getVersion())) {
                     DownloaderHelper.downloadDependency(getCamelContext(), gav.getGroupId(), gav.getArtifactId(),
                             gav.getVersion());
                 }
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderComponentResolver.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderComponentResolver.java
index 05dcc63..3f68108 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderComponentResolver.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderComponentResolver.java
@@ -50,7 +50,7 @@ final class DependencyDownloaderComponentResolver extends DefaultComponentResolv
     @Override
     public Component resolveComponent(String name, CamelContext context) {
         ComponentModel model = catalog.componentModel(name);
-        if (model != null && !DownloaderHelper.alreadyOnClasspath(camelContext, model.getArtifactId())) {
+        if (model != null && !DownloaderHelper.alreadyOnClasspath(camelContext, model.getArtifactId(), model.getVersion())) {
             DownloaderHelper.downloadDependency(camelContext, model.getGroupId(), model.getArtifactId(), model.getVersion());
         }
         Component answer = super.resolveComponent(name, context);
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderDataFormatResolver.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderDataFormatResolver.java
index 5bed214..d520a25 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderDataFormatResolver.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderDataFormatResolver.java
@@ -49,7 +49,7 @@ final class DependencyDownloaderDataFormatResolver extends DefaultDataFormatReso
     @Override
     public DataFormat createDataFormat(String name, CamelContext context) {
         DataFormatModel model = catalog.dataFormatModel(name);
-        if (model != null && !DownloaderHelper.alreadyOnClasspath(camelContext, model.getArtifactId())) {
+        if (model != null && !DownloaderHelper.alreadyOnClasspath(camelContext, model.getArtifactId(), model.getVersion())) {
             DownloaderHelper.downloadDependency(camelContext, model.getGroupId(), model.getArtifactId(), model.getVersion());
         }
         return super.createDataFormat(name, context);
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderLanguageResolver.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderLanguageResolver.java
index c7164f7..38de22c 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderLanguageResolver.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderLanguageResolver.java
@@ -49,7 +49,7 @@ final class DependencyDownloaderLanguageResolver extends DefaultLanguageResolver
     @Override
     public Language resolveLanguage(String name, CamelContext context) {
         LanguageModel model = catalog.languageModel(name);
-        if (model != null && !DownloaderHelper.alreadyOnClasspath(camelContext, model.getArtifactId())) {
+        if (model != null && !DownloaderHelper.alreadyOnClasspath(camelContext, model.getArtifactId(), model.getVersion())) {
             DownloaderHelper.downloadDependency(camelContext, model.getGroupId(), model.getArtifactId(), model.getVersion());
         }
 
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderPropertyBindingListener.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderPropertyBindingListener.java
index 627480b..974b85a 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderPropertyBindingListener.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderPropertyBindingListener.java
@@ -36,7 +36,7 @@ class DependencyDownloaderPropertyBindingListener implements PropertyBindingList
             String s = (String) value;
             MavenGav gav = knownDependenciesResolver.mavenGavForClass(s);
             if (gav != null) {
-                if (!DownloaderHelper.alreadyOnClasspath(camelContext, gav.getArtifactId())) {
+                if (!DownloaderHelper.alreadyOnClasspath(camelContext, gav.getArtifactId(), gav.getVersion())) {
                     DownloaderHelper.downloadDependency(camelContext, gav.getGroupId(), gav.getArtifactId(),
                             gav.getVersion());
                 }
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderRoutesLoader.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderRoutesLoader.java
index 30503d2..edd76ae 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderRoutesLoader.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderRoutesLoader.java
@@ -78,7 +78,7 @@ public class DependencyDownloaderRoutesLoader extends DefaultRoutesLoader {
     }
 
     private void downloadLoader(String artifactId) {
-        if (!DownloaderHelper.alreadyOnClasspath(getCamelContext(), artifactId)) {
+        if (!DownloaderHelper.alreadyOnClasspath(getCamelContext(), artifactId, getCamelContext().getVersion())) {
             DownloaderHelper.downloadDependency(getCamelContext(), "org.apache.camel", artifactId,
                     getCamelContext().getVersion());
         }
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderStrategy.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderStrategy.java
index 20804dd..44fc10f 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderStrategy.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderStrategy.java
@@ -30,7 +30,7 @@ class DependencyDownloaderStrategy implements DependencyStrategy {
     @Override
     public void onDependency(String dependency) {
         MavenGav gav = MavenGav.parseGav(camelContext, dependency);
-        if (!DownloaderHelper.alreadyOnClasspath(camelContext, gav.getArtifactId())) {
+        if (!DownloaderHelper.alreadyOnClasspath(camelContext, gav.getArtifactId(), gav.getVersion())) {
             DownloaderHelper.downloadDependency(camelContext, gav.getGroupId(), gav.getArtifactId(),
                     gav.getVersion());
         }
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DownloaderHelper.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DownloaderHelper.java
index 5b3f81e..29ac044 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DownloaderHelper.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DownloaderHelper.java
@@ -51,15 +51,20 @@ public final class DownloaderHelper {
                 TimeUtils.printDuration(watch.taken()));
     }
 
-    public static boolean alreadyOnClasspath(CamelContext camelContext, String artifactId) {
+    public static boolean alreadyOnClasspath(CamelContext camelContext, String artifactId, String version) {
         // if no artifact then regard this as okay
         if (artifactId == null) {
             return true;
         }
 
+        String target = artifactId;
+        if (version != null) {
+            target = target + "-" + version;
+        }
+
         if (CP != null) {
             // is it already on classpath
-            if (CP.contains(artifactId)) {
+            if (CP.contains(target)) {
                 // already on classpath
                 return true;
             }
@@ -71,7 +76,7 @@ public final class DownloaderHelper {
                 URLClassLoader ucl = (URLClassLoader) cl;
                 for (URL u : ucl.getURLs()) {
                     String s = u.toString();
-                    if (s.contains(artifactId)) {
+                    if (s.contains(target)) {
                         // already on classpath
                         return true;
                     }
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletYamlRoutes.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletYamlRoutes.java
index 3417993..a57422c 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletYamlRoutes.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletYamlRoutes.java
@@ -122,7 +122,7 @@ class KameletYamlRoutes extends YamlRoutesBuilderLoaderSupport implements CamelC
         }
 
         MavenGav mg = MavenGav.parseGav(camelContext, gav);
-        boolean exists = DownloaderHelper.alreadyOnClasspath(camelContext, mg.getArtifactId());
+        boolean exists = DownloaderHelper.alreadyOnClasspath(camelContext, mg.getArtifactId(), mg.getVersion());
         // valid if not already on classpath
         return !exists;
     }