This is an automated email from the ASF dual-hosted git repository.
gnodet 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 a4d17dddcec7 Isolate Kubernetes plugin test working directories under
target/
a4d17dddcec7 is described below
commit a4d17dddcec7af377a986f3a434a9f4ccce4f1b2
Author: Guillaume Nodet <[email protected]>
AuthorDate: Sun Mar 29 22:37:07 2026 +0200
Isolate Kubernetes plugin test working directories under target/
Kubernetes plugin tests (KubernetesRunTest, KubernetesRunCustomTest)
were creating .camel-jbang-run/ directories in the module root, causing
concurrent test collisions and stale files in the source tree.
Extract a getRunPlatformDir() method in KubernetesRun that tests
override to target/tests/<ClassName>, isolating each test class under
target/. Add @AfterAll/@AfterEach cleanup and missing
CommandLineHelper.useHomeDir("target") to KubernetesRunCustomTest.
Closes #22301
---
.../commands/kubernetes/KubernetesBaseCommand.java | 2 --
.../core/commands/kubernetes/KubernetesRun.java | 6 +++++-
.../kubernetes/KubernetesBaseTestSupport.java | 5 +++++
.../commands/kubernetes/KubernetesRunCustomTest.java | 20 ++++++++++++++++++--
.../core/commands/kubernetes/KubernetesRunTest.java | 9 +++++++--
5 files changed, 35 insertions(+), 7 deletions(-)
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesBaseCommand.java
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesBaseCommand.java
index 43eebadccc5d..656bf770b9ed 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesBaseCommand.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesBaseCommand.java
@@ -45,8 +45,6 @@ import picocli.CommandLine;
*/
public abstract class KubernetesBaseCommand extends CamelCommand {
- static final String RUN_PLATFORM_DIR = ".camel-jbang-run";
-
@CommandLine.Option(names = { "--kube-config" },
description = "Path to the kube config file to
initialize Kubernetes client")
String kubeConfig;
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRun.java
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRun.java
index 3da2ca43b9ae..afa5a27ccaf5 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRun.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRun.java
@@ -424,8 +424,12 @@ public class KubernetesRun extends KubernetesBaseCommand {
return 0;
}
+ String getRunPlatformDir() {
+ return ".camel-jbang-run";
+ }
+
private String getIndexedWorkingDir(String projectName) {
- var workingDir = RUN_PLATFORM_DIR + File.separator + projectName;
+ var workingDir = getRunPlatformDir() + File.separator + projectName;
if (devModeReloadCount > 0) {
workingDir += "-%03d".formatted(devModeReloadCount);
}
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesBaseTestSupport.java
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesBaseTestSupport.java
index 94272ccbe7f4..9f65de0cdb37 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesBaseTestSupport.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesBaseTestSupport.java
@@ -18,6 +18,7 @@
package org.apache.camel.dsl.jbang.core.commands.kubernetes;
import java.io.ByteArrayInputStream;
+import java.io.File;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
@@ -32,6 +33,7 @@ import org.apache.camel.dsl.jbang.core.common.PluginHelper;
import org.apache.camel.dsl.jbang.core.common.PluginType;
import org.apache.camel.dsl.jbang.core.common.StringPrinter;
import org.apache.camel.test.infra.common.services.ContainerEnvironmentUtil;
+import org.apache.camel.util.FileUtil;
import org.apache.camel.util.StringHelper;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
@@ -41,6 +43,8 @@ import org.junit.jupiter.api.TestInstance;
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class KubernetesBaseTestSupport {
+ protected final String runPlatformDir = "target/tests/" +
getClass().getSimpleName();
+
private KubernetesMockServer k8sServer;
protected KubernetesClient kubernetesClient;
protected StringPrinter printer;
@@ -70,6 +74,7 @@ public class KubernetesBaseTestSupport {
@AfterAll
public void cleanup() {
k8sServer.destroy();
+ FileUtil.removeDir(new File(runPlatformDir));
}
protected static InputStream getKubernetesManifestAsStream(String
printerOutput) {
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRunCustomTest.java
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRunCustomTest.java
index bf73715716ba..712825ea4e54 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRunCustomTest.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRunCustomTest.java
@@ -44,8 +44,11 @@ import
io.fabric8.kubernetes.client.server.mock.KubernetesMockServer;
import org.apache.camel.RuntimeCamelException;
import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain;
import
org.apache.camel.dsl.jbang.core.commands.kubernetes.traits.ContainerTrait;
+import org.apache.camel.dsl.jbang.core.common.CommandLineHelper;
import org.apache.camel.dsl.jbang.core.common.StringPrinter;
import org.apache.camel.dsl.jbang.core.common.VersionHelper;
+import org.apache.camel.util.FileUtil;
+import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -64,12 +67,20 @@ import picocli.CommandLine;
@EnableKubernetesMockClient
class KubernetesRunCustomTest {
+ final String runPlatformDir = "target/tests/" + getClass().getSimpleName();
+
protected KubernetesMockServer server;
protected KubernetesClient client;
protected StringPrinter printer;
+ @AfterEach
+ void cleanupWorkDirs() {
+ FileUtil.removeDir(new File(runPlatformDir));
+ }
+
@BeforeEach
public void setup() {
+ CommandLineHelper.useHomeDir("target");
// Set Camel version with system property value, usually set via Maven
surefire plugin
// In case you run this test via local Java IDE you need to provide
the system property or a default value here
VersionHelper.setCamelVersion(System.getProperty("camel.version", ""));
@@ -125,7 +136,7 @@ class KubernetesRunCustomTest {
Assertions.assertEquals(0, exit, printer.getOutput());
Properties materializedProps = new Properties();
- String propsFilepath =
".camel-jbang-run/my-route-props/src/main/resources/application.properties";
+ String propsFilepath = runPlatformDir +
"/my-route-props/src/main/resources/application.properties";
Assertions.assertTrue(new File(propsFilepath).exists());
try (FileInputStream input = new FileInputStream(new
File(propsFilepath))) {
materializedProps.load(input);
@@ -291,7 +302,12 @@ class KubernetesRunCustomTest {
var argsArr = Optional.ofNullable(args).orElse(new String[0]);
var argsLst = new ArrayList<>(Arrays.asList(argsArr));
var jbangMain = new CamelJBangMain().withPrinter(printer);
- KubernetesRun command = new KubernetesRun(jbangMain, files);
+ KubernetesRun command = new KubernetesRun(jbangMain, files) {
+ @Override
+ String getRunPlatformDir() {
+ return runPlatformDir;
+ }
+ };
CommandLine.populateCommand(command, argsLst.toArray(new String[0]));
command.imageBuild = false;
command.imagePush = false;
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRunTest.java
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRunTest.java
index ba2c5a81ec10..aafe0fa157a1 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRunTest.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRunTest.java
@@ -91,7 +91,7 @@ class KubernetesRunTest extends KubernetesBaseTestSupport {
Assertions.assertEquals(0, exit);
Properties materializedProps = new Properties();
- String propsFilepath =
".camel-jbang-run/my-route-props/src/main/resources/application.properties";
+ String propsFilepath = runPlatformDir +
"/my-route-props/src/main/resources/application.properties";
try (FileInputStream input = new FileInputStream(new
File(propsFilepath))) {
materializedProps.load(input);
}
@@ -240,7 +240,12 @@ class KubernetesRunTest extends KubernetesBaseTestSupport {
var argsArr = Optional.ofNullable(args).orElse(new String[0]);
var argsLst = new ArrayList<>(Arrays.asList(argsArr));
var jbangMain = new CamelJBangMain().withPrinter(printer);
- KubernetesRun command = new KubernetesRun(jbangMain, files);
+ KubernetesRun command = new KubernetesRun(jbangMain, files) {
+ @Override
+ String getRunPlatformDir() {
+ return runPlatformDir;
+ }
+ };
CommandLine.populateCommand(command, argsLst.toArray(new String[0]));
command.imageBuild = false;
command.imagePush = false;