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 1b5d3a19157e9..ea5f65384b7a3 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 @@ -999,11 +999,9 @@ private int run() throws Exception { .collect(Collectors.toSet()); for (PluginExporter exporter : exporters) { - addDependencies(exporter.getDependencies(runtime) - .stream() - .filter(dependency -> !dependency.startsWith("mvn@test")) // filter test scoped dependencies - .collect(Collectors.toSet()) - .toArray(String[]::new)); + if (exporter.contributeRuntimeDependencies()) { + addDependencies(exporter.getDependencies(runtime).toArray(String[]::new)); + } } } diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/PluginExporter.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/PluginExporter.java index a651471937ac3..a5871c408887d 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/PluginExporter.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/PluginExporter.java @@ -57,6 +57,17 @@ default boolean isEnabled() { return true; } + /** + * Whether this plugin exporter should contribute its dependencies when running Camel integrations via the run + * command. By default, plugin exporters do not contribute dependencies at runtime. Override this method to return + * true if the plugin needs its dependencies available at runtime. + * + * @return true if dependencies should be added during run, false otherwise. + */ + default boolean contributeRuntimeDependencies() { + return false; + } + /** * Add plugin specific source files to the exported project. */