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) {