diff --git a/tests/compatibility-tests/pom.xml b/tests/compatibility-tests/pom.xml
index f5b89dac9e..dda16306fe 100644
--- a/tests/compatibility-tests/pom.xml
+++ b/tests/compatibility-tests/pom.xml
@@ -445,6 +445,28 @@
+ compile
+
+ dependency-scan
+
+ 2_33_0-check
+
+ true
+
+ org.apache.activemq:artemis-jms-server:2.33.0
+ org.apache.activemq:artemis-cli:2.33.0
+ org.apache.activemq:artemis-jms-client:2.33.0
+ org.apache.activemq:artemis-hornetq-protocol:2.33.0
+ org.apache.activemq:artemis-amqp-protocol:2.33.0
+ org.apache.groovy:groovy-all:pom:${groovy.version}
+
+
+ org.apache.activemq.tests:compatibility-tests:${project.version}
+
+ ${basedir}/target/ARTEMIS-2_33_0.cp
+
+
+
compile
dependency-scan
diff --git a/tests/compatibility-tests/src/main/java/org/apache/activemq/artemis/tests/compatibility/GroovyRun.java b/tests/compatibility-tests/src/main/java/org/apache/activemq/artemis/tests/compatibility/GroovyRun.java
index c51e7dff72..3a73aa3b75 100644
--- a/tests/compatibility-tests/src/main/java/org/apache/activemq/artemis/tests/compatibility/GroovyRun.java
+++ b/tests/compatibility-tests/src/main/java/org/apache/activemq/artemis/tests/compatibility/GroovyRun.java
@@ -43,6 +43,7 @@ public class GroovyRun {
public static final String TWO_EIGHTEEN_ZERO = "ARTEMIS-2_18_0";
public static final String TWO_TWENTYTWO_ZERO = "ARTEMIS-2_22_0";
public static final String TWO_TWENTYEIGHT_ZERO = "ARTEMIS-2_28_0";
+ public static final String TWO_THIRTYTHREE_ZERO = "ARTEMIS-2_33_0";
public static final String HORNETQ_235 = "HORNETQ-235";
public static final String HORNETQ_247 = "HORNETQ-247";
public static final String AMQ_5_11 = "AMQ_5_11";
diff --git a/tests/compatibility-tests/src/main/resources/multiVersionMirror/backupServer.groovy b/tests/compatibility-tests/src/main/resources/multiVersionMirror/backupServer.groovy
index da024c4c89..035d8beb30 100644
--- a/tests/compatibility-tests/src/main/resources/multiVersionMirror/backupServer.groovy
+++ b/tests/compatibility-tests/src/main/resources/multiVersionMirror/backupServer.groovy
@@ -29,6 +29,9 @@ import org.apache.activemq.artemis.core.server.embedded.EmbeddedActiveMQ
String folder = arg[0];
String id = arg[1];
+String queueName = arg[2]
+String topicName = arg[3]
+boolean useDual = Boolean.parseBoolean(arg[4])
configuration = new ConfigurationImpl();
configuration.setJournalType(JournalType.NIO);
@@ -37,8 +40,20 @@ configuration.addAcceptorConfiguration("artemis", "tcp://localhost:61617");
configuration.setSecurityEnabled(false);
configuration.setPersistenceEnabled(true);
-configuration.addAddressConfiguration(new CoreAddressConfiguration().setName("TestQueue").addRoutingType(RoutingType.ANYCAST));
-configuration.addQueueConfiguration(new QueueConfiguration("TestQueue").setAddress("TestQueue").setRoutingType(RoutingType.ANYCAST));
+configuration.addAddressConfiguration(new CoreAddressConfiguration().setName(queueName).addRoutingType(RoutingType.ANYCAST));
+configuration.addQueueConfiguration(new QueueConfiguration(queueName).setAddress(queueName).setRoutingType(RoutingType.ANYCAST));
+configuration.addAddressConfiguration(new CoreAddressConfiguration().setName(topicName).addRoutingType(RoutingType.MULTICAST));
+
+if (useDual) {
+ try {
+ AMQPBrokerConnectConfiguration connection = new AMQPBrokerConnectConfiguration("mirror", "tcp://localhost:61616").setReconnectAttempts(-1).setRetryInterval(100);
+ AMQPMirrorBrokerConnectionElement replication = new AMQPMirrorBrokerConnectionElement().setDurable(true).setSync(false).setMessageAcknowledgements(true)
+ connection.addElement(replication);
+ configuration.addAMQPConnection(connection);
+ } catch (Throwable ignored) {
+ }
+}
+
theBackupServer = new EmbeddedActiveMQ();
theBackupServer.setConfiguration(configuration);
diff --git a/tests/compatibility-tests/src/main/resources/multiVersionMirror/mainServer.groovy b/tests/compatibility-tests/src/main/resources/multiVersionMirror/mainServer.groovy
index 921d88006b..70d6ab11cb 100644
--- a/tests/compatibility-tests/src/main/resources/multiVersionMirror/mainServer.groovy
+++ b/tests/compatibility-tests/src/main/resources/multiVersionMirror/mainServer.groovy
@@ -29,6 +29,8 @@ import org.apache.activemq.artemis.core.server.embedded.EmbeddedActiveMQ
String folder = arg[0];
String id = arg[1];
+String queueName = arg[2]
+String topicName = arg[3]
configuration = new ConfigurationImpl();
configuration.setJournalType(JournalType.NIO);
@@ -37,12 +39,13 @@ configuration.addAcceptorConfiguration("artemis", "tcp://localhost:61616");
configuration.setSecurityEnabled(false);
configuration.setPersistenceEnabled(true);
-configuration.addAddressConfiguration(new CoreAddressConfiguration().setName("TestQueue").addRoutingType(RoutingType.ANYCAST));
-configuration.addQueueConfiguration(new QueueConfiguration("TestQueue").setAddress("TestQueue").setRoutingType(RoutingType.ANYCAST));
+configuration.addAddressConfiguration(new CoreAddressConfiguration().setName(queueName).addRoutingType(RoutingType.ANYCAST));
+configuration.addQueueConfiguration(new QueueConfiguration(queueName).setAddress(queueName).setRoutingType(RoutingType.ANYCAST));
+configuration.addAddressConfiguration(new CoreAddressConfiguration().setName(topicName).addRoutingType(RoutingType.MULTICAST));
try {
AMQPBrokerConnectConfiguration connection = new AMQPBrokerConnectConfiguration("mirror", "tcp://localhost:61617").setReconnectAttempts(-1).setRetryInterval(100);
- AMQPMirrorBrokerConnectionElement replication = new AMQPMirrorBrokerConnectionElement().setDurable(true).setSync(true).setMessageAcknowledgements(true);
+ AMQPMirrorBrokerConnectionElement replication = new AMQPMirrorBrokerConnectionElement().setDurable(true).setSync(false).setMessageAcknowledgements(true)
connection.addElement(replication);
configuration.addAMQPConnection(connection);
} catch (Throwable ignored) {
@@ -50,4 +53,4 @@ try {
theMainServer = new EmbeddedActiveMQ();
theMainServer.setConfiguration(configuration);
-theMainServer.start();
+theMainServer.start();
\ No newline at end of file
diff --git a/tests/compatibility-tests/src/test/java/org/apache/activemq/artemis/tests/compatibility/MirroredVersionTest.java b/tests/compatibility-tests/src/test/java/org/apache/activemq/artemis/tests/compatibility/MirroredVersionTest.java
index b5f908c231..b6fb3860a9 100644
--- a/tests/compatibility-tests/src/test/java/org/apache/activemq/artemis/tests/compatibility/MirroredVersionTest.java
+++ b/tests/compatibility-tests/src/test/java/org/apache/activemq/artemis/tests/compatibility/MirroredVersionTest.java
@@ -23,6 +23,8 @@ import javax.jms.MessageConsumer;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
+import javax.jms.Topic;
+import java.io.File;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.lang.invoke.MethodHandles;
@@ -30,7 +32,10 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import org.apache.activemq.artemis.api.core.management.SimpleManagement;
import org.apache.activemq.artemis.tests.compatibility.base.ClasspathBase;
+import org.apache.activemq.artemis.utils.FileUtil;
+import org.apache.activemq.artemis.utils.Wait;
import org.apache.qpid.jms.JmsConnectionFactory;
import org.junit.After;
import org.junit.Assert;
@@ -41,32 +46,41 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static org.apache.activemq.artemis.tests.compatibility.GroovyRun.SNAPSHOT;
+import static org.apache.activemq.artemis.tests.compatibility.GroovyRun.TWO_THIRTYTHREE_ZERO;
import static org.apache.activemq.artemis.tests.compatibility.GroovyRun.TWO_TWENTYEIGHT_ZERO;
@RunWith(Parameterized.class)
public class MirroredVersionTest extends ClasspathBase {
+ private static final String QUEUE_NAME = "MirroredQueue";
+ private static final String TOPIC_NAME = "MirroredTopic";
+
private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
private final ClassLoader mainClassloader;
private final ClassLoader backupClassLoader;
+ private final boolean useDual;
- @Parameterized.Parameters(name = "BrokerA={0}, BrokerB={1}")
+
+ @Parameterized.Parameters(name = "BrokerA={0}, BrokerB={1}, dualMirror={2}")
public static Collection getParameters() {
List