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/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.ArrayBlockingQueueFactor >>>> y; >>>> > 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> > -- Matt Sicker <boa...@gmail.com>