This is an automated email from the ASF dual-hosted git repository. pkarwasz pushed a commit to branch fix/plugin-documentation in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit ed9f7117a7b4d463e871a4027a60c48bc6c4468d Author: Piotr P. Karwasz <[email protected]> AuthorDate: Tue Feb 6 09:44:30 2024 +0100 Deprecate legacy annotations and remove their usage We deprecate for removal the old `o.a.l.l.c.plugins` annotations and remove their usages. --- .../apache/log4j/layout/Log4j1SyslogLayout.java | 21 ++++++++++---------- .../log4j/core/test/appender/FailOnceAppender.java | 6 +++--- .../core/config/ReconfigurationDeadlockTest.java | 8 ++++---- log4j-core/pom.xml | 5 +++++ .../log4j/core/appender/AbstractAppender.java | 17 +++++++++++++++- .../appender/AbstractOutputStreamAppender.java | 23 ++++++++++++++++++++++ .../logging/log4j/core/appender/AsyncAppender.java | 11 +++++++---- .../log4j/core/appender/FailoverAppender.java | 9 +++++++-- .../log4j/core/config/arbiters/ClassArbiter.java | 4 ++-- .../log4j/core/config/arbiters/DefaultArbiter.java | 4 ++-- .../core/config/arbiters/EnvironmentArbiter.java | 4 ++-- .../log4j/core/config/arbiters/SelectArbiter.java | 4 ++-- .../config/arbiters/SystemPropertyArbiter.java | 4 ++-- .../log4j/core/config/plugins/PluginAliases.java | 3 ++- .../log4j/core/config/plugins/PluginAttribute.java | 3 ++- .../config/plugins/PluginBuilderAttribute.java | 3 ++- .../core/config/plugins/PluginBuilderFactory.java | 3 ++- .../log4j/core/config/plugins/PluginElement.java | 3 ++- .../log4j/core/config/plugins/PluginFactory.java | 3 ++- .../log4j/core/config/plugins/PluginNode.java | 3 ++- .../log4j/core/config/plugins/PluginValue.java | 3 ++- ...acyAnnotationFactoryResolversPostProcessor.java | 1 + .../util/LegacyPluginAttributeFactoryResolver.java | 3 ++- ...egacyPluginBuilderAttributeFactoryResolver.java | 3 ++- .../util/LegacyPluginElementFactoryResolver.java | 3 ++- .../util/LegacyPluginNodeFactoryResolver.java | 3 ++- .../util/LegacyPluginValueFactoryResolver.java | 3 ++- .../config/plugins/util/PluginAliasesProvider.java | 2 ++ .../plugins/util/PluginAttributeNameProvider.java | 2 ++ .../util/PluginBuilderAttributeNameProvider.java | 2 ++ .../plugins/util/PluginElementNameProvider.java | 2 ++ .../plugins/util/PluginValueNameProvider.java | 3 ++- .../log4j/core/filter/AbstractFilterable.java | 9 +++++++++ 33 files changed, 131 insertions(+), 49 deletions(-) diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/layout/Log4j1SyslogLayout.java b/log4j-1.2-api/src/main/java/org/apache/log4j/layout/Log4j1SyslogLayout.java index 1e15c300c3..ba3f41a96d 100644 --- a/log4j-1.2-api/src/main/java/org/apache/log4j/layout/Log4j1SyslogLayout.java +++ b/log4j-1.2-api/src/main/java/org/apache/log4j/layout/Log4j1SyslogLayout.java @@ -26,7 +26,6 @@ import org.apache.logging.log4j.core.Layout; import org.apache.logging.log4j.core.LogEvent; import org.apache.logging.log4j.core.StringLayout; import org.apache.logging.log4j.core.config.Configuration; -import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory; import org.apache.logging.log4j.core.layout.AbstractStringLayout; import org.apache.logging.log4j.core.net.Facility; import org.apache.logging.log4j.core.net.Priority; @@ -34,6 +33,7 @@ import org.apache.logging.log4j.core.pattern.DatePatternConverter; import org.apache.logging.log4j.core.pattern.LogEventPatternConverter; import org.apache.logging.log4j.core.util.NetUtils; import org.apache.logging.log4j.plugins.Configurable; +import org.apache.logging.log4j.plugins.Factory; import org.apache.logging.log4j.plugins.Plugin; import org.apache.logging.log4j.plugins.PluginBuilderAttribute; import org.apache.logging.log4j.plugins.PluginElement; @@ -58,10 +58,9 @@ public final class Log4j1SyslogLayout extends AbstractStringLayout { * <li>escapeNL: Pattern to use for replacing newlines.</li> * <li>charset: The character set.</li> * </ul> - * @param <B> the builder type */ - public static class Builder<B extends Builder<B>> extends AbstractStringLayout.Builder<B> - implements org.apache.logging.log4j.core.util.Builder<Log4j1SyslogLayout> { + public static class Builder extends AbstractStringLayout.Builder<Builder> + implements org.apache.logging.log4j.plugins.util.Builder<Log4j1SyslogLayout> { public Builder() { setCharset(StandardCharsets.UTF_8); @@ -105,30 +104,30 @@ public final class Log4j1SyslogLayout extends AbstractStringLayout { return messageLayout; } - public B setFacility(final Facility facility) { + public Builder setFacility(final Facility facility) { this.facility = facility; return asBuilder(); } - public B setFacilityPrinting(final boolean facilityPrinting) { + public Builder setFacilityPrinting(final boolean facilityPrinting) { this.facilityPrinting = facilityPrinting; return asBuilder(); } - public B setHeader(final boolean header) { + public Builder setHeader(final boolean header) { this.header = header; return asBuilder(); } - public B setMessageLayout(final Layout messageLayout) { + public Builder setMessageLayout(final Layout messageLayout) { this.messageLayout = messageLayout; return asBuilder(); } } - @PluginBuilderFactory - public static <B extends Builder<B>> B newBuilder() { - return new Builder<B>().asBuilder(); + @Factory + public static Builder newBuilder() { + return new Builder().asBuilder(); } /** diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/appender/FailOnceAppender.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/appender/FailOnceAppender.java index 4579d8f6b0..6ca7985a07 100644 --- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/appender/FailOnceAppender.java +++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/appender/FailOnceAppender.java @@ -24,11 +24,11 @@ import org.apache.logging.log4j.core.Appender; import org.apache.logging.log4j.core.LogEvent; import org.apache.logging.log4j.core.appender.AbstractAppender; import org.apache.logging.log4j.core.config.Property; -import org.apache.logging.log4j.core.config.plugins.PluginAttribute; -import org.apache.logging.log4j.core.config.plugins.PluginFactory; import org.apache.logging.log4j.core.util.Throwables; import org.apache.logging.log4j.plugins.Configurable; +import org.apache.logging.log4j.plugins.Factory; import org.apache.logging.log4j.plugins.Plugin; +import org.apache.logging.log4j.plugins.PluginAttribute; import org.apache.logging.log4j.plugins.validation.constraints.Required; /** @@ -72,7 +72,7 @@ public class FailOnceAppender extends AbstractAppender { return oldEvents; } - @PluginFactory + @Factory public static FailOnceAppender createAppender( @PluginAttribute("name") @Required(message = "A name for the Appender must be specified") final String name, @PluginAttribute("throwableClassName") final String throwableClassName) { diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/ReconfigurationDeadlockTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/ReconfigurationDeadlockTest.java index c90f712750..f0a5803b75 100644 --- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/ReconfigurationDeadlockTest.java +++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/ReconfigurationDeadlockTest.java @@ -32,12 +32,12 @@ import org.apache.logging.log4j.core.Filter; import org.apache.logging.log4j.core.Layout; import org.apache.logging.log4j.core.LogEvent; import org.apache.logging.log4j.core.appender.AbstractAppender; -import org.apache.logging.log4j.core.config.plugins.PluginAttribute; -import org.apache.logging.log4j.core.config.plugins.PluginElement; -import org.apache.logging.log4j.core.config.plugins.PluginFactory; import org.apache.logging.log4j.core.test.junit.LoggerContextSource; import org.apache.logging.log4j.plugins.Configurable; +import org.apache.logging.log4j.plugins.Factory; import org.apache.logging.log4j.plugins.Plugin; +import org.apache.logging.log4j.plugins.PluginAttribute; +import org.apache.logging.log4j.plugins.PluginElement; import org.apache.logging.log4j.plugins.validation.constraints.Required; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; @@ -138,7 +138,7 @@ public class ReconfigurationDeadlockTest { this.logger = LogManager.getRootLogger(); } - @PluginFactory + @Factory public static TestAppender createAppender( @PluginAttribute("name") @Required(message = "A name for the Appender must be specified") final String name, diff --git a/log4j-core/pom.xml b/log4j-core/pom.xml index e676d00b87..87fdc6aad8 100644 --- a/log4j-core/pom.xml +++ b/log4j-core/pom.xml @@ -112,6 +112,11 @@ <artifactId>log4j-plugin-processor</artifactId> <version>${project.version}</version> </path> + <path> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-docgen</artifactId> + <version>0.8.0-SNAPSHOT</version> + </path> </annotationProcessorPaths> </configuration> </plugin> diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractAppender.java index ed11ddf5fa..f6f863f62a 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractAppender.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractAppender.java @@ -47,11 +47,26 @@ public abstract class AbstractAppender extends AbstractFilterable implements App */ public abstract static class Builder<B extends Builder<B>> extends AbstractFilterable.Builder<B> { + /** + * Determines whether to propagate logging exceptions + * <p> + * If set to {@code true} (default), exceptions that occur during logging will appear in the status logger. + * </p> + * <p> + * If set to {@code false}, exceptions will be propagates to the caller. + * </p> + */ @PluginBuilderAttribute private boolean ignoreExceptions = true; - + /** + * Formats the log events + */ private Layout layout; + /** + * Name of the appender to use in references + */ private String name; + private Configuration configuration; public String getName() { diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java index 9e83efb99d..6454f3b9e1 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java @@ -16,6 +16,7 @@ */ package org.apache.logging.log4j.core.appender; +import java.io.OutputStream; import java.util.concurrent.TimeUnit; import org.apache.logging.log4j.core.Filter; import org.apache.logging.log4j.core.Layout; @@ -38,12 +39,34 @@ public abstract class AbstractOutputStreamAppender<M extends OutputStreamManager */ public abstract static class Builder<B extends Builder<B>> extends AbstractAppender.Builder<B> { + /** + * Determines whether to use a buffered {@code OutputStream} + * <p> + * If set to {@code true} (default) the appender will buffer messages before sending them. This attribute is + * ignored if {@code immediateFlush} is set to {@code true}. + * </p> + */ @PluginBuilderAttribute private boolean bufferedIo = true; + /** + * Size of the buffer in bytes + */ @PluginBuilderAttribute private int bufferSize = Constants.ENCODER_BYTE_BUFFER_SIZE; + /** + * Flushes the underlying {@code OutputStream} after each event + * <p> + * The effects of this setting depend on the output stream implementation (see {@link OutputStream#flush()}. + * In the case of files, for example, setting this attribute to {@code true}, guarantees that all bytes + * written are passed to the operating system, but it <strong>does not</strong> guarantee that they are + * actually written to a physical device. + * </p> + * <p> + * Setting this to {@code true} automatically disables buffering. + * </p> + */ @PluginBuilderAttribute private boolean immediateFlush = true; 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/appender/AsyncAppender.java index f820bee263..a8c41a6fc3 100644 --- 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/appender/AsyncAppender.java @@ -38,10 +38,10 @@ import org.apache.logging.log4j.core.config.AppenderRef; import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.ConfigurationException; import org.apache.logging.log4j.core.config.Property; -import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory; import org.apache.logging.log4j.core.config.plugins.PluginConfiguration; import org.apache.logging.log4j.core.filter.AbstractFilterable; import org.apache.logging.log4j.plugins.Configurable; +import org.apache.logging.log4j.plugins.Factory; import org.apache.logging.log4j.plugins.Plugin; import org.apache.logging.log4j.plugins.PluginAliases; import org.apache.logging.log4j.plugins.PluginBuilderAttribute; @@ -252,13 +252,13 @@ public final class AsyncAppender extends AbstractAppender { } } - @PluginBuilderFactory + @Factory public static Builder newBuilder() { return new Builder(); } - public static class Builder<B extends Builder<B>> extends AbstractFilterable.Builder<B> - implements org.apache.logging.log4j.core.util.Builder<AsyncAppender> { + public static class Builder extends AbstractFilterable.Builder<Builder> + implements org.apache.logging.log4j.plugins.util.Builder<AsyncAppender> { @PluginElement("AppenderRef") @Required(message = "No appender references provided to AsyncAppender") @@ -277,6 +277,9 @@ public final class AsyncAppender extends AbstractAppender { @PluginBuilderAttribute private int bufferSize = DEFAULT_QUEUE_SIZE; + /** + * Name of the appender to use in references + */ @PluginBuilderAttribute @Required(message = "No name provided for AsyncAppender") private String name; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FailoverAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FailoverAppender.java index a3a5d22a99..51883eb20a 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FailoverAppender.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FailoverAppender.java @@ -181,8 +181,13 @@ public final class FailoverAppender extends AbstractAppender { * @param retryIntervalSeconds The retry interval in seconds. * @param config The current Configuration (passed by the Configuration when the appender is created). * @param filter A Filter (optional). - * @param ignoreExceptions If {@code "true"} (default) exceptions encountered when appending events are logged; otherwise - * they are propagated to the caller. + * @param ignoreExceptions Determines whether to propagate logging exceptions + * <p> + * If set to {@code true} (default), exceptions that occur during logging will appear in the status logger. + * </p> + * <p> + * If set to {@code false}, exceptions will be propagates to the caller. + * </p> * @return The FailoverAppender that was created. */ @PluginFactory diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/ClassArbiter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/ClassArbiter.java index cfe75661d6..7ce63a51ac 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/ClassArbiter.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/ClassArbiter.java @@ -17,8 +17,8 @@ package org.apache.logging.log4j.core.config.arbiters; import org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute; -import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory; import org.apache.logging.log4j.plugins.Configurable; +import org.apache.logging.log4j.plugins.Factory; import org.apache.logging.log4j.plugins.Plugin; import org.apache.logging.log4j.util.LoaderUtil; @@ -40,7 +40,7 @@ public class ClassArbiter implements Arbiter { return LoaderUtil.isClassAvailable(className); } - @PluginBuilderFactory + @Factory public static ClassArbiter.Builder newBuilder() { return new ClassArbiter.Builder(); } diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/DefaultArbiter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/DefaultArbiter.java index b86cbb61c2..38252ab0f3 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/DefaultArbiter.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/DefaultArbiter.java @@ -16,8 +16,8 @@ */ package org.apache.logging.log4j.core.config.arbiters; -import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory; import org.apache.logging.log4j.plugins.Configurable; +import org.apache.logging.log4j.plugins.Factory; import org.apache.logging.log4j.plugins.Plugin; /** @@ -35,7 +35,7 @@ public class DefaultArbiter implements Arbiter { return true; } - @PluginBuilderFactory + @Factory public static Builder newBuilder() { return new Builder(); } diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/EnvironmentArbiter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/EnvironmentArbiter.java index b1f071683e..904d3f1973 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/EnvironmentArbiter.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/EnvironmentArbiter.java @@ -17,8 +17,8 @@ package org.apache.logging.log4j.core.config.arbiters; import org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute; -import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory; import org.apache.logging.log4j.plugins.Configurable; +import org.apache.logging.log4j.plugins.Factory; import org.apache.logging.log4j.plugins.Plugin; /** @@ -46,7 +46,7 @@ public class EnvironmentArbiter implements Arbiter { return value != null && (propertyValue == null || value.equals(propertyValue)); } - @PluginBuilderFactory + @Factory public static Builder newBuilder() { return new Builder(); } diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/SelectArbiter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/SelectArbiter.java index bcd01cf38d..cc3c9a1d00 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/SelectArbiter.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/SelectArbiter.java @@ -18,8 +18,8 @@ package org.apache.logging.log4j.core.config.arbiters; import java.util.List; import java.util.Optional; -import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory; import org.apache.logging.log4j.plugins.Configurable; +import org.apache.logging.log4j.plugins.Factory; import org.apache.logging.log4j.plugins.Plugin; /** @@ -46,7 +46,7 @@ public class SelectArbiter { return opt.orElse(null); } - @PluginBuilderFactory + @Factory public static Builder newBuilder() { return new Builder(); } diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/SystemPropertyArbiter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/SystemPropertyArbiter.java index f7bb74140d..99d2774544 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/SystemPropertyArbiter.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/SystemPropertyArbiter.java @@ -17,8 +17,8 @@ package org.apache.logging.log4j.core.config.arbiters; import org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute; -import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory; import org.apache.logging.log4j.plugins.Configurable; +import org.apache.logging.log4j.plugins.Factory; import org.apache.logging.log4j.plugins.Plugin; /** @@ -46,7 +46,7 @@ public class SystemPropertyArbiter implements Arbiter { return value != null && (propertyValue == null || value.equals(propertyValue)); } - @PluginBuilderFactory + @Factory public static Builder newBuilder() { return new Builder(); } diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginAliases.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginAliases.java index 82e4f9f83f..cd0352821b 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginAliases.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginAliases.java @@ -32,7 +32,8 @@ import org.apache.logging.log4j.plugins.name.AliasesProvider; @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.PARAMETER, ElementType.TYPE, ElementType.FIELD}) @AliasesProvider(PluginAliasesProvider.class) -@Deprecated(since = "3.0.0") +@Deprecated(since = "3.0", forRemoval = true) +@SuppressWarnings("removal") public @interface PluginAliases { String[] value(); diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginAttribute.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginAttribute.java index b97485c93f..bdd50b7a41 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginAttribute.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginAttribute.java @@ -39,7 +39,8 @@ import org.apache.logging.log4j.util.Strings; @Target({ElementType.PARAMETER, ElementType.FIELD}) @NameProvider(PluginAttributeNameProvider.class) @QualifierType -@Deprecated(since = "3.0.0") +@Deprecated(since = "3.0", forRemoval = true) +@SuppressWarnings("removal") public @interface PluginAttribute { /** diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginBuilderAttribute.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginBuilderAttribute.java index f26113aef5..1255b01c1b 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginBuilderAttribute.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginBuilderAttribute.java @@ -35,7 +35,8 @@ import org.apache.logging.log4j.util.Strings; @Target({ElementType.PARAMETER, ElementType.FIELD}) @NameProvider(PluginBuilderAttributeNameProvider.class) @QualifierType -@Deprecated(since = "3.0.0") +@Deprecated(since = "3.0", forRemoval = true) +@SuppressWarnings("removal") public @interface PluginBuilderAttribute { /** diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginBuilderFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginBuilderFactory.java index 824824eb10..78840eea05 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginBuilderFactory.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginBuilderFactory.java @@ -31,7 +31,8 @@ import org.apache.logging.log4j.plugins.FactoryType; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) @FactoryType -@Deprecated(since = "3.0.0") +@Deprecated(since = "3.0", forRemoval = true) +@SuppressWarnings("removal") public @interface PluginBuilderFactory { // empty } diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginElement.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginElement.java index df91e871c1..112853c494 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginElement.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginElement.java @@ -34,7 +34,8 @@ import org.apache.logging.log4j.plugins.name.NameProvider; @Target({ElementType.PARAMETER, ElementType.FIELD}) @NameProvider(PluginElementNameProvider.class) @QualifierType -@Deprecated(since = "3.0.0") +@Deprecated(since = "3.0", forRemoval = true) +@SuppressWarnings("removal") public @interface PluginElement { /** diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginFactory.java index d19beb1693..5f85245eac 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginFactory.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginFactory.java @@ -35,7 +35,8 @@ import org.apache.logging.log4j.plugins.FactoryType; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) @FactoryType -@Deprecated(since = "3.0.0") +@Deprecated(since = "3.0", forRemoval = true) +@SuppressWarnings("removal") public @interface PluginFactory { // empty } diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginNode.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginNode.java index 12afeb48f1..3de3770315 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginNode.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginNode.java @@ -31,7 +31,8 @@ import org.apache.logging.log4j.plugins.QualifierType; @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.PARAMETER, ElementType.FIELD}) @QualifierType -@Deprecated(since = "3.0.0") +@Deprecated(since = "3.0", forRemoval = true) +@SuppressWarnings("removal") public @interface PluginNode { // empty } diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginValue.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginValue.java index 2dc534865f..d26b535113 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginValue.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginValue.java @@ -37,7 +37,8 @@ import org.apache.logging.log4j.plugins.name.NameProvider; @Target({ElementType.PARAMETER, ElementType.FIELD}) @NameProvider(PluginValueNameProvider.class) @QualifierType -@Deprecated(since = "3.0.0") +@Deprecated(since = "3.0", forRemoval = true) +@SuppressWarnings("removal") public @interface PluginValue { String value(); diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/LegacyAnnotationFactoryResolversPostProcessor.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/LegacyAnnotationFactoryResolversPostProcessor.java index 4fa5ecb119..5ce28359fb 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/LegacyAnnotationFactoryResolversPostProcessor.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/LegacyAnnotationFactoryResolversPostProcessor.java @@ -28,6 +28,7 @@ import org.apache.logging.log4j.plugins.di.spi.FactoryResolversPostProcessor; */ @Ordered(110) @ServiceProvider(value = ConfigurableInstanceFactoryPostProcessor.class, resolution = Resolution.OPTIONAL) +@SuppressWarnings("removal") public class LegacyAnnotationFactoryResolversPostProcessor extends FactoryResolversPostProcessor { public LegacyAnnotationFactoryResolversPostProcessor() { super(List.of( diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/LegacyPluginAttributeFactoryResolver.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/LegacyPluginAttributeFactoryResolver.java index c76fa65956..cd6df3af81 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/LegacyPluginAttributeFactoryResolver.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/LegacyPluginAttributeFactoryResolver.java @@ -27,7 +27,8 @@ import org.apache.logging.log4j.plugins.di.spi.StringValueResolver; import org.apache.logging.log4j.util.Cast; import org.apache.logging.log4j.util.Strings; -@SuppressWarnings("deprecation") +@Deprecated(since = "3.0", forRemoval = true) +@SuppressWarnings("removal") public class LegacyPluginAttributeFactoryResolver<T> extends AbstractAttributeFactoryResolver<T, PluginAttribute> { private static final Map<Type, Function<PluginAttribute, ?>> DEFAULT_VALUE_EXTRACTORS = Map.ofEntries( Map.entry(int.class, PluginAttribute::defaultInt), diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/LegacyPluginBuilderAttributeFactoryResolver.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/LegacyPluginBuilderAttributeFactoryResolver.java index 4bc1b48fc3..17e1fcf12c 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/LegacyPluginBuilderAttributeFactoryResolver.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/LegacyPluginBuilderAttributeFactoryResolver.java @@ -23,7 +23,8 @@ import org.apache.logging.log4j.plugins.convert.TypeConverter; import org.apache.logging.log4j.plugins.di.resolver.AbstractAttributeFactoryResolver; import org.apache.logging.log4j.plugins.di.spi.StringValueResolver; -@SuppressWarnings("deprecation") +@Deprecated(since = "3.0", forRemoval = true) +@SuppressWarnings("removal") public class LegacyPluginBuilderAttributeFactoryResolver<T> extends AbstractAttributeFactoryResolver<T, PluginBuilderAttribute> { public LegacyPluginBuilderAttributeFactoryResolver() { diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/LegacyPluginElementFactoryResolver.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/LegacyPluginElementFactoryResolver.java index 6918e96d48..e16fc2aebc 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/LegacyPluginElementFactoryResolver.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/LegacyPluginElementFactoryResolver.java @@ -19,8 +19,9 @@ package org.apache.logging.log4j.core.config.plugins.util; import org.apache.logging.log4j.core.config.plugins.PluginElement; import org.apache.logging.log4j.plugins.di.resolver.PluginElementFactoryResolver; +@Deprecated(since = "3.0", forRemoval = true) +@SuppressWarnings("removal") public class LegacyPluginElementFactoryResolver<T> extends PluginElementFactoryResolver<T> { - @SuppressWarnings("deprecation") public LegacyPluginElementFactoryResolver() { super(PluginElement.class); } diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/LegacyPluginNodeFactoryResolver.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/LegacyPluginNodeFactoryResolver.java index 13eafa2ca1..6c5a449904 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/LegacyPluginNodeFactoryResolver.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/LegacyPluginNodeFactoryResolver.java @@ -24,7 +24,8 @@ import org.apache.logging.log4j.plugins.di.Key; import org.apache.logging.log4j.plugins.di.spi.FactoryResolver; import org.apache.logging.log4j.plugins.di.spi.ResolvableKey; -@SuppressWarnings("deprecation") +@Deprecated(since = "3.0", forRemoval = true) +@SuppressWarnings("removal") public class LegacyPluginNodeFactoryResolver implements FactoryResolver<Node> { @Override public boolean supportsKey(final Key<?> key) { diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/LegacyPluginValueFactoryResolver.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/LegacyPluginValueFactoryResolver.java index 47f77d756a..5bcb2a6185 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/LegacyPluginValueFactoryResolver.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/LegacyPluginValueFactoryResolver.java @@ -19,8 +19,9 @@ package org.apache.logging.log4j.core.config.plugins.util; import org.apache.logging.log4j.core.config.plugins.PluginValue; import org.apache.logging.log4j.plugins.di.resolver.PluginValueFactoryResolver; +@Deprecated(since = "3.0", forRemoval = true) +@SuppressWarnings("removal") public class LegacyPluginValueFactoryResolver extends PluginValueFactoryResolver { - @SuppressWarnings("deprecation") public LegacyPluginValueFactoryResolver() { super(PluginValue.class); } diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginAliasesProvider.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginAliasesProvider.java index ee6af9c2de..b83d62165f 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginAliasesProvider.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginAliasesProvider.java @@ -21,6 +21,8 @@ import java.util.List; import org.apache.logging.log4j.core.config.plugins.PluginAliases; import org.apache.logging.log4j.plugins.name.AnnotatedElementAliasesProvider; +@Deprecated(since = "3.0", forRemoval = true) +@SuppressWarnings("removal") public class PluginAliasesProvider implements AnnotatedElementAliasesProvider<PluginAliases> { @Override public Collection<String> getAliases(final PluginAliases annotation) { diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginAttributeNameProvider.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginAttributeNameProvider.java index 7a53401566..93c5925cbe 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginAttributeNameProvider.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginAttributeNameProvider.java @@ -21,6 +21,8 @@ import org.apache.logging.log4j.core.config.plugins.PluginAttribute; import org.apache.logging.log4j.plugins.name.AnnotatedElementNameProvider; import org.apache.logging.log4j.util.Strings; +@Deprecated(since = "3.0", forRemoval = true) +@SuppressWarnings("removal") public class PluginAttributeNameProvider implements AnnotatedElementNameProvider<PluginAttribute> { @Override public Optional<String> getSpecifiedName(final PluginAttribute annotation) { diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilderAttributeNameProvider.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilderAttributeNameProvider.java index 9f75a57072..c6488c1560 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilderAttributeNameProvider.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilderAttributeNameProvider.java @@ -21,6 +21,8 @@ import org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute; import org.apache.logging.log4j.plugins.name.AnnotatedElementNameProvider; import org.apache.logging.log4j.util.Strings; +@Deprecated(since = "3.0", forRemoval = true) +@SuppressWarnings("removal") public class PluginBuilderAttributeNameProvider implements AnnotatedElementNameProvider<PluginBuilderAttribute> { @Override public Optional<String> getSpecifiedName(final PluginBuilderAttribute annotation) { diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginElementNameProvider.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginElementNameProvider.java index 45ad4866be..0127ed20d5 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginElementNameProvider.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginElementNameProvider.java @@ -21,6 +21,8 @@ import org.apache.logging.log4j.core.config.plugins.PluginElement; import org.apache.logging.log4j.plugins.name.AnnotatedElementNameProvider; import org.apache.logging.log4j.util.Strings; +@Deprecated(since = "3.0", forRemoval = true) +@SuppressWarnings("removal") public class PluginElementNameProvider implements AnnotatedElementNameProvider<PluginElement> { @Override public Optional<String> getSpecifiedName(final PluginElement annotation) { diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginValueNameProvider.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginValueNameProvider.java index 57efcfe602..7c79508820 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginValueNameProvider.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginValueNameProvider.java @@ -21,7 +21,8 @@ import org.apache.logging.log4j.core.config.plugins.PluginValue; import org.apache.logging.log4j.plugins.name.AnnotatedElementNameProvider; import org.apache.logging.log4j.util.Strings; -@SuppressWarnings("deprecation") +@Deprecated(since = "3.0", forRemoval = true) +@SuppressWarnings("removal") public class PluginValueNameProvider implements AnnotatedElementNameProvider<PluginValue> { @Override public Optional<String> getSpecifiedName(final PluginValue annotation) { diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/AbstractFilterable.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/AbstractFilterable.java index ed45c84665..2e9a6ede76 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/AbstractFilterable.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/AbstractFilterable.java @@ -38,7 +38,16 @@ public abstract class AbstractFilterable extends AbstractLifeCycle implements Fi */ public abstract static class Builder<B extends Builder<B>> { + /** + * If not {@code null}, applies the filter to all events passing through this component + */ private Filter filter; + /** + * A generic list of key/value properties + * <p> + * The meaning of these properties depends on the component. + * </p> + */ private Property[] propertyArray; public B asBuilder() {
