This is an automated email from the ASF dual-hosted git repository.
gnodet pushed a commit to branch camel-4.22.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-4.22.x by this push:
new 4daac3d60b56 [backport camel-4.22.x] CAMEL-25452: camel-jbang: hand
--resource-dir on to the runtime-specific export (#27573)
4daac3d60b56 is described below
commit 4daac3d60b569bd34bb220cf79b75235e1242abc
Author: Guillaume Nodet <[email protected]>
AuthorDate: Thu Oct 8 18:55:43 2026 +0200
[backport camel-4.22.x] CAMEL-25452: camel-jbang: hand --resource-dir on to
the runtime-specific export (#27573)
---
.../camel/dsl/jbang/core/commands/Export.java | 1 +
.../camel/dsl/jbang/core/commands/ExportTest.java | 28 ++++++++++++++++++++++
2 files changed, 29 insertions(+)
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java
index 32ed859614af..5d6538b65f36 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java
@@ -269,6 +269,7 @@ public class Export extends ExportBaseCommand {
cmd.openapi = this.openapi;
cmd.packageName = this.packageName;
cmd.excludes = this.excludes;
+ cmd.resourceDirs = this.resourceDirs;
cmd.ignoreLoadingError = this.ignoreLoadingError;
cmd.lazyBean = this.lazyBean;
cmd.verbose = this.verbose;
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportTest.java
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportTest.java
index 251459811254..6ddbfd25ae4c 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportTest.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportTest.java
@@ -21,6 +21,7 @@ import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -104,6 +105,33 @@ class ExportTest {
Assertions.assertNotNull(model.getProperties().getProperty("project.build.outputTimestamp"));
}
+ @ParameterizedTest
+ @MethodSource("runtimeProvider")
+ public void shouldExportResourceDirs(RuntimeType rt) throws Exception {
+ LOG.info("shouldExportResourceDirs {}", rt);
+ // --resource-dir only accepts relative paths
+ Path resources =
Files.createTempDirectory("camel-export-resource-dirs");
+ try {
+ Path schemas = resources.resolve("schemas");
+ Files.createDirectories(schemas.resolve("common"));
+ Files.writeString(schemas.resolve("api.yaml"), "openapi: 3.0.3");
+ Files.writeString(schemas.resolve("common/types.json"), "{}");
+ String relative =
Path.of("").toAbsolutePath().relativize(schemas).toString();
+
+ Export command = createCommand(rt, new String[] {
"classpath:route.yaml" },
+ "--gav=examples:route:1.0.0", "--dir=" + workingDir,
"--quiet", "--resource-dir=" + relative);
+ int exit = command.doCall();
+
+ assertThat(exit).isZero();
+ // the last path component is the target directory, the structure
below it is preserved
+ Path exported =
workingDir.toPath().resolve("src/main/resources/schemas");
+ assertThat(exported.resolve("api.yaml")).hasContent("openapi:
3.0.3");
+ assertThat(exported.resolve("common/types.json")).hasContent("{}");
+ } finally {
+ FileUtil.removeDir(resources.toFile());
+ }
+ }
+
@ParameterizedTest
@MethodSource("runtimeProvider")
void shouldExportRouteConfigurationWithStringRedeliveryDelay(RuntimeType
rt) throws Exception {