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

apupier 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 b38cf3a04a4c CAMEL-22761 - Pick Maven repositories provided on Camel 
JBang for actions related to Kamelet
b38cf3a04a4c is described below

commit b38cf3a04a4c235d1a2ec2ecd7a5b30982e59cef
Author: AurĂ©lien Pupier <[email protected]>
AuthorDate: Mon Dec 8 17:35:24 2025 +0100

    CAMEL-22761 - Pick Maven repositories provided on Camel JBang for
    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 be18e3b3cc90..823c7c59087d 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
@@ -450,7 +450,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 30e4f1174211..4100a11e70a6 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 ec594e78c8eb..55786090d359 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
@@ -145,7 +145,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;
@@ -186,7 +186,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);
@@ -200,7 +201,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 89ef90b69021..dd7961ef8894 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,11 +140,12 @@ 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 (MavenDependencyDownloader downloader = new 
MavenDependencyDownloader()) {
             ClassLoader cl = createClassLoader();
             downloader.setClassLoader(cl);
+            downloader.setRepositories(repositories);
             downloader.start();
             downloader.downloadDependency("org.apache.camel.kamelets", 
"camel-kamelets-catalog", version);
 
@@ -158,11 +159,12 @@ 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 (MavenDependencyDownloader downloader = new 
MavenDependencyDownloader()) {
             ClassLoader cl = createClassLoader();
             downloader.setClassLoader(cl);
+            downloader.setRepositories(repositories);
             downloader.start();
             downloader.downloadDependency("org.apache.camel.kamelets", 
"camel-kamelets-catalog", version);
             Thread.currentThread().setContextClassLoader(cl);
@@ -172,8 +174,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