By that I mean they set their compiler version to 1.6 for src/main/ and 1.8 for src/test/ which shouldn't affect us as we're not using their test artifact.
On 6 September 2016 at 11:22, Matt Sicker <boa...@gmail.com> wrote: > JCTools requires 1.6 for the build and 1.8 for the test. It appears we > could do the same if the only thing failing the build is a unit test, but > if the whole build is failing on Java 7, then I can back out those changes > into a separate branch for future inclusion. > > On 6 September 2016 at 11:18, Remko Popma <remko.po...@gmail.com> wrote: > >> Does JCTools require Java 8? One option is for this release to leave out >> the Conversant library and only include JCTools and the TransferQueue. >> >> On Wed, Sep 7, 2016 at 1:06 AM, Matt Sicker <boa...@gmail.com> wrote: >> >>> I can't believe I didn't notice it, but the Conversant library does >>> require Java 8. It's an optional dependency, so what to do? We can build on >>> Java 8 with a target for Java 7 and use the animal-sniffer Maven plugin to >>> make sure we don't accidentally use anything from Java 8. >>> >>> On 5 September 2016 at 22:45, Matt Sicker <boa...@gmail.com> wrote: >>> >>>> It looks like I may have merged prematurely then. I think I've been >>>> running builds using Java 8 as well and didn't notice this. Jenkins isn't >>>> even loading for me, so I can't see what the problem is on there. I'll take >>>> a look at this tomorrow, and if I can't fix the dependency issue, I'll back >>>> out part of this feature for now. >>>> >>>> On 5 September 2016 at 17:03, Ralph Goers <ralph.go...@dslextreme.com> >>>> wrote: >>>> >>>>> Jenkins and the release builds use Java 7, so you should certainly use >>>>> Java 7 from time to time. >>>>> >>>>> Ralph >>>>> >>>>> On Sep 5, 2016, at 2:33 PM, Gary Gregory <garydgreg...@gmail.com> >>>>> wrote: >>>>> >>>>> Ah, no, Java 8: >>>>> >>>>> Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; >>>>> 2015-11-10T08:41:47-08:00) >>>>> Maven home: E:\Java\apache-maven-3.3.9 >>>>> Java version: 1.8.0_101, vendor: Oracle Corporation >>>>> Java home: C:\Program Files\Java\jdk1.8.0_101\jre >>>>> Default locale: en_US, platform encoding: Cp1252 >>>>> OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos" >>>>> >>>>> Gary >>>>> >>>>> On Mon, Sep 5, 2016 at 5:32 PM, Ralph Goers < >>>>> ralph.go...@dslextreme.com> wrote: >>>>> >>>>>> And you are building with Java 7? >>>>>> >>>>>> Ralph >>>>>> >>>>>> On Sep 5, 2016, at 2:18 PM, Gary Gregory <garydgreg...@gmail.com> >>>>>> wrote: >>>>>> >>>>>> Locally, I get: >>>>>> >>>>>> Failed tests: >>>>>> RoutingAppenderWithPurgingTest.routingTest:91 Incorrect number of >>>>>> appenders with IdlePurgePolicy. expected:<3> but was:<1> >>>>>> >>>>>> Gary >>>>>> >>>>>> On Mon, Sep 5, 2016 at 12:54 PM, Ralph Goers < >>>>>> ralph.go...@dslextreme.com> wrote: >>>>>> >>>>>>> For the record, I am voting -1 on this commit. It breaks the build >>>>>>> because the DisruptorBlockingQueueFactory has a dependency that requires >>>>>>> Java 8. The 2.7 release is blocked until this is corrected. >>>>>>> >>>>>>> Ralph >>>>>>> >>>>>>> > On Sep 4, 2016, at 11:38 AM, mattsic...@apache.org wrote: >>>>>>> > >>>>>>> > Convert BlockingQueueFactory into a plugin element >>>>>>> > >>>>>>> > Related to LOG4J2-1430. >>>>>>> > >>>>>>> > >>>>>>> > Project: http://git-wip-us.apache.org/r >>>>>>> epos/asf/logging-log4j2/repo >>>>>>> > Commit: http://git-wip-us.apache.org/r >>>>>>> epos/asf/logging-log4j2/commit/65ec9bce >>>>>>> > Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/6 >>>>>>> 5ec9bce >>>>>>> > Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/6 >>>>>>> 5ec9bce >>>>>>> > >>>>>>> > Branch: refs/heads/master >>>>>>> > Commit: 65ec9bcef74dc30ecab9c2091c6e0638d53490d8 >>>>>>> > Parents: 0848d7a >>>>>>> > Author: Matt Sicker <boa...@gmail.com> >>>>>>> > Authored: Fri Jun 17 18:51:08 2016 -0500 >>>>>>> > Committer: Matt Sicker <boa...@gmail.com> >>>>>>> > Committed: Fri Jun 17 18:51:08 2016 -0500 >>>>>>> > >>>>>>> > ------------------------------------------------------------ >>>>>>> ---------- >>>>>>> > .../log4j/core/appender/AsyncAppender.java | 24 +++++++++--- >>>>>>> > .../core/async/ArrayBlockingQueueFactory.java | 10 +++++ >>>>>>> > .../log4j/core/async/BlockingQueueFactory.java | 13 ++++++- >>>>>>> > .../async/DisruptorBlockingQueueFactory.java | 11 +++++- >>>>>>> > .../core/async/LinkedTransferQueueFactory.java | 10 +++++ >>>>>>> > .../log4j/core/appender/AsyncAppenderTest.java | 16 ++++---- >>>>>>> > .../BlockingQueueFactory-ArrayBlockingQueue.xml | 40 >>>>>>> ++++++++++++++++++++ >>>>>>> > ...ckingQueueFactory-DisruptorBlockingQueue.xml | 40 >>>>>>> ++++++++++++++++++++ >>>>>>> > ...BlockingQueueFactory-LinkedTransferQueue.xml | 40 >>>>>>> ++++++++++++++++++++ >>>>>>> > 9 files changed, 189 insertions(+), 15 deletions(-) >>>>>>> > ------------------------------------------------------------ >>>>>>> ---------- >>>>>>> > >>>>>>> > >>>>>>> > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/6 >>>>>>> 5ec9bce/log4j-core/src/main/java/org/apache/logging/log4j/co >>>>>>> re/appender/AsyncAppender.java >>>>>>> > ------------------------------------------------------------ >>>>>>> ---------- >>>>>>> > diff --git a/log4j-core/src/main/java/org >>>>>>> /apache/logging/log4j/core/appender/AsyncAppender.java >>>>>>> b/log4j-core/src/main/java/org/apache/logging/log4j/core/app >>>>>>> ender/AsyncAppender.java >>>>>>> > index 3c9c37c..dee5e50 100644 >>>>>>> > --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/app >>>>>>> ender/AsyncAppender.java >>>>>>> > +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/app >>>>>>> ender/AsyncAppender.java >>>>>>> > @@ -26,8 +26,11 @@ import org.apache.logging.log4j.core. >>>>>>> AbstractLogEvent; >>>>>>> > import org.apache.logging.log4j.core.Appender; >>>>>>> > import org.apache.logging.log4j.core.Filter; >>>>>>> > import org.apache.logging.log4j.core.LogEvent; >>>>>>> > +import org.apache.logging.log4j.core. >>>>>>> async.ArrayBlockingQueueFactory; >>>>>>> > import org.apache.logging.log4j.core.async.AsyncQueueFullPolicy; >>>>>>> > import org.apache.logging.log4j.core. >>>>>>> async.AsyncQueueFullPolicyFactory; >>>>>>> > +import org.apache.logging.log4j.core.async.BlockingQueueFactory; >>>>>>> > +import org.apache.logging.log4j.core. >>>>>>> async.BlockingQueueFactoryUtil; >>>>>>> > import org.apache.logging.log4j.core. >>>>>>> async.DiscardingAsyncQueueFullPolicy; >>>>>>> > import org.apache.logging.log4j.core.async.EventRoute; >>>>>>> > import org.apache.logging.log4j.core.config.AppenderControl; >>>>>>> > @@ -42,7 +45,6 @@ import org.apache.logging.log4j.core. >>>>>>> config.plugins.PluginConfiguration; >>>>>>> > import org.apache.logging.log4j.core.config.plugins.PluginElement; >>>>>>> > import org.apache.logging.log4j.core. >>>>>>> config.plugins.validation.constraints.Required; >>>>>>> > import org.apache.logging.log4j.core.impl.Log4jLogEvent; >>>>>>> > -import org.apache.logging.log4j.core. >>>>>>> async.BlockingQueueFactoryUtil; >>>>>>> > import org.apache.logging.log4j.core.util.Constants; >>>>>>> > >>>>>>> > /** >>>>>>> > @@ -73,8 +75,8 @@ public final class AsyncAppender extends >>>>>>> AbstractAppender { >>>>>>> > >>>>>>> > private AsyncAppender(final String name, final Filter filter, >>>>>>> final AppenderRef[] appenderRefs, >>>>>>> > final String errorRef, final int >>>>>>> queueSize, final boolean blocking, >>>>>>> > - final boolean ignoreExceptions, >>>>>>> > - final long shutdownTimeout, final >>>>>>> Configuration config, final boolean includeLocation) { >>>>>>> > + final boolean ignoreExceptions, final >>>>>>> long shutdownTimeout, final Configuration config, >>>>>>> > + final boolean includeLocation, final >>>>>>> BlockingQueueFactory<LogEvent> blockingQueueFactory) { >>>>>>> > super(name, filter, null, ignoreExceptions); >>>>>>> > this.queue = BlockingQueueFactoryUtil.<LogE >>>>>>> vent>getBlockingQueueFactory().create(queueSize); >>>>>>> > this.queueSize = queueSize; >>>>>>> > @@ -217,7 +219,9 @@ public final class AsyncAppender extends >>>>>>> AbstractAppender { >>>>>>> > } >>>>>>> > >>>>>>> > /** >>>>>>> > - * Create an AsyncAppender. >>>>>>> > + * Create an AsyncAppender. This method is retained for >>>>>>> backwards compatibility. New code should use the >>>>>>> > + * {@link Builder} instead. This factory will use {@link >>>>>>> ArrayBlockingQueueFactory} by default as was the behavior >>>>>>> > + * pre-2.7. >>>>>>> > * >>>>>>> > * @param appenderRefs The Appenders to reference. >>>>>>> > * @param errorRef An optional Appender to write to if >>>>>>> the queue is full or other errors occur. >>>>>>> > @@ -247,7 +251,7 @@ public final class AsyncAppender extends >>>>>>> AbstractAppender { >>>>>>> > } >>>>>>> > >>>>>>> > return new AsyncAppender(name, filter, appenderRefs, >>>>>>> errorRef, size, blocking, ignoreExceptions, >>>>>>> > - shutdownTimeout, config, includeLocation); >>>>>>> > + shutdownTimeout, config, includeLocation, new >>>>>>> ArrayBlockingQueueFactory<LogEvent>()); >>>>>>> > } >>>>>>> > >>>>>>> > @PluginBuilderFactory >>>>>>> > @@ -290,6 +294,9 @@ public final class AsyncAppender extends >>>>>>> AbstractAppender { >>>>>>> > @PluginBuilderAttribute >>>>>>> > private boolean ignoreExceptions = true; >>>>>>> > >>>>>>> > + @PluginElement(BlockingQueueFactory.ELEMENT_TYPE) >>>>>>> > + private BlockingQueueFactory<LogEvent> >>>>>>> blockingQueueFactory = new ArrayBlockingQueueFactory<>(); >>>>>>> > + >>>>>>> > public Builder setAppenderRefs(AppenderRef[] appenderRefs) >>>>>>> { >>>>>>> > this.appenderRefs = appenderRefs; >>>>>>> > return this; >>>>>>> > @@ -340,10 +347,15 @@ public final class AsyncAppender extends >>>>>>> AbstractAppender { >>>>>>> > return this; >>>>>>> > } >>>>>>> > >>>>>>> > + public Builder setBlockingQueueFactory(final >>>>>>> BlockingQueueFactory<LogEvent> blockingQueueFactory) { >>>>>>> > + this.blockingQueueFactory = blockingQueueFactory; >>>>>>> > + return this; >>>>>>> > + } >>>>>>> > + >>>>>>> > @Override >>>>>>> > public AsyncAppender build() { >>>>>>> > return new AsyncAppender(name, filter, appenderRefs, >>>>>>> errorRef, bufferSize, blocking, ignoreExceptions, >>>>>>> > - shutdownTimeout, configuration, includeLocation); >>>>>>> > + shutdownTimeout, configuration, includeLocation, >>>>>>> blockingQueueFactory); >>>>>>> > } >>>>>>> > } >>>>>>> > >>>>>>> > >>>>>>> > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/6 >>>>>>> 5ec9bce/log4j-core/src/main/java/org/apache/logging/log4j/co >>>>>>> re/async/ArrayBlockingQueueFactory.java >>>>>>> > ------------------------------------------------------------ >>>>>>> ---------- >>>>>>> > diff --git a/log4j-core/src/main/java/org >>>>>>> /apache/logging/log4j/core/async/ArrayBlockingQueueFactory.java >>>>>>> b/log4j-core/src/main/java/org/apache/logging/log4j/core/asy >>>>>>> nc/ArrayBlockingQueueFactory.java >>>>>>> > index e9c99b8..dcad78a 100644 >>>>>>> > --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/asy >>>>>>> nc/ArrayBlockingQueueFactory.java >>>>>>> > +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/asy >>>>>>> nc/ArrayBlockingQueueFactory.java >>>>>>> > @@ -3,14 +3,24 @@ package org.apache.logging.log4j.core.async; >>>>>>> > import java.util.concurrent.ArrayBlockingQueue; >>>>>>> > import java.util.concurrent.BlockingQueue; >>>>>>> > >>>>>>> > +import org.apache.logging.log4j.core.config.Node; >>>>>>> > +import org.apache.logging.log4j.core.config.plugins.Plugin; >>>>>>> > +import org.apache.logging.log4j.core. >>>>>>> config.plugins.PluginFactory; >>>>>>> > + >>>>>>> > /** >>>>>>> > * Factory for creating instances of {@link ArrayBlockingQueue}. >>>>>>> > * >>>>>>> > * @since 2.7 >>>>>>> > */ >>>>>>> > +@Plugin(name = "ArrayBlockingQueue", category = Node.CATEGORY, >>>>>>> elementType = BlockingQueueFactory.ELEMENT_TYPE) >>>>>>> > public class ArrayBlockingQueueFactory<E> implements >>>>>>> BlockingQueueFactory<E> { >>>>>>> > @Override >>>>>>> > public BlockingQueue<E> create(int capacity) { >>>>>>> > return new ArrayBlockingQueue<>(capacity); >>>>>>> > } >>>>>>> > + >>>>>>> > + @PluginFactory >>>>>>> > + public static <E> ArrayBlockingQueueFactory<E> >>>>>>> createFactory() { >>>>>>> > + return new ArrayBlockingQueueFactory<>(); >>>>>>> > + } >>>>>>> > } >>>>>>> > >>>>>>> > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/6 >>>>>>> 5ec9bce/log4j-core/src/main/java/org/apache/logging/log4j/co >>>>>>> re/async/BlockingQueueFactory.java >>>>>>> > ------------------------------------------------------------ >>>>>>> ---------- >>>>>>> > diff --git a/log4j-core/src/main/java/org >>>>>>> /apache/logging/log4j/core/async/BlockingQueueFactory.java >>>>>>> b/log4j-core/src/main/java/org/apache/logging/log4j/core/asy >>>>>>> nc/BlockingQueueFactory.java >>>>>>> > index ccd1625..5763d1e 100644 >>>>>>> > --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/asy >>>>>>> nc/BlockingQueueFactory.java >>>>>>> > +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/asy >>>>>>> nc/BlockingQueueFactory.java >>>>>>> > @@ -9,7 +9,18 @@ import java.util.concurrent.BlockingQueue; >>>>>>> > */ >>>>>>> > public interface BlockingQueueFactory<E> { >>>>>>> > >>>>>>> > - String PROPERTY = "log4j.BlockingQueueFactory"; >>>>>>> > + /** >>>>>>> > + * The {@link org.apache.logging.log4j.core. >>>>>>> config.plugins.Plugin#elementType() element type} to use for plugins >>>>>>> > + * implementing this interface. >>>>>>> > + */ >>>>>>> > + String ELEMENT_TYPE = "BlockingQueueFactory"; >>>>>>> > >>>>>>> > + /** >>>>>>> > + * Creates a new BlockingQueue with the specified maximum >>>>>>> capacity. Note that not all implementations of >>>>>>> > + * BlockingQueue support a bounded capacity in which case the >>>>>>> value is ignored. >>>>>>> > + * >>>>>>> > + * @param capacity maximum size of the queue if supported >>>>>>> > + * @return a new BlockingQueue >>>>>>> > + */ >>>>>>> > BlockingQueue<E> create(int capacity); >>>>>>> > } >>>>>>> > >>>>>>> > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/6 >>>>>>> 5ec9bce/log4j-core/src/main/java/org/apache/logging/log4j/co >>>>>>> re/async/DisruptorBlockingQueueFactory.java >>>>>>> > ------------------------------------------------------------ >>>>>>> ---------- >>>>>>> > diff --git a/log4j-core/src/main/java/org >>>>>>> /apache/logging/log4j/core/async/DisruptorBlockingQueueFactory.java >>>>>>> b/log4j-core/src/main/java/org/apache/logging/log4j/core/asy >>>>>>> nc/DisruptorBlockingQueueFactory.java >>>>>>> > index 8fb3707..add375d 100644 >>>>>>> > --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/asy >>>>>>> nc/DisruptorBlockingQueueFactory.java >>>>>>> > +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/asy >>>>>>> nc/DisruptorBlockingQueueFactory.java >>>>>>> > @@ -3,15 +3,24 @@ package org.apache.logging.log4j.core.async; >>>>>>> > import java.util.concurrent.BlockingQueue; >>>>>>> > >>>>>>> > import com.conversantmedia.util.concurrent.DisruptorBlockingQueue; >>>>>>> > +import org.apache.logging.log4j.core.config.Node; >>>>>>> > +import org.apache.logging.log4j.core.config.plugins.Plugin; >>>>>>> > +import org.apache.logging.log4j.core. >>>>>>> config.plugins.PluginFactory; >>>>>>> > >>>>>>> > /** >>>>>>> > * Factory for creating instances of {@link >>>>>>> DisruptorBlockingQueue}. >>>>>>> > * >>>>>>> > * @since 2.7 >>>>>>> > */ >>>>>>> > +@Plugin(name = "DisruptorBlockingQueue", category = >>>>>>> Node.CATEGORY, elementType = BlockingQueueFactory.ELEMENT_TYPE) >>>>>>> > public class DisruptorBlockingQueueFactory<E> implements >>>>>>> BlockingQueueFactory<E> { >>>>>>> > @Override >>>>>>> > public BlockingQueue<E> create(int capacity) { >>>>>>> > - return new DisruptorBlockingQueue<E>(capacity); >>>>>>> > + return new DisruptorBlockingQueue<>(capacity); >>>>>>> > + } >>>>>>> > + >>>>>>> > + @PluginFactory >>>>>>> > + public static <E> DisruptorBlockingQueueFactory<E> >>>>>>> createFactory() { >>>>>>> > + return new DisruptorBlockingQueueFactory<>(); >>>>>>> > } >>>>>>> > } >>>>>>> > >>>>>>> > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/6 >>>>>>> 5ec9bce/log4j-core/src/main/java/org/apache/logging/log4j/co >>>>>>> re/async/LinkedTransferQueueFactory.java >>>>>>> > ------------------------------------------------------------ >>>>>>> ---------- >>>>>>> > diff --git a/log4j-core/src/main/java/org >>>>>>> /apache/logging/log4j/core/async/LinkedTransferQueueFactory.java >>>>>>> b/log4j-core/src/main/java/org/apache/logging/log4j/core/asy >>>>>>> nc/LinkedTransferQueueFactory.java >>>>>>> > index 862fab3..6ab24e7 100644 >>>>>>> > --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/asy >>>>>>> nc/LinkedTransferQueueFactory.java >>>>>>> > +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/asy >>>>>>> nc/LinkedTransferQueueFactory.java >>>>>>> > @@ -20,14 +20,24 @@ package org.apache.logging.log4j.core.async; >>>>>>> > import java.util.concurrent.BlockingQueue; >>>>>>> > import java.util.concurrent.LinkedTransferQueue; >>>>>>> > >>>>>>> > +import org.apache.logging.log4j.core.config.Node; >>>>>>> > +import org.apache.logging.log4j.core.config.plugins.Plugin; >>>>>>> > +import org.apache.logging.log4j.core. >>>>>>> config.plugins.PluginFactory; >>>>>>> > + >>>>>>> > /** >>>>>>> > * Factory for creating instances of {@link LinkedTransferQueue}. >>>>>>> > * >>>>>>> > * @since 2.7 >>>>>>> > */ >>>>>>> > +@Plugin(name = "LinkedTransferQueue", category = Node.CATEGORY, >>>>>>> elementType = BlockingQueueFactory.ELEMENT_TYPE) >>>>>>> > public class LinkedTransferQueueFactory<E> implements >>>>>>> BlockingQueueFactory<E> { >>>>>>> > @Override >>>>>>> > public BlockingQueue<E> create(int capacity) { >>>>>>> > return new LinkedTransferQueue<>(); >>>>>>> > } >>>>>>> > + >>>>>>> > + @PluginFactory >>>>>>> > + public static <E> LinkedTransferQueueFactory<E> >>>>>>> createFactory() { >>>>>>> > + return new LinkedTransferQueueFactory<>(); >>>>>>> > + } >>>>>>> > } >>>>>>> > >>>>>>> > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/6 >>>>>>> 5ec9bce/log4j-core/src/test/java/org/apache/logging/log4j/co >>>>>>> re/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/app >>>>>>> ender/AsyncAppenderTest.java >>>>>>> > index 3066f38..076fdd0 100644 >>>>>>> > --- a/log4j-core/src/test/java/org/apache/logging/log4j/core/app >>>>>>> ender/AsyncAppenderTest.java >>>>>>> > +++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/app >>>>>>> ender/AsyncAppenderTest.java >>>>>>> > @@ -41,19 +41,21 @@ import static org.junit.Assert.*; >>>>>>> > */ >>>>>>> > @RunWith(Parameterized.class) >>>>>>> > public class AsyncAppenderTest { >>>>>>> > - private static final String CONFIG = "log4j-asynch.xml"; >>>>>>> > >>>>>>> > @Parameterized.Parameters >>>>>>> > public static Object[] data() { >>>>>>> > - return new Class<?>[]{ >>>>>>> > - ArrayBlockingQueueFactory.class, >>>>>>> > - DisruptorBlockingQueueFactory.class, >>>>>>> > - LinkedTransferQueueFactory.class >>>>>>> > + return new String[]{ >>>>>>> > + // default async config uses array blocking queue >>>>>>> > + "log4j-asynch.xml", >>>>>>> > + // override default blocking queue implementations >>>>>>> > + "BlockingQueueFactory-ArrayBlockingQueue.xml", >>>>>>> > + "BlockingQueueFactory-DisruptorBlockingQueue.xml", >>>>>>> > + "BlockingQueueFactory-LinkedTransferQueue.xml" >>>>>>> > }; >>>>>>> > } >>>>>>> > >>>>>>> > - public AsyncAppenderTest(final Class<? extends >>>>>>> BlockingQueueFactory> factory) { >>>>>>> > - context = new LoggerContextRule(CONFIG).with >>>>>>> SystemProperty(BlockingQueueFactory.PROPERTY, factory.getName()); >>>>>>> > + public AsyncAppenderTest(final String configFileName) { >>>>>>> > + context = new LoggerContextRule(configFileName); >>>>>>> > } >>>>>>> > >>>>>>> > @Rule >>>>>>> > >>>>>>> > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/6 >>>>>>> 5ec9bce/log4j-core/src/test/resources/BlockingQueueFactory-A >>>>>>> rrayBlockingQueue.xml >>>>>>> > ------------------------------------------------------------ >>>>>>> ---------- >>>>>>> > diff --git a/log4j-core/src/test/resource >>>>>>> s/BlockingQueueFactory-ArrayBlockingQueue.xml >>>>>>> b/log4j-core/src/test/resources/BlockingQueueFactory-ArrayBl >>>>>>> ockingQueue.xml >>>>>>> > new file mode 100644 >>>>>>> > index 0000000..e8bbfa6 >>>>>>> > --- /dev/null >>>>>>> > +++ b/log4j-core/src/test/resources/BlockingQueueFactory-ArrayBl >>>>>>> ockingQueue.xml >>>>>>> > @@ -0,0 +1,40 @@ >>>>>>> > +<?xml version="1.0" encoding="UTF-8"?> >>>>>>> > +<!-- >>>>>>> > + 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. >>>>>>> > + >>>>>>> > +--> >>>>>>> > +<Configuration status="OFF" name="ArrayBlockingQueueFactory"> >>>>>>> > + >>>>>>> > + <Appenders> >>>>>>> > + <Console name="STDOUT"> >>>>>>> > + <PatternLayout pattern="%m%n"/> >>>>>>> > + </Console> >>>>>>> > + <List name="List"> >>>>>>> > + <PatternLayout pattern="%C %M %m"/> >>>>>>> > + </List> >>>>>>> > + <Async name="Async" includeLocation="true" error-ref="STDOUT"> >>>>>>> > + <AppenderRef ref="List"/> >>>>>>> > + <ArrayBlockingQueue/> >>>>>>> > + </Async> >>>>>>> > + </Appenders> >>>>>>> > + >>>>>>> > + <Loggers> >>>>>>> > + <Root level="debug"> >>>>>>> > + <AppenderRef ref="Async"/> >>>>>>> > + </Root> >>>>>>> > + </Loggers> >>>>>>> > + >>>>>>> > +</Configuration> >>>>>>> > \ No newline at end of file >>>>>>> > >>>>>>> > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/6 >>>>>>> 5ec9bce/log4j-core/src/test/resources/BlockingQueueFactory-D >>>>>>> isruptorBlockingQueue.xml >>>>>>> > ------------------------------------------------------------ >>>>>>> ---------- >>>>>>> > diff --git a/log4j-core/src/test/resource >>>>>>> s/BlockingQueueFactory-DisruptorBlockingQueue.xml >>>>>>> b/log4j-core/src/test/resources/BlockingQueueFactory-Disrupt >>>>>>> orBlockingQueue.xml >>>>>>> > new file mode 100644 >>>>>>> > index 0000000..268cca7 >>>>>>> > --- /dev/null >>>>>>> > +++ b/log4j-core/src/test/resources/BlockingQueueFactory-Disrupt >>>>>>> orBlockingQueue.xml >>>>>>> > @@ -0,0 +1,40 @@ >>>>>>> > +<?xml version="1.0" encoding="UTF-8"?> >>>>>>> > +<!-- >>>>>>> > + 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. >>>>>>> > + >>>>>>> > +--> >>>>>>> > +<Configuration status="OFF" name="DisruptorBlockingQueueFactory"> >>>>>>> > + >>>>>>> > + <Appenders> >>>>>>> > + <Console name="STDOUT"> >>>>>>> > + <PatternLayout pattern="%m%n"/> >>>>>>> > + </Console> >>>>>>> > + <List name="List"> >>>>>>> > + <PatternLayout pattern="%C %M %m"/> >>>>>>> > + </List> >>>>>>> > + <Async name="Async" includeLocation="true" error-ref="STDOUT"> >>>>>>> > + <AppenderRef ref="List"/> >>>>>>> > + <DisruptorBlockingQueue/> >>>>>>> > + </Async> >>>>>>> > + </Appenders> >>>>>>> > + >>>>>>> > + <Loggers> >>>>>>> > + <Root level="debug"> >>>>>>> > + <AppenderRef ref="Async"/> >>>>>>> > + </Root> >>>>>>> > + </Loggers> >>>>>>> > + >>>>>>> > +</Configuration> >>>>>>> > \ No newline at end of file >>>>>>> > >>>>>>> > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/6 >>>>>>> 5ec9bce/log4j-core/src/test/resources/BlockingQueueFactory-L >>>>>>> inkedTransferQueue.xml >>>>>>> > ------------------------------------------------------------ >>>>>>> ---------- >>>>>>> > diff --git a/log4j-core/src/test/resource >>>>>>> s/BlockingQueueFactory-LinkedTransferQueue.xml >>>>>>> b/log4j-core/src/test/resources/BlockingQueueFactory-LinkedT >>>>>>> ransferQueue.xml >>>>>>> > new file mode 100644 >>>>>>> > index 0000000..13063d3 >>>>>>> > --- /dev/null >>>>>>> > +++ b/log4j-core/src/test/resources/BlockingQueueFactory-LinkedT >>>>>>> ransferQueue.xml >>>>>>> > @@ -0,0 +1,40 @@ >>>>>>> > +<?xml version="1.0" encoding="UTF-8"?> >>>>>>> > +<!-- >>>>>>> > + 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. >>>>>>> > + >>>>>>> > +--> >>>>>>> > +<Configuration status="OFF" name="LinkedTransferQueueFactory"> >>>>>>> > + >>>>>>> > + <Appenders> >>>>>>> > + <Console name="STDOUT"> >>>>>>> > + <PatternLayout pattern="%m%n"/> >>>>>>> > + </Console> >>>>>>> > + <List name="List"> >>>>>>> > + <PatternLayout pattern="%C %M %m"/> >>>>>>> > + </List> >>>>>>> > + <Async name="Async" includeLocation="true" error-ref="STDOUT"> >>>>>>> > + <AppenderRef ref="List"/> >>>>>>> > + <LinkedTransferQueue/> >>>>>>> > + </Async> >>>>>>> > + </Appenders> >>>>>>> > + >>>>>>> > + <Loggers> >>>>>>> > + <Root level="debug"> >>>>>>> > + <AppenderRef ref="Async"/> >>>>>>> > + </Root> >>>>>>> > + </Loggers> >>>>>>> > + >>>>>>> > +</Configuration> >>>>>>> > \ No newline at end of file >>>>>>> > >>>>>>> > >>>>>>> >>>>>>> >>>>>>> >>>>>>> ------------------------------------------------------------ >>>>>>> --------- >>>>>>> To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org >>>>>>> For additional commands, e-mail: log4j-dev-h...@logging.apache.org >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>>>>> Java Persistence with Hibernate, Second Edition >>>>>> <http://www.manning.com/bauer3/> >>>>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >>>>>> Spring Batch in Action <http://www.manning.com/templier/> >>>>>> Blog: http://garygregory.wordpress.com >>>>>> Home: http://garygregory.com/ >>>>>> Tweet! http://twitter.com/GaryGregory >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>>>> Java Persistence with Hibernate, Second Edition >>>>> <http://www.manning.com/bauer3/> >>>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >>>>> Spring Batch in Action <http://www.manning.com/templier/> >>>>> Blog: http://garygregory.wordpress.com >>>>> Home: http://garygregory.com/ >>>>> Tweet! http://twitter.com/GaryGregory >>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> Matt Sicker <boa...@gmail.com> >>>> >>> >>> >>> >>> -- >>> Matt Sicker <boa...@gmail.com> >>> >> >> > > > -- > Matt Sicker <boa...@gmail.com> > -- Matt Sicker <boa...@gmail.com>