This is an automated email from the ASF dual-hosted git repository.
jbonofre pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq.git
The following commit(s) were added to refs/heads/main by this push:
new 433c39569d [AMQ-8525] enable parallel tests execution for amqp and
kahadb-store modules (#1544)
433c39569d is described below
commit 433c39569d9836f7808033d97dbcdc960055f9e1
Author: Jean-Louis Monteiro <[email protected]>
AuthorDate: Wed Jan 7 15:12:25 2026 +0100
[AMQ-8525] enable parallel tests execution for amqp and kahadb-store
modules (#1544)
---
activemq-amqp/pom.xml | 74 +++++++++++++++++++
.../activemq/transport/amqp/AmqpAndMqttTest.java | 2 +
.../transport/amqp/AmqpAndStompInteropTest.java | 2 +
.../activemq/transport/amqp/AmqpTestSupport.java | 4 +-
.../transport/amqp/AmqpTransformerTest.java | 2 +
.../transport/amqp/JMSClientSimpleAuthTest.java | 2 +
.../activemq/transport/amqp/JMSClientTest.java | 4 +-
.../transport/amqp/JMSClientTestSupport.java | 33 +++++++++
...endReceiveNativeTest.java => ParallelTest.java} | 16 ++--
.../amqp/interop/AmqpAnonymousSenderTest.java | 3 +
.../interop/AmqpBrokerReuqestedHearbeatsTest.java | 3 +
.../interop/AmqpClientRequestsHeartbeatsTest.java | 3 +
.../interop/AmqpConfiguredMaxConnectionsTest.java | 3 +
.../amqp/interop/AmqpConnectionsTest.java | 3 +
.../interop/AmqpCorrelationIdPreservationTest.java | 3 +
.../interop/AmqpCorruptedFrameHandlingTest.java | 3 +
.../amqp/interop/AmqpDeliveryAnnotationsTest.java | 3 +
.../amqp/interop/AmqpDescribedTypePayloadTest.java | 3 +
.../interop/AmqpDisabledInactivityMonitorTest.java | 3 +
.../amqp/interop/AmqpDurableReceiverTest.java | 5 +-
.../amqp/interop/AmqpExpiredMessageTest.java | 3 +
.../amqp/interop/AmqpFlowControlTest.java | 3 +
.../amqp/interop/AmqpMaxFrameSizeTest.java | 3 +
.../interop/AmqpMessageIdPreservationTest.java | 3 +
.../amqp/interop/AmqpReceiverDrainTest.java | 3 +
.../transport/amqp/interop/AmqpReceiverTest.java | 3 +
.../transport/amqp/interop/AmqpSaslPlainTest.java | 5 +-
.../amqp/interop/AmqpScheduledMessageTest.java | 3 +
.../amqp/interop/AmqpSendReceiveNativeTest.java | 4 +
.../amqp/interop/AmqpSendReceiveTest.java | 3 +
.../transport/amqp/interop/AmqpSenderTest.java | 5 +-
.../transport/amqp/interop/AmqpSessionTest.java | 3 +
.../amqp/interop/AmqpSlowReceiverTest.java | 3 +
.../interop/AmqpSocketProxyIdleTimeoutTests.java | 3 +
.../amqp/interop/AmqpTempDestinationTest.java | 3 +
.../amqp/interop/AmqpTransactionTest.java | 3 +
...enWireToAmqpConcurrentStoreAndDispatchTest.java | 3 +
.../amqp/message/AMQPMessageIdHelperTest.java | 4 +
.../amqp/message/AmqpContentTypeSupportTest.java | 3 +
.../amqp/message/AmqpMessageSupportTest.java | 3 +
.../message/JMSMappingInboundTransformerTest.java | 3 +
.../message/JMSMappingOutboundTransformerTest.java | 3 +
.../amqp/message/MessageTransformationTest.java | 3 +
.../transport/amqp/message/UTF8BufferTypeTest.java | 3 +
.../amqp/protocol/AmqpFrameParserTest.java | 3 +
.../protocol/AmqpTransferTagGeneratorTest.java | 3 +
.../amqp/protocol/AmqpWireFormatTest.java | 3 +
activemq-kahadb-store/pom.xml | 86 ++++++++++++++++++----
.../kahadb/JournalCorruptionIndexRecoveryTest.java | 5 +-
.../apache/activemq/store/kahadb/ParallelTest.java | 16 ++--
.../store/kahadb/disk/index/BTreeIndexTest.java | 3 +
.../store/kahadb/disk/index/HashIndexTest.java | 3 +
.../store/kahadb/disk/index/ListIndexTest.java | 3 +
.../disk/index/PageFileTransactionAsyncTest.java | 3 +
.../disk/journal/DataFileAccessorPoolTest.java | 3 +
.../kahadb/disk/journal/DataFileAccessorTest.java | 4 +
.../journal/DataFileAppenderSyncStrategyTest.java | 3 +
.../journal/JournalMaxFileLengthChangeTest.java | 3 +
.../disk/journal/TargetedDataFileAppenderTest.java | 3 +
.../store/kahadb/disk/page/PageFileTest.java | 3 +
.../store/kahadb/disk/page/TransactionTest.java | 3 +
.../store/kahadb/disk/util/SequenceSetTest.java | 3 +
.../activemq/store/kahadb/plist/PListImplTest.java | 3 +
pom.xml | 1 +
64 files changed, 371 insertions(+), 38 deletions(-)
diff --git a/activemq-amqp/pom.xml b/activemq-amqp/pom.xml
index 74f83ea590..c566877953 100644
--- a/activemq-amqp/pom.xml
+++ b/activemq-amqp/pom.xml
@@ -180,6 +180,80 @@
</dependency>
</dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>${surefire.version}</version>
+ <configuration>
+ <argLine>${surefire.argLine}</argLine>
+ <runOrder>alphabetical</runOrder>
+ <reportFormat>plain</reportFormat>
+ <failIfNoTests>false</failIfNoTests>
+
<excludedGroups>org.apache.activemq.transport.amqp.ParallelTest</excludedGroups>
+ <systemPropertyVariables>
+
<org.apache.activemq.default.directory.prefix>${project.build.directory}/</org.apache.activemq.default.directory.prefix>
+ </systemPropertyVariables>
+ <consoleOutputReporter>
+ <disable>true</disable>
+ </consoleOutputReporter>
+ <statelessTestsetInfoReporter
+
implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5StatelessTestsetInfoTreeReporter">
+ <printStacktraceOnError>true</printStacktraceOnError>
+ <printStacktraceOnFailure>true</printStacktraceOnFailure>
+ <printStdoutOnError>true</printStdoutOnError>
+ <printStdoutOnFailure>true</printStdoutOnFailure>
+ <printStderrOnError>true</printStderrOnError>
+ <printStderrOnFailure>true</printStderrOnFailure>
+ </statelessTestsetInfoReporter>
+ <includes>
+ <include>**/*Test.*</include>
+ </includes>
+ <excludes>
+ <exclude>**/*LoadTest.java</exclude>
+ <exclude>**/*StressTest.java</exclude>
+ </excludes>
+ </configuration>
+ <executions>
+ <execution>
+ <id>parallel</id>
+ <phase>test</phase>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ <configuration>
+ <!-- drop the default excludedGroups -->
+ <excludedGroups combine.self="override"/>
+ <groups>org.apache.activemq.transport.amqp.ParallelTest</groups>
+ <forkCount>2C</forkCount>
+ <reuseForks>false</reuseForks>
+
<forkedProcessTimeoutInSeconds>600</forkedProcessTimeoutInSeconds>
+ <failIfNoTests>false</failIfNoTests>
+ <systemPropertyVariables>
+
<org.apache.activemq.default.directory.prefix>${project.build.directory}/parallel-tests-${surefire.forkNumber}/</org.apache.activemq.default.directory.prefix>
+ <!-- when running tests in parallel in the CI (quite slow) we
need to bump the wireformat negotiation timeout (5s by default) -->
+
<org.apache.activemq.transport.wireFormatNegotiationTimeout>30000</org.apache.activemq.transport.wireFormatNegotiationTimeout>
+ </systemPropertyVariables>
+ </configuration>
+ </execution>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.surefire</groupId>
+ <artifactId>surefire-junit47</artifactId>
+ <version>${surefire.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>me.fabriciorby</groupId>
+ <artifactId>maven-surefire-junit5-tree-reporter</artifactId>
+ <version>1.5.1</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ </plugins>
+ </build>
+
<profiles>
<profile>
<!-- profile which is activated is the swiftmq-client-home prop is
defined.
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/AmqpAndMqttTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/AmqpAndMqttTest.java
index 6695982c64..37b0fe075e 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/AmqpAndMqttTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/AmqpAndMqttTest.java
@@ -39,7 +39,9 @@ import org.fusesource.mqtt.client.QoS;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
+@Category(ParallelTest.class)
public class AmqpAndMqttTest {
protected BrokerService broker;
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/AmqpAndStompInteropTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/AmqpAndStompInteropTest.java
index 34a1070825..fe6ff0415f 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/AmqpAndStompInteropTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/AmqpAndStompInteropTest.java
@@ -40,10 +40,12 @@ import org.junit.Before;
import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.junit.rules.TestName;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Category(ParallelTest.class)
public class AmqpAndStompInteropTest {
private static final Logger LOG =
LoggerFactory.getLogger(AmqpAndStompInteropTest.class);
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/AmqpTestSupport.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/AmqpTestSupport.java
index 7aab533383..7baef9d1cd 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/AmqpTestSupport.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/AmqpTestSupport.java
@@ -51,6 +51,7 @@ import org.apache.activemq.broker.jmx.TopicViewMBean;
import org.apache.activemq.spring.SpringSslContext;
import org.apache.activemq.store.kahadb.KahaDBStore;
import org.apache.activemq.transport.amqp.protocol.AmqpConnection;
+import org.apache.activemq.util.IOHelper;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
@@ -61,7 +62,6 @@ import org.slf4j.LoggerFactory;
public class AmqpTestSupport {
public static final String MESSAGE_NUMBER = "MessageNumber";
- public static final String KAHADB_DIRECTORY = "target/activemq-data/";
@Rule public TestName name = new TestName();
@@ -120,7 +120,7 @@ public class AmqpTestSupport {
brokerService.setDeleteAllMessagesOnStartup(deleteAllMessages);
if (isPersistent()) {
KahaDBStore kaha = new KahaDBStore();
- kaha.setDirectory(new File(KAHADB_DIRECTORY + getTestName()));
+ kaha.setDirectory(new File(IOHelper.getDefaultDataDirectory() +
getTestName()));
brokerService.setPersistenceAdapter(kaha);
}
brokerService.setSchedulerSupport(isSchedulerEnabled());
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/AmqpTransformerTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/AmqpTransformerTest.java
index 929e4bac53..adf23a8477 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/AmqpTransformerTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/AmqpTransformerTest.java
@@ -45,9 +45,11 @@ import org.apache.activemq.transport.amqp.client.AmqpSender;
import org.apache.activemq.transport.amqp.client.AmqpSession;
import org.junit.After;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Category(ParallelTest.class)
public class AmqpTransformerTest {
private static final Logger LOG =
LoggerFactory.getLogger(AmqpTransformerTest.class);
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientSimpleAuthTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientSimpleAuthTest.java
index 6ea4b5ea66..cfd3dd2ea1 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientSimpleAuthTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientSimpleAuthTest.java
@@ -39,10 +39,12 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.junit.rules.TestName;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Category(ParallelTest.class)
public class JMSClientSimpleAuthTest {
@Rule public TestName name = new TestName();
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTest.java
index 7371944130..5cc886d926 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTest.java
@@ -61,10 +61,12 @@ import
org.apache.activemq.transport.amqp.joram.ActiveMQAdmin;
import org.apache.activemq.util.Wait;
import org.apache.qpid.jms.JmsConnectionFactory;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.objectweb.jtests.jms.framework.TestConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Category(ParallelTest.class)
public class JMSClientTest extends JMSClientTestSupport {
protected static final Logger LOG =
LoggerFactory.getLogger(JMSClientTest.class);
@@ -631,7 +633,7 @@ public class JMSClientTest extends JMSClientTestSupport {
@Test(timeout=30 * 1000)
public void testProduceAndConsumeLargeNumbersOfMessages() throws Exception
{
int count = 1000;
- connection = createConnection();
+ connection = createConnectionWithRetry(name.toString(), false);
Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue(getDestinationName());
connection.start();
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTestSupport.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTestSupport.java
index 53b24c1a74..87756232b7 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTestSupport.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTestSupport.java
@@ -145,4 +145,37 @@ public class JMSClientTestSupport extends AmqpTestSupport {
connection.start();
return connection;
}
+
+ /**
+ * Some SSL/NIO test combinations can occasionally fail the initial frame
negotiation
+ * when brokers are started in parallel forks. Retry once on the specific
framing error
+ * to smooth out that transient race without hiding other issues.
+ */
+ protected Connection createConnectionWithRetry(String clientId, boolean
syncPublish) throws JMSException, InterruptedException {
+ JMSException lastException = null;
+ for (int attempt = 0; attempt < 2; attempt++) {
+ try {
+ return createConnection(clientId, syncPublish);
+ } catch (JMSException ex) {
+ lastException = ex;
+ if (!containsAmqpHeaderMismatch(ex)) {
+ throw ex;
+ }
+ LOG.warn("AMQP header mismatch on connection attempt {} for
{}, retrying once", attempt + 1, getBrokerURI());
+ Thread.sleep(500);
+ }
+ }
+ throw lastException;
+ }
+
+ private boolean containsAmqpHeaderMismatch(Throwable throwable) {
+ Throwable current = throwable;
+ while (current != null) {
+ if (current.getMessage() != null &&
current.getMessage().contains("AMQP header mismatch")) {
+ return true;
+ }
+ current = current.getCause();
+ }
+ return false;
+ }
}
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSendReceiveNativeTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/ParallelTest.java
similarity index 67%
copy from
activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSendReceiveNativeTest.java
copy to
activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/ParallelTest.java
index db75d1086e..99e44c4351 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSendReceiveNativeTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/ParallelTest.java
@@ -1,4 +1,4 @@
-/*
+/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
@@ -14,12 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.activemq.transport.amqp.interop;
+package org.apache.activemq.transport.amqp;
-public class AmqpSendReceiveNativeTest extends AmqpSendReceiveTest {
- @Override
- protected String getAmqpTransformer() {
- return "native";
- }
+/**
+ * Marker interface used with {@code @Category(ParallelTest.class)} to opt a
+ * test class or method into the {@code all-parallel} Maven profile. Only tests
+ * explicitly tagged with this category execute when the profile is enabled,
+ * which allows a gradual migration toward full parallelism.
+ */
+public interface ParallelTest {
}
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpAnonymousSenderTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpAnonymousSenderTest.java
index 964b4b3cbf..1465525e61 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpAnonymousSenderTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpAnonymousSenderTest.java
@@ -28,11 +28,14 @@ import
org.apache.activemq.transport.amqp.client.AmqpMessage;
import org.apache.activemq.transport.amqp.client.AmqpReceiver;
import org.apache.activemq.transport.amqp.client.AmqpSender;
import org.apache.activemq.transport.amqp.client.AmqpSession;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
/**
* Test for support of Anonymous sender links.
*/
+@Category(ParallelTest.class)
public class AmqpAnonymousSenderTest extends AmqpClientTestSupport {
@Test(timeout = 60000)
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpBrokerReuqestedHearbeatsTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpBrokerReuqestedHearbeatsTest.java
index e794274f32..c24293a039 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpBrokerReuqestedHearbeatsTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpBrokerReuqestedHearbeatsTest.java
@@ -31,17 +31,20 @@ import
org.apache.activemq.transport.amqp.client.AmqpClientTestSupport;
import org.apache.activemq.transport.amqp.client.AmqpConnection;
import org.apache.activemq.transport.amqp.client.AmqpConnectionListener;
import org.apache.activemq.transport.amqp.client.AmqpValidator;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.apache.activemq.util.Wait;
import org.apache.qpid.proton.engine.Connection;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
+import org.junit.experimental.categories.Category;
/**
* Test handling of heartbeats requested by the broker.
*/
@RunWith(Parameterized.class)
+@Category(ParallelTest.class)
public class AmqpBrokerReuqestedHearbeatsTest extends AmqpClientTestSupport {
private final int TEST_IDLE_TIMEOUT = 1000;
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpClientRequestsHeartbeatsTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpClientRequestsHeartbeatsTest.java
index 97b38fb3da..e88c3581d1 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpClientRequestsHeartbeatsTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpClientRequestsHeartbeatsTest.java
@@ -31,17 +31,20 @@ import
org.apache.activemq.transport.amqp.client.AmqpClientTestSupport;
import org.apache.activemq.transport.amqp.client.AmqpConnection;
import org.apache.activemq.transport.amqp.client.AmqpConnectionListener;
import org.apache.activemq.transport.amqp.client.AmqpValidator;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.apache.activemq.util.Wait;
import org.apache.qpid.proton.engine.Connection;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
+import org.junit.experimental.categories.Category;
/**
* Tests that cover broker behavior when the client requests heartbeats
*/
@RunWith(Parameterized.class)
+@Category(ParallelTest.class)
public class AmqpClientRequestsHeartbeatsTest extends AmqpClientTestSupport {
private final int TEST_IDLE_TIMEOUT = 1000;
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpConfiguredMaxConnectionsTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpConfiguredMaxConnectionsTest.java
index 6b97698af6..0bfadfdb1e 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpConfiguredMaxConnectionsTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpConfiguredMaxConnectionsTest.java
@@ -28,15 +28,18 @@ import java.util.List;
import org.apache.activemq.transport.amqp.client.AmqpClient;
import org.apache.activemq.transport.amqp.client.AmqpClientTestSupport;
import org.apache.activemq.transport.amqp.client.AmqpConnection;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
+import org.junit.experimental.categories.Category;
/**
* Test for the transportConnector maximumConnections URI option.
*/
@RunWith(Parameterized.class)
+@Category(ParallelTest.class)
public class AmqpConfiguredMaxConnectionsTest extends AmqpClientTestSupport {
private static final int MAX_CONNECTIONS = 10;
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpConnectionsTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpConnectionsTest.java
index 3e24501e1b..cfeeef04a0 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpConnectionsTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpConnectionsTest.java
@@ -40,6 +40,7 @@ import org.apache.activemq.transport.amqp.client.AmqpReceiver;
import org.apache.activemq.transport.amqp.client.AmqpSender;
import org.apache.activemq.transport.amqp.client.AmqpSession;
import org.apache.activemq.transport.amqp.client.AmqpValidator;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.apache.qpid.proton.amqp.Symbol;
import org.apache.qpid.proton.amqp.transport.AmqpError;
import org.apache.qpid.proton.amqp.transport.ErrorCondition;
@@ -48,11 +49,13 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
+import org.junit.experimental.categories.Category;
/**
* Test broker handling of AMQP connections with various configurations.
*/
@RunWith(Parameterized.class)
+@Category(ParallelTest.class)
public class AmqpConnectionsTest extends AmqpClientTestSupport {
private static final Symbol QUEUE_PREFIX = Symbol.valueOf("queue-prefix");
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpCorrelationIdPreservationTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpCorrelationIdPreservationTest.java
index e5aeb1aa8b..4a512ddc53 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpCorrelationIdPreservationTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpCorrelationIdPreservationTest.java
@@ -33,12 +33,14 @@ import
org.apache.activemq.transport.amqp.client.AmqpMessage;
import org.apache.activemq.transport.amqp.client.AmqpReceiver;
import org.apache.activemq.transport.amqp.client.AmqpSender;
import org.apache.activemq.transport.amqp.client.AmqpSession;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.apache.qpid.proton.amqp.Binary;
import org.apache.qpid.proton.amqp.UnsignedLong;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
+import org.junit.experimental.categories.Category;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -46,6 +48,7 @@ import org.slf4j.LoggerFactory;
* Tests that the AMQP CorrelationId value and type are preserved.
*/
@RunWith(Parameterized.class)
+@Category(ParallelTest.class)
public class AmqpCorrelationIdPreservationTest extends AmqpClientTestSupport {
protected static final Logger LOG =
LoggerFactory.getLogger(JMSInteroperabilityTest.class);
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpCorruptedFrameHandlingTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpCorruptedFrameHandlingTest.java
index d7863617b5..a9b5a0a8f3 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpCorruptedFrameHandlingTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpCorruptedFrameHandlingTest.java
@@ -24,13 +24,16 @@ import java.util.Random;
import org.apache.activemq.transport.amqp.client.AmqpClient;
import org.apache.activemq.transport.amqp.client.AmqpClientTestSupport;
import org.apache.activemq.transport.amqp.client.AmqpConnection;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.apache.activemq.util.Wait;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
/**
* Test that broker closes connection and allows a new one when the transport
* receives a bad chunk of data after a successful connect.
*/
+@Category(ParallelTest.class)
public class AmqpCorruptedFrameHandlingTest extends AmqpClientTestSupport {
@Override
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpDeliveryAnnotationsTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpDeliveryAnnotationsTest.java
index a561b6b3f4..22b8e4b51e 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpDeliveryAnnotationsTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpDeliveryAnnotationsTest.java
@@ -31,15 +31,18 @@ import
org.apache.activemq.transport.amqp.client.AmqpMessage;
import org.apache.activemq.transport.amqp.client.AmqpReceiver;
import org.apache.activemq.transport.amqp.client.AmqpSender;
import org.apache.activemq.transport.amqp.client.AmqpSession;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
+import org.junit.experimental.categories.Category;
/**
* Test around the handling of Deliver Annotations in messages sent and
received.
*/
@RunWith(Parameterized.class)
+@Category(ParallelTest.class)
public class AmqpDeliveryAnnotationsTest extends AmqpClientTestSupport {
private final String DELIVERY_ANNOTATION_NAME = "TEST-DELIVERY-ANNOTATION";
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpDescribedTypePayloadTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpDescribedTypePayloadTest.java
index 9632008bba..f53c47be4a 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpDescribedTypePayloadTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpDescribedTypePayloadTest.java
@@ -42,16 +42,19 @@ import
org.apache.activemq.transport.amqp.client.AmqpNoLocalFilter;
import org.apache.activemq.transport.amqp.client.AmqpReceiver;
import org.apache.activemq.transport.amqp.client.AmqpSender;
import org.apache.activemq.transport.amqp.client.AmqpSession;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
+import org.junit.experimental.categories.Category;
/**
* Test that the broker can pass through an AMQP message with a described type
* in the message body regardless of transformer in use.
*/
@RunWith(Parameterized.class)
+@Category(ParallelTest.class)
public class AmqpDescribedTypePayloadTest extends AmqpClientTestSupport {
private final String transformer;
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpDisabledInactivityMonitorTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpDisabledInactivityMonitorTest.java
index 6eae2ad854..b93680b25e 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpDisabledInactivityMonitorTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpDisabledInactivityMonitorTest.java
@@ -24,12 +24,15 @@ import org.apache.activemq.transport.amqp.client.AmqpClient;
import org.apache.activemq.transport.amqp.client.AmqpClientTestSupport;
import org.apache.activemq.transport.amqp.client.AmqpConnection;
import org.apache.activemq.transport.amqp.client.AmqpValidator;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.apache.qpid.proton.engine.Connection;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
/**
* Test broker behaviors around Idle timeout when the inactivity monitor is
disabled.
*/
+@Category(ParallelTest.class)
public class AmqpDisabledInactivityMonitorTest extends AmqpClientTestSupport {
private final int TEST_IDLE_TIMEOUT = 3000;
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpDurableReceiverTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpDurableReceiverTest.java
index c5636db1fe..99fb06e192 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpDurableReceiverTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpDurableReceiverTest.java
@@ -32,6 +32,7 @@ import
org.apache.activemq.transport.amqp.client.AmqpConnection;
import org.apache.activemq.transport.amqp.client.AmqpFrameValidator;
import org.apache.activemq.transport.amqp.client.AmqpReceiver;
import org.apache.activemq.transport.amqp.client.AmqpSession;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.apache.qpid.proton.amqp.Binary;
import org.apache.qpid.proton.amqp.DescribedType;
import org.apache.qpid.proton.amqp.messaging.Source;
@@ -40,10 +41,12 @@ import
org.apache.qpid.proton.amqp.messaging.TerminusExpiryPolicy;
import org.apache.qpid.proton.amqp.transport.Detach;
import org.apache.qpid.proton.engine.Receiver;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
/**
* Tests for broker side support of the Durable Subscription mapping for JMS.
*/
+@Category(ParallelTest.class)
public class AmqpDurableReceiverTest extends AmqpClientTestSupport {
private final String SELECTOR_STRING = "color = red";
@@ -498,4 +501,4 @@ public class AmqpDurableReceiverTest extends
AmqpClientTestSupport {
connection.close();
}
-}
\ No newline at end of file
+}
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpExpiredMessageTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpExpiredMessageTest.java
index 902ca55f2f..47ae570e23 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpExpiredMessageTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpExpiredMessageTest.java
@@ -30,8 +30,11 @@ import org.apache.activemq.transport.amqp.client.AmqpMessage;
import org.apache.activemq.transport.amqp.client.AmqpReceiver;
import org.apache.activemq.transport.amqp.client.AmqpSender;
import org.apache.activemq.transport.amqp.client.AmqpSession;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
+@Category(ParallelTest.class)
public class AmqpExpiredMessageTest extends AmqpClientTestSupport {
@Test(timeout = 60000)
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpFlowControlTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpFlowControlTest.java
index 3cbbd4b1ed..389db9257f 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpFlowControlTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpFlowControlTest.java
@@ -35,9 +35,12 @@ import org.apache.activemq.transport.amqp.client.AmqpMessage;
import org.apache.activemq.transport.amqp.client.AmqpReceiver;
import org.apache.activemq.transport.amqp.client.AmqpSender;
import org.apache.activemq.transport.amqp.client.AmqpSession;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.apache.activemq.util.Wait;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
+@Category(ParallelTest.class)
public class AmqpFlowControlTest extends AmqpClientTestSupport {
@Override
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpMaxFrameSizeTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpMaxFrameSizeTest.java
index 84415d7dc1..af564144cf 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpMaxFrameSizeTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpMaxFrameSizeTest.java
@@ -32,15 +32,18 @@ import
org.apache.activemq.transport.amqp.client.AmqpConnectionListener;
import org.apache.activemq.transport.amqp.client.AmqpMessage;
import org.apache.activemq.transport.amqp.client.AmqpSender;
import org.apache.activemq.transport.amqp.client.AmqpSession;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
+import org.junit.experimental.categories.Category;
/**
* Test that the maxFrameSize setting prevents large frames from being
processed.
*/
@RunWith(Parameterized.class)
+@Category(ParallelTest.class)
public class AmqpMaxFrameSizeTest extends AmqpClientTestSupport {
private final int TEST_IDLE_TIMEOUT = 500;
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpMessageIdPreservationTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpMessageIdPreservationTest.java
index f5789ebb72..d29950f8fd 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpMessageIdPreservationTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpMessageIdPreservationTest.java
@@ -33,12 +33,14 @@ import
org.apache.activemq.transport.amqp.client.AmqpMessage;
import org.apache.activemq.transport.amqp.client.AmqpReceiver;
import org.apache.activemq.transport.amqp.client.AmqpSender;
import org.apache.activemq.transport.amqp.client.AmqpSession;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.apache.qpid.proton.amqp.Binary;
import org.apache.qpid.proton.amqp.UnsignedLong;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
+import org.junit.experimental.categories.Category;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -46,6 +48,7 @@ import org.slf4j.LoggerFactory;
* Tests that the AMQP MessageID value and type are preserved.
*/
@RunWith(Parameterized.class)
+@Category(ParallelTest.class)
public class AmqpMessageIdPreservationTest extends AmqpClientTestSupport {
protected static final Logger LOG =
LoggerFactory.getLogger(JMSInteroperabilityTest.class);
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpReceiverDrainTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpReceiverDrainTest.java
index 993f26b821..fcbaa8290f 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpReceiverDrainTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpReceiverDrainTest.java
@@ -31,11 +31,14 @@ import
org.apache.activemq.transport.amqp.client.AmqpConnection;
import org.apache.activemq.transport.amqp.client.AmqpMessage;
import org.apache.activemq.transport.amqp.client.AmqpReceiver;
import org.apache.activemq.transport.amqp.client.AmqpSession;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
/**
* Tests various behaviors of broker side drain support.
*/
+@Category(ParallelTest.class)
public class AmqpReceiverDrainTest extends AmqpClientTestSupport {
@Test(timeout = 60000)
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpReceiverTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpReceiverTest.java
index 7bdafb7ff6..095709b337 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpReceiverTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpReceiverTest.java
@@ -41,6 +41,7 @@ import org.apache.activemq.transport.amqp.client.AmqpReceiver;
import org.apache.activemq.transport.amqp.client.AmqpSession;
import org.apache.activemq.transport.amqp.client.AmqpUnknownFilterType;
import org.apache.activemq.transport.amqp.client.AmqpValidator;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.apache.activemq.util.Wait;
import org.apache.qpid.proton.amqp.DescribedType;
import org.apache.qpid.proton.amqp.Symbol;
@@ -54,11 +55,13 @@ import org.apache.qpid.proton.engine.Session;
import org.apache.qpid.proton.message.Message;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.junit.experimental.categories.Category;
/**
* Test various behaviors of AMQP receivers with the broker.
*/
@RunWith(ActiveMQTestRunner.class)
+@Category(ParallelTest.class)
public class AmqpReceiverTest extends AmqpClientTestSupport {
@Override
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSaslPlainTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSaslPlainTest.java
index 0f01c669e0..9310590109 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSaslPlainTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSaslPlainTest.java
@@ -33,11 +33,14 @@ import
org.apache.activemq.transport.amqp.client.AmqpConnection;
import org.apache.activemq.transport.amqp.client.AmqpSender;
import org.apache.activemq.transport.amqp.client.AmqpSession;
import org.apache.activemq.transport.amqp.client.sasl.PlainMechanism;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
/**
* Test broker behaviour when creating AMQP connections with SASL PLAIN
mechanism.
*/
+@Category(ParallelTest.class)
public class AmqpSaslPlainTest extends AmqpClientTestSupport {
private static final String ADMIN = "admin";
@@ -144,4 +147,4 @@ public class AmqpSaslPlainTest extends
AmqpClientTestSupport {
assertTrue("Expected security exception cause", cause instanceof
SecurityException);
}
}
-}
\ No newline at end of file
+}
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpScheduledMessageTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpScheduledMessageTest.java
index 21c0d43c7a..93a782792b 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpScheduledMessageTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpScheduledMessageTest.java
@@ -41,12 +41,15 @@ import
org.apache.activemq.transport.amqp.client.AmqpMessage;
import org.apache.activemq.transport.amqp.client.AmqpReceiver;
import org.apache.activemq.transport.amqp.client.AmqpSender;
import org.apache.activemq.transport.amqp.client.AmqpSession;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.apache.activemq.util.Wait;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
/**
* Test for scheduled message support using AMQP message annotations.
*/
+@Category(ParallelTest.class)
public class AmqpScheduledMessageTest extends AmqpClientTestSupport {
@Override
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSendReceiveNativeTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSendReceiveNativeTest.java
index db75d1086e..c427525938 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSendReceiveNativeTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSendReceiveNativeTest.java
@@ -16,6 +16,10 @@
*/
package org.apache.activemq.transport.amqp.interop;
+import org.apache.activemq.transport.amqp.ParallelTest;
+import org.junit.experimental.categories.Category;
+
+@Category(ParallelTest.class)
public class AmqpSendReceiveNativeTest extends AmqpSendReceiveTest {
@Override
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSendReceiveTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSendReceiveTest.java
index 9b0a985abc..dcf6fc3d26 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSendReceiveTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSendReceiveTest.java
@@ -48,6 +48,7 @@ import org.apache.activemq.transport.amqp.client.AmqpMessage;
import org.apache.activemq.transport.amqp.client.AmqpReceiver;
import org.apache.activemq.transport.amqp.client.AmqpSender;
import org.apache.activemq.transport.amqp.client.AmqpSession;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.apache.activemq.util.Wait;
import org.apache.qpid.proton.amqp.Symbol;
import org.apache.qpid.proton.amqp.UnsignedByte;
@@ -58,6 +59,7 @@ import org.apache.qpid.proton.message.Message;
import org.apache.qpid.proton.message.impl.MessageImpl;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.junit.experimental.categories.Category;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -66,6 +68,7 @@ import org.slf4j.LoggerFactory;
* links.
*/
@RunWith(ActiveMQTestRunner.class)
+@Category(ParallelTest.class)
public class AmqpSendReceiveTest extends AmqpClientTestSupport {
protected static final Logger LOG =
LoggerFactory.getLogger(AmqpSendReceiveTest.class);
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSenderTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSenderTest.java
index 79ff275327..619714a8e2 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSenderTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSenderTest.java
@@ -35,6 +35,7 @@ import org.apache.activemq.transport.amqp.client.AmqpSender;
import org.apache.activemq.transport.amqp.client.AmqpSession;
import org.apache.activemq.transport.amqp.client.AmqpSupport;
import org.apache.activemq.transport.amqp.client.AmqpValidator;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.apache.activemq.util.Wait;
import org.apache.qpid.proton.amqp.Symbol;
import org.apache.qpid.proton.amqp.transport.ReceiverSettleMode;
@@ -42,10 +43,12 @@ import
org.apache.qpid.proton.amqp.transport.SenderSettleMode;
import org.apache.qpid.proton.engine.Delivery;
import org.apache.qpid.proton.engine.Sender;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
/**
* Test broker behavior when creating AMQP senders
*/
+@Category(ParallelTest.class)
public class AmqpSenderTest extends AmqpClientTestSupport {
@Test(timeout = 60000)
@@ -328,4 +331,4 @@ public class AmqpSenderTest extends AmqpClientTestSupport {
sender.close();
connection.close();
}
-}
\ No newline at end of file
+}
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSessionTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSessionTest.java
index 2957849f09..3b46955b40 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSessionTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSessionTest.java
@@ -26,15 +26,18 @@ import
org.apache.activemq.transport.amqp.client.AmqpConnection;
import org.apache.activemq.transport.amqp.client.AmqpReceiver;
import org.apache.activemq.transport.amqp.client.AmqpSession;
import org.apache.activemq.transport.amqp.client.AmqpValidator;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.apache.qpid.proton.engine.Receiver;
import org.apache.qpid.proton.engine.Session;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Test for creation and configuration of AMQP sessions.
*/
+@Category(ParallelTest.class)
public class AmqpSessionTest extends AmqpClientTestSupport {
protected static final Logger LOG =
LoggerFactory.getLogger(AmqpSessionTest.class);
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSlowReceiverTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSlowReceiverTest.java
index d064af8369..c94226acf2 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSlowReceiverTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSlowReceiverTest.java
@@ -41,12 +41,15 @@ import
org.apache.activemq.transport.amqp.client.AmqpConnection;
import org.apache.activemq.transport.amqp.client.AmqpMessage;
import org.apache.activemq.transport.amqp.client.AmqpReceiver;
import org.apache.activemq.transport.amqp.client.AmqpSession;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.apache.activemq.util.Wait;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
/**
* Test the handling of consumer abort when the AbortSlowAckConsumerStrategy
is used.
*/
+@Category(ParallelTest.class)
public class AmqpSlowReceiverTest extends AmqpClientTestSupport {
private final long DEFAULT_CHECK_PERIOD = 1000;
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSocketProxyIdleTimeoutTests.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSocketProxyIdleTimeoutTests.java
index d613771f5f..5688bea31c 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSocketProxyIdleTimeoutTests.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSocketProxyIdleTimeoutTests.java
@@ -29,15 +29,18 @@ import org.apache.activemq.transport.amqp.client.AmqpClient;
import org.apache.activemq.transport.amqp.client.AmqpClientTestSupport;
import org.apache.activemq.transport.amqp.client.AmqpConnection;
import org.apache.activemq.transport.amqp.client.AmqpConnectionListener;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.apache.activemq.util.SocketProxy;
import org.apache.activemq.util.Wait;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
/**
* Test for idle timeout processing using SocketProxy to interrupt coms.
*/
+@Category(ParallelTest.class)
public class AmqpSocketProxyIdleTimeoutTests extends AmqpClientTestSupport {
private final int TEST_IDLE_TIMEOUT = 3000;
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpTempDestinationTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpTempDestinationTest.java
index fb5e9e1a3a..5e96862a44 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpTempDestinationTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpTempDestinationTest.java
@@ -37,6 +37,7 @@ import org.apache.activemq.transport.amqp.client.AmqpMessage;
import org.apache.activemq.transport.amqp.client.AmqpReceiver;
import org.apache.activemq.transport.amqp.client.AmqpSender;
import org.apache.activemq.transport.amqp.client.AmqpSession;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.apache.qpid.proton.amqp.Symbol;
import org.apache.qpid.proton.amqp.messaging.DeleteOnClose;
import org.apache.qpid.proton.amqp.messaging.Source;
@@ -44,10 +45,12 @@ import org.apache.qpid.proton.amqp.messaging.Target;
import org.apache.qpid.proton.amqp.messaging.TerminusDurability;
import org.apache.qpid.proton.amqp.messaging.TerminusExpiryPolicy;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
/**
* Tests for JMS temporary destination mappings to AMQP
*/
+@Category(ParallelTest.class)
public class AmqpTempDestinationTest extends AmqpClientTestSupport {
@Test(timeout = 60000)
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpTransactionTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpTransactionTest.java
index b9fe05eb10..7113bddd20 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpTransactionTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpTransactionTest.java
@@ -32,16 +32,19 @@ import
org.apache.activemq.transport.amqp.client.AmqpMessage;
import org.apache.activemq.transport.amqp.client.AmqpReceiver;
import org.apache.activemq.transport.amqp.client.AmqpSender;
import org.apache.activemq.transport.amqp.client.AmqpSession;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.apache.qpid.proton.amqp.messaging.Accepted;
import org.apache.qpid.proton.amqp.messaging.Modified;
import org.apache.qpid.proton.amqp.messaging.Outcome;
import org.apache.qpid.proton.amqp.messaging.Rejected;
import org.apache.qpid.proton.amqp.messaging.Released;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
/**
* Test various aspects of Transaction support.
*/
+@Category(ParallelTest.class)
public class AmqpTransactionTest extends AmqpClientTestSupport {
@Test(timeout = 30000)
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/OpenWireToAmqpConcurrentStoreAndDispatchTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/OpenWireToAmqpConcurrentStoreAndDispatchTest.java
index 09727c902a..5986e6df9e 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/OpenWireToAmqpConcurrentStoreAndDispatchTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/OpenWireToAmqpConcurrentStoreAndDispatchTest.java
@@ -24,11 +24,13 @@ import
org.apache.activemq.transport.amqp.client.AmqpConnection;
import org.apache.activemq.transport.amqp.client.AmqpMessage;
import org.apache.activemq.transport.amqp.client.AmqpReceiver;
import org.apache.activemq.transport.amqp.client.AmqpSession;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
+import org.junit.experimental.categories.Category;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -51,6 +53,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@RunWith(Parameterized.class)
+@Category(ParallelTest.class)
public class OpenWireToAmqpConcurrentStoreAndDispatchTest extends
AmqpClientTestSupport {
protected static final Logger LOG =
LoggerFactory.getLogger(OpenWireToAmqpConcurrentStoreAndDispatchTest.class);
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/AMQPMessageIdHelperTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/AMQPMessageIdHelperTest.java
index bbc4a4a86d..fa19ac2d42 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/AMQPMessageIdHelperTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/AMQPMessageIdHelperTest.java
@@ -28,11 +28,15 @@ import static org.junit.Assert.fail;
import java.util.UUID;
import org.apache.activemq.transport.amqp.AmqpProtocolException;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.apache.qpid.jms.exceptions.IdConversionException;
import org.apache.qpid.proton.amqp.Binary;
import org.apache.qpid.proton.amqp.UnsignedLong;
import org.junit.Before;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+@Category(ParallelTest.class)
public class AMQPMessageIdHelperTest {
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/AmqpContentTypeSupportTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/AmqpContentTypeSupportTest.java
index e98dfc95b2..cacf108552 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/AmqpContentTypeSupportTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/AmqpContentTypeSupportTest.java
@@ -22,8 +22,11 @@ import static org.junit.Assert.assertNull;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
+@Category(ParallelTest.class)
public class AmqpContentTypeSupportTest {
@Test (expected = InvalidContentTypeException.class)
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/AmqpMessageSupportTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/AmqpMessageSupportTest.java
index c346d718d2..fc96e2e1ba 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/AmqpMessageSupportTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/AmqpMessageSupportTest.java
@@ -24,12 +24,15 @@ import static org.junit.Assert.assertTrue;
import java.util.HashMap;
import java.util.Map;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.apache.qpid.proton.Proton;
import org.apache.qpid.proton.amqp.Symbol;
import org.apache.qpid.proton.amqp.messaging.MessageAnnotations;
import org.apache.qpid.proton.message.Message;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
+@Category(ParallelTest.class)
public class AmqpMessageSupportTest {
//---------- getSymbol
---------------------------------------------------//
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/JMSMappingInboundTransformerTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/JMSMappingInboundTransformerTest.java
index b868fef265..af2a1eb989 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/JMSMappingInboundTransformerTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/JMSMappingInboundTransformerTest.java
@@ -44,6 +44,7 @@ import org.apache.activemq.command.ActiveMQMessage;
import org.apache.activemq.command.ActiveMQObjectMessage;
import org.apache.activemq.command.ActiveMQStreamMessage;
import org.apache.activemq.command.ActiveMQTextMessage;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.apache.qpid.proton.Proton;
import org.apache.qpid.proton.amqp.Binary;
import org.apache.qpid.proton.amqp.Symbol;
@@ -53,7 +54,9 @@ import org.apache.qpid.proton.amqp.messaging.Data;
import org.apache.qpid.proton.amqp.messaging.MessageAnnotations;
import org.apache.qpid.proton.message.Message;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
+@Category(ParallelTest.class)
public class JMSMappingInboundTransformerTest {
//----- Null Body Section
------------------------------------------------//
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/JMSMappingOutboundTransformerTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/JMSMappingOutboundTransformerTest.java
index ea43554482..b4223687f9 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/JMSMappingOutboundTransformerTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/JMSMappingOutboundTransformerTest.java
@@ -61,6 +61,7 @@ import org.apache.activemq.command.ActiveMQTopic;
import org.apache.activemq.command.ConnectionId;
import org.apache.activemq.command.ConnectionInfo;
import org.apache.activemq.command.RemoveInfo;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.apache.activemq.util.ByteArrayInputStream;
import org.apache.qpid.proton.amqp.Binary;
import org.apache.qpid.proton.amqp.Symbol;
@@ -70,8 +71,10 @@ import org.apache.qpid.proton.amqp.messaging.Data;
import org.apache.qpid.proton.amqp.messaging.MessageAnnotations;
import org.apache.qpid.proton.message.Message;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.mockito.Mockito;
+@Category(ParallelTest.class)
public class JMSMappingOutboundTransformerTest {
private final UUID TEST_OBJECT_VALUE =
UUID.fromString("fee14b62-09e0-4ac6-a4c3-4206c630d844");
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/MessageTransformationTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/MessageTransformationTest.java
index 04cedc8fa8..5742a0f4dd 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/MessageTransformationTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/MessageTransformationTest.java
@@ -30,6 +30,7 @@ import java.util.Map;
import org.apache.activemq.command.ActiveMQMessage;
import org.apache.activemq.transport.amqp.JMSInteroperabilityTest;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.apache.qpid.proton.Proton;
import org.apache.qpid.proton.amqp.Symbol;
import org.apache.qpid.proton.amqp.messaging.AmqpValue;
@@ -43,6 +44,7 @@ import org.apache.qpid.proton.message.Message;
import org.apache.qpid.proton.message.ProtonJMessage;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.junit.rules.TestName;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -53,6 +55,7 @@ import org.slf4j.LoggerFactory;
/**
* Tests some basic encode / decode functionality on the transformers.
*/
+@Category(ParallelTest.class)
@RunWith(Parameterized.class)
public class MessageTransformationTest {
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/UTF8BufferTypeTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/UTF8BufferTypeTest.java
index c9bc52c2a4..428dd9b942 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/UTF8BufferTypeTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/UTF8BufferTypeTest.java
@@ -24,6 +24,7 @@ import static org.junit.Assert.assertTrue;
import java.nio.charset.StandardCharsets;
import java.util.UUID;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.apache.qpid.proton.codec.AMQPDefinedTypes;
import org.apache.qpid.proton.codec.DecoderImpl;
import org.apache.qpid.proton.codec.EncoderImpl;
@@ -33,10 +34,12 @@ import org.apache.qpid.proton.codec.ReadableBuffer;
import org.fusesource.hawtbuf.UTF8Buffer;
import org.junit.Before;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
/**
* Test the UTF8Buffer type encoder
*/
+@Category(ParallelTest.class)
public class UTF8BufferTypeTest {
private final UTF8BufferType utf8BufferEncoding;
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/protocol/AmqpFrameParserTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/protocol/AmqpFrameParserTest.java
index 5f78aaaee3..9f489f8459 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/protocol/AmqpFrameParserTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/protocol/AmqpFrameParserTest.java
@@ -28,13 +28,16 @@ import java.util.List;
import org.apache.activemq.transport.amqp.AmqpFrameParser;
import org.apache.activemq.transport.amqp.AmqpHeader;
import org.apache.activemq.transport.amqp.AmqpWireFormat;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.fusesource.hawtbuf.Buffer;
import org.fusesource.hawtbuf.DataByteArrayOutputStream;
import org.junit.Before;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Category(ParallelTest.class)
public class AmqpFrameParserTest {
private static final Logger LOG =
LoggerFactory.getLogger(AmqpFrameParserTest.class);
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/protocol/AmqpTransferTagGeneratorTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/protocol/AmqpTransferTagGeneratorTest.java
index f10f42bac9..cb04c82b7f 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/protocol/AmqpTransferTagGeneratorTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/protocol/AmqpTransferTagGeneratorTest.java
@@ -29,12 +29,15 @@ import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.junit.Ignore;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
/**
* Tests for the AMQP Transfer Tag Generator
*/
+@Category(ParallelTest.class)
public class AmqpTransferTagGeneratorTest {
@Test
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/protocol/AmqpWireFormatTest.java
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/protocol/AmqpWireFormatTest.java
index 7e320d24d3..10a5b18e36 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/protocol/AmqpWireFormatTest.java
+++
b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/protocol/AmqpWireFormatTest.java
@@ -24,8 +24,11 @@ import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.activemq.transport.amqp.AmqpHeader;
import org.apache.activemq.transport.amqp.AmqpWireFormat;
import org.apache.activemq.transport.amqp.AmqpWireFormat.ResetListener;
+import org.apache.activemq.transport.amqp.ParallelTest;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
+@Category(ParallelTest.class)
public class AmqpWireFormatTest {
private final AmqpWireFormat wireFormat = new AmqpWireFormat();
diff --git a/activemq-kahadb-store/pom.xml b/activemq-kahadb-store/pom.xml
index 7927aea464..b069f36d7c 100644
--- a/activemq-kahadb-store/pom.xml
+++ b/activemq-kahadb-store/pom.xml
@@ -173,21 +173,6 @@
</plugins>
</pluginManagement>
<plugins>
- <plugin>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <forkCount>1</forkCount>
- <reuseForks>false</reuseForks>
- <argLine>${surefire.argLine}</argLine>
- <runOrder>alphabetical</runOrder>
- <systemPropertyVariables>
-
<org.apache.activemq.default.directory.prefix>target</org.apache.activemq.default.directory.prefix>
- </systemPropertyVariables>
- <includes>
- <include>**/*Test.*</include>
- </includes>
- </configuration>
- </plugin>
<plugin>
<groupId>org.apache.activemq.protobuf</groupId>
<artifactId>activemq-protobuf</artifactId>
@@ -216,7 +201,76 @@
</configuration>
</execution>
</executions>
- </plugin>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>${surefire.version}</version>
+ <configuration>
+ <argLine>${surefire.argLine}</argLine>
+ <runOrder>alphabetical</runOrder>
+ <reportFormat>plain</reportFormat>
+ <failIfNoTests>false</failIfNoTests>
+
<excludedGroups>org.apache.activemq.store.kahadb.ParallelTest</excludedGroups>
+ <systemPropertyVariables>
+
<org.apache.activemq.default.directory.prefix>${project.build.directory}/</org.apache.activemq.default.directory.prefix>
+ </systemPropertyVariables>
+ <consoleOutputReporter>
+ <disable>true</disable>
+ </consoleOutputReporter>
+ <statelessTestsetInfoReporter
+
implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5StatelessTestsetInfoTreeReporter">
+ <printStacktraceOnError>true</printStacktraceOnError>
+ <printStacktraceOnFailure>true</printStacktraceOnFailure>
+ <printStdoutOnError>true</printStdoutOnError>
+ <printStdoutOnFailure>true</printStdoutOnFailure>
+ <printStderrOnError>true</printStderrOnError>
+ <printStderrOnFailure>true</printStderrOnFailure>
+ </statelessTestsetInfoReporter>
+ <includes>
+ <include>**/*Test.*</include>
+ </includes>
+ <excludes>
+ <exclude>**/*LoadTest.java</exclude>
+ <exclude>**/*StressTest.java</exclude>
+ </excludes>
+ </configuration>
+ <executions>
+ <execution>
+ <id>parallel</id>
+ <phase>test</phase>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ <configuration>
+ <!-- drop the default excludedGroups -->
+ <excludedGroups combine.self="override"/>
+ <groups>org.apache.activemq.store.kahadb.ParallelTest</groups>
+ <forkCount>2C</forkCount>
+ <reuseForks>false</reuseForks>
+
<forkedProcessTimeoutInSeconds>600</forkedProcessTimeoutInSeconds>
+ <failIfNoTests>false</failIfNoTests>
+ <systemPropertyVariables>
+
<org.apache.activemq.default.directory.prefix>${project.build.directory}/parallel-tests-${surefire.forkNumber}/</org.apache.activemq.default.directory.prefix>
+ <!-- when running tests in parallel in the CI (quite slow) we
need to bump the wireformat negotiation timeout (5s by default) -->
+
<org.apache.activemq.transport.wireFormatNegotiationTimeout>30000</org.apache.activemq.transport.wireFormatNegotiationTimeout>
+ </systemPropertyVariables>
+ </configuration>
+ </execution>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.surefire</groupId>
+ <artifactId>surefire-junit47</artifactId>
+ <version>${surefire.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>me.fabriciorby</groupId>
+ <artifactId>maven-surefire-junit5-tree-reporter</artifactId>
+ <version>1.5.1</version>
+ </dependency>
+ </dependencies>
+ </plugin>
</plugins>
</build>
<profiles>
diff --git
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/JournalCorruptionIndexRecoveryTest.java
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/JournalCorruptionIndexRecoveryTest.java
index 1dc84afec1..0a4d4fcb5c 100644
---
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/JournalCorruptionIndexRecoveryTest.java
+++
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/JournalCorruptionIndexRecoveryTest.java
@@ -42,17 +42,19 @@ import org.apache.activemq.util.ByteSequence;
import org.apache.activemq.util.RecoverableRandomAccessFile;
import org.junit.After;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+
+@Category(ParallelTest.class)
@RunWith(Parameterized.class)
public class JournalCorruptionIndexRecoveryTest {
private static final Logger LOG =
LoggerFactory.getLogger(JournalCorruptionIndexRecoveryTest.class);
- private final String KAHADB_DIRECTORY = "target/activemq-data/";
private final String payload = new String(new byte[1024]);
private ActiveMQConnectionFactory cf = null;
@@ -92,7 +94,6 @@ public class JournalCorruptionIndexRecoveryTest {
broker.setDeleteAllMessagesOnStartup(delete);
broker.setPersistent(true);
broker.setUseJmx(true);
- broker.setDataDirectory(KAHADB_DIRECTORY);
broker.addConnector("tcp://localhost:0");
configurePersistence(broker);
diff --git
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSendReceiveNativeTest.java
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/ParallelTest.java
similarity index 67%
copy from
activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSendReceiveNativeTest.java
copy to
activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/ParallelTest.java
index db75d1086e..3ce0496837 100644
---
a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/interop/AmqpSendReceiveNativeTest.java
+++
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/ParallelTest.java
@@ -1,4 +1,4 @@
-/*
+/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
@@ -14,12 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.activemq.transport.amqp.interop;
+package org.apache.activemq.store.kahadb;
-public class AmqpSendReceiveNativeTest extends AmqpSendReceiveTest {
- @Override
- protected String getAmqpTransformer() {
- return "native";
- }
+/**
+ * Marker interface used with {@code @Category(ParallelTest.class)} to opt a
+ * test class or method into the {@code all-parallel} Maven profile. Only tests
+ * explicitly tagged with this category execute when the profile is enabled,
+ * which allows a gradual migration toward full parallelism.
+ */
+public interface ParallelTest {
}
diff --git
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/index/BTreeIndexTest.java
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/index/BTreeIndexTest.java
index cd2947108f..0b1d325aa4 100644
---
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/index/BTreeIndexTest.java
+++
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/index/BTreeIndexTest.java
@@ -32,15 +32,18 @@ import java.util.List;
import java.util.Map;
import java.util.Random;
+import org.apache.activemq.store.kahadb.ParallelTest;
import org.apache.activemq.store.kahadb.disk.page.PageFile;
import org.apache.activemq.store.kahadb.disk.page.Transaction;
import org.apache.activemq.store.kahadb.disk.util.LongMarshaller;
import org.apache.activemq.store.kahadb.disk.util.StringMarshaller;
import org.apache.activemq.store.kahadb.disk.util.VariableMarshaller;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Category(ParallelTest.class)
public class BTreeIndexTest extends IndexTestSupport {
private static final Logger LOG =
LoggerFactory.getLogger(BTreeIndexTest.class);
private NumberFormat nf;
diff --git
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/index/HashIndexTest.java
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/index/HashIndexTest.java
index d4b5e4580c..2d35ddf479 100644
---
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/index/HashIndexTest.java
+++
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/index/HashIndexTest.java
@@ -16,9 +16,12 @@
*/
package org.apache.activemq.store.kahadb.disk.index;
+import org.apache.activemq.store.kahadb.ParallelTest;
import org.apache.activemq.store.kahadb.disk.util.LongMarshaller;
import org.apache.activemq.store.kahadb.disk.util.StringMarshaller;
+import org.junit.experimental.categories.Category;
+@Category(ParallelTest.class)
public class HashIndexTest extends IndexTestSupport {
@Override
diff --git
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/index/ListIndexTest.java
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/index/ListIndexTest.java
index 112ca1ead6..986f493a90 100644
---
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/index/ListIndexTest.java
+++
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/index/ListIndexTest.java
@@ -31,6 +31,7 @@ import java.util.LinkedList;
import java.util.Map;
import java.util.Random;
+import org.apache.activemq.store.kahadb.ParallelTest;
import org.apache.activemq.store.kahadb.disk.page.PageFile;
import org.apache.activemq.store.kahadb.disk.util.LongMarshaller;
import org.apache.activemq.store.kahadb.disk.util.Sequence;
@@ -38,9 +39,11 @@ import
org.apache.activemq.store.kahadb.disk.util.SequenceSet;
import org.apache.activemq.store.kahadb.disk.util.StringMarshaller;
import org.apache.activemq.store.kahadb.disk.util.VariableMarshaller;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Category(ParallelTest.class)
public class ListIndexTest extends IndexTestSupport {
private static final Logger LOG =
LoggerFactory.getLogger(ListIndexTest.class);
private NumberFormat nf;
diff --git
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/index/PageFileTransactionAsyncTest.java
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/index/PageFileTransactionAsyncTest.java
index 97509ae687..684076a6a5 100644
---
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/index/PageFileTransactionAsyncTest.java
+++
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/index/PageFileTransactionAsyncTest.java
@@ -16,15 +16,18 @@
*/
package org.apache.activemq.store.kahadb.disk.index;
+import org.apache.activemq.store.kahadb.ParallelTest;
import org.apache.activemq.store.kahadb.disk.page.PageFile;
import org.apache.activemq.store.kahadb.disk.page.Transaction;
import org.apache.activemq.store.kahadb.disk.util.LongMarshaller;
import org.apache.activemq.store.kahadb.disk.util.StringMarshaller;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import java.io.File;
import java.util.LinkedList;
+@Category(ParallelTest.class)
public class PageFileTransactionAsyncTest {
@Test(timeout=60000)
diff --git
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/journal/DataFileAccessorPoolTest.java
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/journal/DataFileAccessorPoolTest.java
index 2d33265b8c..2b5641f885 100644
---
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/journal/DataFileAccessorPoolTest.java
+++
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/journal/DataFileAccessorPoolTest.java
@@ -23,10 +23,13 @@ import static org.mockito.Mockito.verify;
import java.io.File;
+import org.apache.activemq.store.kahadb.ParallelTest;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.junit.rules.TemporaryFolder;
+@Category(ParallelTest.class)
public class DataFileAccessorPoolTest {
@Rule
diff --git
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/journal/DataFileAccessorTest.java
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/journal/DataFileAccessorTest.java
index b5fe52a0dd..a9a0030e21 100644
---
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/journal/DataFileAccessorTest.java
+++
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/journal/DataFileAccessorTest.java
@@ -24,11 +24,15 @@ import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Arrays;
+
+import org.apache.activemq.store.kahadb.ParallelTest;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.junit.rules.TemporaryFolder;
+@Category(ParallelTest.class)
public class DataFileAccessorTest {
@Rule
diff --git
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/journal/DataFileAppenderSyncStrategyTest.java
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/journal/DataFileAppenderSyncStrategyTest.java
index 494e256bd1..491c37e4dc 100644
---
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/journal/DataFileAppenderSyncStrategyTest.java
+++
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/journal/DataFileAppenderSyncStrategyTest.java
@@ -23,13 +23,16 @@ import java.io.File;
import java.util.concurrent.TimeUnit;
import org.apache.activemq.store.kahadb.KahaDBStore;
+import org.apache.activemq.store.kahadb.ParallelTest;
import
org.apache.activemq.store.kahadb.disk.journal.Journal.JournalDiskSyncStrategy;
import org.junit.After;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.junit.rules.TemporaryFolder;
import org.junit.rules.Timeout;
+@Category(ParallelTest.class)
public class DataFileAppenderSyncStrategyTest {
@Rule
diff --git
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/journal/JournalMaxFileLengthChangeTest.java
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/journal/JournalMaxFileLengthChangeTest.java
index b28f1e39d6..9a8e3bf43a 100644
---
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/journal/JournalMaxFileLengthChangeTest.java
+++
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/journal/JournalMaxFileLengthChangeTest.java
@@ -28,14 +28,17 @@ import org.apache.activemq.command.ActiveMQTextMessage;
import org.apache.activemq.command.MessageId;
import org.apache.activemq.store.MessageStore;
import org.apache.activemq.store.kahadb.KahaDBStore;
+import org.apache.activemq.store.kahadb.ParallelTest;
import org.junit.After;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.junit.rules.TemporaryFolder;
import org.junit.rules.Timeout;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Category(ParallelTest.class)
public class JournalMaxFileLengthChangeTest {
private static final Logger LOG =
LoggerFactory.getLogger(JournalMaxFileLengthChangeTest.class);
diff --git
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/journal/TargetedDataFileAppenderTest.java
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/journal/TargetedDataFileAppenderTest.java
index bbdcde7600..40291c33bd 100644
---
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/journal/TargetedDataFileAppenderTest.java
+++
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/journal/TargetedDataFileAppenderTest.java
@@ -23,15 +23,18 @@ import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
+import org.apache.activemq.store.kahadb.ParallelTest;
import org.apache.activemq.util.ByteSequence;
import org.apache.activemq.util.IOHelper;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
/**
* Test the single threaded DataFileAppender class.
*/
+@Category(ParallelTest.class)
public class TargetedDataFileAppenderTest {
private Journal dataManager;
diff --git
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/page/PageFileTest.java
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/page/PageFileTest.java
index 7e8278f5c9..3521d4cabb 100644
---
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/page/PageFileTest.java
+++
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/page/PageFileTest.java
@@ -17,6 +17,7 @@
package org.apache.activemq.store.kahadb.disk.page;
import junit.framework.TestCase;
+import org.apache.activemq.store.kahadb.ParallelTest;
import org.apache.activemq.store.kahadb.disk.util.StringMarshaller;
import org.apache.activemq.util.Wait;
import org.apache.logging.log4j.Level;
@@ -26,6 +27,7 @@ import
org.apache.logging.log4j.core.appender.AbstractAppender;
import org.apache.logging.log4j.core.config.Property;
import org.apache.logging.log4j.core.filter.AbstractFilter;
import org.apache.logging.log4j.core.layout.MessageLayout;
+import org.junit.experimental.categories.Category;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -41,6 +43,7 @@ import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
@SuppressWarnings("rawtypes")
+@Category(ParallelTest.class)
public class PageFileTest extends TestCase {
private static final Logger LOG =
LoggerFactory.getLogger(PageFileTest.class);
diff --git
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/page/TransactionTest.java
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/page/TransactionTest.java
index 900f8e209e..f78c8aa41c 100644
---
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/page/TransactionTest.java
+++
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/page/TransactionTest.java
@@ -18,7 +18,9 @@ package org.apache.activemq.store.kahadb.disk.page;
*/
import junit.framework.TestCase;
+import org.apache.activemq.store.kahadb.ParallelTest;
import org.apache.activemq.store.kahadb.disk.util.Marshaller;
+import org.junit.experimental.categories.Category;
import java.io.DataInput;
import java.io.DataOutput;
@@ -27,6 +29,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+@Category(ParallelTest.class)
public class TransactionTest extends TestCase {
private static long NUMBER_OF_BYTES = 10485760L;
diff --git
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/util/SequenceSetTest.java
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/util/SequenceSetTest.java
index 7df83513f5..6c879dbd8f 100644
---
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/util/SequenceSetTest.java
+++
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/disk/util/SequenceSetTest.java
@@ -21,8 +21,11 @@ import static org.junit.Assert.*;
import java.util.Iterator;
+import org.apache.activemq.store.kahadb.ParallelTest;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
+@Category(ParallelTest.class)
public class SequenceSetTest {
@Test
diff --git
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/plist/PListImplTest.java
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/plist/PListImplTest.java
index ba702b71fe..502f57aa6b 100644
---
a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/plist/PListImplTest.java
+++
b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/plist/PListImplTest.java
@@ -25,13 +25,16 @@ import java.io.File;
import org.apache.activemq.store.PListStore;
import org.apache.activemq.store.PListTestSupport;
+import org.apache.activemq.store.kahadb.ParallelTest;
import org.apache.activemq.util.IOHelper;
import org.junit.Ignore;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
/**
* @author <a href="http://hiramchirino.com">Hiram Chirino</a>
*/
+@Category(ParallelTest.class)
public class PListImplTest extends PListTestSupport {
diff --git a/pom.xml b/pom.xml
index d65a5d8ba1..e7b3ad99d3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -127,6 +127,7 @@
<maven-project-info-reports-plugin-version>3.9.0</maven-project-info-reports-plugin-version>
<maven-graph-plugin-version>1.45</maven-graph-plugin-version>
<maven-core-version>3.8.6</maven-core-version>
+ <maven-surefire-plugin-version>3.5.3</maven-surefire-plugin-version>
<!-- OSGi bundles properties -->
<activemq.osgi.import.pkg>*</activemq.osgi.import.pkg>
<activemq.osgi.export.pkg>org.apache.activemq*</activemq.osgi.export.pkg>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact