You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by pk...@apache.org on 2024/02/12 13:09:23 UTC
(logging-log4j2) branch fix/plugin-documentation created (now ed9f7117a7)
This is an automated email from the ASF dual-hosted git repository.
pkarwasz pushed a change to branch fix/plugin-documentation
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
at ed9f7117a7 Deprecate legacy annotations and remove their usage
This branch includes the following new commits:
new ed9f7117a7 Deprecate legacy annotations and remove their usage
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(logging-log4j2) 01/01: Deprecate legacy annotations and remove their usage
Posted by pk...@apache.org.
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 <pi...@karwasz.org>
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() {