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 6b10d2869f99 CAMEL-23157: Allow plugins to contribute dependencies to
the Run command (#21888)
6b10d2869f99 is described below
commit 6b10d2869f99652ccdaaae6f4cfaac30cdafc645
Author: Federico Mariani <[email protected]>
AuthorDate: Tue Mar 10 07:36:54 2026 +0100
CAMEL-23157: Allow plugins to contribute dependencies to the Run command
(#21888)
---
.../org/apache/camel/dsl/jbang/core/commands/Run.java | 19 ++++++++++++++++++-
.../camel/dsl/jbang/core/common/PluginHelper.java | 6 +++---
2 files changed, 21 insertions(+), 4 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 6614df67c1c6..87b2c2a13d80 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
@@ -45,6 +45,9 @@ import org.apache.camel.catalog.DefaultCamelCatalog;
import org.apache.camel.dsl.jbang.core.common.CommandLineHelper;
import org.apache.camel.dsl.jbang.core.common.LauncherHelper;
import org.apache.camel.dsl.jbang.core.common.LoggingLevelCompletionCandidates;
+import org.apache.camel.dsl.jbang.core.common.Plugin;
+import org.apache.camel.dsl.jbang.core.common.PluginExporter;
+import org.apache.camel.dsl.jbang.core.common.PluginHelper;
import org.apache.camel.dsl.jbang.core.common.Printer;
import org.apache.camel.dsl.jbang.core.common.PropertyResolver;
import org.apache.camel.dsl.jbang.core.common.RuntimeCompletionCandidates;
@@ -362,7 +365,7 @@ public class Run extends CamelCommand {
boolean prompt;
@Option(names = { "--skip-plugins" }, defaultValue = "false",
- description = "Skip plugins during export")
+ description = "Skip resolving plugin dependencies")
boolean skipPlugins;
public Run(CamelJBangMain main) {
@@ -986,6 +989,20 @@ public class Run extends CamelCommand {
// Add runtime-specific dependencies
addRuntimeSpecificDependenciesFromProperties(profileProperties);
+ // Add plugin dependencies
+ if (!skipPlugins) {
+ Set<PluginExporter> exporters =
PluginHelper.getActivePlugins(getMain(), repositories).values()
+ .stream()
+ .map(Plugin::getExporter)
+ .filter(Optional::isPresent)
+ .map(Optional::get)
+ .collect(Collectors.toSet());
+
+ for (PluginExporter exporter : exporters) {
+
addDependencies(exporter.getDependencies(runtime).toArray(String[]::new));
+ }
+ }
+
if (observe) {
dependencies.add("camel:observability-services");
}
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/PluginHelper.java
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/PluginHelper.java
index b212b647e21d..3263d7138c2a 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/PluginHelper.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/PluginHelper.java
@@ -183,7 +183,7 @@ public final class PluginHelper {
final String group = extractGroup(mavenGav, "org.apache.camel");
final String depVersion = extractVersion(mavenGav, defaultVersion);
- plugin = downloadPlugin(name, depVersion, group, repos, printer);
+ plugin = downloadPlugin(name, defaultVersion, depVersion, group,
repos, printer);
}
return plugin;
@@ -212,7 +212,7 @@ public final class PluginHelper {
}
private static Optional<Plugin> downloadPlugin(
- String command, String version, String group, String repos,
Printer printer) {
+ String command, String camelVersion, String version, String group,
String repos, Printer printer) {
DependencyDownloader downloader = new MavenDependencyDownloader();
DependencyDownloaderClassLoader ddlcl = new
DependencyDownloaderClassLoader(PluginHelper.class.getClassLoader());
downloader.setClassLoader(ddlcl);
@@ -221,7 +221,7 @@ public final class PluginHelper {
}
downloader.start();
// downloads and adds to the classpath
-
downloader.downloadDependencyWithParent("org.apache.camel:camel-jbang-parent:"
+ version, group,
+
downloader.downloadDependencyWithParent("org.apache.camel:camel-jbang-parent:pom:"
+ camelVersion, group,
"camel-jbang-plugin-" + command, version);
Optional<Plugin> instance = Optional.empty();
InputStream in = null;