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 2ce5df2996f CAMEL-18188: camel-jbang - Use apache maven to download 
JARs instead of groovy grape
2ce5df2996f is described below

commit 2ce5df2996f49f3ac088c4d98ccdcc8ab63046fb
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Mon Jun 13 15:37:40 2022 +0200

    CAMEL-18188: camel-jbang - Use apache maven to download JARs instead of 
groovy grape
---
 .../java/org/apache/camel/main/DependencyUtil.java     |  8 +++-----
 .../java/org/apache/camel/main/DownloaderHelper.java   | 18 +++++++++++++-----
 .../java/org/apache/camel/main/DependencyUtilTest.java |  2 +-
 3 files changed, 17 insertions(+), 11 deletions(-)

diff --git 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyUtil.java
 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyUtil.java
index 46aa80fdd50..706374ae33a 100644
--- 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyUtil.java
+++ 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyUtil.java
@@ -39,10 +39,10 @@ final class DependencyUtil {
 
     public static List<MavenArtifact> resolveDependenciesViaAether(
             List<String> depIds, List<String> customRepos,
-            boolean offline, boolean updateCache, boolean transitively) {
+            boolean offline, boolean transitively) {
 
         ConfigurableMavenResolverSystem resolver = Maven.configureResolver()
-                .withMavenCentralRepo(true)
+                .withMavenCentralRepo(false)
                 .workOffline(offline);
 
         if (customRepos != null) {
@@ -50,9 +50,7 @@ final class DependencyUtil {
                 String repo = customRepos.get(i);
                 MavenRemoteRepository repository
                         = 
MavenRemoteRepositories.createRemoteRepository("custom" + i + 1, repo, 
"default");
-                if (updateCache) {
-                    
repository.setUpdatePolicy(MavenUpdatePolicy.UPDATE_POLICY_ALWAYS);
-                }
+                
repository.setUpdatePolicy(MavenUpdatePolicy.UPDATE_POLICY_NEVER);
                 resolver.withRemoteRepo(repository);
             }
         }
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 1b45164789d..6b7abfe6aad 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
@@ -19,6 +19,7 @@ package org.apache.camel.main;
 import java.io.File;
 import java.net.URL;
 import java.net.URLClassLoader;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -35,6 +36,7 @@ public final class DownloaderHelper {
     private static final Logger LOG = 
LoggerFactory.getLogger(DownloaderHelper.class);
     private static final String CP = System.getProperty("java.class.path");
 
+    private static final String APACHE_SNAPSHOT_REPO = 
"https://repository.apache.org/snapshots";;
     private static final DownloadThreadPool DOWNLOAD_THREAD_POOL = new 
DownloadThreadPool();
 
     private DownloaderHelper() {
@@ -69,19 +71,25 @@ public final class DownloaderHelper {
         DOWNLOAD_THREAD_POOL.download(LOG, () -> {
             LOG.debug("Downloading: {}", gav);
             List<String> deps = List.of(gav);
-            List<String> customRepos = null;
+            List<String> customRepos = new ArrayList<>();
+            // include Apache snapshot to make it easy to use upcoming release
+            customRepos.add(APACHE_SNAPSHOT_REPO);
             if (repos != null) {
-                customRepos = 
Arrays.stream(repos.split(",")).collect(Collectors.toList());
+                
customRepos.addAll(Arrays.stream(repos.split(",")).collect(Collectors.toList()));
             }
-            List<MavenArtifact> artifacts = 
DependencyUtil.resolveDependenciesViaAether(deps, customRepos, false, true, 
true);
+            List<MavenArtifact> artifacts = 
DependencyUtil.resolveDependenciesViaAether(deps, customRepos, false, true);
             LOG.debug("Resolved {} -> [{}]", gav, artifacts);
 
             DependencyDownloaderClassLoader classLoader
                     = (DependencyDownloaderClassLoader) 
camelContext.getApplicationContextClassLoader();
             for (MavenArtifact a : artifacts) {
                 File file = a.getFile();
-                classLoader.addFile(file);
-                LOG.trace("Added classpath: {}", a.getGav());
+                // only add to classpath if not already present
+                if (!alreadyOnClasspath(camelContext, a.getGav().getGroupId(), 
a.getGav().getArtifactId(),
+                        a.getGav().getVersion())) {
+                    classLoader.addFile(file);
+                    LOG.trace("Added classpath: {}", a.getGav());
+                }
             }
         }, gav);
     }
diff --git 
a/dsl/camel-kamelet-main/src/test/java/org/apache/camel/main/DependencyUtilTest.java
 
b/dsl/camel-kamelet-main/src/test/java/org/apache/camel/main/DependencyUtilTest.java
index 374b17fc6ed..d6473fba987 100644
--- 
a/dsl/camel-kamelet-main/src/test/java/org/apache/camel/main/DependencyUtilTest.java
+++ 
b/dsl/camel-kamelet-main/src/test/java/org/apache/camel/main/DependencyUtilTest.java
@@ -26,7 +26,7 @@ public class DependencyUtilTest {
     @Test
     public void testDownload() throws Exception {
         List<String> deps = List.of("org.apache.camel:camel-core:3.17.0");
-        List<MavenArtifact> answer = 
DependencyUtil.resolveDependenciesViaAether(deps, null, false, false, true);
+        List<MavenArtifact> answer = 
DependencyUtil.resolveDependenciesViaAether(deps, null, false, true);
         Assertions.assertNotNull(answer);
         Assertions.assertTrue(answer.size() > 15);
     }

Reply via email to