From 4e3108a780c3f2cc2c791a0413d56abe96b5f297 Mon Sep 17 00:00:00 2001 From: Jean-Louis Monteiro Date: Tue, 18 Nov 2025 22:07:31 +0100 Subject: [PATCH 1/5] AMQ-8525: improve stomp module performances --- activemq-stomp/pom.xml | 102 ++++++++++++++---- .../transport/stomp/ParallelTest.java | 27 +++++ .../activemq/transport/stomp/Stomp11Test.java | 3 + .../activemq/transport/stomp/Stomp12Test.java | 3 + .../transport/stomp/StompAdvisoryTest.java | 3 + .../stomp/StompCompositeDestinationTest.java | 3 + .../stomp/StompConnectTimeoutTest.java | 3 + .../stomp/StompInactivityMonitorTest.java | 3 + .../transport/stomp/StompMaxDataSizeTest.java | 3 + .../stomp/StompMaxFrameSizeTest.java | 6 +- .../stomp/StompMissingMessageTest.java | 3 + .../stomp/StompNIOSSLLargeMessageTest.java | 3 + .../transport/stomp/StompPrefetchTest.java | 3 + .../stomp/StompSubscriptionRemoveTest.java | 3 + .../transport/stomp/StompTelnetTest.java | 3 + .../activemq/transport/stomp/StompTest.java | 3 + .../StompTimeStampingBrokerPluginTest.java | 3 + .../stomp/StompVirtualTopicTest.java | 3 + .../auto/AutoStompConnectTimeoutTest.java | 1 + .../stomp/auto/StompAutoSslAuthTest.java | 4 + 20 files changed, 162 insertions(+), 23 deletions(-) create mode 100644 activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/ParallelTest.java diff --git a/activemq-stomp/pom.xml b/activemq-stomp/pom.xml index 51f997c6819..88eb4b58c80 100644 --- a/activemq-stomp/pom.xml +++ b/activemq-stomp/pom.xml @@ -28,6 +28,11 @@ activemq-stomp jar ActiveMQ :: STOMP Protocol + + + 3.5.3 + + The ActiveMQ STOMP Protocol Implementation @@ -123,27 +128,6 @@ - - - maven-surefire-plugin - - 1 - false - ${surefire.argLine} - alphabetical - false - - target - - - **/*Test.* - - - **/StompNIOSSLLoadTest.java - - - - @@ -192,7 +176,81 @@ - + + all-parallel + + true + + activemq.tests + parallel + + + + 2C + + + + + maven-surefire-plugin + ${surefire.version} + + true + + + + org.apache.maven.surefire + surefire-junit47 + ${surefire.version} + + + + + parallel + test + + test + + + false + ${parallel.tests.fork.count} + false + 600 + balanced + false + org.apache.activemq.transport.stomp.ParallelTest + + true + ${project.build.directory}/parallel-tests-${surefire.forkNumber}/ + true + false + + + + + serial + test + + test + + + false + balanced + false + org.apache.activemq.transport.stomp.ParallelTest + + true + ${project.build.directory}/ + true + false + + + + + + + + + activemq.tests.windows.excludes diff --git a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/ParallelTest.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/ParallelTest.java new file mode 100644 index 00000000000..9be27a6df1d --- /dev/null +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/ParallelTest.java @@ -0,0 +1,27 @@ +/** + * 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. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.activemq.transport.stomp; + + +/** + * 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-stomp/src/test/java/org/apache/activemq/transport/stomp/Stomp11Test.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/Stomp11Test.java index 25ee20e109a..a9e75f3e129 100644 --- a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/Stomp11Test.java +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/Stomp11Test.java @@ -40,6 +40,9 @@ import static org.junit.Assert.*; +import org.junit.experimental.categories.Category; + +@Category(ParallelTest.class) public class Stomp11Test extends StompTestSupport { private static final Logger LOG = LoggerFactory.getLogger(Stomp11Test.class); diff --git a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/Stomp12Test.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/Stomp12Test.java index b7974724978..504a20ff970 100644 --- a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/Stomp12Test.java +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/Stomp12Test.java @@ -34,6 +34,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.junit.experimental.categories.Category; + +@Category(ParallelTest.class) public class Stomp12Test extends StompTestSupport { private static final Logger LOG = LoggerFactory.getLogger(Stomp12Test.class); diff --git a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompAdvisoryTest.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompAdvisoryTest.java index 434744a93fd..ad89847e62b 100644 --- a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompAdvisoryTest.java +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompAdvisoryTest.java @@ -45,6 +45,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.junit.experimental.categories.Category; + +@Category(ParallelTest.class) public class StompAdvisoryTest extends StompTestSupport { static final String STATS_DESTINATION_PREFIX = "ActiveMQ.Statistics.Destination"; diff --git a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompCompositeDestinationTest.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompCompositeDestinationTest.java index 9848f3c316a..d3fced4f9ac 100644 --- a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompCompositeDestinationTest.java +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompCompositeDestinationTest.java @@ -39,9 +39,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.junit.experimental.categories.Category; + /** * Tests for support of composite destination support over STOMP */ +@Category(ParallelTest.class) public class StompCompositeDestinationTest extends StompTestSupport { private static final Logger LOG = LoggerFactory.getLogger(StompCompositeDestinationTest.class); diff --git a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompConnectTimeoutTest.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompConnectTimeoutTest.java index 69fd4deb38e..d88bbafe22c 100644 --- a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompConnectTimeoutTest.java +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompConnectTimeoutTest.java @@ -34,10 +34,13 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.junit.experimental.categories.Category; + /** * Test that connection attempts that don't send the connect performative * get cleaned up by the inactivity monitor. */ +@Category(ParallelTest.class) @RunWith(Parameterized.class) public class StompConnectTimeoutTest extends StompTestSupport { diff --git a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompInactivityMonitorTest.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompInactivityMonitorTest.java index 20f4ed9c009..66a4aad83b2 100644 --- a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompInactivityMonitorTest.java +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompInactivityMonitorTest.java @@ -33,9 +33,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.junit.experimental.categories.Category; + /** * Test that the inactivity monitor works as expected. */ +@Category(ParallelTest.class) @RunWith(Parameterized.class) public class StompInactivityMonitorTest extends StompTestSupport { diff --git a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompMaxDataSizeTest.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompMaxDataSizeTest.java index ee13da44610..83a4edf6f62 100644 --- a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompMaxDataSizeTest.java +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompMaxDataSizeTest.java @@ -29,6 +29,9 @@ import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(ParallelTest.class) public class StompMaxDataSizeTest extends StompTestSupport { private static final int TEST_MAX_DATA_SIZE = 64 * 1024; diff --git a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompMaxFrameSizeTest.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompMaxFrameSizeTest.java index 9d4f2e7e931..34e73829494 100644 --- a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompMaxFrameSizeTest.java +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompMaxFrameSizeTest.java @@ -34,6 +34,10 @@ import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; +import org.junit.experimental.categories.Category; + + +@Category(ParallelTest.class) @RunWith(Parameterized.class) public class StompMaxFrameSizeTest extends StompTestSupport { @@ -273,7 +277,7 @@ protected void doOversizedTestMessage(int port, boolean useSsl, int dataSize) th stompConnection.sendFrame(frame); - StompFrame received = stompConnection.receive(5000); + StompFrame received = stompConnection.receive(10000); assertNotNull(received); assertEquals("ERROR", received.getAction()); assertTrue(received.getBody().contains("maximum frame size")); diff --git a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompMissingMessageTest.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompMissingMessageTest.java index 2e82eea8f9b..4deac42bf8f 100644 --- a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompMissingMessageTest.java +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompMissingMessageTest.java @@ -26,6 +26,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.junit.experimental.categories.Category; + +@Category(ParallelTest.class) public class StompMissingMessageTest extends StompTestSupport { private static final Logger LOG = LoggerFactory.getLogger(StompMissingMessageTest.class); diff --git a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompNIOSSLLargeMessageTest.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompNIOSSLLargeMessageTest.java index 21e181a4f05..117420cafcf 100644 --- a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompNIOSSLLargeMessageTest.java +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompNIOSSLLargeMessageTest.java @@ -35,12 +35,15 @@ import org.apache.activemq.util.DefaultTestAppender; +import org.junit.experimental.categories.Category; + /** * Testcase for AMQ-6526. * Checks if the \ in the Stomp ProtocolException is replaced * with the proper Stomp operation. * */ +@Category(ParallelTest.class) public class StompNIOSSLLargeMessageTest extends StompTestSupport { protected static final Logger LOG = LoggerFactory.getLogger(StompNIOSSLLargeMessageTest.class); diff --git a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompPrefetchTest.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompPrefetchTest.java index eefc1063e4f..1a224eaee03 100644 --- a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompPrefetchTest.java +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompPrefetchTest.java @@ -35,6 +35,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.junit.experimental.categories.Category; + +@Category(ParallelTest.class) public class StompPrefetchTest extends StompTestSupport { private static final Logger LOG = LoggerFactory.getLogger(StompPrefetchTest.class); diff --git a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompSubscriptionRemoveTest.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompSubscriptionRemoveTest.java index 1f69921a721..7c875681c47 100644 --- a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompSubscriptionRemoveTest.java +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompSubscriptionRemoveTest.java @@ -34,6 +34,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.junit.experimental.categories.Category; + +@Category(ParallelTest.class) public class StompSubscriptionRemoveTest extends StompTestSupport { private static final Logger LOG = LoggerFactory.getLogger(StompSubscriptionRemoveTest.class); diff --git a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompTelnetTest.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompTelnetTest.java index 487882ad197..ad3e192277d 100644 --- a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompTelnetTest.java +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompTelnetTest.java @@ -27,6 +27,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.junit.experimental.categories.Category; + +@Category(ParallelTest.class) public class StompTelnetTest extends StompTestSupport { private static final Logger LOG = LoggerFactory.getLogger(StompTelnetTest.class); diff --git a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompTest.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompTest.java index 9c82261e327..50349ec6cae 100644 --- a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompTest.java +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompTest.java @@ -72,6 +72,9 @@ import com.thoughtworks.xstream.io.xml.XppReader; import com.thoughtworks.xstream.io.xml.xppdom.XppFactory; +import org.junit.experimental.categories.Category; + +@Category(ParallelTest.class) public class StompTest extends StompTestSupport { private static final Logger LOG = LoggerFactory.getLogger(StompTest.class); diff --git a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompTimeStampingBrokerPluginTest.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompTimeStampingBrokerPluginTest.java index 819fc453f85..b786b40b843 100644 --- a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompTimeStampingBrokerPluginTest.java +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompTimeStampingBrokerPluginTest.java @@ -39,6 +39,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.junit.experimental.categories.Category; + +@Category(ParallelTest.class) public class StompTimeStampingBrokerPluginTest extends StompTestSupport { private static final Logger LOG = LoggerFactory.getLogger(StompTimeStampingBrokerPluginTest.class); diff --git a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompVirtualTopicTest.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompVirtualTopicTest.java index 19a9f975ec8..4daaaea050d 100644 --- a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompVirtualTopicTest.java +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompVirtualTopicTest.java @@ -38,6 +38,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.junit.experimental.categories.Category; + +@Category(ParallelTest.class) public class StompVirtualTopicTest extends StompTestSupport { private static final Logger LOG = LoggerFactory.getLogger(StompVirtualTopicTest.class); diff --git a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/auto/AutoStompConnectTimeoutTest.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/auto/AutoStompConnectTimeoutTest.java index e7b372bc753..8e1867daf59 100644 --- a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/auto/AutoStompConnectTimeoutTest.java +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/auto/AutoStompConnectTimeoutTest.java @@ -36,6 +36,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.junit.experimental.categories.Category; /** * Test that connection attempts that don't send the connect get cleaned by * by the protocolDetectionTimeOut property diff --git a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/auto/StompAutoSslAuthTest.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/auto/StompAutoSslAuthTest.java index 7b65596fd33..82d089667d8 100644 --- a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/auto/StompAutoSslAuthTest.java +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/auto/StompAutoSslAuthTest.java @@ -34,6 +34,7 @@ import org.apache.activemq.broker.BrokerPlugin; import org.apache.activemq.broker.ConnectionContext; import org.apache.activemq.command.ConnectionInfo; +import org.apache.activemq.transport.stomp.ParallelTest; import org.apache.activemq.transport.stomp.Stomp; import org.apache.activemq.transport.stomp.StompTestSupport; import org.junit.Test; @@ -41,6 +42,9 @@ import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; +import org.junit.experimental.categories.Category; + +@Category(ParallelTest.class) @RunWith(Parameterized.class) public class StompAutoSslAuthTest extends StompTestSupport { From 6b95992b8499175e059a8f10b336ab49680b2fd3 Mon Sep 17 00:00:00 2001 From: Jean-Louis Monteiro Date: Fri, 21 Nov 2025 19:13:39 +0100 Subject: [PATCH 2/5] AMQ-8525: Now that it worked, remove the skipTests flag so command line arguments are used --- activemq-stomp/pom.xml | 2 -- 1 file changed, 2 deletions(-) diff --git a/activemq-stomp/pom.xml b/activemq-stomp/pom.xml index 88eb4b58c80..60d4fbb09de 100644 --- a/activemq-stomp/pom.xml +++ b/activemq-stomp/pom.xml @@ -211,7 +211,6 @@ test - false ${parallel.tests.fork.count} false 600 @@ -233,7 +232,6 @@ test - false balanced false org.apache.activemq.transport.stomp.ParallelTest From 5c0a6ec370fadf12e041c87c28577bfec2d69a5d Mon Sep 17 00:00:00 2001 From: Jean-Louis Monteiro Date: Tue, 25 Nov 2025 11:58:23 +0100 Subject: [PATCH 3/5] AMQ-8525: Add better reporting and additional tests to parallel execution --- activemq-stomp/pom.xml | 31 +++++++++++++++++++ .../activemq/transport/stomp/ConnectTest.java | 2 ++ .../stomp/LegacyFrameTranslatorTest.java | 2 ++ .../stomp/StompEmptyDestinationTest.java | 4 ++- .../transport/stomp/StompFrameTest.java | 2 ++ .../auto/AutoStompConnectTimeoutTest.java | 2 ++ 6 files changed, 42 insertions(+), 1 deletion(-) diff --git a/activemq-stomp/pom.xml b/activemq-stomp/pom.xml index 60d4fbb09de..6ed002eab6a 100644 --- a/activemq-stomp/pom.xml +++ b/activemq-stomp/pom.xml @@ -202,6 +202,11 @@ surefire-junit47 ${surefire.version} + + me.fabriciorby + maven-surefire-junit5-tree-reporter + 1.5.1 + @@ -223,6 +228,19 @@ true false + plain + + true + + + true + true + true + true + true + true + @@ -241,6 +259,19 @@ true false + plain + + true + + + true + true + true + true + true + true + diff --git a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/ConnectTest.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/ConnectTest.java index ea65b60b13e..1e5441b54d8 100644 --- a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/ConnectTest.java +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/ConnectTest.java @@ -34,10 +34,12 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; +import org.junit.experimental.categories.Category; import org.slf4j.Logger; import org.slf4j.LoggerFactory; // https://issues.apache.org/jira/browse/AMQ-3393 +@Category(ParallelTest.class) public class ConnectTest { private static final Logger LOG = LoggerFactory.getLogger(ConnectTest.class); diff --git a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/LegacyFrameTranslatorTest.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/LegacyFrameTranslatorTest.java index bdcfceb7fb5..b3db398a48b 100644 --- a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/LegacyFrameTranslatorTest.java +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/LegacyFrameTranslatorTest.java @@ -26,6 +26,7 @@ import org.apache.activemq.command.ActiveMQDestination; import org.junit.Before; import org.junit.Test; +import org.junit.experimental.categories.Category; import org.mockito.Mockito; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; @@ -33,6 +34,7 @@ /** * Tests for conversion capabilities of LegacyFrameTranslator */ +@Category(ParallelTest.class) public class LegacyFrameTranslatorTest { private ProtocolConverter converter; diff --git a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompEmptyDestinationTest.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompEmptyDestinationTest.java index 5797135ad16..8b1de7299c2 100644 --- a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompEmptyDestinationTest.java +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompEmptyDestinationTest.java @@ -16,12 +16,14 @@ */ package org.apache.activemq.transport.stomp; import org.junit.Test; +import org.junit.experimental.categories.Category; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -public class StompEmptyDestinationTest extends StompTestSupport{ +@Category(ParallelTest.class) +public class StompEmptyDestinationTest extends StompTestSupport{ private static final Logger LOG = LoggerFactory.getLogger(StompEmptyDestinationTest.class); @Test(timeout = 60000) diff --git a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompFrameTest.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompFrameTest.java index 5bade72ba92..44bb27ebecb 100644 --- a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompFrameTest.java +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/StompFrameTest.java @@ -22,7 +22,9 @@ import java.util.HashMap; import org.junit.Test; +import org.junit.experimental.categories.Category; +@Category(ParallelTest.class) public class StompFrameTest { StompFrame underTest = new StompFrame(); diff --git a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/auto/AutoStompConnectTimeoutTest.java b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/auto/AutoStompConnectTimeoutTest.java index 8e1867daf59..43914ee73e0 100644 --- a/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/auto/AutoStompConnectTimeoutTest.java +++ b/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/auto/AutoStompConnectTimeoutTest.java @@ -27,6 +27,7 @@ import javax.net.ssl.SSLSocketFactory; import org.apache.activemq.transport.auto.AutoTcpTransportServer; +import org.apache.activemq.transport.stomp.ParallelTest; import org.apache.activemq.transport.stomp.StompTestSupport; import org.apache.activemq.util.Wait; import org.junit.Test; @@ -41,6 +42,7 @@ * Test that connection attempts that don't send the connect get cleaned by * by the protocolDetectionTimeOut property */ +@Category(ParallelTest.class) @RunWith(Parameterized.class) public class AutoStompConnectTimeoutTest extends StompTestSupport { From 3b8c011303210f5bbd568cba18ca667b9f4d2f7a Mon Sep 17 00:00:00 2001 From: Jean-Louis Monteiro Date: Tue, 25 Nov 2025 15:47:20 +0100 Subject: [PATCH 4/5] AMQ-8525: All stable and green, merging back into default configuration without profile need --- activemq-stomp/pom.xml | 182 ++++++++++++++++++----------------------- 1 file changed, 78 insertions(+), 104 deletions(-) diff --git a/activemq-stomp/pom.xml b/activemq-stomp/pom.xml index 6ed002eab6a..2691d9dfe11 100644 --- a/activemq-stomp/pom.xml +++ b/activemq-stomp/pom.xml @@ -128,6 +128,83 @@ + + + org.apache.maven.plugins + maven-surefire-plugin + ${surefire.version} + + ${surefire.argLine} + alphabetical + plain + + true + + + true + true + true + true + true + true + + + **/*Test.* + + + **/StompNIOSSLLoadTest.java + + + + + parallel + test + + test + + + ${parallel.tests.fork.count} + false + 600 + false + org.apache.activemq.transport.stomp.ParallelTest + + ${project.build.directory}/parallel-tests-${surefire.forkNumber}/ + + 30000 + + + + + serial + test + + test + + + false + org.apache.activemq.transport.stomp.ParallelTest + + ${project.build.directory}/ + + + + + + + org.apache.maven.surefire + surefire-junit47 + ${surefire.version} + + + me.fabriciorby + maven-surefire-junit5-tree-reporter + 1.5.1 + + + + @@ -176,110 +253,7 @@ - - all-parallel - - true - - activemq.tests - parallel - - - - 2C - - - - - maven-surefire-plugin - ${surefire.version} - - true - - - - org.apache.maven.surefire - surefire-junit47 - ${surefire.version} - - - me.fabriciorby - maven-surefire-junit5-tree-reporter - 1.5.1 - - - - - parallel - test - - test - - - ${parallel.tests.fork.count} - false - 600 - balanced - false - org.apache.activemq.transport.stomp.ParallelTest - - true - ${project.build.directory}/parallel-tests-${surefire.forkNumber}/ - true - false - - plain - - true - - - true - true - true - true - true - true - - - - - serial - test - - test - - - balanced - false - org.apache.activemq.transport.stomp.ParallelTest - - true - ${project.build.directory}/ - true - false - - plain - - true - - - true - true - true - true - true - true - - - - - - - - - + activemq.tests.windows.excludes From c0d34e46d79f5c3254e1c121ad4fc1fa8124c460 Mon Sep 17 00:00:00 2001 From: Jean-Louis Monteiro Date: Tue, 25 Nov 2025 17:19:15 +0100 Subject: [PATCH 5/5] AMQ-8525: Clean up configuration and exclude load tests --- activemq-stomp/pom.xml | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/activemq-stomp/pom.xml b/activemq-stomp/pom.xml index 2691d9dfe11..32d7c0392a9 100644 --- a/activemq-stomp/pom.xml +++ b/activemq-stomp/pom.xml @@ -137,6 +137,11 @@ ${surefire.argLine} alphabetical plain + false + org.apache.activemq.transport.stomp.ParallelTest + + ${project.build.directory}/ + true @@ -153,7 +158,7 @@ **/*Test.* - **/StompNIOSSLLoadTest.java + **/*LoadTest.java @@ -163,12 +168,14 @@ test - - ${parallel.tests.fork.count} + + + + org.apache.activemq.transport.stomp.ParallelTest + 2C false 600 false - org.apache.activemq.transport.stomp.ParallelTest ${project.build.directory}/parallel-tests-${surefire.forkNumber}/ @@ -176,20 +183,6 @@ - - serial - test - - test - - - false - org.apache.activemq.transport.stomp.ParallelTest - - ${project.build.directory}/ - - -