Good to know. Thanks Matt! On Wed, Feb 17, 2021 at 4:12 PM Matt Sicker <boa...@gmail.com> wrote:
> FYI, the @Named injection has a default based on the parameter name > you annotate, so if you make them match (case matters), then you have > less to specify in the test. > > On Wed, 17 Feb 2021 at 08:10, <v...@apache.org> wrote: > > > > This is an automated email from the ASF dual-hosted git repository. > > > > vy pushed a commit to branch release-2.x > > in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git > > > > commit dd1bec2364763c03b8a6a83e35457c4ad2804b65 > > Author: Volkan Yazici <volkan.yaz...@gmail.com> > > AuthorDate: Wed Feb 17 15:10:59 2021 +0100 > > > > Test RecyclerFactory read from XML config. > > --- > > .../template/json/util/RecyclerFactoriesTest.java | 19 ++++++++++++++ > > ...rFactoryCustomizedJsonTemplateLayoutLogging.xml | 30 > ++++++++++++++++++++++ > > 2 files changed, 49 insertions(+) > > > > diff --git > a/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/util/RecyclerFactoriesTest.java > b/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/util/RecyclerFactoriesTest.java > > index 80824f1..1c7b439 100644 > > --- > a/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/util/RecyclerFactoriesTest.java > > +++ > b/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/util/RecyclerFactoriesTest.java > > @@ -18,9 +18,15 @@ package > org.apache.logging.log4j.layout.template.json.util; > > > > import > org.apache.logging.log4j.core.config.plugins.convert.TypeConverter; > > import > org.apache.logging.log4j.core.config.plugins.convert.TypeConverterRegistry; > > +import org.apache.logging.log4j.junit.LoggerContextSource; > > +import org.apache.logging.log4j.junit.Named; > > +import org.apache.logging.log4j.layout.template.json.JsonTemplateLayout; > > +import org.apache.logging.log4j.test.appender.ListAppender; > > import org.assertj.core.api.Assertions; > > +import org.jctools.queues.MpmcArrayQueue; > > import org.junit.jupiter.api.Test; > > > > +import java.lang.reflect.Field; > > import java.util.ArrayDeque; > > import java.util.concurrent.ArrayBlockingQueue; > > > > @@ -117,4 +123,17 @@ class RecyclerFactoriesTest { > > > > } > > > > + @Test > > + > @LoggerContextSource("recyclerFactoryCustomizedJsonTemplateLayoutLogging.xml") > > + void test_RecyclerFactoryConverter_using_XML_config( > > + final @Named(value = "List") ListAppender appender) > > + throws Exception { > > + final JsonTemplateLayout layout = (JsonTemplateLayout) > appender.getLayout(); > > + final Field field = > JsonTemplateLayout.class.getDeclaredField("contextRecycler"); > > + field.setAccessible(true); > > + final QueueingRecycler<?> contextRecycler = > (QueueingRecycler<?>) field.get(layout); > > + final MpmcArrayQueue<?> queue = (MpmcArrayQueue<?>) > contextRecycler.getQueue(); > > + Assertions.assertThat(queue.capacity()).isEqualTo(512); > > + } > > + > > } > > diff --git > a/log4j-layout-template-json/src/test/resources/recyclerFactoryCustomizedJsonTemplateLayoutLogging.xml > b/log4j-layout-template-json/src/test/resources/recyclerFactoryCustomizedJsonTemplateLayoutLogging.xml > > new file mode 100644 > > index 0000000..8fd8957 > > --- /dev/null > > +++ > b/log4j-layout-template-json/src/test/resources/recyclerFactoryCustomizedJsonTemplateLayoutLogging.xml > > @@ -0,0 +1,30 @@ > > +<?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"> > > + <Appenders> > > + <List name="List" raw="true"> > > + <JsonTemplateLayout > > + > recyclerFactory="queue:supplier=org.jctools.queues.MpmcArrayQueue.new,capacity=512"/> > > + </List> > > + </Appenders> > > + <Loggers> > > + <Root level="TRACE"> > > + <AppenderRef ref="List"/> > > + </Root> > > + </Loggers> > > +</Configuration> > > >