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 2023/03/09 15:02:52 UTC

[camel] branch camel-3.20.x updated (7c65135a774 -> ab710be9a3e)

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

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


    from 7c65135a774 Fix saga-eip timeout description (#9472)
     new e6f5b2aa888 CAMEL-18983: camel-jbang - Automatic detect atlassian maven repo when using camel-jira
     new 7c2fa30e591 CAMEL-18983: camel-jbang - export - Add known maven repos such when using camel-jira.
     new 481b61ea216 CAMEL-18983: camel-jbang - export - Add known maven repos such when using camel-jira.
     new ab710be9a3e CAMEL-18983: camel-jbang - export - Add known maven repos such when using camel-jira.

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../core/commands/catalog/CatalogBaseCommand.java  |  2 +-
 .../java/org/apache/camel/main/KameletMain.java    |  4 ++
 .../camel/main/download/DependencyDownloader.java  | 10 ++++
 ...enciesResolver.java => KnownReposResolver.java} | 25 ++++------
 .../main/download/MavenDependencyDownloader.java   | 54 ++++++++++++++++++++--
 .../resources/camel-main-known-repos.properties    |  2 +-
 6 files changed, 76 insertions(+), 21 deletions(-)
 copy dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/{KnownDependenciesResolver.java => KnownReposResolver.java} (68%)
 copy components/camel-cdi/src/test/resources/foo.properties => dsl/camel-kamelet-main/src/main/resources/camel-main-known-repos.properties (94%)


[camel] 04/04: CAMEL-18983: camel-jbang - export - Add known maven repos such when using camel-jira.

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit ab710be9a3e90a557066e35ccc9eda218e61aa02
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Mar 9 15:59:49 2023 +0100

    CAMEL-18983: camel-jbang - export - Add known maven repos such when using camel-jira.
---
 .../main/java/org/apache/camel/dsl/jbang/core/commands/Run.java   | 8 --------
 .../camel/dsl/jbang/core/commands/catalog/CatalogBaseCommand.java | 2 +-
 2 files changed, 1 insertion(+), 9 deletions(-)

diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
index 3b66ffbd3c1..9a9870500af 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
@@ -1073,14 +1073,6 @@ public class Run extends CamelCommand {
             }
         }
 
-        @Override
-        public void onExtraRepository(String repo) {
-            if (!repos.contains(repo)) {
-                writeSettings("repository", repo);
-                repos.add(repo);
-            }
-        }
-
         @Override
         public void onLoadingKamelet(String name) {
             if (!kamelets.contains(name)) {
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogBaseCommand.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogBaseCommand.java
index f3f3a9043e3..576c462279d 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogBaseCommand.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogBaseCommand.java
@@ -47,7 +47,7 @@ public abstract class CatalogBaseCommand extends CamelCommand {
     String runtime;
 
     @CommandLine.Option(names = { "--quarkus-version" }, description = "Quarkus Platform version",
-                        defaultValue = "2.16.0.Final")
+                        defaultValue = "2.16.4.Final")
     String quarkusVersion;
 
     @CommandLine.Option(names = { "--repos" },


[camel] 01/04: CAMEL-18983: camel-jbang - Automatic detect atlassian maven repo when using camel-jira

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit e6f5b2aa88844204dd2e419a4a70b4c8759b0c40
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Mar 6 08:57:50 2023 +0100

    CAMEL-18983: camel-jbang - Automatic detect atlassian maven repo when using camel-jira
---
 .../java/org/apache/camel/main/KameletMain.java    |  4 ++
 .../camel/main/download/DependencyDownloader.java  | 10 ++++
 .../camel/main/download/KnownReposResolver.java    | 64 ++++++++++++++++++++++
 .../main/download/MavenDependencyDownloader.java   | 56 +++++++++++++++++--
 .../resources/camel-main-known-repos.properties    | 18 ++++++
 5 files changed, 147 insertions(+), 5 deletions(-)

diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
index 3d486c8ac48..96764e89c5a 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
@@ -48,6 +48,7 @@ import org.apache.camel.main.download.DownloadListener;
 import org.apache.camel.main.download.DownloadModelineParser;
 import org.apache.camel.main.download.KameletMainInjector;
 import org.apache.camel.main.download.KnownDependenciesResolver;
+import org.apache.camel.main.download.KnownReposResolver;
 import org.apache.camel.main.download.MavenDependencyDownloader;
 import org.apache.camel.main.download.TypeConverterLoaderDownloadListener;
 import org.apache.camel.main.http.VertxHttpServer;
@@ -311,7 +312,10 @@ public class KameletMain extends MainCommandLineSupport {
             answer.getPackageScanClassResolver().addClassLoader(dynamicCL);
             answer.getPackageScanResourceResolver().addClassLoader(dynamicCL);
 
+            KnownReposResolver known = new KnownReposResolver(camelContext);
+            known.loadKnownDependencies();
             MavenDependencyDownloader downloader = new MavenDependencyDownloader();
+            downloader.setKnownReposResolver(known);
             downloader.setClassLoader(dynamicCL);
             downloader.setCamelContext(answer);
             downloader.setRepos(repos);
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloader.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloader.java
index cce2e991f6e..1ebf173e5a3 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloader.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloader.java
@@ -81,6 +81,16 @@ public interface DependencyDownloader extends CamelContextAware, StaticService {
      */
     void downloadDependency(String groupId, String artifactId, String version);
 
+    /**
+     * Downloads the dependency incl transitive dependencies
+     *
+     * @param groupId    maven group id
+     * @param artifactId maven artifact id
+     * @param version    maven version
+     * @param extraRepos additional remote maven repositories to use when downloading
+     */
+    void downloadDependency(String groupId, String artifactId, String version, String extraRepos);
+
     /**
      * Downloads the dependency
      *
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/KnownReposResolver.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/KnownReposResolver.java
new file mode 100644
index 00000000000..fc5626010f1
--- /dev/null
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/KnownReposResolver.java
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.main.download;
+
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+import org.apache.camel.CamelContext;
+
+public final class KnownReposResolver {
+
+    private final Map<String, String> repos = new HashMap<>();
+    private final CamelContext camelContext;
+
+    public KnownReposResolver(CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public void loadKnownDependencies() {
+        doLoadKnownRepos("/camel-main-known-repos.properties");
+    }
+
+    private void doLoadKnownRepos(String name) {
+        try {
+            InputStream is = getClass().getResourceAsStream(name);
+            if (is != null) {
+                Properties prop = new Properties();
+                prop.load(is);
+                Map<String, String> map = new HashMap<>();
+                for (String key : prop.stringPropertyNames()) {
+                    String value = prop.getProperty(key);
+                    map.put(key, value);
+                }
+                addRepos(map);
+            }
+        } catch (Throwable e) {
+            // ignore
+        }
+    }
+
+    public void addRepos(Map<String, String> repos) {
+        this.repos.putAll(repos);
+    }
+
+    public String getRepo(String key) {
+        return repos.get(key);
+    }
+}
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 55a04316ce6..2f941705588 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
@@ -214,6 +214,7 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
     private static final RepositoryPolicy POLICY_DISABLED = new RepositoryPolicy(
             false, RepositoryPolicy.UPDATE_POLICY_NEVER, RepositoryPolicy.CHECKSUM_POLICY_IGNORE);
 
+    int customCount = 1;
     private String[] bootClasspath;
     private DownloadThreadPool threadPool;
     private DIRegistry registry;
@@ -221,13 +222,14 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
     private CamelContext camelContext;
     private final Set<DownloadListener> downloadListeners = new LinkedHashSet<>();
     private final Set<ArtifactDownloadListener> artifactDownloadListeners = new LinkedHashSet<>();
+    private KnownReposResolver knownReposResolver;
 
     // repository URLs set from "camel.jbang.repos" property or --repos option.
     private String repos;
     private boolean fresh;
 
     private String mavenSettings;
-    private String mavenSettingsSecurity;
+    private String mavenSettingsSecurity;7
     private RepositorySystem repositorySystem;
     private RepositorySystemSession repositorySystemSession;
     // actual repositories to be used with maven-resolver
@@ -253,6 +255,14 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
         this.classLoader = classLoader;
     }
 
+    public KnownReposResolver getKnownReposResolver() {
+        return knownReposResolver;
+    }
+
+    public void setKnownReposResolver(KnownReposResolver knownReposResolver) {
+        this.knownReposResolver = knownReposResolver;
+    }
+
     @Override
     public void addDownloadListener(DownloadListener downloadListener) {
         CamelContextAware.trySetCamelContext(downloadListener, getCamelContext());
@@ -310,19 +320,24 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
         downloadDependency(groupId, artifactId, version, true);
     }
 
+    @Override
+    public void downloadDependency(String groupId, String artifactId, String version, String extraRepos) {
+        doDownloadDependency(groupId, artifactId, version, true, false, extraRepos);
+    }
+
     @Override
     public void downloadHiddenDependency(String groupId, String artifactId, String version) {
-        doDownloadDependency(groupId, artifactId, version, true, true);
+        doDownloadDependency(groupId, artifactId, version, true, true, null);
     }
 
     @Override
     public void downloadDependency(String groupId, String artifactId, String version, boolean transitively) {
-        doDownloadDependency(groupId, artifactId, version, transitively, false);
+        doDownloadDependency(groupId, artifactId, version, transitively, false, null);
     }
 
     protected void doDownloadDependency(
             String groupId, String artifactId, String version, boolean transitively,
-            boolean hidden) {
+            boolean hidden, String extraRepos) {
 
         if (!hidden) {
             // trigger listener
@@ -501,6 +516,38 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
         }
     }
 
+    private List<RemoteRepository> resolveExtraRepositories(String extraRepos) {
+        List<RemoteRepository> repositories = new ArrayList<>();
+        if (extraRepos != null) {
+            Set<URL> repositoryURLs = new HashSet<>();
+            for (String repo : extraRepos.split(",")) {
+                try {
+                    URL url = new URL(repo);
+                    if (url.getHost().equals("repo1.maven.org")) {
+                        continue;
+                    }
+                    String id = "custom" + customCount++;
+                    RepositoryPolicy releasePolicy = fresh ? POLICY_FRESH : POLICY_DEFAULT;
+                    if (repositoryURLs.add(url)) {
+                        if (url.getHost().equals("repository.apache.org") && url.getPath().contains("/snapshots")) {
+                            apacheSnapshotsIncluded = true;
+                            repositories.add(apacheSnapshots);
+                        } else {
+                            // both snapshots and releases allowed for custom repos
+                            repositories.add(new RemoteRepository.Builder(id, "default", repo)
+                                    .setReleasePolicy(releasePolicy)
+                                    .setSnapshotPolicy(fresh ? POLICY_FRESH : POLICY_DEFAULT)
+                                    .build());
+                        }
+                    }
+                } catch (MalformedURLException e) {
+                    LOG.warn("Can't use {} URL: {}. Skipping.", repo, e.getMessage(), e);
+                }
+            }
+        }
+        return repositories;
+    }
+
     @Override
     protected void doBuild() throws Exception {
         if (classLoader == null && camelContext != null) {
@@ -1113,7 +1160,6 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
                 .build();
 
         // and custom repos and remember URLs to not duplicate the repositories from the settings
-        int customCount = 1;
         if (repos != null) {
             for (String repo : repos.split(",")) {
                 try {
diff --git a/dsl/camel-kamelet-main/src/main/resources/camel-main-known-repos.properties b/dsl/camel-kamelet-main/src/main/resources/camel-main-known-repos.properties
new file mode 100644
index 00000000000..3f3ed62a496
--- /dev/null
+++ b/dsl/camel-kamelet-main/src/main/resources/camel-main-known-repos.properties
@@ -0,0 +1,18 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+camel-jira = https://packages.atlassian.com/maven-external
\ No newline at end of file


[camel] 03/04: CAMEL-18983: camel-jbang - export - Add known maven repos such when using camel-jira.

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 481b61ea2160b2205afeff55ee1f4283d04075bf
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Mar 9 15:51:21 2023 +0100

    CAMEL-18983: camel-jbang - export - Add known maven repos such when using camel-jira.
---
 .../java/org/apache/camel/main/download/MavenDependencyDownloader.java  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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 2f941705588..97068ed130a 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
@@ -229,7 +229,7 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
     private boolean fresh;
 
     private String mavenSettings;
-    private String mavenSettingsSecurity;7
+    private String mavenSettingsSecurity;
     private RepositorySystem repositorySystem;
     private RepositorySystemSession repositorySystemSession;
     // actual repositories to be used with maven-resolver


[camel] 02/04: CAMEL-18983: camel-jbang - export - Add known maven repos such when using camel-jira.

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 7c2fa30e59135bf54df9ef9a43e1f5862636782c
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Mar 6 09:26:00 2023 +0100

    CAMEL-18983: camel-jbang - export - Add known maven repos such when using camel-jira.
---
 .../main/java/org/apache/camel/dsl/jbang/core/commands/Run.java   | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
index 9a9870500af..3b66ffbd3c1 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
@@ -1073,6 +1073,14 @@ public class Run extends CamelCommand {
             }
         }
 
+        @Override
+        public void onExtraRepository(String repo) {
+            if (!repos.contains(repo)) {
+                writeSettings("repository", repo);
+                repos.add(repo);
+            }
+        }
+
         @Override
         public void onLoadingKamelet(String name) {
             if (!kamelets.contains(name)) {