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 {

Reply via email to