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/15 09:00:48 UTC

[camel] 03/03: CAMEL-18194: camel-jbang - Refactor to make download code as single service.

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 3328af350ccd6206bb781876324ecf1db13faf49
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Jun 15 10:58:12 2022 +0200

    CAMEL-18194: camel-jbang - Refactor to make download code as single service.
---
 .../camel/dsl/jbang/core/commands/BaseExport.java      |  2 +-
 .../camel/dsl/jbang/core/commands/ExportCamelMain.java |  2 +-
 .../camel/dsl/jbang/core/commands/ExportQuarkus.java   |  2 +-
 .../dsl/jbang/core/commands/ExportSpringBoot.java      |  2 +-
 .../main/download/CommandLineDependencyDownloader.java |  4 ++--
 .../main/download/DependencyDownloaderKamelet.java     |  4 ++--
 .../main/download/DependencyDownloaderStrategy.java    |  2 +-
 .../camel/main/download/KnownDependenciesResolver.java |  2 +-
 .../camel/main/download/MavenDependencyResolver.java   |  2 +-
 .../java/org/apache/camel/main/download/MavenGav.java  | 18 +++++++++++-------
 .../test/java/org/apache/camel/main/MavenGavTest.java  |  9 ++++++---
 11 files changed, 28 insertions(+), 21 deletions(-)

diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/BaseExport.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/BaseExport.java
index 36e8753c251..152970d3e2d 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/BaseExport.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/BaseExport.java
@@ -145,7 +145,7 @@ abstract class BaseExport extends CamelCommand {
         Map<String, String> versions = new HashMap<>();
         Set<String> toBeRemoved = new HashSet<>();
         for (String line : answer) {
-            MavenGav gav = MavenGav.parseGav(null, line);
+            MavenGav gav = MavenGav.parseGav(line);
             String ga = gav.getGroupId() + ":" + gav.getArtifactId();
             if (!versions.containsKey(ga)) {
                 versions.put(ga, gav.getVersion());
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
index 781d7496b0c..42097d1c3a1 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
@@ -152,7 +152,7 @@ class ExportCamelMain extends BaseExport {
 
         StringBuilder sb = new StringBuilder();
         for (String dep : deps) {
-            MavenGav gav = MavenGav.parseGav(null, dep);
+            MavenGav gav = MavenGav.parseGav(dep);
             String gid = gav.getGroupId();
             String aid = gav.getArtifactId();
             String v = gav.getVersion();
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
index 77a0655792d..5f501fc9da0 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
@@ -158,7 +158,7 @@ class ExportQuarkus extends BaseExport {
 
         StringBuilder sb = new StringBuilder();
         for (String dep : deps) {
-            MavenGav gav = MavenGav.parseGav(null, dep);
+            MavenGav gav = MavenGav.parseGav(dep);
             String gid = gav.getGroupId();
             String aid = gav.getArtifactId();
             String v = gav.getVersion();
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
index 5009ef15e7e..b2ce308d964 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
@@ -152,7 +152,7 @@ class ExportSpringBoot extends BaseExport {
 
         StringBuilder sb = new StringBuilder();
         for (String dep : deps) {
-            MavenGav gav = MavenGav.parseGav(null, dep);
+            MavenGav gav = MavenGav.parseGav(dep);
             String gid = gav.getGroupId();
             String aid = gav.getArtifactId();
             String v = gav.getVersion();
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/CommandLineDependencyDownloader.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/CommandLineDependencyDownloader.java
index b2209da6eec..451be0233b2 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/CommandLineDependencyDownloader.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/CommandLineDependencyDownloader.java
@@ -54,7 +54,7 @@ public class CommandLineDependencyDownloader extends ServiceSupport {
 
         if (!gavs.isEmpty()) {
             for (String gav : gavs) {
-                MavenGav mg = MavenGav.parseGav(camelContext, gav);
+                MavenGav mg = MavenGav.parseGav(gav, camelContext.getVersion());
                 downloader.downloadDependency(mg.getGroupId(), mg.getArtifactId(),
                         mg.getVersion());
             }
@@ -62,7 +62,7 @@ public class CommandLineDependencyDownloader extends ServiceSupport {
     }
 
     private boolean isValidGav(String gav) {
-        MavenGav mg = MavenGav.parseGav(camelContext, gav);
+        MavenGav mg = MavenGav.parseGav(gav, camelContext.getVersion());
         boolean exists
                 = downloader.alreadyOnClasspath(mg.getGroupId(), mg.getArtifactId(), mg.getVersion());
         // valid if not already on classpath
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderKamelet.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderKamelet.java
index b97ef3b1a67..5c8f0c37a56 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderKamelet.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderKamelet.java
@@ -161,7 +161,7 @@ public final class DependencyDownloaderKamelet extends ServiceSupport
 
             if (!gavs.isEmpty()) {
                 for (String gav : gavs) {
-                    MavenGav mg = MavenGav.parseGav(camelContext, gav);
+                    MavenGav mg = MavenGav.parseGav(gav, camelContext.getVersion());
                     downloader.downloadDependency(mg.getGroupId(), mg.getArtifactId(), mg.getVersion());
                     downloaded.add(gav);
                 }
@@ -179,7 +179,7 @@ public final class DependencyDownloaderKamelet extends ServiceSupport
                 return false;
             }
 
-            MavenGav mg = MavenGav.parseGav(camelContext, gav);
+            MavenGav mg = MavenGav.parseGav(gav, camelContext.getVersion());
             boolean exists = downloader.alreadyOnClasspath(mg.getGroupId(), 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/download/DependencyDownloaderStrategy.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderStrategy.java
index aec7bf63c67..133930ec831 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderStrategy.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderStrategy.java
@@ -31,7 +31,7 @@ public class DependencyDownloaderStrategy implements DependencyStrategy {
 
     @Override
     public void onDependency(String dependency) {
-        MavenGav gav = MavenGav.parseGav(camelContext, dependency);
+        MavenGav gav = MavenGav.parseGav(dependency, camelContext.getVersion());
         if (!downloader.alreadyOnClasspath(gav.getGroupId(), gav.getArtifactId(), gav.getVersion())) {
             downloader.downloadDependency(gav.getGroupId(), gav.getArtifactId(),
                     gav.getVersion());
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/KnownDependenciesResolver.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/KnownDependenciesResolver.java
index dd1cca2f96c..9adb8826a18 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/KnownDependenciesResolver.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/KnownDependenciesResolver.java
@@ -57,7 +57,7 @@ public final class KnownDependenciesResolver {
     public MavenGav mavenGavForClass(String className) {
         String gav = mappings.get(className);
         if (gav != null) {
-            return MavenGav.parseGav(camelContext, gav);
+            return MavenGav.parseGav(gav, camelContext.getVersion());
         }
         return null;
     }
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyResolver.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyResolver.java
index f3a371054ab..0ab589d7552 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyResolver.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyResolver.java
@@ -96,7 +96,7 @@ public final class MavenDependencyResolver {
                     .map(mra -> {
                         String gav = mra.getCoordinate().getGroupId() + ":" + mra.getCoordinate().getArtifactId() + ":"
                                      + mra.getCoordinate().getVersion();
-                        return new MavenArtifact(MavenGav.parseGav(null, gav), mra.asFile());
+                        return new MavenArtifact(MavenGav.parseGav(gav), mra.asFile());
                     })
                     .collect(Collectors.toList());
         } catch (ResolutionException e) {
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenGav.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenGav.java
index f31cd96553d..445b829538d 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenGav.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenGav.java
@@ -30,7 +30,11 @@ public final class MavenGav {
     public MavenGav() {
     }
 
-    public static MavenGav parseGav(CamelContext context, String gav) {
+    public static MavenGav parseGav(String gav) {
+        return parseGav(gav, null);
+    }
+
+    public static MavenGav parseGav(String gav, String defaultVersion) {
         MavenGav answer = new MavenGav();
         // camel-k style GAV
         if (gav.startsWith("camel:")) {
@@ -44,8 +48,8 @@ public final class MavenGav {
                 a = "camel-" + a;
             }
             answer.setArtifactId(a);
-            if (context != null) {
-                answer.setVersion(context.getVersion());
+            if (defaultVersion != null) {
+                answer.setVersion(defaultVersion);
             }
         } else if (gav.startsWith("camel-") && !(gav.contains(":") || gav.contains("/"))) {
             // not really camel-k style but users may mistakenly use camel-file instead of camel:file
@@ -56,8 +60,8 @@ public final class MavenGav {
                 a = "camel-" + a.substring(14);
             }
             answer.setArtifactId(a);
-            if (context != null) {
-                answer.setVersion(context.getVersion());
+            if (defaultVersion != null) {
+                answer.setVersion(defaultVersion);
             }
         } else if (gav.startsWith("org.apache.camel:")) {
             String[] parts = gav.split(":");
@@ -69,8 +73,8 @@ public final class MavenGav {
             }
             if (parts.length > 2) {
                 answer.setVersion(parts[2]);
-            } else if (context != null) {
-                answer.setVersion(context.getVersion());
+            } else if (defaultVersion != null) {
+                answer.setVersion(defaultVersion);
             }
         } else {
             String[] parts = gav.startsWith("mvn:") ? gav.substring(4).split(":") : gav.split(":");
diff --git a/dsl/camel-kamelet-main/src/test/java/org/apache/camel/main/MavenGavTest.java b/dsl/camel-kamelet-main/src/test/java/org/apache/camel/main/MavenGavTest.java
index 6bc7d79edaa..e642dc26202 100644
--- a/dsl/camel-kamelet-main/src/test/java/org/apache/camel/main/MavenGavTest.java
+++ b/dsl/camel-kamelet-main/src/test/java/org/apache/camel/main/MavenGavTest.java
@@ -20,28 +20,31 @@ import org.apache.camel.main.download.MavenGav;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
 
 class MavenGavTest {
 
     @Test
     void parseCoreGav() {
-        MavenGav gav = MavenGav.parseGav(null, "camel:core");
+        MavenGav gav = MavenGav.parseGav("camel:core", "3.16.0");
 
         assertEquals("org.apache.camel", gav.getGroupId());
         assertEquals("camel-core", gav.getArtifactId());
+        assertEquals("3.16.0", gav.getVersion());
     }
 
     @Test
     void parseCamelCoreGav() {
-        MavenGav gav = MavenGav.parseGav(null, "camel:camel-core");
+        MavenGav gav = MavenGav.parseGav("camel:camel-core");
 
         assertEquals("org.apache.camel", gav.getGroupId());
         assertEquals("camel-core", gav.getArtifactId());
+        assertNull(gav.getVersion());
     }
 
     @Test
     void parseOtherGav() {
-        MavenGav gav = MavenGav.parseGav(null, "mvn:org.junit:junit-api:99.99");
+        MavenGav gav = MavenGav.parseGav("mvn:org.junit:junit-api:99.99");
 
         assertEquals("org.junit", gav.getGroupId());
         assertEquals("junit-api", gav.getArtifactId());