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 50a50e83599023ac9b3ed8924719180bcc6c18aa Author: Otavio Rodolfo Piske <angusyo...@gmail.com> AuthorDate: Wed Feb 28 11:14:30 2024 +0100 CAMEL-20479: delay broker configuration Delay configuring broker to the moment it is about to start to reduce the incidence of trying to reuse acceptors --- .../services/AbstractArtemisEmbeddedService.java | 22 ++++++++++++++++++---- .../infra/artemis/services/ArtemisAMQPService.java | 3 --- .../services/ArtemisEmbeddedServiceBuilder.java | 10 ++++------ 3 files changed, 22 insertions(+), 13 deletions(-) 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 058344c3581..9e3bb4dd4e0 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 @@ -45,16 +45,23 @@ public abstract class AbstractArtemisEmbeddedService implements ArtemisService, protected final EmbeddedActiveMQ embeddedBrokerService; private final Configuration artemisConfiguration; + private Consumer<Configuration> customConfigurator; + private final int port; public AbstractArtemisEmbeddedService() { this(AvailablePortFinder.getNextAvailable()); } + /** + * This is needed for some tests that check reliability of the components by defining the port in advance, trying to connect + * first starting the service later + * @param port the port to use + */ protected AbstractArtemisEmbeddedService(int port) { embeddedBrokerService = new EmbeddedActiveMQ(); artemisConfiguration = new ConfigurationImpl(); - embeddedBrokerService.setConfiguration(configure(port)); + this.port = port; } private synchronized Configuration configure(int port) { @@ -67,13 +74,18 @@ public abstract class AbstractArtemisEmbeddedService implements ArtemisService, artemisConfiguration.setJMXManagementEnabled(false); artemisConfiguration.setMaxDiskUsage(98); - return configure(artemisConfiguration, port, brokerId); + final Configuration config = configure(artemisConfiguration, port, brokerId); + if (customConfigurator != null) { + customConfigurator.accept(config); + } + + return config; } protected abstract Configuration configure(Configuration artemisConfiguration, int port, int brokerId); - public void customConfiguration(Consumer<Configuration> configuration) { - configuration.accept(artemisConfiguration); + public void customConfiguration(Consumer<Configuration> configurator) { + this.customConfigurator = configurator; } @Override @@ -103,6 +115,8 @@ public abstract class AbstractArtemisEmbeddedService implements ArtemisService, public synchronized void initialize() { try { if (embeddedBrokerService.getActiveMQServer() == null || !embeddedBrokerService.getActiveMQServer().isStarted()) { + embeddedBrokerService.setConfiguration(configure(port)); + embeddedBrokerService.start(); embeddedBrokerService.getActiveMQServer().waitForActivation(20, TimeUnit.SECONDS); diff --git a/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/ArtemisAMQPService.java b/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/ArtemisAMQPService.java index b5e9c023ae4..eed04d75b06 100644 --- a/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/ArtemisAMQPService.java +++ b/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/ArtemisAMQPService.java @@ -29,9 +29,6 @@ public class ArtemisAMQPService extends AbstractArtemisEmbeddedService { private String brokerURL; private int amqpPort; - public ArtemisAMQPService() { - } - @Override protected Configuration configure(Configuration artemisConfiguration, int port, int brokerId) { amqpPort = port; diff --git a/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/ArtemisEmbeddedServiceBuilder.java b/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/ArtemisEmbeddedServiceBuilder.java index 4285e5c3e9a..b4ffbad9be6 100644 --- a/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/ArtemisEmbeddedServiceBuilder.java +++ b/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/ArtemisEmbeddedServiceBuilder.java @@ -23,7 +23,7 @@ import org.apache.activemq.artemis.core.config.Configuration; public class ArtemisEmbeddedServiceBuilder { private boolean isPersistent; - private Consumer<Configuration> artemisConfiguration; + private Consumer<Configuration> customConfigurator; public ArtemisEmbeddedServiceBuilder() { } @@ -34,8 +34,8 @@ public class ArtemisEmbeddedServiceBuilder { return this; } - public ArtemisEmbeddedServiceBuilder withCustomConfiguration(Consumer<Configuration> configuration) { - artemisConfiguration = configuration; + public ArtemisEmbeddedServiceBuilder withCustomConfiguration(Consumer<Configuration> customConfigurator) { + this.customConfigurator = customConfigurator; return this; } @@ -48,9 +48,7 @@ public class ArtemisEmbeddedServiceBuilder { artemisService = new ArtemisVMService(); } - if (artemisService != null) { - artemisService.customConfiguration(artemisConfiguration); - } + artemisService.customConfiguration(customConfigurator); return artemisService; }