diff --git a/activemq-stomp/pom.xml b/activemq-stomp/pom.xml index 51f997c6819..32d7c0392a9 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 @@ -125,23 +130,72 @@ + org.apache.maven.plugins maven-surefire-plugin + ${surefire.version} - 1 - false ${surefire.argLine} alphabetical + plain false - - target - + org.apache.activemq.transport.stomp.ParallelTest + + ${project.build.directory}/ + + + true + + + true + true + true + true + true + true + **/*Test.* - **/StompNIOSSLLoadTest.java + **/*LoadTest.java + + + parallel + test + + test + + + + + org.apache.activemq.transport.stomp.ParallelTest + 2C + false + 600 + false + + ${project.build.directory}/parallel-tests-${surefire.forkNumber}/ + + 30000 + + + + + + + org.apache.maven.surefire + surefire-junit47 + ${surefire.version} + + + me.fabriciorby + maven-surefire-junit5-tree-reporter + 1.5.1 + + 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/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/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/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..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; @@ -36,10 +37,12 @@ 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 */ +@Category(ParallelTest.class) @RunWith(Parameterized.class) public class AutoStompConnectTimeoutTest extends StompTestSupport { 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 {