You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2017/01/10 03:34:09 UTC

[1/3] logging-log4j2 git commit: [LOG4J2-1777]: Add JUnit categories for optional dependency tests

Repository: logging-log4j2
Updated Branches:
  refs/heads/master 9caa96d93 -> 4ef970bcc


[LOG4J2-1777]: Add JUnit categories for optional dependency tests


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/4a66e175
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/4a66e175
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/4a66e175

Branch: refs/heads/master
Commit: 4a66e175669f8f270b7eb6cd10f5e97c5eb9e4b4
Parents: 9caa96d
Author: Matt Sicker <ma...@spr.com>
Authored: Mon Jan 9 20:58:52 2017 -0600
Committer: Matt Sicker <ma...@spr.com>
Committed: Mon Jan 9 20:58:52 2017 -0600

----------------------------------------------------------------------
 .../logging/log4j/categories/Appenders.java     | 33 ++++++++++++++++++++
 .../logging/log4j/categories/AsyncLoggers.java  | 23 ++++++++++++++
 .../log4j/categories/Configurations.java        | 25 +++++++++++++++
 .../logging/log4j/categories/Layouts.java       | 28 +++++++++++++++++
 .../logging/log4j/categories/Scripts.java       | 24 ++++++++++++++
 5 files changed, 133 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4a66e175/log4j-core/src/test/java/org/apache/logging/log4j/categories/Appenders.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/categories/Appenders.java b/log4j-core/src/test/java/org/apache/logging/log4j/categories/Appenders.java
new file mode 100644
index 0000000..ec9c403
--- /dev/null
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/categories/Appenders.java
@@ -0,0 +1,33 @@
+/*
+ * 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.logging.log4j.categories;
+
+/**
+ * Categories for appenders that require extra dependencies.
+ */
+public interface Appenders {
+    interface AsyncConversant {}
+    interface AsyncJcTools {}
+    interface Cassandra {}
+    interface CouchDb {}
+    interface Jms {}
+    interface Jpa {}
+    interface Kafka {}
+    interface MongoDb {}
+    interface Smtp {}
+    interface ZeroMq {}
+}

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4a66e175/log4j-core/src/test/java/org/apache/logging/log4j/categories/AsyncLoggers.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/categories/AsyncLoggers.java b/log4j-core/src/test/java/org/apache/logging/log4j/categories/AsyncLoggers.java
new file mode 100644
index 0000000..9cd67a3
--- /dev/null
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/categories/AsyncLoggers.java
@@ -0,0 +1,23 @@
+/*
+ * 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.logging.log4j.categories;
+
+/**
+ * Category for tests related to AsyncLogger (requires LMAX Disruptor dependency).
+ */
+public class AsyncLoggers {
+}

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4a66e175/log4j-core/src/test/java/org/apache/logging/log4j/categories/Configurations.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/categories/Configurations.java b/log4j-core/src/test/java/org/apache/logging/log4j/categories/Configurations.java
new file mode 100644
index 0000000..3342726
--- /dev/null
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/categories/Configurations.java
@@ -0,0 +1,25 @@
+/*
+ * 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.logging.log4j.categories;
+
+/**
+ * Categories for configuration formats that require extra dependencies.
+ */
+public interface Configurations {
+    interface Json {}
+    interface Yaml {}
+}

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4a66e175/log4j-core/src/test/java/org/apache/logging/log4j/categories/Layouts.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/categories/Layouts.java b/log4j-core/src/test/java/org/apache/logging/log4j/categories/Layouts.java
new file mode 100644
index 0000000..34775d6
--- /dev/null
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/categories/Layouts.java
@@ -0,0 +1,28 @@
+/*
+ * 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.logging.log4j.categories;
+
+/**
+ * Categories for layouts that require extra dependencies.
+ */
+public interface Layouts {
+    interface Csv {}
+    interface Jansi {}
+    interface Json {}
+    interface Xml {}
+    interface Yaml {}
+}

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4a66e175/log4j-core/src/test/java/org/apache/logging/log4j/categories/Scripts.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/categories/Scripts.java b/log4j-core/src/test/java/org/apache/logging/log4j/categories/Scripts.java
new file mode 100644
index 0000000..a1d1c5a
--- /dev/null
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/categories/Scripts.java
@@ -0,0 +1,24 @@
+/*
+ * 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.logging.log4j.categories;
+
+/**
+ * Categories for script plugins that require extra dependencies.
+ */
+public interface Scripts {
+    interface Groovy {}
+}


[2/3] logging-log4j2 git commit: [LOG4J2-1777]: Add JUnit categories to tests requiring extra dependencies

Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextTest.java
index 646e8b2..0b5ff64 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextTest.java
@@ -23,6 +23,7 @@ import java.io.FileReader;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.ThreadContext;
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.apache.logging.log4j.core.CoreLoggerContexts;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.util.Constants;
@@ -30,9 +31,11 @@ import org.apache.logging.log4j.util.Strings;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(AsyncLoggers.class)
 public class AsyncLoggerThreadContextTest {
 
     @BeforeClass

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadNameStrategyTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadNameStrategyTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadNameStrategyTest.java
index b904871..f6adef4 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadNameStrategyTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadNameStrategyTest.java
@@ -16,10 +16,13 @@
  */
 package org.apache.logging.log4j.core.async;
 
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(AsyncLoggers.class)
 public class AsyncLoggerThreadNameStrategyTest {
 
     @Test

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTimestampMessageTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTimestampMessageTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTimestampMessageTest.java
index e540353..c177b8a 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTimestampMessageTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTimestampMessageTest.java
@@ -22,6 +22,7 @@ import java.io.FileReader;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.apache.logging.log4j.core.CoreLoggerContexts;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.util.Clock;
@@ -35,6 +36,7 @@ import org.apache.logging.log4j.util.Strings;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
@@ -44,6 +46,7 @@ import static org.junit.Assert.*;
  * See LOG4J2-744.
  * </p>
  */
+@Category(AsyncLoggers.class)
 public class AsyncLoggerTimestampMessageTest {
 
     @BeforeClass

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerUseAfterShutdownTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerUseAfterShutdownTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerUseAfterShutdownTest.java
index d42af48..2e4ab33 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerUseAfterShutdownTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerUseAfterShutdownTest.java
@@ -19,6 +19,7 @@ package org.apache.logging.log4j.core.async;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.apache.logging.log4j.core.CoreLoggerContexts;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.util.Constants;
@@ -28,10 +29,12 @@ import org.apache.logging.log4j.util.Strings;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 /**
  * Test for https://issues.apache.org/jira/browse/LOG4J2-639
  */
+@Category(AsyncLoggers.class)
 public class AsyncLoggerUseAfterShutdownTest {
 
     @BeforeClass

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggersWithAsyncAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggersWithAsyncAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggersWithAsyncAppenderTest.java
index 7613335..2a4fc70 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggersWithAsyncAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggersWithAsyncAppenderTest.java
@@ -20,12 +20,15 @@ import java.util.List;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.apache.logging.log4j.junit.LoggerContextRule;
 import org.junit.ClassRule;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(AsyncLoggers.class)
 public class AsyncLoggersWithAsyncAppenderTest {
 
     @ClassRule

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggersWithAsyncLoggerConfigTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggersWithAsyncLoggerConfigTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggersWithAsyncLoggerConfigTest.java
index 860ecd4..bd4747c 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggersWithAsyncLoggerConfigTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggersWithAsyncLoggerConfigTest.java
@@ -20,12 +20,15 @@ import java.util.List;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.apache.logging.log4j.junit.LoggerContextRule;
 import org.junit.ClassRule;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(AsyncLoggers.class)
 public class AsyncLoggersWithAsyncLoggerConfigTest {
 
     @ClassRule

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncQueueFullPolicyFactoryTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncQueueFullPolicyFactoryTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncQueueFullPolicyFactoryTest.java
index 2c9ed8a..52d97c5 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncQueueFullPolicyFactoryTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncQueueFullPolicyFactoryTest.java
@@ -17,15 +17,18 @@
 package org.apache.logging.log4j.core.async;
 
 import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
 /**
  * Tests the AsyncQueueFullPolicyFactory class.
  */
+@Category(AsyncLoggers.class)
 public class AsyncQueueFullPolicyFactoryTest {
 
     @After

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncRootReloadTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncRootReloadTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncRootReloadTest.java
index 247ee70..49dec04 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncRootReloadTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncRootReloadTest.java
@@ -22,16 +22,19 @@ import java.net.URL;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.apache.logging.log4j.core.util.FileUtils;
 import org.apache.logging.log4j.junit.CleanFiles;
 import org.apache.logging.log4j.junit.LoggerContextRule;
 import org.junit.ClassRule;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 import org.junit.rules.RuleChain;
 
 /**
  * Tests LOG4J2-807.
  */
+@Category(AsyncLoggers.class)
 public class AsyncRootReloadTest {
 
     private static final String ISSUE = "LOG4J2-807";

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/DefaultAsyncQueueFullPolicyTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/DefaultAsyncQueueFullPolicyTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/DefaultAsyncQueueFullPolicyTest.java
index 38697b0..28fe41a 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/DefaultAsyncQueueFullPolicyTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/DefaultAsyncQueueFullPolicyTest.java
@@ -17,13 +17,16 @@
 package org.apache.logging.log4j.core.async;
 
 import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
 /**
  * Tests the DefaultAsyncQueueFullPolicy class.
  */
+@Category(AsyncLoggers.class)
 public class DefaultAsyncQueueFullPolicyTest {
 
     private static long currentThreadId() {

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/DiscardingAsyncQueueFullPolicyTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/DiscardingAsyncQueueFullPolicyTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/DiscardingAsyncQueueFullPolicyTest.java
index cb4e242..c30ef6d 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/DiscardingAsyncQueueFullPolicyTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/DiscardingAsyncQueueFullPolicyTest.java
@@ -17,13 +17,16 @@
 package org.apache.logging.log4j.core.async;
 
 import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
 /**
  * Tests the DiscardingAsyncQueueFullPolicy class..
  */
+@Category(AsyncLoggers.class)
 public class DiscardingAsyncQueueFullPolicyTest {
 
     private static long currentThreadId() {

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/Log4j2Jira1688AsyncTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/Log4j2Jira1688AsyncTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/Log4j2Jira1688AsyncTest.java
index 27f23b0..1f98edb 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/Log4j2Jira1688AsyncTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/Log4j2Jira1688AsyncTest.java
@@ -6,6 +6,7 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.util.Constants;
 import org.apache.logging.log4j.junit.LoggerContextRule;
@@ -19,6 +20,7 @@ import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
 import org.junit.runners.BlockJUnit4ClassRunner;
 
@@ -26,6 +28,7 @@ import org.junit.runners.BlockJUnit4ClassRunner;
  * Tests LOG4J2-1688 Multiple loggings of arguments are setting these arguments to null.
  */
 @RunWith(BlockJUnit4ClassRunner.class)
+@Category(AsyncLoggers.class)
 public class Log4j2Jira1688AsyncTest {
 
     @BeforeClass

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/Log4j2Jira1688Test.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/Log4j2Jira1688Test.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/Log4j2Jira1688Test.java
index 5eade5b..475addc 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/Log4j2Jira1688Test.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/Log4j2Jira1688Test.java
@@ -6,6 +6,7 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.util.Constants;
 import org.apache.logging.log4j.junit.LoggerContextRule;
@@ -18,6 +19,7 @@ import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Rule;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
 import org.junit.runners.BlockJUnit4ClassRunner;
 
@@ -25,6 +27,7 @@ import org.junit.runners.BlockJUnit4ClassRunner;
  * Tests LOG4J2-1688 Multiple loggings of arguments are setting these arguments to null.
  */
 @RunWith(BlockJUnit4ClassRunner.class)
+@Category(AsyncLoggers.class)
 public class Log4j2Jira1688Test {
 
     @BeforeClass

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/RingBufferLogEventTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/RingBufferLogEventTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/RingBufferLogEventTest.java
index acfaac2..0a86155 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/RingBufferLogEventTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/RingBufferLogEventTest.java
@@ -28,6 +28,7 @@ import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.MarkerManager;
 import org.apache.logging.log4j.ThreadContext.ContextStack;
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.util.StringMap;
 import org.apache.logging.log4j.core.impl.ThrowableProxy;
@@ -35,12 +36,14 @@ import org.apache.logging.log4j.message.Message;
 import org.apache.logging.log4j.message.SimpleMessage;
 import org.apache.logging.log4j.spi.MutableThreadContextStack;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
 /**
  * Tests the RingBufferLogEvent class.
  */
+@Category(AsyncLoggers.class)
 public class RingBufferLogEventTest {
 
     @Test

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/config/JiraLog4j2_1100JsonTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/config/JiraLog4j2_1100JsonTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/config/JiraLog4j2_1100JsonTest.java
index 76c0c7e..69884ea 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/config/JiraLog4j2_1100JsonTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/config/JiraLog4j2_1100JsonTest.java
@@ -17,6 +17,10 @@
 
 package org.apache.logging.log4j.core.config;
 
+import org.apache.logging.log4j.categories.Configurations;
+import org.junit.experimental.categories.Category;
+
+@Category(Configurations.Json.class)
 public class JiraLog4j2_1100JsonTest extends AbstractLog4j2_1100Test {
 
     @Override

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/config/JiraLog4j2_1100YamlBadTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/config/JiraLog4j2_1100YamlBadTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/config/JiraLog4j2_1100YamlBadTest.java
index 9890770..ad2fefe 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/config/JiraLog4j2_1100YamlBadTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/config/JiraLog4j2_1100YamlBadTest.java
@@ -17,9 +17,12 @@
 
 package org.apache.logging.log4j.core.config;
 
+import org.apache.logging.log4j.categories.Configurations;
 import org.junit.Ignore;
+import org.junit.experimental.categories.Category;
 
 @Ignore
+@Category(Configurations.Yaml.class)
 public class JiraLog4j2_1100YamlBadTest extends AbstractLog4j2_1100Test {
 
     @Override

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/config/JiraLog4j2_1100YamlGoodTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/config/JiraLog4j2_1100YamlGoodTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/config/JiraLog4j2_1100YamlGoodTest.java
index 7138c6c..89eb4be 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/config/JiraLog4j2_1100YamlGoodTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/config/JiraLog4j2_1100YamlGoodTest.java
@@ -17,6 +17,10 @@
 
 package org.apache.logging.log4j.core.config;
 
+import org.apache.logging.log4j.categories.Configurations;
+import org.junit.experimental.categories.Category;
+
+@Category(Configurations.Yaml.class)
 public class JiraLog4j2_1100YamlGoodTest extends AbstractLog4j2_1100Test {
 
     @Override

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/ScriptFileFilterPropertiesTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/ScriptFileFilterPropertiesTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/ScriptFileFilterPropertiesTest.java
index 431cea8..7e0e582 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/ScriptFileFilterPropertiesTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/ScriptFileFilterPropertiesTest.java
@@ -16,12 +16,15 @@
  */
 package org.apache.logging.log4j.core.filter;
 
+import org.apache.logging.log4j.categories.Scripts;
 import org.apache.logging.log4j.junit.LoggerContextRule;
 import org.junit.ClassRule;
+import org.junit.experimental.categories.Category;
 
 /**
  *
  */
+@Category(Scripts.Groovy.class)
 public class ScriptFileFilterPropertiesTest extends AbstractScriptFilterTest {
 
     private static final String CONFIG = "log4j-scriptFile-filters.properties";

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/ScriptFileFilterTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/ScriptFileFilterTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/ScriptFileFilterTest.java
index 84e81b5..c0818dc 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/ScriptFileFilterTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/ScriptFileFilterTest.java
@@ -16,12 +16,15 @@
  */
 package org.apache.logging.log4j.core.filter;
 
+import org.apache.logging.log4j.categories.Scripts;
 import org.apache.logging.log4j.junit.LoggerContextRule;
 import org.junit.ClassRule;
+import org.junit.experimental.categories.Category;
 
 /**
  *
  */
+@Category(Scripts.Groovy.class)
 public class ScriptFileFilterTest extends AbstractScriptFilterTest {
 
     private static final String CONFIG = "log4j-scriptFile-filters.xml";

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/ScriptFilterTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/ScriptFilterTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/ScriptFilterTest.java
index 4b515ca..47f7594 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/ScriptFilterTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/ScriptFilterTest.java
@@ -16,12 +16,15 @@
  */
 package org.apache.logging.log4j.core.filter;
 
+import org.apache.logging.log4j.categories.Scripts;
 import org.apache.logging.log4j.junit.LoggerContextRule;
 import org.junit.ClassRule;
+import org.junit.experimental.categories.Category;
 
 /**
  *
  */
+@Category(Scripts.Groovy.class)
 public class ScriptFilterTest extends AbstractScriptFilterTest {
 
     private static final String CONFIG = "log4j-script-filters.xml";

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/ScriptRefFilterTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/ScriptRefFilterTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/ScriptRefFilterTest.java
index f95536d..d2e4960 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/ScriptRefFilterTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/ScriptRefFilterTest.java
@@ -16,12 +16,15 @@
  */
 package org.apache.logging.log4j.core.filter;
 
+import org.apache.logging.log4j.categories.Scripts;
 import org.apache.logging.log4j.junit.LoggerContextRule;
 import org.junit.ClassRule;
+import org.junit.experimental.categories.Category;
 
 /**
  *
  */
+@Category(Scripts.Groovy.class)
 public class ScriptRefFilterTest extends AbstractScriptFilterTest {
 
     private static final String CONFIG = "log4j-scriptRef-filters.xml";

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/JacksonIssue429MyNamesTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/JacksonIssue429MyNamesTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/JacksonIssue429MyNamesTest.java
index 0a7089b..63c7919 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/JacksonIssue429MyNamesTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/JacksonIssue429MyNamesTest.java
@@ -18,6 +18,7 @@ package org.apache.logging.log4j.core.jackson;
 
 import java.io.IOException;
 
+import org.apache.logging.log4j.categories.Layouts;
 import org.apache.logging.log4j.util.Strings;
 import org.junit.Assert;
 import org.junit.Test;
@@ -32,7 +33,9 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer;
 import com.fasterxml.jackson.databind.module.SimpleModule;
+import org.junit.experimental.categories.Category;
 
+@Category(Layouts.Json.class)
 public class JacksonIssue429MyNamesTest {
 
     @SuppressWarnings("serial")

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/JacksonIssue429Test.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/JacksonIssue429Test.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/JacksonIssue429Test.java
index ba8469b..6cbccc6 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/JacksonIssue429Test.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/JacksonIssue429Test.java
@@ -18,6 +18,7 @@ package org.apache.logging.log4j.core.jackson;
 
 import java.io.IOException;
 
+import org.apache.logging.log4j.categories.Layouts;
 import org.junit.Assert;
 import org.junit.Test;
 
@@ -29,7 +30,9 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
 import com.fasterxml.jackson.databind.module.SimpleModule;
+import org.junit.experimental.categories.Category;
 
+@Category(Layouts.Json.class)
 public class JacksonIssue429Test {
 
     @SuppressWarnings("serial")

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/LevelMixInJsonTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/LevelMixInJsonTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/LevelMixInJsonTest.java
index 4d65b8d..8b6e23d 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/LevelMixInJsonTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/LevelMixInJsonTest.java
@@ -18,7 +18,10 @@
 package org.apache.logging.log4j.core.jackson;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
+import org.apache.logging.log4j.categories.Layouts;
+import org.junit.experimental.categories.Category;
 
+@Category(Layouts.Json.class)
 public class LevelMixInJsonTest extends LevelMixInTest {
 
     @Override

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/LevelMixInTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/LevelMixInTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/LevelMixInTest.java
index d9d11f1..acff4b4 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/LevelMixInTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/LevelMixInTest.java
@@ -19,6 +19,7 @@ package org.apache.logging.log4j.core.jackson;
 import java.io.IOException;
 
 import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.categories.Layouts;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
@@ -27,10 +28,12 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.ObjectReader;
 import com.fasterxml.jackson.databind.ObjectWriter;
+import org.junit.experimental.categories.Category;
 
 /**
  * Tests {@link LevelMixIn}.
  */
+@Category(Layouts.Json.class)
 public abstract class LevelMixInTest {
 
     static class Fixture {

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/LevelMixInXmlTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/LevelMixInXmlTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/LevelMixInXmlTest.java
index e14b248..3332d1a 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/LevelMixInXmlTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/LevelMixInXmlTest.java
@@ -17,11 +17,14 @@
 
 package org.apache.logging.log4j.core.jackson;
 
+import org.apache.logging.log4j.categories.Layouts;
 import org.junit.Ignore;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
+import org.junit.experimental.categories.Category;
 
 @Ignore("Fails for #testNameOnly()")
+@Category(Layouts.Xml.class)
 public class LevelMixInXmlTest extends LevelMixInTest {
 
     @Override

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/LevelMixInYamlTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/LevelMixInYamlTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/LevelMixInYamlTest.java
index cff034e..29b9e52 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/LevelMixInYamlTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/LevelMixInYamlTest.java
@@ -18,7 +18,10 @@
 package org.apache.logging.log4j.core.jackson;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
+import org.apache.logging.log4j.categories.Layouts;
+import org.junit.experimental.categories.Category;
 
+@Category(Layouts.Yaml.class)
 public class LevelMixInYamlTest extends LevelMixInTest {
 
     @Override

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/StackTraceElementMixInTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/StackTraceElementMixInTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/StackTraceElementMixInTest.java
index 8050a68..38d943b 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/StackTraceElementMixInTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/jackson/StackTraceElementMixInTest.java
@@ -18,6 +18,7 @@ package org.apache.logging.log4j.core.jackson;
 
 import java.io.IOException;
 
+import org.apache.logging.log4j.categories.Layouts;
 import org.junit.Assert;
 import org.junit.Test;
 
@@ -26,7 +27,9 @@ import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.JsonMappingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.module.SimpleModule;
+import org.junit.experimental.categories.Category;
 
+@Category(Layouts.Json.class)
 public class StackTraceElementMixInTest {
 
     @Test

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvLogEventLayoutTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvLogEventLayoutTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvLogEventLayoutTest.java
index a1df4a0..0ee8861 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvLogEventLayoutTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvLogEventLayoutTest.java
@@ -24,6 +24,7 @@ import java.util.Map;
 
 import org.apache.commons.csv.CSVFormat;
 import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.categories.Layouts;
 import org.apache.logging.log4j.core.Appender;
 import org.apache.logging.log4j.core.BasicConfigurationFactory;
 import org.apache.logging.log4j.core.Logger;
@@ -36,12 +37,14 @@ import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Rule;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 /**
  * Tests {@link AbstractCsvLayout}.
  *
  * @since 2.4
  */
+@Category(Layouts.Csv.class)
 public class CsvLogEventLayoutTest {
     static ConfigurationFactory cf = new BasicConfigurationFactory();
 

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvParameterLayoutAllAsyncTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvParameterLayoutAllAsyncTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvParameterLayoutAllAsyncTest.java
index af83ae3..1e9d3dd 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvParameterLayoutAllAsyncTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvParameterLayoutAllAsyncTest.java
@@ -18,6 +18,7 @@ package org.apache.logging.log4j.core.layout;
 
 import org.apache.commons.csv.CSVFormat;
 import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.categories.Layouts;
 import org.apache.logging.log4j.core.Logger;
 import org.apache.logging.log4j.core.async.AsyncLoggerContextSelector;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
@@ -26,12 +27,14 @@ import org.apache.logging.log4j.util.Strings;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 /**
  * Tests {@link AbstractCsvLayout} with all loggers async.
  *
  * @since 2.6
  */
+@Category(Layouts.Csv.class)
 public class CsvParameterLayoutAllAsyncTest {
 
     @BeforeClass

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvParameterLayoutTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvParameterLayoutTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvParameterLayoutTest.java
index f0f08fa..e7d1074 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvParameterLayoutTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/CsvParameterLayoutTest.java
@@ -29,6 +29,7 @@ import java.util.concurrent.TimeUnit;
 import org.apache.commons.csv.CSVFormat;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.categories.Layouts;
 import org.apache.logging.log4j.core.Appender;
 import org.apache.logging.log4j.core.Logger;
 import org.apache.logging.log4j.junit.LoggerContextRule;
@@ -38,6 +39,7 @@ import org.apache.logging.log4j.test.appender.ListAppender;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
@@ -46,7 +48,8 @@ import org.junit.runners.Parameterized;
  *
  * @since 2.4
  */
-@RunWith(value = Parameterized.class)
+@RunWith(Parameterized.class)
+@Category(Layouts.Csv.class)
 public class CsvParameterLayoutTest {
     @Parameterized.Parameters(name = "{0}")
     public static Collection<Object[]> data() {

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JsonLayoutTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JsonLayoutTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JsonLayoutTest.java
index 9b0a866..b458054 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JsonLayoutTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JsonLayoutTest.java
@@ -28,6 +28,7 @@ import java.util.Map;
 
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.ThreadContext;
+import org.apache.logging.log4j.categories.Layouts;
 import org.apache.logging.log4j.core.Appender;
 import org.apache.logging.log4j.core.BasicConfigurationFactory;
 import org.apache.logging.log4j.core.Logger;
@@ -44,10 +45,12 @@ import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 /**
  * Tests the JsonLayout class.
  */
+@Category(Layouts.Json.class)
 public class JsonLayoutTest {
     static ConfigurationFactory cf = new BasicConfigurationFactory();
 

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/Log4j2_1482_Test.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/Log4j2_1482_Test.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/Log4j2_1482_Test.java
index 406809b..abd1852 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/Log4j2_1482_Test.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/Log4j2_1482_Test.java
@@ -26,16 +26,19 @@ import java.nio.file.Paths;
 import java.util.Arrays;
 import java.util.List;
 
+import org.apache.logging.log4j.categories.Layouts;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.Configurator;
 import org.apache.logging.log4j.junit.CleanFolders;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 /**
  * Tests https://issues.apache.org/jira/browse/LOG4J2-1482
  */
+@Category(Layouts.Csv.class)
 public abstract class Log4j2_1482_Test {
 
 	static final String CONFIG_LOCATION = "log4j2-1482.xml";

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/XmlLayoutTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/XmlLayoutTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/XmlLayoutTest.java
index 140521d..0e6595c 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/XmlLayoutTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/XmlLayoutTest.java
@@ -25,6 +25,7 @@ import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.MarkerManager;
 import org.apache.logging.log4j.ThreadContext;
+import org.apache.logging.log4j.categories.Layouts;
 import org.apache.logging.log4j.core.Appender;
 import org.apache.logging.log4j.core.BasicConfigurationFactory;
 import org.apache.logging.log4j.core.Logger;
@@ -44,12 +45,14 @@ import org.junit.Test;
 
 import com.fasterxml.jackson.core.JsonParseException;
 import com.fasterxml.jackson.databind.JsonMappingException;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
 /**
  * Tests {@link XmlLayout}.
  */
+@Category(Layouts.Xml.class)
 public class XmlLayoutTest {
     private static final String body = "<Message>empty mdc</Message>";
     static ConfigurationFactory cf = new BasicConfigurationFactory();

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/YamlLayoutTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/YamlLayoutTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/YamlLayoutTest.java
index a553539..97493a4 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/YamlLayoutTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/YamlLayoutTest.java
@@ -27,6 +27,7 @@ import java.util.Map;
 
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.ThreadContext;
+import org.apache.logging.log4j.categories.Layouts;
 import org.apache.logging.log4j.core.Appender;
 import org.apache.logging.log4j.core.BasicConfigurationFactory;
 import org.apache.logging.log4j.core.Logger;
@@ -43,10 +44,12 @@ import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 /**
  * Tests the YamlLayout class.
  */
+@Category(Layouts.Yaml.class)
 public class YamlLayoutTest {
     static ConfigurationFactory cf = new BasicConfigurationFactory();
 

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/MongoDbAuthTest.java
----------------------------------------------------------------------
diff --git a/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/MongoDbAuthTest.java b/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/MongoDbAuthTest.java
index f7c128e..f87d91d 100644
--- a/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/MongoDbAuthTest.java
+++ b/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/MongoDbAuthTest.java
@@ -18,12 +18,15 @@ package org.apache.logging.log4j.nosql.appender;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.categories.Appenders;
 import org.apache.logging.log4j.junit.LoggerContextRule;
 import org.junit.ClassRule;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 @Ignore("Requires a running MongoDB server")
+@Category(Appenders.MongoDb.class)
 public class MongoDbAuthTest {
 
     @ClassRule

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/MongoDbTest.java
----------------------------------------------------------------------
diff --git a/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/MongoDbTest.java b/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/MongoDbTest.java
index 2513526..b480798 100644
--- a/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/MongoDbTest.java
+++ b/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/MongoDbTest.java
@@ -18,12 +18,15 @@ package org.apache.logging.log4j.nosql.appender;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.categories.Appenders;
 import org.apache.logging.log4j.junit.LoggerContextRule;
 import org.junit.ClassRule;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 @Ignore("Requires a running MongoDB server")
+@Category(Appenders.MongoDb.class)
 public class MongoDbTest {
 
     @ClassRule

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/cassandra/CassandraAppenderIT.java
----------------------------------------------------------------------
diff --git a/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/cassandra/CassandraAppenderIT.java b/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/cassandra/CassandraAppenderIT.java
index 0c5f24b..caf72d5 100644
--- a/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/cassandra/CassandraAppenderIT.java
+++ b/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/cassandra/CassandraAppenderIT.java
@@ -27,9 +27,11 @@ import com.datastax.driver.core.Session;
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.MarkerManager;
 import org.apache.logging.log4j.ThreadContext;
+import org.apache.logging.log4j.categories.Appenders;
 import org.apache.logging.log4j.junit.LoggerContextRule;
 import org.junit.ClassRule;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 import org.junit.rules.RuleChain;
 
 import static org.junit.Assert.*;
@@ -37,6 +39,7 @@ import static org.junit.Assert.*;
 /**
  * Integration test for CassandraAppender.
  */
+@Category(Appenders.Cassandra.class)
 public class CassandraAppenderIT {
 
     private static final String DDL = "CREATE TABLE logs (" +


[3/3] logging-log4j2 git commit: [LOG4J2-1777]: Add JUnit categories to tests requiring extra dependencies

Posted by ma...@apache.org.
[LOG4J2-1777]: Add JUnit categories to tests requiring extra dependencies


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/4ef970bc
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/4ef970bc
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/4ef970bc

Branch: refs/heads/master
Commit: 4ef970bcc52ac43142dac8cf1b71e120313de47b
Parents: 4a66e17
Author: Matt Sicker <ma...@spr.com>
Authored: Mon Jan 9 20:59:05 2017 -0600
Committer: Matt Sicker <ma...@spr.com>
Committed: Mon Jan 9 21:33:16 2017 -0600

----------------------------------------------------------------------
 .../org/apache/logging/log4j/MarkerMixInJsonTest.java    |  6 ++++--
 .../java/org/apache/logging/log4j/MarkerMixInTest.java   | 11 ++++++-----
 .../org/apache/logging/log4j/MarkerMixInXmlTest.java     |  3 +++
 .../org/apache/logging/log4j/MarkerMixInYamlTest.java    |  3 +++
 .../apache/logging/log4j/categories/AsyncLoggers.java    |  2 +-
 .../logging/log4j/core/AppenderRefLevelJsonTest.java     |  3 +++
 .../log4j/core/GcFreeAsynchronousLoggingTest.java        |  3 +++
 .../logging/log4j/core/appender/AsyncAppenderTest.java   |  3 +++
 .../core/appender/ConsoleAppenderJAnsiMessageMain.java   |  4 ++++
 .../appender/ConsoleAppenderJAnsiXExceptionMain.java     |  3 +++
 .../appender/CsvJsonParameterLayoutFileAppenderTest.java |  3 +++
 .../core/appender/JsonCompleteFileAppenderTest.java      |  8 +++++---
 .../log4j/core/appender/ScriptAppenderSelectorTest.java  |  8 +++++---
 .../logging/log4j/core/appender/SmtpAppenderTest.java    |  4 +++-
 .../log4j/core/appender/XmlCompactFileAppenderTest.java  |  3 +++
 .../appender/XmlCompactFileAppenderValidationTest.java   |  3 +++
 .../XmlCompactFileAsyncAppenderValidationTest.java       |  3 +++
 .../log4j/core/appender/XmlCompleteFileAppenderTest.java |  3 +++
 .../logging/log4j/core/appender/XmlFileAppenderTest.java |  3 +++
 .../core/appender/XmlRandomAccessFileAppenderTest.java   |  3 +++
 .../core/appender/db/jpa/AbstractJpaAppenderTest.java    |  3 +++
 .../log4j/core/appender/db/jpa/JpaH2AppenderTest.java    |  3 +++
 .../core/appender/db/jpa/JpaHyperSqlAppenderTest.java    |  3 +++
 .../jpa/converter/ContextDataAttributeConverterTest.java |  9 +++------
 .../converter/ContextDataJsonAttributeConverterTest.java |  9 +++------
 .../jpa/converter/ContextMapAttributeConverterTest.java  |  9 +++------
 .../converter/ContextMapJsonAttributeConverterTest.java  |  9 +++------
 .../converter/ContextStackAttributeConverterTest.java    |  9 +++------
 .../ContextStackJsonAttributeConverterTest.java          |  3 +++
 .../db/jpa/converter/MarkerAttributeConverterTest.java   |  9 +++------
 .../db/jpa/converter/MessageAttributeConverterTest.java  |  9 +++------
 .../StackTraceElementAttributeConverterTest.java         |  9 +++------
 .../jpa/converter/ThrowableAttributeConverterTest.java   |  9 +++------
 .../logging/log4j/core/appender/mom/JmsAppenderTest.java |  3 +++
 .../log4j/core/appender/mom/activemq/JmsAppenderIT.java  |  4 +++-
 .../core/appender/mom/jeromq/JeroMqAppenderTest.java     |  3 +++
 .../log4j/core/appender/mom/kafka/KafkaAppenderTest.java |  3 +++
 .../appender/rolling/action/ScriptConditionTest.java     |  3 +++
 .../core/appender/routing/RoutesScriptAppenderTest.java  |  3 +++
 .../core/async/AsyncLoggerClassLoadDeadlockTest.java     |  5 ++++-
 .../log4j/core/async/AsyncLoggerConfigAutoFlushTest.java |  3 +++
 .../logging/log4j/core/async/AsyncLoggerConfigTest.java  |  3 +++
 .../logging/log4j/core/async/AsyncLoggerConfigTest2.java | 10 ++++------
 .../AsyncLoggerConfigThreadContextCopyOnWriteTest.java   |  4 ++++
 .../async/AsyncLoggerConfigThreadContextDefaultTest.java |  4 ++++
 .../AsyncLoggerConfigThreadContextGarbageFreeTest.java   |  4 ++++
 .../async/AsyncLoggerConfigUseAfterShutdownTest.java     |  3 +++
 .../AsyncLoggerContextSelectorInitialStateTest.java      |  5 ++++-
 .../log4j/core/async/AsyncLoggerContextSelectorTest.java |  3 +++
 .../logging/log4j/core/async/AsyncLoggerContextTest.java |  3 +++
 .../log4j/core/async/AsyncLoggerLocationTest.java        |  3 +++
 .../apache/logging/log4j/core/async/AsyncLoggerTest.java |  3 +++
 .../core/async/AsyncLoggerTestCachedThreadName.java      |  3 +++
 .../log4j/core/async/AsyncLoggerTestNanoTime.java        |  3 +++
 .../core/async/AsyncLoggerTestUncachedThreadName.java    |  3 +++
 .../async/AsyncLoggerThreadContextCopyOnWriteTest.java   |  3 +++
 .../core/async/AsyncLoggerThreadContextDefaultTest.java  |  3 +++
 .../async/AsyncLoggerThreadContextGarbageFreeTest.java   |  3 +++
 .../log4j/core/async/AsyncLoggerThreadContextTest.java   |  3 +++
 .../core/async/AsyncLoggerThreadNameStrategyTest.java    |  3 +++
 .../core/async/AsyncLoggerTimestampMessageTest.java      |  3 +++
 .../core/async/AsyncLoggerUseAfterShutdownTest.java      |  3 +++
 .../core/async/AsyncLoggersWithAsyncAppenderTest.java    |  3 +++
 .../async/AsyncLoggersWithAsyncLoggerConfigTest.java     |  3 +++
 .../core/async/AsyncQueueFullPolicyFactoryTest.java      |  3 +++
 .../logging/log4j/core/async/AsyncRootReloadTest.java    |  3 +++
 .../core/async/DefaultAsyncQueueFullPolicyTest.java      |  3 +++
 .../core/async/DiscardingAsyncQueueFullPolicyTest.java   |  3 +++
 .../log4j/core/async/Log4j2Jira1688AsyncTest.java        |  3 +++
 .../logging/log4j/core/async/Log4j2Jira1688Test.java     |  3 +++
 .../logging/log4j/core/async/RingBufferLogEventTest.java |  3 +++
 .../log4j/core/config/JiraLog4j2_1100JsonTest.java       |  4 ++++
 .../log4j/core/config/JiraLog4j2_1100YamlBadTest.java    |  3 +++
 .../log4j/core/config/JiraLog4j2_1100YamlGoodTest.java   |  4 ++++
 .../core/filter/ScriptFileFilterPropertiesTest.java      |  3 +++
 .../logging/log4j/core/filter/ScriptFileFilterTest.java  |  3 +++
 .../logging/log4j/core/filter/ScriptFilterTest.java      |  3 +++
 .../logging/log4j/core/filter/ScriptRefFilterTest.java   |  3 +++
 .../log4j/core/jackson/JacksonIssue429MyNamesTest.java   |  3 +++
 .../logging/log4j/core/jackson/JacksonIssue429Test.java  |  3 +++
 .../logging/log4j/core/jackson/LevelMixInJsonTest.java   |  3 +++
 .../logging/log4j/core/jackson/LevelMixInTest.java       |  3 +++
 .../logging/log4j/core/jackson/LevelMixInXmlTest.java    |  3 +++
 .../logging/log4j/core/jackson/LevelMixInYamlTest.java   |  3 +++
 .../log4j/core/jackson/StackTraceElementMixInTest.java   |  3 +++
 .../logging/log4j/core/layout/CsvLogEventLayoutTest.java |  3 +++
 .../core/layout/CsvParameterLayoutAllAsyncTest.java      |  3 +++
 .../log4j/core/layout/CsvParameterLayoutTest.java        |  5 ++++-
 .../apache/logging/log4j/core/layout/JsonLayoutTest.java |  3 +++
 .../logging/log4j/core/layout/Log4j2_1482_Test.java      |  3 +++
 .../apache/logging/log4j/core/layout/XmlLayoutTest.java  |  3 +++
 .../apache/logging/log4j/core/layout/YamlLayoutTest.java |  3 +++
 .../logging/log4j/nosql/appender/MongoDbAuthTest.java    |  3 +++
 .../apache/logging/log4j/nosql/appender/MongoDbTest.java |  3 +++
 .../nosql/appender/cassandra/CassandraAppenderIT.java    |  3 +++
 95 files changed, 301 insertions(+), 79 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/MarkerMixInJsonTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/MarkerMixInJsonTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/MarkerMixInJsonTest.java
index 6ae91c8..8777696 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/MarkerMixInJsonTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/MarkerMixInJsonTest.java
@@ -17,10 +17,12 @@
 
 package org.apache.logging.log4j;
 
-import org.apache.logging.log4j.core.jackson.Log4jJsonObjectMapper;
-
 import com.fasterxml.jackson.databind.ObjectMapper;
+import org.apache.logging.log4j.categories.Layouts;
+import org.apache.logging.log4j.core.jackson.Log4jJsonObjectMapper;
+import org.junit.experimental.categories.Category;
 
+@Category(Layouts.Json.class)
 public class MarkerMixInJsonTest extends MarkerMixInTest {
 
     @Override

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/MarkerMixInTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/MarkerMixInTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/MarkerMixInTest.java
index 21a5c97..c6c1139 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/MarkerMixInTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/MarkerMixInTest.java
@@ -18,15 +18,16 @@ package org.apache.logging.log4j;
 
 import java.io.IOException;
 
-import org.apache.logging.log4j.MarkerManager.Log4jMarker;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.ObjectReader;
 import com.fasterxml.jackson.databind.ObjectWriter;
+import org.apache.logging.log4j.MarkerManager.Log4jMarker;
+import org.apache.logging.log4j.categories.Layouts;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 /**
  * Tests {@link MarkerMixIn}.

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/MarkerMixInXmlTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/MarkerMixInXmlTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/MarkerMixInXmlTest.java
index 45c0bac..3b80811 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/MarkerMixInXmlTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/MarkerMixInXmlTest.java
@@ -17,10 +17,13 @@
 
 package org.apache.logging.log4j;
 
+import org.apache.logging.log4j.categories.Layouts;
 import org.apache.logging.log4j.core.jackson.Log4jXmlObjectMapper;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
+import org.junit.experimental.categories.Category;
 
+@Category(Layouts.Xml.class)
 public class MarkerMixInXmlTest extends MarkerMixInTest {
 
     @Override

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/MarkerMixInYamlTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/MarkerMixInYamlTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/MarkerMixInYamlTest.java
index 89f02a1..2d14b6b 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/MarkerMixInYamlTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/MarkerMixInYamlTest.java
@@ -17,10 +17,13 @@
 
 package org.apache.logging.log4j;
 
+import org.apache.logging.log4j.categories.Layouts;
 import org.apache.logging.log4j.core.jackson.Log4jYamlObjectMapper;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
+import org.junit.experimental.categories.Category;
 
+@Category(Layouts.Yaml.class)
 public class MarkerMixInYamlTest extends MarkerMixInTest {
 
     @Override

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/categories/AsyncLoggers.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/categories/AsyncLoggers.java b/log4j-core/src/test/java/org/apache/logging/log4j/categories/AsyncLoggers.java
index 9cd67a3..b46b185 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/categories/AsyncLoggers.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/categories/AsyncLoggers.java
@@ -19,5 +19,5 @@ package org.apache.logging.log4j.categories;
 /**
  * Category for tests related to AsyncLogger (requires LMAX Disruptor dependency).
  */
-public class AsyncLoggers {
+public interface AsyncLoggers {
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelJsonTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelJsonTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelJsonTest.java
index 3d9424a..fb28cf0 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelJsonTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelJsonTest.java
@@ -18,11 +18,13 @@ package org.apache.logging.log4j.core;
 
 import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.MarkerManager;
+import org.apache.logging.log4j.categories.Configurations;
 import org.apache.logging.log4j.junit.LoggerContextRule;
 import org.apache.logging.log4j.test.appender.ListAppender;
 import org.junit.Before;
 import org.junit.ClassRule;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.hamcrest.Matchers.hasSize;
 import static org.junit.Assert.*;
@@ -30,6 +32,7 @@ import static org.junit.Assert.*;
 /**
  *
  */
+@Category(Configurations.Json.class)
 public class AppenderRefLevelJsonTest {
 
     private static final String CONFIG = "log4j-reference-level.json";

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/GcFreeAsynchronousLoggingTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/GcFreeAsynchronousLoggingTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/GcFreeAsynchronousLoggingTest.java
index 188605a..9fb661f 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/GcFreeAsynchronousLoggingTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/GcFreeAsynchronousLoggingTest.java
@@ -16,14 +16,17 @@
  */
 package org.apache.logging.log4j.core;
 
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.apache.logging.log4j.core.async.AsyncLoggerContextSelector;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 /**
  * Verifies steady state logging is GC-free.
  *
  * @see <a href="https://github.com/google/allocation-instrumenter">https://github.com/google/allocation-instrumenter</a>
  */
+@Category(AsyncLoggers.class)
 public class GcFreeAsynchronousLoggingTest {
 
     @Test

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/AsyncAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/AsyncAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/AsyncAppenderTest.java
index cf5752b..b2de774 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/AsyncAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/AsyncAppenderTest.java
@@ -22,12 +22,14 @@ import java.util.concurrent.TimeUnit;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.LoggingException;
+import org.apache.logging.log4j.categories.Appenders;
 import org.apache.logging.log4j.junit.LoggerContextRule;
 import org.apache.logging.log4j.test.appender.ListAppender;
 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.runner.RunWith;
 import org.junit.runners.Parameterized;
 
@@ -37,6 +39,7 @@ import static org.junit.Assert.*;
  *
  */
 @RunWith(Parameterized.class)
+@Category({Appenders.AsyncConversant.class, Appenders.AsyncJcTools.class})
 public class AsyncAppenderTest {
 
     private static final long TIMEOUT_MILLIS = 2000;

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderJAnsiMessageMain.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderJAnsiMessageMain.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderJAnsiMessageMain.java
index 5c0857f..1dc65a1 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderJAnsiMessageMain.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderJAnsiMessageMain.java
@@ -24,9 +24,12 @@ import java.util.Map.Entry;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.categories.Layouts;
+import org.apache.logging.log4j.categories.Scripts;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.Configurator;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 /**
  * Shows how to use ANSI escape codes to color messages. Each message is printed to the console in color, but the rest
@@ -46,6 +49,7 @@ import org.junit.Test;
  * </pre>
  * 
  */
+@Category(Layouts.Jansi.class)
 public class ConsoleAppenderJAnsiMessageMain {
 
     public static void main(final String[] args) {

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderJAnsiXExceptionMain.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderJAnsiXExceptionMain.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderJAnsiXExceptionMain.java
index bd62bd4..7780a1d 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderJAnsiXExceptionMain.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderJAnsiXExceptionMain.java
@@ -21,9 +21,11 @@ import java.nio.file.Paths;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.categories.Layouts;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.Configurator;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 /**
  * Shows how to use ANSI escape codes to color messages. Each message is printed to the console in color, but the rest
@@ -43,6 +45,7 @@ import org.junit.Test;
  * </pre>
  * 
  */
+@Category(Layouts.Jansi.class)
 public class ConsoleAppenderJAnsiXExceptionMain {
 
     public static void main(final String[] args) {

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/CsvJsonParameterLayoutFileAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/CsvJsonParameterLayoutFileAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/CsvJsonParameterLayoutFileAppenderTest.java
index e4357b5..e3acddd 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/CsvJsonParameterLayoutFileAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/CsvJsonParameterLayoutFileAppenderTest.java
@@ -22,12 +22,14 @@ import java.io.IOException;
 import java.nio.charset.Charset;
 import java.util.List;
 
+import org.apache.logging.log4j.categories.Layouts;
 import org.apache.logging.log4j.core.Logger;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.junit.LoggerContextRule;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 import org.junit.rules.RuleChain;
 
 import com.google.common.io.Files;
@@ -35,6 +37,7 @@ import com.google.common.io.Files;
 /**
  * Tests https://issues.apache.org/jira/browse/LOG4J2-1502
  */
+@Category(Layouts.Csv.class)
 public class CsvJsonParameterLayoutFileAppenderTest {
 
     private static final String FILE_PATH = "target/CsvJsonParameterLayoutFileAppenderTest.log";

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/JsonCompleteFileAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/JsonCompleteFileAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/JsonCompleteFileAppenderTest.java
index 09ac0c6..e6dbdb6 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/JsonCompleteFileAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/JsonCompleteFileAppenderTest.java
@@ -16,29 +16,31 @@
  */
 package org.apache.logging.log4j.core.appender;
 
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileReader;
 
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.categories.Layouts;
 import org.apache.logging.log4j.core.selector.ContextSelector;
 import org.apache.logging.log4j.core.selector.CoreContextSelectors;
 import org.apache.logging.log4j.junit.CleanFiles;
 import org.apache.logging.log4j.junit.LoggerContextRule;
 import org.junit.Rule;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 import org.junit.rules.RuleChain;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 import org.junit.runners.Parameterized.Parameters;
 
+import static org.junit.Assert.*;
+
 /**
  * Tests a "complete" JSON file.
  */
 @RunWith(Parameterized.class)
+@Category(Layouts.Json.class)
 public class JsonCompleteFileAppenderTest {
 
     public JsonCompleteFileAppenderTest(final Class<ContextSelector> contextSelector) {

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ScriptAppenderSelectorTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ScriptAppenderSelectorTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ScriptAppenderSelectorTest.java
index 549dea5..a1fe45c 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ScriptAppenderSelectorTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ScriptAppenderSelectorTest.java
@@ -16,26 +16,28 @@
  */
 package org.apache.logging.log4j.core.appender;
 
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
 import java.util.List;
 
 import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.MarkerManager;
+import org.apache.logging.log4j.categories.Scripts;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.Logger;
 import org.apache.logging.log4j.junit.LoggerContextRule;
 import org.apache.logging.log4j.test.appender.ListAppender;
 import org.junit.Rule;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
+import static org.junit.Assert.*;
+
 /**
  *
  */
 @RunWith(Parameterized.class)
+@Category(Scripts.Groovy.class)
 public class ScriptAppenderSelectorTest {
 
     @Parameterized.Parameters(name = "{0}")

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/SmtpAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/SmtpAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/SmtpAppenderTest.java
index faf1aab..4951641 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/SmtpAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/SmtpAppenderTest.java
@@ -17,7 +17,6 @@
 package org.apache.logging.log4j.core.appender;
 
 import java.util.Iterator;
-
 import javax.mail.Address;
 import javax.mail.Message;
 import javax.mail.MessagingException;
@@ -27,15 +26,18 @@ import org.apache.logging.dumbster.smtp.SimpleSmtpServer;
 import org.apache.logging.dumbster.smtp.SmtpMessage;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.ThreadContext;
+import org.apache.logging.log4j.categories.Appenders;
 import org.apache.logging.log4j.core.Logger;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.net.MimeMessageBuilder;
 import org.apache.logging.log4j.core.util.CyclicBuffer;
 import org.apache.logging.log4j.test.AvailablePortFinder;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(Appenders.Smtp.class)
 public class SmtpAppenderTest {
 
     private static final String HOST = "localhost";

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAppenderTest.java
index f1248b4..c59ad9d 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAppenderTest.java
@@ -22,16 +22,19 @@ import java.io.FileReader;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.categories.Layouts;
 import org.apache.logging.log4j.core.CoreLoggerContexts;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
 /**
  * Tests a "compact" XML file, no extra spaces or end of lines.
  */
+@Category(Layouts.Xml.class)
 public class XmlCompactFileAppenderTest {
 
     @BeforeClass

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAppenderValidationTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAppenderValidationTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAppenderValidationTest.java
index 7801f03..9b4da79 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAppenderValidationTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAppenderValidationTest.java
@@ -29,18 +29,21 @@ import javax.xml.validation.Validator;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.categories.Layouts;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.Configurator;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 import org.xml.sax.SAXException;
 
 /**
  * Tests XML validation for a "compact" XML file, no extra spaces or end of lines.
  */
 @Ignore
+@Category(Layouts.Xml.class)
 public class XmlCompactFileAppenderValidationTest {
 
     private LoggerContext loggerContext;

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAsyncAppenderValidationTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAsyncAppenderValidationTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAsyncAppenderValidationTest.java
index ed34466..1e048b1 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAsyncAppenderValidationTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAsyncAppenderValidationTest.java
@@ -29,17 +29,20 @@ import javax.xml.validation.Validator;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.categories.Layouts;
 import org.apache.logging.log4j.core.CoreLoggerContexts;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 import org.xml.sax.SAXException;
 
 /**
  * Tests XML validation for a "compact" XML file, no extra spaces or end of lines.
  */
 @Ignore
+@Category(Layouts.Xml.class)
 public class XmlCompactFileAsyncAppenderValidationTest {
 
     @BeforeClass

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompleteFileAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompleteFileAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompleteFileAppenderTest.java
index 1260d71..35e01a1 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompleteFileAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompleteFileAppenderTest.java
@@ -25,6 +25,7 @@ import java.io.File;
 import java.io.FileReader;
 
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.categories.Layouts;
 import org.apache.logging.log4j.core.CoreLoggerContexts;
 import org.apache.logging.log4j.core.selector.ContextSelector;
 import org.apache.logging.log4j.core.selector.CoreContextSelectors;
@@ -32,6 +33,7 @@ import org.apache.logging.log4j.junit.CleanFiles;
 import org.apache.logging.log4j.junit.LoggerContextRule;
 import org.junit.Rule;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 import org.junit.rules.RuleChain;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -41,6 +43,7 @@ import org.junit.runners.Parameterized.Parameters;
  * Tests a "complete" XML file a.k.a. a well-formed XML file.
  */
 @RunWith(Parameterized.class)
+@Category(Layouts.Xml.class)
 public class XmlCompleteFileAppenderTest {
 
     public XmlCompleteFileAppenderTest(final Class<ContextSelector> contextSelector) {

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlFileAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlFileAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlFileAppenderTest.java
index c3c04d8..98a9fab 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlFileAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlFileAppenderTest.java
@@ -22,16 +22,19 @@ import java.io.FileReader;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.categories.Layouts;
 import org.apache.logging.log4j.core.CoreLoggerContexts;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
 /**
  * Tests a "complete" XML file a.k.a. a well-formed XML file.
  */
+@Category(Layouts.Xml.class)
 public class XmlFileAppenderTest {
 
     @BeforeClass

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlRandomAccessFileAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlRandomAccessFileAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlRandomAccessFileAppenderTest.java
index 7d1c2c5..a907c7f 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlRandomAccessFileAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlRandomAccessFileAppenderTest.java
@@ -22,17 +22,20 @@ import java.io.FileReader;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.categories.Layouts;
 import org.apache.logging.log4j.core.CoreLoggerContexts;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
 /**
  * Tests a "complete" XML file a.k.a. a well-formed XML file.
  */
+@Category(Layouts.Xml.class)
 public class XmlRandomAccessFileAppenderTest {
 
     @BeforeClass

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/AbstractJpaAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/AbstractJpaAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/AbstractJpaAppenderTest.java
index f054ae8..c61af57 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/AbstractJpaAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/AbstractJpaAppenderTest.java
@@ -25,15 +25,18 @@ import java.sql.Statement;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.categories.Appenders;
 import org.apache.logging.log4j.core.Appender;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.config.DefaultConfiguration;
 import org.apache.logging.log4j.status.StatusLogger;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(Appenders.Jpa.class)
 public abstract class AbstractJpaAppenderTest {
     private final String databaseType;
     private Connection connection;

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/JpaH2AppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/JpaH2AppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/JpaH2AppenderTest.java
index 6e80d9e..055dd03 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/JpaH2AppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/JpaH2AppenderTest.java
@@ -21,8 +21,11 @@ import java.sql.DriverManager;
 import java.sql.SQLException;
 import java.sql.Statement;
 
+import org.apache.logging.log4j.categories.Appenders;
 import org.apache.logging.log4j.util.Strings;
+import org.junit.experimental.categories.Category;
 
+@Category(Appenders.Jpa.class)
 public class JpaH2AppenderTest extends AbstractJpaAppenderTest {
     private static final String USER_ID = "sa";
     private static final String PASSWORD = Strings.EMPTY;

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/JpaHyperSqlAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/JpaHyperSqlAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/JpaHyperSqlAppenderTest.java
index 4748b59..74e0f45 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/JpaHyperSqlAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/JpaHyperSqlAppenderTest.java
@@ -21,12 +21,15 @@ import java.sql.DriverManager;
 import java.sql.SQLException;
 import java.sql.Statement;
 
+import org.apache.logging.log4j.categories.Appenders;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.util.Strings;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(Appenders.Jpa.class)
 public class JpaHyperSqlAppenderTest extends AbstractJpaAppenderTest {
     private static final String USER_ID = "sa";
     private static final String PASSWORD = Strings.EMPTY;

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextDataAttributeConverterTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextDataAttributeConverterTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextDataAttributeConverterTest.java
index 1112f3e..41306a1 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextDataAttributeConverterTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextDataAttributeConverterTest.java
@@ -16,14 +16,16 @@
  */
 package org.apache.logging.log4j.core.appender.db.jpa.converter;
 
+import org.apache.logging.log4j.categories.Appenders;
 import org.apache.logging.log4j.util.SortedArrayStringMap;
 import org.apache.logging.log4j.util.StringMap;
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(Appenders.Jpa.class)
 public class ContextDataAttributeConverterTest {
     private ContextDataAttributeConverter converter;
 
@@ -32,11 +34,6 @@ public class ContextDataAttributeConverterTest {
         this.converter = new ContextDataAttributeConverter();
     }
 
-    @After
-    public void tearDown() {
-
-    }
-
     @Test
     public void testConvertToDatabaseColumn01() {
         final StringMap map = new SortedArrayStringMap();

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextDataJsonAttributeConverterTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextDataJsonAttributeConverterTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextDataJsonAttributeConverterTest.java
index 45b444a..161a23e 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextDataJsonAttributeConverterTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextDataJsonAttributeConverterTest.java
@@ -16,15 +16,17 @@
  */
 package org.apache.logging.log4j.core.appender.db.jpa.converter;
 
+import org.apache.logging.log4j.categories.Appenders;
 import org.apache.logging.log4j.util.ReadOnlyStringMap;
 import org.apache.logging.log4j.util.SortedArrayStringMap;
 import org.apache.logging.log4j.util.StringMap;
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(Appenders.Jpa.class)
 public class ContextDataJsonAttributeConverterTest {
     private ContextDataJsonAttributeConverter converter;
 
@@ -33,11 +35,6 @@ public class ContextDataJsonAttributeConverterTest {
         this.converter = new ContextDataJsonAttributeConverter();
     }
 
-    @After
-    public void tearDown() {
-
-    }
-
     @Test
     public void testConvert01() {
         final StringMap map = new SortedArrayStringMap();

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextMapAttributeConverterTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextMapAttributeConverterTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextMapAttributeConverterTest.java
index 461b4d0..e755d7f 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextMapAttributeConverterTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextMapAttributeConverterTest.java
@@ -19,12 +19,14 @@ package org.apache.logging.log4j.core.appender.db.jpa.converter;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.junit.After;
+import org.apache.logging.log4j.categories.Appenders;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(Appenders.Jpa.class)
 public class ContextMapAttributeConverterTest {
     private ContextMapAttributeConverter converter;
 
@@ -33,11 +35,6 @@ public class ContextMapAttributeConverterTest {
         this.converter = new ContextMapAttributeConverter();
     }
 
-    @After
-    public void tearDown() {
-
-    }
-
     @Test
     public void testConvertToDatabaseColumn01() {
         final Map<String, String> map = new HashMap<>();

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextMapJsonAttributeConverterTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextMapJsonAttributeConverterTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextMapJsonAttributeConverterTest.java
index 5d80f77..07af863 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextMapJsonAttributeConverterTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextMapJsonAttributeConverterTest.java
@@ -19,12 +19,14 @@ package org.apache.logging.log4j.core.appender.db.jpa.converter;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.junit.After;
+import org.apache.logging.log4j.categories.Appenders;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(Appenders.Jpa.class)
 public class ContextMapJsonAttributeConverterTest {
     private ContextMapJsonAttributeConverter converter;
 
@@ -33,11 +35,6 @@ public class ContextMapJsonAttributeConverterTest {
         this.converter = new ContextMapJsonAttributeConverter();
     }
 
-    @After
-    public void tearDown() {
-
-    }
-
     @Test
     public void testConvert01() {
         final Map<String, String> map = new HashMap<>();

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextStackAttributeConverterTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextStackAttributeConverterTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextStackAttributeConverterTest.java
index 6124993..57ae0a7 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextStackAttributeConverterTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextStackAttributeConverterTest.java
@@ -19,13 +19,15 @@ package org.apache.logging.log4j.core.appender.db.jpa.converter;
 import java.util.Arrays;
 
 import org.apache.logging.log4j.ThreadContext;
+import org.apache.logging.log4j.categories.Appenders;
 import org.apache.logging.log4j.spi.MutableThreadContextStack;
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(Appenders.Jpa.class)
 public class ContextStackAttributeConverterTest {
     private ContextStackAttributeConverter converter;
 
@@ -34,11 +36,6 @@ public class ContextStackAttributeConverterTest {
         this.converter = new ContextStackAttributeConverter();
     }
 
-    @After
-    public void tearDown() {
-
-    }
-
     @Test
     public void testConvertToDatabaseColumn01() {
         final ThreadContext.ContextStack stack = new MutableThreadContextStack(

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextStackJsonAttributeConverterTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextStackJsonAttributeConverterTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextStackJsonAttributeConverterTest.java
index af55666..0fae006 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextStackJsonAttributeConverterTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextStackJsonAttributeConverterTest.java
@@ -23,12 +23,15 @@ import static org.junit.Assert.assertNull;
 import java.util.Arrays;
 
 import org.apache.logging.log4j.ThreadContext;
+import org.apache.logging.log4j.categories.Appenders;
 import org.apache.logging.log4j.junit.ThreadContextStackRule;
 import org.apache.logging.log4j.spi.MutableThreadContextStack;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
+@Category(Appenders.Jpa.class)
 public class ContextStackJsonAttributeConverterTest {
     private ContextStackJsonAttributeConverter converter;
 

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/MarkerAttributeConverterTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/MarkerAttributeConverterTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/MarkerAttributeConverterTest.java
index 515f1cf..334bf1e 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/MarkerAttributeConverterTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/MarkerAttributeConverterTest.java
@@ -18,12 +18,14 @@ package org.apache.logging.log4j.core.appender.db.jpa.converter;
 
 import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.MarkerManager;
-import org.junit.After;
+import org.apache.logging.log4j.categories.Appenders;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(Appenders.Jpa.class)
 public class MarkerAttributeConverterTest {
     private MarkerAttributeConverter converter;
 
@@ -32,11 +34,6 @@ public class MarkerAttributeConverterTest {
         this.converter = new MarkerAttributeConverter();
     }
 
-    @After
-    public void tearDown() {
-
-    }
-
     @Test
     public void testConvert01() {
         final Marker marker = MarkerManager.getMarker("testConvert01");

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/MessageAttributeConverterTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/MessageAttributeConverterTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/MessageAttributeConverterTest.java
index 1806fba..e665dd6 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/MessageAttributeConverterTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/MessageAttributeConverterTest.java
@@ -16,14 +16,16 @@
  */
 package org.apache.logging.log4j.core.appender.db.jpa.converter;
 
+import org.apache.logging.log4j.categories.Appenders;
 import org.apache.logging.log4j.message.Message;
 import org.apache.logging.log4j.status.StatusLogger;
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(Appenders.Jpa.class)
 public class MessageAttributeConverterTest {
     private static final StatusLogger LOGGER = StatusLogger.getLogger();
 
@@ -34,11 +36,6 @@ public class MessageAttributeConverterTest {
         this.converter = new MessageAttributeConverter();
     }
 
-    @After
-    public void tearDown() {
-
-    }
-
     @Test
     public void testConvert01() {
         final Message message = LOGGER.getMessageFactory().newMessage("Message #{} said [{}].", 3, "Hello");

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/StackTraceElementAttributeConverterTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/StackTraceElementAttributeConverterTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/StackTraceElementAttributeConverterTest.java
index 20568d2..6da0d93 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/StackTraceElementAttributeConverterTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/StackTraceElementAttributeConverterTest.java
@@ -16,12 +16,14 @@
  */
 package org.apache.logging.log4j.core.appender.db.jpa.converter;
 
-import org.junit.After;
+import org.apache.logging.log4j.categories.Appenders;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(Appenders.Jpa.class)
 public class StackTraceElementAttributeConverterTest {
     private StackTraceElementAttributeConverter converter;
 
@@ -30,11 +32,6 @@ public class StackTraceElementAttributeConverterTest {
         this.converter = new StackTraceElementAttributeConverter();
     }
 
-    @After
-    public void tearDown() {
-
-    }
-
     @Test
     public void testConvert01() {
         final StackTraceElement element = new StackTraceElement("TestNoPackage", "testConvert01", "TestNoPackage.java", 1234);

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ThrowableAttributeConverterTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ThrowableAttributeConverterTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ThrowableAttributeConverterTest.java
index c68f42f..95deb6f 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ThrowableAttributeConverterTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ThrowableAttributeConverterTest.java
@@ -18,12 +18,14 @@ package org.apache.logging.log4j.core.appender.db.jpa.converter;
 
 import java.sql.SQLException;
 
-import org.junit.After;
+import org.apache.logging.log4j.categories.Appenders;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(Appenders.Jpa.class)
 public class ThrowableAttributeConverterTest {
     private ThrowableAttributeConverter converter;
 
@@ -32,11 +34,6 @@ public class ThrowableAttributeConverterTest {
         this.converter = new ThrowableAttributeConverter();
     }
 
-    @After
-    public void tearDown() {
-
-    }
-
     @Test
     public void testConvert01() {
         final RuntimeException exception = new RuntimeException("My message 01.");

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/JmsAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/JmsAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/JmsAppenderTest.java
index ddd87cc..e53ac5a 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/JmsAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/JmsAppenderTest.java
@@ -29,6 +29,7 @@ import javax.jms.Session;
 import javax.jms.TextMessage;
 
 import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.categories.Appenders;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.impl.Log4jLogEvent;
 import org.apache.logging.log4j.junit.JndiRule;
@@ -37,6 +38,7 @@ import org.apache.logging.log4j.message.SimpleMessage;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 import org.junit.rules.RuleChain;
 
 import static org.mockito.ArgumentMatchers.anyLong;
@@ -48,6 +50,7 @@ import static org.mockito.BDDMockito.then;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.times;
 
+@Category(Appenders.Jms.class)
 public class JmsAppenderTest {
 
     private static final String CONNECTION_FACTORY_NAME = "jms/connectionFactory";

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/activemq/JmsAppenderIT.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/activemq/JmsAppenderIT.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/activemq/JmsAppenderIT.java
index 5e7fd50..effdff0 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/activemq/JmsAppenderIT.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/activemq/JmsAppenderIT.java
@@ -22,7 +22,6 @@ import java.util.Collection;
 import java.util.Properties;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
-
 import javax.jms.JMSException;
 import javax.jms.Message;
 import javax.jms.MessageConsumer;
@@ -31,6 +30,7 @@ import javax.jms.ObjectMessage;
 
 import org.apache.activemq.jndi.ActiveMQInitialContextFactory;
 import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.categories.Appenders;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.appender.mom.JmsAppender;
 import org.apache.logging.log4j.core.appender.mom.JmsManager;
@@ -42,12 +42,14 @@ import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
 /**
  * Integration test for JmsAppender using an embedded ActiveMQ broker.
  */
+@Category(Appenders.Jms.class)
 public class JmsAppenderIT {
 
     private static final String KEY_SERIALIZABLE_PACKAGES = "org.apache.activemq.SERIALIZABLE_PACKAGES";

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqAppenderTest.java
index 0b7eb24..24b8d25 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqAppenderTest.java
@@ -24,13 +24,16 @@ import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.logging.log4j.ThreadContext;
+import org.apache.logging.log4j.categories.Appenders;
 import org.apache.logging.log4j.core.Logger;
 import org.apache.logging.log4j.core.util.ExecutorServices;
 import org.apache.logging.log4j.junit.LoggerContextRule;
 import org.junit.Assert;
 import org.junit.ClassRule;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
+@Category(Appenders.ZeroMq.class)
 public class JeroMqAppenderTest {
 
     private static final String ENDPOINT = "tcp://localhost:5556";

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppenderTest.java
index dfa416c..aed7723 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppenderTest.java
@@ -30,6 +30,7 @@ import org.apache.kafka.clients.producer.MockProducer;
 import org.apache.kafka.clients.producer.Producer;
 import org.apache.kafka.clients.producer.ProducerRecord;
 import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.categories.Appenders;
 import org.apache.logging.log4j.core.Appender;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.impl.Log4jLogEvent;
@@ -39,9 +40,11 @@ import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Rule;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(Appenders.Kafka.class)
 public class KafkaAppenderTest {
 
     private static final MockProducer<byte[], byte[]> kafka = new MockProducer<byte[], byte[]>(true, null, null) {

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/ScriptConditionTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/ScriptConditionTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/ScriptConditionTest.java
index b3198ba..0379767 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/ScriptConditionTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/ScriptConditionTest.java
@@ -22,10 +22,12 @@ import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.logging.log4j.categories.Scripts;
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.config.DefaultConfiguration;
 import org.apache.logging.log4j.core.script.Script;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
@@ -90,6 +92,7 @@ public class ScriptConditionTest {
     }
 
     @Test
+    @Category(Scripts.Groovy.class)
     public void testSelectFilesToDelete3() {
         final Configuration config = new DefaultConfiguration();
         config.initialize(); // creates the ScriptManager

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutesScriptAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutesScriptAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutesScriptAppenderTest.java
index a9cc947..12b571f 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutesScriptAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutesScriptAppenderTest.java
@@ -27,6 +27,7 @@ import java.util.concurrent.ConcurrentMap;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.MarkerManager;
+import org.apache.logging.log4j.categories.Scripts;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.Logger;
 import org.apache.logging.log4j.core.config.AppenderControl;
@@ -36,6 +37,7 @@ import org.apache.logging.log4j.test.appender.ListAppender;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
@@ -43,6 +45,7 @@ import org.junit.runners.Parameterized;
  *
  */
 @RunWith(Parameterized.class)
+@Category(Scripts.Groovy.class) // technically only half of these tests require groovy
 public class RoutesScriptAppenderTest {
 
     @Parameterized.Parameters(name = "{0} {1}")

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerClassLoadDeadlockTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerClassLoadDeadlockTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerClassLoadDeadlockTest.java
index 990312d..347b4f8 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerClassLoadDeadlockTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerClassLoadDeadlockTest.java
@@ -16,15 +16,18 @@
  */
 package org.apache.logging.log4j.core.async;
 
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
-import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.*;
 
 /**
  * Test class loading deadlock condition from the LOG4J2-1457
  */
+@Category(AsyncLoggers.class)
 public class AsyncLoggerClassLoadDeadlockTest {
 
     static final int RING_BUFFER_SIZE = 128;

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigAutoFlushTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigAutoFlushTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigAutoFlushTest.java
index 5df1000..d032943 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigAutoFlushTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigAutoFlushTest.java
@@ -22,13 +22,16 @@ import java.io.FileReader;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.apache.logging.log4j.core.CoreLoggerContexts;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(AsyncLoggers.class)
 public class AsyncLoggerConfigAutoFlushTest {
 
     @BeforeClass

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigTest.java
index dc2d793..aaf3fa6 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigTest.java
@@ -22,6 +22,7 @@ import java.io.FileReader;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.apache.logging.log4j.core.CoreLoggerContexts;
 import org.apache.logging.log4j.core.config.AppenderRef;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
@@ -29,9 +30,11 @@ import org.apache.logging.log4j.core.config.DefaultConfiguration;
 import org.apache.logging.log4j.core.config.LoggerConfig;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(AsyncLoggers.class)
 public class AsyncLoggerConfigTest {
 
     @BeforeClass

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigTest2.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigTest2.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigTest2.java
index 9ca57e8..3c09ff5 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigTest2.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigTest2.java
@@ -22,20 +22,18 @@ import java.io.FileReader;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.apache.logging.log4j.core.CoreLoggerContexts;
+import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
-import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(AsyncLoggers.class)
 public class AsyncLoggerConfigTest2 {
 
-    @BeforeClass
-    public static void beforeClass() {
-    }
-
     @Test
     public void testConsecutiveReconfigure() throws Exception {
         System.setProperty(ConfigurationFactory.CONFIGURATION_FILE_PROPERTY,

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigThreadContextCopyOnWriteTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigThreadContextCopyOnWriteTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigThreadContextCopyOnWriteTest.java
index 17aaff8..274f95a 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigThreadContextCopyOnWriteTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigThreadContextCopyOnWriteTest.java
@@ -16,9 +16,13 @@
  */
 package org.apache.logging.log4j.core.async;
 
+import org.apache.logging.log4j.categories.AsyncLoggers;
+import org.junit.experimental.categories.Category;
+
 // Note: the different ThreadContextMap implementations cannot be parameterized:
 // ThreadContext initialization will result in static final fields being set in various components.
 // To use a different ThreadContextMap, the test needs to be run in a new JVM.
+@Category(AsyncLoggers.class)
 public class AsyncLoggerConfigThreadContextCopyOnWriteTest extends AbstractAsyncThreadContextTestBase {
     public AsyncLoggerConfigThreadContextCopyOnWriteTest() {
         super(ContextImpl.COPY_ON_WRITE, Mode.MIXED);

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigThreadContextDefaultTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigThreadContextDefaultTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigThreadContextDefaultTest.java
index 900a055..d022611 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigThreadContextDefaultTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigThreadContextDefaultTest.java
@@ -16,9 +16,13 @@
  */
 package org.apache.logging.log4j.core.async;
 
+import org.apache.logging.log4j.categories.AsyncLoggers;
+import org.junit.experimental.categories.Category;
+
 // Note: the different ThreadContextMap implementations cannot be parameterized:
 // ThreadContext initialization will result in static final fields being set in various components.
 // To use a different ThreadContextMap, the test needs to be run in a new JVM.
+@Category(AsyncLoggers.class)
 public class AsyncLoggerConfigThreadContextDefaultTest extends AbstractAsyncThreadContextTestBase {
     public AsyncLoggerConfigThreadContextDefaultTest() {
         super(ContextImpl.WEBAPP, Mode.MIXED);

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigThreadContextGarbageFreeTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigThreadContextGarbageFreeTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigThreadContextGarbageFreeTest.java
index 1afd311..8e6ca46 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigThreadContextGarbageFreeTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigThreadContextGarbageFreeTest.java
@@ -16,9 +16,13 @@
  */
 package org.apache.logging.log4j.core.async;
 
+import org.apache.logging.log4j.categories.AsyncLoggers;
+import org.junit.experimental.categories.Category;
+
 // Note: the different ThreadContextMap implementations cannot be parameterized:
 // ThreadContext initialization will result in static final fields being set in various components.
 // To use a different ThreadContextMap, the test needs to be run in a new JVM.
+@Category(AsyncLoggers.class)
 public class AsyncLoggerConfigThreadContextGarbageFreeTest extends AbstractAsyncThreadContextTestBase {
     public AsyncLoggerConfigThreadContextGarbageFreeTest() {
         super(ContextImpl.GARBAGE_FREE, Mode.MIXED);

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigUseAfterShutdownTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigUseAfterShutdownTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigUseAfterShutdownTest.java
index 736894d..e7dcf82 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigUseAfterShutdownTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigUseAfterShutdownTest.java
@@ -19,13 +19,16 @@ package org.apache.logging.log4j.core.async;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.apache.logging.log4j.core.CoreLoggerContexts;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.message.SimpleMessage;
 import org.apache.logging.log4j.spi.AbstractLogger;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
+@Category(AsyncLoggers.class)
 public class AsyncLoggerConfigUseAfterShutdownTest {
 
     @BeforeClass

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerContextSelectorInitialStateTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerContextSelectorInitialStateTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerContextSelectorInitialStateTest.java
index 2d547ed..e7b59d6 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerContextSelectorInitialStateTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerContextSelectorInitialStateTest.java
@@ -16,11 +16,14 @@
  */
 package org.apache.logging.log4j.core.async;
 
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
-public class AsyncLoggerContextSelectorInitialStateTest {    
+@Category(AsyncLoggers.class)
+public class AsyncLoggerContextSelectorInitialStateTest {
 
     @Test
     public void testLoggerContextsListInitiallyEmpty() {

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerContextSelectorTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerContextSelectorTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerContextSelectorTest.java
index 324aa84..fc5cb63 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerContextSelectorTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerContextSelectorTest.java
@@ -18,11 +18,14 @@ package org.apache.logging.log4j.core.async;
 
 import java.util.List;
 
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(AsyncLoggers.class)
 public class AsyncLoggerContextSelectorTest {
     
     private static final String FQCN = AsyncLoggerContextSelectorTest.class.getName();

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerContextTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerContextTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerContextTest.java
index be507f0..875eb4c 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerContextTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerContextTest.java
@@ -17,12 +17,15 @@
 package org.apache.logging.log4j.core.async;
 
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.apache.logging.log4j.core.CoreLoggerContexts;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(AsyncLoggers.class)
 public class AsyncLoggerContextTest {
 
     @Test

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerLocationTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerLocationTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerLocationTest.java
index 383bfea..5b61d8e 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerLocationTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerLocationTest.java
@@ -22,6 +22,7 @@ import java.io.FileReader;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.apache.logging.log4j.core.CoreLoggerContexts;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.util.Constants;
@@ -29,9 +30,11 @@ import org.apache.logging.log4j.util.Strings;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(AsyncLoggers.class)
 public class AsyncLoggerLocationTest {
 
     @BeforeClass

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTest.java
index 991c580..aad8ce7 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTest.java
@@ -21,6 +21,7 @@ import java.io.File;
 import java.io.FileReader;
 
 import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.apache.logging.log4j.core.CoreLoggerContexts;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.util.Constants;
@@ -29,9 +30,11 @@ import org.apache.logging.log4j.util.Strings;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(AsyncLoggers.class)
 public class AsyncLoggerTest {
 
     @BeforeClass

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTestCachedThreadName.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTestCachedThreadName.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTestCachedThreadName.java
index d9e6912..361aa6c 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTestCachedThreadName.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTestCachedThreadName.java
@@ -22,6 +22,7 @@ import java.io.FileReader;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.apache.logging.log4j.core.CoreLoggerContexts;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.util.Constants;
@@ -29,9 +30,11 @@ import org.apache.logging.log4j.util.Strings;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(AsyncLoggers.class)
 public class AsyncLoggerTestCachedThreadName {
 
     @BeforeClass

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTestNanoTime.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTestNanoTime.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTestNanoTime.java
index 349db77..d9e15d0 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTestNanoTime.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTestNanoTime.java
@@ -22,6 +22,7 @@ import java.io.FileReader;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.apache.logging.log4j.core.CoreLoggerContexts;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.util.Constants;
@@ -31,9 +32,11 @@ import org.apache.logging.log4j.util.Strings;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(AsyncLoggers.class)
 public class AsyncLoggerTestNanoTime {
 
     @BeforeClass

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTestUncachedThreadName.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTestUncachedThreadName.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTestUncachedThreadName.java
index 07c31c8..c200f26 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTestUncachedThreadName.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTestUncachedThreadName.java
@@ -22,6 +22,7 @@ import java.io.FileReader;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.categories.AsyncLoggers;
 import org.apache.logging.log4j.core.CoreLoggerContexts;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.util.Constants;
@@ -29,9 +30,11 @@ import org.apache.logging.log4j.util.Strings;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+@Category(AsyncLoggers.class)
 public class AsyncLoggerTestUncachedThreadName {
 
     @BeforeClass

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextCopyOnWriteTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextCopyOnWriteTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextCopyOnWriteTest.java
index 82b8f1c..f3151ee 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextCopyOnWriteTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextCopyOnWriteTest.java
@@ -19,6 +19,8 @@ package org.apache.logging.log4j.core.async;
 import java.util.Arrays;
 import java.util.Collection;
 
+import org.apache.logging.log4j.categories.AsyncLoggers;
+import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
@@ -26,6 +28,7 @@ import org.junit.runners.Parameterized;
 // ThreadContext initialization will result in static final fields being set in various components.
 // To use a different ThreadContextMap, the test needs to be run in a new JVM.
 @RunWith(Parameterized.class)
+@Category(AsyncLoggers.class)
 public class AsyncLoggerThreadContextCopyOnWriteTest extends AbstractAsyncThreadContextTestBase {
     @Parameterized.Parameters
     public static Collection<Object[]> data() {

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextDefaultTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextDefaultTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextDefaultTest.java
index 8ed73a2..e19d4c6 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextDefaultTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextDefaultTest.java
@@ -19,6 +19,8 @@ package org.apache.logging.log4j.core.async;
 import java.util.Arrays;
 import java.util.Collection;
 
+import org.apache.logging.log4j.categories.AsyncLoggers;
+import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
@@ -26,6 +28,7 @@ import org.junit.runners.Parameterized;
 // ThreadContext initialization will result in static final fields being set in various components.
 // To use a different ThreadContextMap, the test needs to be run in a new JVM.
 @RunWith(Parameterized.class)
+@Category(AsyncLoggers.class)
 public class AsyncLoggerThreadContextDefaultTest extends AbstractAsyncThreadContextTestBase {
     @Parameterized.Parameters
     public static Collection<Object[]> data() {

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4ef970bc/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextGarbageFreeTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextGarbageFreeTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextGarbageFreeTest.java
index ec3d755..eaa703b 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextGarbageFreeTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextGarbageFreeTest.java
@@ -19,6 +19,8 @@ package org.apache.logging.log4j.core.async;
 import java.util.Arrays;
 import java.util.Collection;
 
+import org.apache.logging.log4j.categories.AsyncLoggers;
+import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
@@ -26,6 +28,7 @@ import org.junit.runners.Parameterized;
 // ThreadContext initialization will result in static final fields being set in various components.
 // To use a different ThreadContextMap, the test needs to be run in a new JVM.
 @RunWith(Parameterized.class)
+@Category(AsyncLoggers.class)
 public class AsyncLoggerThreadContextGarbageFreeTest extends AbstractAsyncThreadContextTestBase {
     @Parameterized.Parameters
     public static Collection<Object[]> data() {