This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch camel-4.14.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-4.14.x by this push:
new 9dd2b1631b16 CAMEL-22776 camel-jbang-kubernetes: Unable to export
project on Windows (#20481) (#20512)
9dd2b1631b16 is described below
commit 9dd2b1631b16d766dbf45222665518b5a04bd6bb
Author: Claudio Miranda <[email protected]>
AuthorDate: Fri Dec 19 07:05:20 2025 +0000
CAMEL-22776 camel-jbang-kubernetes: Unable to export project on Windows
(#20481) (#20512)
https://issues.apache.org/jira/browse/CAMEL-22776
---
.../org/apache/camel/dsl/jbang/core/commands/ExportHelper.java | 5 ++++-
.../dsl/jbang/core/commands/kubernetes/KubernetesExportTest.java | 7 ++++++-
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportHelper.java
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportHelper.java
index b1b9c4d4861c..0134df09ad0a 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportHelper.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportHelper.java
@@ -44,7 +44,10 @@ public final class ExportHelper {
ClassLoader classLoader, String scheme, Path source, Path target,
boolean override, boolean symbolicLink)
throws Exception {
if ("classpath".equals(scheme)) {
- try (var ins = classLoader.getResourceAsStream(source.toString());
+ // in windows the source object contains the windows file separator
+ // the getResourceAsStream cannot find the resource file inside
the jar in this case
+ // then we have to replace the windows file separator to unix style
+ try (var ins =
classLoader.getResourceAsStream(source.toString().replace("\\", "/"));
var outs = Files.newOutputStream(target)) {
IOHelper.copy(ins, outs);
}
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExportTest.java
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExportTest.java
index 8ce421591ae3..2b73682e3922 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExportTest.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExportTest.java
@@ -54,7 +54,9 @@ class KubernetesExportTest extends KubernetesExportBaseTest {
@ParameterizedTest
@MethodSource("runtimeProvider")
public void shouldGenerateProject(RuntimeType rt) throws Exception {
- KubernetesExport command = createCommand(new String[] {
"classpath:route.yaml" },
+ // the backslash is to simulate the windows file separator, related to
CAMEL-22776
+ // as the ExportBaseCommand uses Paths.get to read the file it also
sets the backslash
+ KubernetesExport command = createCommand(new String[] {
"classpath:myapp\\route.yaml" },
"--gav=examples:route:1.0.0", "--runtime=" + rt.runtime());
int exit = command.doCall();
Assertions.assertEquals(0, exit);
@@ -74,6 +76,9 @@ class KubernetesExportTest extends KubernetesExportBaseTest {
Assertions.assertNull(props.get("jkube.container-image.platforms"));
Properties applicationProperties =
getApplicationProperties(workingDir);
+ String scriptContent = readResource(workingDir,
"src/main/scripts/run-java.sh");
+ Assertions.assertNotNull(scriptContent);
+ Assertions.assertTrue(scriptContent.length() > 0);
if (RuntimeType.quarkus == RuntimeType.fromValue(rt.runtime())) {
Assertions.assertEquals("9876",
props.get("quarkus.management.port"));