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() {


Reply via email to