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 6833161c21eb CAMEL-25452: camel-jbang: hand --resource-dir on to the
runtime-specific export (#27553)
6833161c21eb is described below
commit 6833161c21eb901d946dbe3c09a74063291dbff8
Author: Thomas Raddatz <[email protected]>
AuthorDate: Thu Oct 8 15:05:20 2026 +0200
CAMEL-25452: camel-jbang: hand --resource-dir on to the runtime-specific
export (#27553)
Co-authored-by: Claude <[email protected]>
---
.../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 61e89c7b321b..d4614dcbb880 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
@@ -270,6 +270,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 b77b8ee068f6..9eab6173b79c 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;
@@ -105,6 +106,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 {