This is an automated email from the ASF dual-hosted git repository.
Croway 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 e3b19286e85a [Camel Launcher] Fix state leaks (#26864)
e3b19286e85a is described below
commit e3b19286e85ae20f376baa7147b0a50629d20ae9
Author: Jakub Vrubel <[email protected]>
AuthorDate: Sat Sep 26 15:03:48 2026 +0200
[Camel Launcher] Fix state leaks (#26864)
* [Camel Launcher] Fix state leaks
* Update
dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/support/JBangTestSupport.java
Co-authored-by: Guillaume Nodet - AI Bot <[email protected]>
* Update
dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/support/JBangTestSupport.java
Co-authored-by: Guillaume Nodet - AI Bot <[email protected]>
* Regen
---------
Co-authored-by: Guillaume Nodet - AI Bot <[email protected]>
Co-authored-by: Guillaume Nodet <[email protected]>
---
.../apache/camel/dsl/jbang/it/CamelDebugITCase.java | 2 ++
.../org/apache/camel/dsl/jbang/it/JolokiaITCase.java | 20 +++++++++++++++++++-
.../org/apache/camel/dsl/jbang/it/OpenApiITCase.java | 10 ++++++++++
.../apache/camel/dsl/jbang/it/RunCommandITCase.java | 18 +++++++++++-------
.../camel/dsl/jbang/it/ValidatePluginITCase.java | 10 ++++++++++
.../camel/dsl/jbang/it/support/JBangTestSupport.java | 19 ++++++++++++++++++-
6 files changed, 70 insertions(+), 9 deletions(-)
diff --git
a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/CamelDebugITCase.java
b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/CamelDebugITCase.java
index 910eded0830a..82eb38b5efa6 100644
---
a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/CamelDebugITCase.java
+++
b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/CamelDebugITCase.java
@@ -19,12 +19,14 @@ package org.apache.camel.dsl.jbang.it;
import java.io.IOException;
import org.apache.camel.dsl.jbang.it.support.JBangTestSupport;
+import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.DisabledOnOs;
import static org.junit.jupiter.api.condition.OS.WINDOWS;
@DisabledOnOs(WINDOWS)
+@Tag("container-only")
public class CamelDebugITCase extends JBangTestSupport {
@Test
public void testDebug() throws IOException {
diff --git
a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/JolokiaITCase.java
b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/JolokiaITCase.java
index 1b348b7566ed..addfaec8e493 100644
---
a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/JolokiaITCase.java
+++
b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/JolokiaITCase.java
@@ -22,14 +22,32 @@ import java.time.Duration;
import org.apache.camel.dsl.jbang.it.support.JBangTestSupport;
import org.assertj.core.api.Assertions;
import org.awaitility.Awaitility;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.DisabledOnOs;
import static org.junit.jupiter.api.condition.OS.WINDOWS;
@DisabledOnOs(WINDOWS)
+@Tag("container-only")
public class JolokiaITCase extends JBangTestSupport {
+ private String hawtioPid;
+
+ @AfterEach
+ public void stopJolokiaAndHawtio() {
+ try {
+ execute("jolokia FromDirectoryRoute --stop");
+ } catch (Exception | AssertionError e) {
+ logger.debug("failed to stop jolokia: {}", e.getMessage());
+ }
+ if (hawtioPid != null) {
+ execInContainer("kill " + hawtioPid + " 2>/dev/null || true");
+ hawtioPid = null;
+ }
+ }
+
@Test
public void testAttachJolokia() throws IOException {
copyResourceInDataFolder(TestResources.DIR_ROUTE);
@@ -49,7 +67,7 @@ public class JolokiaITCase extends JBangTestSupport {
copyResourceInDataFolder(TestResources.DIR_ROUTE);
executeBackground(String.format("run %s/FromDirectoryRoute.java",
mountPoint()));
checkLogContains("(FromDirectoryRoute) started");
- execNohup("hawtio FromDirectoryRoute");
+ hawtioPid = execNohup("hawtio FromDirectoryRoute");
Awaitility.await()
.atMost(Duration.ofSeconds(30))
.pollInterval(Duration.ofSeconds(1))
diff --git
a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/OpenApiITCase.java
b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/OpenApiITCase.java
index dd68bdd37511..326886a684b2 100644
---
a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/OpenApiITCase.java
+++
b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/OpenApiITCase.java
@@ -30,6 +30,7 @@ import java.util.Random;
import org.apache.camel.dsl.jbang.it.support.InVersion;
import org.apache.camel.dsl.jbang.it.support.JBangTestSupport;
import org.assertj.core.api.Assertions;
+import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.testcontainers.shaded.com.fasterxml.jackson.databind.ObjectMapper;
@@ -37,6 +38,15 @@ import
org.testcontainers.shaded.com.fasterxml.jackson.databind.ObjectMapper;
@Tag("container-only")
public class OpenApiITCase extends JBangTestSupport {
+ @AfterEach
+ public void cleanupOpenApiArtifacts() {
+ try {
+ execute("plugin delete generate");
+ } catch (Exception | AssertionError e) {
+ logger.debug("failed to delete generate plugin: {}",
e.getMessage());
+ }
+ }
+
final HttpClient httpClient = HttpClient.newHttpClient();
@Test
diff --git
a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/RunCommandITCase.java
b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/RunCommandITCase.java
index 07a26e18aa5c..cda6a8f96d3c 100644
---
a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/RunCommandITCase.java
+++
b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/RunCommandITCase.java
@@ -83,13 +83,17 @@ public class RunCommandITCase extends JBangTestSupport {
@Test
@Tag("container-only")
public void runRoutesFromMultipleFilesUsingWildcardTest() {
- execute("init one.yaml --directory=/tmp/one");
- execute("init two.xml --directory=/tmp/two");
- copyInternallyToDataFolder("/tmp/one/one.yaml");
- copyInternallyToDataFolder("/tmp/two/two.xml");
- executeBackground(String.format("run %s/* ", mountPoint()));
- checkLogContains(DEFAULT_MSG);
- checkLogContains(DEFAULT_MSG);
+ try {
+ execute("init one.yaml --directory=/tmp/one");
+ execute("init two.xml --directory=/tmp/two");
+ copyInternallyToDataFolder("/tmp/one/one.yaml");
+ copyInternallyToDataFolder("/tmp/two/two.xml");
+ executeBackground(String.format("run %s/* ", mountPoint()));
+ checkLogContains(DEFAULT_MSG);
+ checkLogContains(DEFAULT_MSG);
+ } finally {
+ execInContainer("rm -rf /tmp/one /tmp/two");
+ }
}
@Test
diff --git
a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/ValidatePluginITCase.java
b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/ValidatePluginITCase.java
index c34392897fb4..42937194bf38 100644
---
a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/ValidatePluginITCase.java
+++
b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/ValidatePluginITCase.java
@@ -19,10 +19,20 @@ package org.apache.camel.dsl.jbang.it;
import java.io.IOException;
import org.apache.camel.dsl.jbang.it.support.JBangTestSupport;
+import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;
class ValidatePluginITCase extends JBangTestSupport {
+ @AfterEach
+ void removeValidatePlugin() {
+ try {
+ execute("plugin delete validate");
+ } catch (Exception | AssertionError e) {
+ logger.debug("failed to delete validate plugin: {}",
e.getMessage());
+ }
+ }
+
@Test
void testValidateOK() throws IOException {
copyResourceInDataFolder(TestResources.ROUTE2);
diff --git
a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/support/JBangTestSupport.java
b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/support/JBangTestSupport.java
index 9fbe7ef8eef4..f2ecdbdff5e5 100644
---
a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/support/JBangTestSupport.java
+++
b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/support/JBangTestSupport.java
@@ -107,9 +107,26 @@ public abstract class JBangTestSupport {
// The JBang installation baseline is entirely hidden (.jbang/,
.bashrc, .camel-jbang/).
try {
execInContainer("find /home/jbang -maxdepth 1 -mindepth 1 -not
-name '.*' -exec rm -rf {} +");
- } catch (Exception e) {
+ } catch (Exception | AssertionError e) {
logger.debug("failed to clean up test files from /home/jbang:
{}", e.getMessage());
}
+ for (String key : new String[] { "runtime", "gav", "directory" }) {
+ try {
+ execute("config unset " + key);
+ } catch (Exception | AssertionError e) {
+ logger.debug("failed to unset config key {}: {}", key,
e.getMessage());
+ }
+ }
+ try {
+ String forceRunVersion =
System.getProperty(CliProperties.FORCE_RUN_VERSION, "");
+ if (!forceRunVersion.isEmpty()) {
+ execute("version set " + forceRunVersion);
+ } else {
+ execute("config unset camel-version");
+ }
+ } catch (Exception | AssertionError e) {
+ logger.debug("failed to reset camel-version: {}",
e.getMessage());
+ }
logger.debug("clean up data folder");
if (containerDataFolder != null) {
FileUtil.removeDir(new File(containerDataFolder));