diff --git a/activemq-amqp/pom.xml b/activemq-amqp/pom.xml index 9e54c0bb232..639adbce52b 100644 --- a/activemq-amqp/pom.xml +++ b/activemq-amqp/pom.xml @@ -180,6 +180,80 @@ + + + + org.apache.maven.plugins + maven-surefire-plugin + ${surefire.version} + + ${surefire.argLine} + alphabetical + plain + false + org.apache.activemq.transport.amqp.ParallelTest + + ${project.build.directory}/ + + + true + + + true + true + true + true + true + true + + + **/*Test.* + + + **/*LoadTest.java + **/*StressTest.java + + + + + parallel + test + + test + + + + + org.apache.activemq.transport.amqp.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 + + + + + + + + org.apache.activemq.store.kahadb.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-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 1dc84afec1e..0a4d4fcb5c4 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.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 @@ private void doStartBroker(boolean delete) throws Exception { broker.setDeleteAllMessagesOnStartup(delete); broker.setPersistent(true); broker.setUseJmx(true); - broker.setDataDirectory(KAHADB_DIRECTORY); broker.addConnector("tcp://localhost:0"); configurePersistence(broker); diff --git a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/ParallelTest.java b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/ParallelTest.java new file mode 100644 index 00000000000..3ce04968372 --- /dev/null +++ b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/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.store.kahadb; + + +/** + * 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 cd2947108f6..0b1d325aa44 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.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 d4b5e4580c1..2d35ddf4796 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 112ca1ead6c..986f493a907 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.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.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 97509ae6872..684076a6a55 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 2d33265b8cb..2b5641f885c 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 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 b5fe52a0dd6..a9a0030e214 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.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 494e256bd11..491c37e4dc3 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.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 b28f1e39d6a..9a8e3bf43aa 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.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 bbdcde7600d..40291c33bd6 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.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 7e8278f5c94..3521d4cabb6 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.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.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 900f8e209e0..f78c8aa41ce 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 @@ */ 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.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 7df83513f50..6c879dbd8f4 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 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 ba702b71fef..502f57aa6b7 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 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 Hiram Chirino */ +@Category(ParallelTest.class) public class PListImplTest extends PListTestSupport { diff --git a/pom.xml b/pom.xml index 028cf65864c..5dd3c4a0bed 100644 --- a/pom.xml +++ b/pom.xml @@ -127,6 +127,7 @@ 3.9.0 1.45 3.8.6 + 3.5.3 * org.apache.activemq*