You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2024/03/06 18:16:05 UTC

(camel) 02/08: CAMEL-20479: use a semi-random directory for the broker instance

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 <an...@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) {