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:04 UTC
(camel) 01/08: CAMEL-20479: delay broker configuration
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 <an...@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;
}