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/repos/asf/logging-log4j2/repo >>> > Commit: http://git-wip-us.apache.org/repos/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.AsyncQueueFullPolicyFact >>> ory; >>> > +import org.apache.logging.log4j.core.async.BlockingQueueFactory; >>> > +import org.apache.logging.log4j.core.async.BlockingQueueFactoryUtil; >>> > import org.apache.logging.log4j.core.async.DiscardingAsyncQueueFull >>> Policy; >>> > 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.cons >>> traints.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>