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

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


The following commit(s) were added to refs/heads/camel-4.14.x by this push:
     new 2807edb5a0f1 CAMEL-22761 - Pick Maven repositories provided on Camel 
JBang for (#20317)
2807edb5a0f1 is described below

commit 2807edb5a0f1d858546d66f2265de077827aefdc
Author: AurĂ©lien Pupier <[email protected]>
AuthorDate: Tue Dec 9 18:11:39 2025 +0100

    CAMEL-22761 - Pick Maven repositories provided on Camel JBang for (#20317)
    
    actions related to Kamelet
    
    Signed-off-by: AurĂ©lien Pupier <[email protected]>
---
 .../camel/dsl/jbang/core/commands/ExportBaseCommand.java   |  2 +-
 .../org/apache/camel/dsl/jbang/core/commands/Init.java     |  6 +++++-
 .../camel/dsl/jbang/core/commands/catalog/CatalogDoc.java  |  7 ++++---
 .../jbang/core/commands/catalog/KameletCatalogHelper.java  | 14 ++++++++------
 4 files changed, 18 insertions(+), 11 deletions(-)

diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
index 34cebfef5908..928531796de6 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
@@ -447,7 +447,7 @@ public abstract class ExportBaseCommand extends 
CamelCommand {
         List<String> lines = RuntimeUtil.loadPropertiesLines(settings);
 
         // check if we use custom and/or official ASF kamelets
-        List<String> officialKamelets = 
KameletCatalogHelper.findKameletNames(kameletsVersion);
+        List<String> officialKamelets = 
KameletCatalogHelper.findKameletNames(kameletsVersion, repositories);
         boolean kamelets = false;
         boolean asfKamelets = false;
         for (String line : lines) {
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Init.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Init.java
index d12c9224ef9c..3221840bb6c0 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Init.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Init.java
@@ -76,6 +76,10 @@ public class Init extends CamelCommand {
             description = "When creating a yaml file should it be created as a 
Pipe CR")
     private boolean pipe;
 
+    @Option(names = { "--repo", "--repos" },
+            description = "Additional maven repositories (Use commas to 
separate multiple repositories)")
+    protected String repositories;
+
     public Init(CamelJBangMain main) {
         super(main);
     }
@@ -118,7 +122,7 @@ public class Init extends CamelCommand {
                     kameletsVersion = VersionHelper.extractKameletsVersion();
                 }
                 // load existing kamelet
-                is = KameletCatalogHelper.loadKameletYamlSchema(fromKamelet, 
kameletsVersion);
+                is = KameletCatalogHelper.loadKameletYamlSchema(fromKamelet, 
kameletsVersion, repositories);
             } else if (file.contains("source")) {
                 ext = "kamelet-source.yaml";
             } else if (file.contains("sink")) {
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDoc.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDoc.java
index f12432d38dcb..b843f10c6dc9 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDoc.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDoc.java
@@ -144,7 +144,7 @@ public class CatalogDoc extends CamelCommand {
         }
 
         if (prefix == null || "kamelet".equals(prefix)) {
-            KameletModel km = KameletCatalogHelper.loadKameletModel(name, 
kameletsVersion);
+            KameletModel km = KameletCatalogHelper.loadKameletModel(name, 
kameletsVersion, repos);
             if (km != null) {
                 docKamelet(km);
                 return 0;
@@ -185,7 +185,8 @@ public class CatalogDoc extends CamelCommand {
             boolean kamelet = name.endsWith("-sink") || 
name.endsWith("-source") || name.endsWith("-action");
             if (kamelet) {
                 // kamelet names
-                suggestions = 
SuggestSimilarHelper.didYouMean(KameletCatalogHelper.findKameletNames(kameletsVersion),
 name);
+                suggestions
+                        = 
SuggestSimilarHelper.didYouMean(KameletCatalogHelper.findKameletNames(kameletsVersion,
 repos), name);
             } else {
                 // assume its a component
                 suggestions = 
SuggestSimilarHelper.didYouMean(findComponentNames(catalog), name);
@@ -199,7 +200,7 @@ public class CatalogDoc extends CamelCommand {
         } else {
             List<String> suggestions = switch (prefix) {
                 case "kamelet" ->
-                    
SuggestSimilarHelper.didYouMean(KameletCatalogHelper.findKameletNames(kameletsVersion),
 name);
+                    
SuggestSimilarHelper.didYouMean(KameletCatalogHelper.findKameletNames(kameletsVersion,
 repos), name);
                 case "component" -> 
SuggestSimilarHelper.didYouMean(findComponentNames(catalog), name);
                 case "dataformat" -> 
SuggestSimilarHelper.didYouMean(catalog.findDataFormatNames(), name);
                 case "language" -> 
SuggestSimilarHelper.didYouMean(catalog.findLanguageNames(), name);
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/KameletCatalogHelper.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/KameletCatalogHelper.java
index 3e6aa4763f7b..0511b3e40024 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/KameletCatalogHelper.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/KameletCatalogHelper.java
@@ -33,8 +33,8 @@ public final class KameletCatalogHelper {
     private KameletCatalogHelper() {
     }
 
-    public static List<String> findKameletNames(String version) throws 
Exception {
-        Map<String, Object> kamelets = loadKamelets(version);
+    public static List<String> findKameletNames(String version, String 
repositories) throws Exception {
+        Map<String, Object> kamelets = loadKamelets(version, repositories);
         return new ArrayList<>(kamelets.keySet());
     }
 
@@ -140,12 +140,13 @@ public final class KameletCatalogHelper {
         return (String) ObjectHelper.invokeMethod(m, meta);
     }
 
-    public static Map<String, Object> loadKamelets(String version) throws 
Exception {
+    public static Map<String, Object> loadKamelets(String version, String 
repositories) throws Exception {
         var tccLoader = Thread.currentThread().getContextClassLoader();
         try {
             ClassLoader cl = createClassLoader();
             MavenDependencyDownloader downloader = new 
MavenDependencyDownloader();
             downloader.setClassLoader(cl);
+            downloader.setRepositories(repositories);
             downloader.start();
             downloader.downloadDependency("org.apache.camel.kamelets", 
"camel-kamelets-catalog", version);
 
@@ -159,12 +160,13 @@ public final class KameletCatalogHelper {
         }
     }
 
-    public static InputStream loadKameletYamlSchema(String name, String 
version) throws Exception {
+    public static InputStream loadKameletYamlSchema(String name, String 
version, String repositories) throws Exception {
         var tccLoader = Thread.currentThread().getContextClassLoader();
         try {
             ClassLoader cl = createClassLoader();
             MavenDependencyDownloader downloader = new 
MavenDependencyDownloader();
             downloader.setClassLoader(cl);
+            downloader.setRepositories(repositories);
             downloader.start();
             downloader.downloadDependency("org.apache.camel.kamelets", 
"camel-kamelets-catalog", version);
             Thread.currentThread().setContextClassLoader(cl);
@@ -174,8 +176,8 @@ public final class KameletCatalogHelper {
         }
     }
 
-    public static KameletModel loadKameletModel(String name, String version) 
throws Exception {
-        Map<String, Object> kamelets = loadKamelets(version);
+    public static KameletModel loadKameletModel(String name, String version, 
String repositories) throws Exception {
+        Map<String, Object> kamelets = loadKamelets(version, repositories);
         if (kamelets != null) {
             Object k = kamelets.get(name);
             if (k != null) {

Reply via email to