This is an automated email from the ASF dual-hosted git repository. orpiske pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
commit aec00edea8205aa31d44d3ebbe31040c8a2478d4 Author: Otavio Rodolfo Piske <angusyo...@gmail.com> AuthorDate: Wed Mar 6 09:18:49 2024 +0100 CAMEL-20479: use a semi-random directory for the broker instance --- .../services/AbstractArtemisEmbeddedService.java | 28 +++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/AbstractArtemisEmbeddedService.java b/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/AbstractArtemisEmbeddedService.java index 9e3bb4dd4e0..740f242752b 100644 --- a/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/AbstractArtemisEmbeddedService.java +++ b/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/AbstractArtemisEmbeddedService.java @@ -17,6 +17,7 @@ package org.apache.camel.test.infra.artemis.services; import java.io.File; +import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.LongAdder; import java.util.function.Consumer; @@ -70,7 +71,10 @@ public abstract class AbstractArtemisEmbeddedService implements ArtemisService, // Base configuration artemisConfiguration.setSecurityEnabled(false); - artemisConfiguration.setBrokerInstance(new File("target", "artemis-" + brokerId)); + + final File instanceDir = createInstance(brokerId); + + artemisConfiguration.setBrokerInstance(instanceDir); artemisConfiguration.setJMXManagementEnabled(false); artemisConfiguration.setMaxDiskUsage(98); @@ -82,6 +86,28 @@ public abstract class AbstractArtemisEmbeddedService implements ArtemisService, return config; } + private static File createInstance(int brokerId) { + File instanceDir = null; + final File target = new File("target"); + final File brokerDir = new File(target, "artemis"); + do { + final String subPath = getRandomSubPath(); + + instanceDir = new File(brokerDir, brokerId + "-" + subPath); + } while (instanceDir.exists()); + + return instanceDir; + } + + private static String getRandomSubPath() { + final int size = 12; + + return ThreadLocalRandom.current().ints(97, 122) + .limit(size) + .collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append) + .toString(); + } + protected abstract Configuration configure(Configuration artemisConfiguration, int port, int brokerId); public void customConfiguration(Consumer<Configuration> configurator) {