You can remove the annotations on the deprecated factories. They won't be scanned when a builder class is present.
On 7 July 2017 at 15:43, <[email protected]> wrote: > LOG4J2-1923 Maintain binary compatibility > > > Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo > Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/ > commit/2ac966f1 > Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/2ac966f1 > Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/2ac966f1 > > Branch: refs/heads/master > Commit: 2ac966f1ff8e1e72b22880e0ca2d524aafdeaaf8 > Parents: 0b8f743 > Author: Mikael Ståldal <[email protected]> > Authored: Fri Jul 7 21:41:12 2017 +0200 > Committer: Mikael Ståldal <[email protected]> > Committed: Fri Jul 7 21:41:12 2017 +0200 > > ---------------------------------------------------------------------- > .../logging/log4j/core/layout/JsonLayout.java | 22 ++++++++++++---- > .../logging/log4j/core/layout/XmlLayout.java | 10 +++----- > .../logging/log4j/core/layout/YamlLayout.java | 20 +++++++++++---- > .../log4j/core/layout/XmlLayoutTest.java | 27 +++++++++++++++++--- > .../log4j/core/layout/YamlLayoutTest.java | 26 ++++++++++++++----- > 5 files changed, 80 insertions(+), 25 deletions(-) > ---------------------------------------------------------------------- > > > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ > 2ac966f1/log4j-core/src/main/java/org/apache/logging/log4j/ > core/layout/JsonLayout.java > ---------------------------------------------------------------------- > diff --git > a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/JsonLayout.java > b/log4j-core/src/main/java/org/apache/logging/log4j/core/ > layout/JsonLayout.java > index acf511f..aa12a0f 100644 > --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/ > layout/JsonLayout.java > +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/ > layout/JsonLayout.java > @@ -98,9 +98,24 @@ public final class JsonLayout extends > AbstractJacksonLayout { > } > } > > + /** > + * @deprecated Use {@link #newBuilder()} instead > + */ > + @Deprecated > protected JsonLayout(final Configuration config, final boolean > locationInfo, final boolean properties, > final boolean encodeThreadContextAsList, > final boolean complete, final boolean compact, final boolean > eventEol, final String headerPattern, > + final String footerPattern, final Charset charset, final > boolean includeStacktrace) { > + super(config, new JacksonFactory.JSON(encodeThreadContextAsList, > includeStacktrace, false).newWriter( > + locationInfo, properties, compact), > + charset, compact, complete, eventEol, > + PatternLayout.newSerializerBuilder(). > setConfiguration(config).setPattern(headerPattern). > setDefaultPattern(DEFAULT_HEADER).build(), > + PatternLayout.newSerializerBuilder(). > setConfiguration(config).setPattern(footerPattern). > setDefaultPattern(DEFAULT_FOOTER).build()); > + } > + > + private JsonLayout(final Configuration config, final boolean > locationInfo, final boolean properties, > + final boolean encodeThreadContextAsList, > + final boolean complete, final boolean compact, final boolean > eventEol, final String headerPattern, > final String footerPattern, final Charset charset, final > boolean includeStacktrace, final boolean stacktraceAsString) { > super(config, new JacksonFactory.JSON(encodeThreadContextAsList, > includeStacktrace, stacktraceAsString).newWriter( > locationInfo, properties, compact), > @@ -191,8 +206,6 @@ public final class JsonLayout extends > AbstractJacksonLayout { > * The character set to use, if {@code null}, uses "UTF-8". > * @param includeStacktrace > * If "true", includes the stacktrace of any Throwable in > the generated JSON, defaults to "true". > - * @param stacktraceAsString > - * If "true", the stacktrace will be rendered as string, > and not nested object, defaults to "false". > * @return A JSON Layout. > * > * @deprecated Use {@link #newBuilder()} instead > @@ -210,13 +223,12 @@ public final class JsonLayout extends > AbstractJacksonLayout { > @PluginAttribute(value = "header", defaultString = > DEFAULT_HEADER) final String headerPattern, > @PluginAttribute(value = "footer", defaultString = > DEFAULT_FOOTER) final String footerPattern, > @PluginAttribute(value = "charset", defaultString = "UTF-8") > final Charset charset, > - @PluginAttribute(value = "includeStacktrace", defaultBoolean > = true) final boolean includeStacktrace, > - @PluginAttribute(value = "stacktraceAsString", defaultBoolean > = false) final boolean stacktraceAsString > + @PluginAttribute(value = "includeStacktrace", defaultBoolean > = true) final boolean includeStacktrace > // @formatter:on > ) { > final boolean encodeThreadContextAsList = properties && > propertiesAsList; > return new JsonLayout(config, locationInfo, properties, > encodeThreadContextAsList, complete, compact, eventEol, > - headerPattern, footerPattern, charset, includeStacktrace, > stacktraceAsString); > + headerPattern, footerPattern, charset, includeStacktrace, > false); > } > > @PluginBuilderFactory > > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ > 2ac966f1/log4j-core/src/main/java/org/apache/logging/log4j/ > core/layout/XmlLayout.java > ---------------------------------------------------------------------- > diff --git > a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/XmlLayout.java > b/log4j-core/src/main/java/org/apache/logging/log4j/core/ > layout/XmlLayout.java > index 49641f1..3757d45 100644 > --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/ > layout/XmlLayout.java > +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/ > layout/XmlLayout.java > @@ -78,8 +78,8 @@ public final class XmlLayout extends > AbstractJacksonLayout { > */ > @Deprecated > protected XmlLayout(final boolean locationInfo, final boolean > properties, final boolean complete, > - final boolean compact, final Charset charset, > final boolean includeStacktrace, final boolean stacktraceAsString) { > - this(null, locationInfo, properties, complete, compact, charset, > includeStacktrace, stacktraceAsString); > + final boolean compact, final Charset charset, > final boolean includeStacktrace) { > + this(null, locationInfo, properties, complete, compact, charset, > includeStacktrace, false); > } > > private XmlLayout(final Configuration config, final boolean > locationInfo, final boolean properties, > @@ -165,7 +165,6 @@ public final class XmlLayout extends > AbstractJacksonLayout { > * @param charset The character set to use, if {@code null}, uses > "UTF-8". > * @param includeStacktrace > * If "true", includes the stacktrace of any Throwable in > the generated XML, defaults to "true". > - * @param stacktraceAsString If "true", the stacktrace will be > rendered as string, and not nested object, defaults to "false". > * @return An XML Layout. > * > * @deprecated Use {@link #newBuilder()} instead > @@ -178,12 +177,11 @@ public final class XmlLayout extends > AbstractJacksonLayout { > @PluginAttribute(value = "complete") final boolean complete, > @PluginAttribute(value = "compact") final boolean compact, > @PluginAttribute(value = "charset", defaultString = "UTF-8") > final Charset charset, > - @PluginAttribute(value = "includeStacktrace", defaultBoolean > = true) final boolean includeStacktrace, > - @PluginAttribute(value = "stacktraceAsString", defaultBoolean > = false) final boolean stacktraceAsString > + @PluginAttribute(value = "includeStacktrace", defaultBoolean > = true) final boolean includeStacktrace > ) > // @formatter:on > { > - return new XmlLayout(null, locationInfo, properties, complete, > compact, charset, includeStacktrace, stacktraceAsString); > + return new XmlLayout(null, locationInfo, properties, complete, > compact, charset, includeStacktrace, false); > } > > @PluginBuilderFactory > > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ > 2ac966f1/log4j-core/src/main/java/org/apache/logging/log4j/ > core/layout/YamlLayout.java > ---------------------------------------------------------------------- > diff --git > a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/YamlLayout.java > b/log4j-core/src/main/java/org/apache/logging/log4j/core/ > layout/YamlLayout.java > index 40188b3..7cfca20 100644 > --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/ > layout/YamlLayout.java > +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/ > layout/YamlLayout.java > @@ -66,8 +66,21 @@ public final class YamlLayout extends > AbstractJacksonLayout { > } > } > > + /** > + * @deprecated Use {@link #newBuilder()} instead > + */ > + @Deprecated > protected YamlLayout(final Configuration config, final boolean > locationInfo, final boolean properties, > final boolean complete, final boolean compact, final boolean > eventEol, final String headerPattern, > + final String footerPattern, final Charset charset, final > boolean includeStacktrace) { > + super(config, new JacksonFactory.YAML(includeStacktrace, > false).newWriter(locationInfo, properties, compact), charset, compact, > + complete, eventEol, > + PatternLayout.newSerializerBuilder(). > setConfiguration(config).setPattern(headerPattern). > setDefaultPattern(DEFAULT_HEADER).build(), > + PatternLayout.newSerializerBuilder(). > setConfiguration(config).setPattern(footerPattern). > setDefaultPattern(DEFAULT_FOOTER).build()); > + } > + > + private YamlLayout(final Configuration config, final boolean > locationInfo, final boolean properties, > + final boolean complete, final boolean compact, final boolean > eventEol, final String headerPattern, > final String footerPattern, final Charset charset, final > boolean includeStacktrace, final boolean stacktraceAsString) { > super(config, new JacksonFactory.YAML(includeStacktrace, > stacktraceAsString).newWriter(locationInfo, properties, compact), > charset, compact, > complete, eventEol, > @@ -146,8 +159,6 @@ public final class YamlLayout extends > AbstractJacksonLayout { > * The character set to use, if {@code null}, uses "UTF-8". > * @param includeStacktrace > * If "true", includes the stacktrace of any Throwable in > the generated YAML, defaults to "true". > - * @param stacktraceAsString > - * If "true", the stacktrace will be rendered as string, > and not nested object, defaults to "false". > * @return A YAML Layout. > * > * @deprecated Use {@link #newBuilder()} instead > @@ -161,12 +172,11 @@ public final class YamlLayout extends > AbstractJacksonLayout { > @PluginAttribute(value = "header", defaultString = > DEFAULT_HEADER) final String headerPattern, > @PluginAttribute(value = "footer", defaultString = > DEFAULT_FOOTER) final String footerPattern, > @PluginAttribute(value = "charset", defaultString = "UTF-8") > final Charset charset, > - @PluginAttribute(value = "includeStacktrace", defaultBoolean > = true) final boolean includeStacktrace, > - @PluginAttribute(value = "stacktraceAsString", defaultBoolean > = false) final boolean stacktraceAsString > + @PluginAttribute(value = "includeStacktrace", defaultBoolean > = true) final boolean includeStacktrace > // @formatter:on > ) { > return new YamlLayout(config, locationInfo, properties, false, > false, true, headerPattern, footerPattern, > - charset, includeStacktrace, stacktraceAsString); > + charset, includeStacktrace, false); > } > > @PluginBuilderFactory > > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ > 2ac966f1/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 bf367e5..978107f 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 > @@ -128,7 +128,14 @@ public class XmlLayoutTest { > private void testAllFeatures(final boolean includeSource, final > boolean compact, final boolean includeContext, final boolean > includeStacktrace) throws IOException, > JsonParseException, JsonMappingException { > final Log4jLogEvent expected = LogEventFixtures.createLogEvent(); > - final XmlLayout layout = XmlLayout.createLayout(includeSource, > includeContext, false, compact, StandardCharsets.UTF_8, includeStacktrace, > false); > + final XmlLayout layout = XmlLayout.newBuilder() > + .setLocationInfo(includeSource) > + .setProperties(includeContext) > + .setComplete(false) > + .setCompact(compact) > + .setIncludeStacktrace(includeStacktrace) > + .setCharset(StandardCharsets.UTF_8) > + .build(); > final String str = layout.toSerializable(expected); > // System.out.println(str); > assertEquals(str, !compact, str.contains("\n")); > @@ -222,7 +229,14 @@ public class XmlLayoutTest { > this.rootLogger.removeAppender(appender); > } > // set up appender > - final XmlLayout layout = XmlLayout.createLayout(true, true, true, > false, null, true, false); > + final XmlLayout layout = XmlLayout.newBuilder() > + .setLocationInfo(true) > + .setProperties(true) > + .setComplete(true) > + .setCompact(false) > + .setIncludeStacktrace(true) > + .build(); > + > final ListAppender appender = new ListAppender("List", null, > layout, true, false); > appender.start(); > > @@ -271,7 +285,14 @@ public class XmlLayoutTest { > > @Test > public void testLayoutLoggerName() { > - final XmlLayout layout = XmlLayout.createLayout(false, true, > true, false, null, true, false); > + final XmlLayout layout = XmlLayout.newBuilder() > + .setLocationInfo(false) > + .setProperties(true) > + .setComplete(true) > + .setCompact(false) > + .setIncludeStacktrace(true) > + .build(); > + > final Log4jLogEvent event = Log4jLogEvent.newBuilder() // > .setLoggerName("a.B") // > .setLoggerFqcn("f.q.c.n") // > > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ > 2ac966f1/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 2e8c1d1..d46bce6 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 > @@ -115,8 +115,12 @@ public class YamlLayoutTest { > private void testAllFeatures(final boolean includeSource, final > boolean compact, final boolean eventEol, > final boolean includeContext, final boolean contextMapAslist, > final boolean includeStacktrace) throws Exception { > final Log4jLogEvent expected = LogEventFixtures.createLogEvent(); > - final AbstractJacksonLayout layout = > YamlLayout.createLayout(null, includeSource, includeContext, null, null, > - StandardCharsets.UTF_8, includeStacktrace, false); > + final AbstractJacksonLayout layout = YamlLayout.newBuilder() > + .setLocationInfo(includeSource) > + .setProperties(includeContext) > + .setIncludeStacktrace(includeStacktrace) > + .setCharset(StandardCharsets.UTF_8) > + .build(); > final String str = layout.toSerializable(expected); > // System.out.println(str); > // Just check for \n since \r might or might not be there. > @@ -195,7 +199,13 @@ public class YamlLayoutTest { > } > final Configuration configuration = rootLogger.getContext(). > getConfiguration(); > // set up appender > - final AbstractJacksonLayout layout = > YamlLayout.createLayout(configuration, > true, true, null, null, null, true, false); > + final AbstractJacksonLayout layout = YamlLayout.newBuilder() > + .setLocationInfo(true) > + .setProperties(true) > + .setIncludeStacktrace(true) > + .setConfiguration(configuration) > + .build(); > + > final ListAppender appender = new ListAppender("List", null, > layout, true, false); > appender.start(); > > @@ -231,7 +241,7 @@ public class YamlLayoutTest { > final Configuration configuration = rootLogger.getContext(). > getConfiguration(); > // set up appender > // Use [[ and ]] to test header and footer (instead of [ and ]) > - final AbstractJacksonLayout layout = > YamlLayout.createLayout(configuration, > true, true, "[[", "]]", null, true, false); > + final AbstractJacksonLayout layout = > YamlLayout.createLayout(configuration, > true, true, "[[", "]]", null, true); > final ListAppender appender = new ListAppender("List", null, > layout, true, false); > appender.start(); > > @@ -269,8 +279,12 @@ public class YamlLayoutTest { > > @Test > public void testLayoutLoggerName() throws Exception { > - final AbstractJacksonLayout layout = > YamlLayout.createLayout(null, false, false, null, null, > - StandardCharsets.UTF_8, true, false); > + final AbstractJacksonLayout layout = YamlLayout.newBuilder() > + .setLocationInfo(false) > + .setProperties(false) > + .setIncludeStacktrace(true) > + .setCharset(StandardCharsets.UTF_8) > + .build(); > final Log4jLogEvent expected = Log4jLogEvent.newBuilder() // > .setLoggerName("a.B") // > .setLoggerFqcn("f.q.c.n") // > > -- Matt Sicker <[email protected]>
