Skip to content

Commit ed9f711

Browse files
committed
Deprecate legacy annotations and remove their usage
We deprecate for removal the old `o.a.l.l.c.plugins` annotations and remove their usages.
1 parent b5dfd57 commit ed9f711

33 files changed

+131
-49
lines changed

log4j-1.2-api/src/main/java/org/apache/log4j/layout/Log4j1SyslogLayout.java

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,14 @@
2626
import org.apache.logging.log4j.core.LogEvent;
2727
import org.apache.logging.log4j.core.StringLayout;
2828
import org.apache.logging.log4j.core.config.Configuration;
29-
import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory;
3029
import org.apache.logging.log4j.core.layout.AbstractStringLayout;
3130
import org.apache.logging.log4j.core.net.Facility;
3231
import org.apache.logging.log4j.core.net.Priority;
3332
import org.apache.logging.log4j.core.pattern.DatePatternConverter;
3433
import org.apache.logging.log4j.core.pattern.LogEventPatternConverter;
3534
import org.apache.logging.log4j.core.util.NetUtils;
3635
import org.apache.logging.log4j.plugins.Configurable;
36+
import org.apache.logging.log4j.plugins.Factory;
3737
import org.apache.logging.log4j.plugins.Plugin;
3838
import org.apache.logging.log4j.plugins.PluginBuilderAttribute;
3939
import org.apache.logging.log4j.plugins.PluginElement;
@@ -58,10 +58,9 @@ public final class Log4j1SyslogLayout extends AbstractStringLayout {
5858
* <li>escapeNL: Pattern to use for replacing newlines.</li>
5959
* <li>charset: The character set.</li>
6060
* </ul>
61-
* @param <B> the builder type
6261
*/
63-
public static class Builder<B extends Builder<B>> extends AbstractStringLayout.Builder<B>
64-
implements org.apache.logging.log4j.core.util.Builder<Log4j1SyslogLayout> {
62+
public static class Builder extends AbstractStringLayout.Builder<Builder>
63+
implements org.apache.logging.log4j.plugins.util.Builder<Log4j1SyslogLayout> {
6564

6665
public Builder() {
6766
setCharset(StandardCharsets.UTF_8);
@@ -105,30 +104,30 @@ public Layout getMessageLayout() {
105104
return messageLayout;
106105
}
107106

108-
public B setFacility(final Facility facility) {
107+
public Builder setFacility(final Facility facility) {
109108
this.facility = facility;
110109
return asBuilder();
111110
}
112111

113-
public B setFacilityPrinting(final boolean facilityPrinting) {
112+
public Builder setFacilityPrinting(final boolean facilityPrinting) {
114113
this.facilityPrinting = facilityPrinting;
115114
return asBuilder();
116115
}
117116

118-
public B setHeader(final boolean header) {
117+
public Builder setHeader(final boolean header) {
119118
this.header = header;
120119
return asBuilder();
121120
}
122121

123-
public B setMessageLayout(final Layout messageLayout) {
122+
public Builder setMessageLayout(final Layout messageLayout) {
124123
this.messageLayout = messageLayout;
125124
return asBuilder();
126125
}
127126
}
128127

129-
@PluginBuilderFactory
130-
public static <B extends Builder<B>> B newBuilder() {
131-
return new Builder<B>().asBuilder();
128+
@Factory
129+
public static Builder newBuilder() {
130+
return new Builder().asBuilder();
132131
}
133132

134133
/**

log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/appender/FailOnceAppender.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@
2424
import org.apache.logging.log4j.core.LogEvent;
2525
import org.apache.logging.log4j.core.appender.AbstractAppender;
2626
import org.apache.logging.log4j.core.config.Property;
27-
import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
28-
import org.apache.logging.log4j.core.config.plugins.PluginFactory;
2927
import org.apache.logging.log4j.core.util.Throwables;
3028
import org.apache.logging.log4j.plugins.Configurable;
29+
import org.apache.logging.log4j.plugins.Factory;
3130
import org.apache.logging.log4j.plugins.Plugin;
31+
import org.apache.logging.log4j.plugins.PluginAttribute;
3232
import org.apache.logging.log4j.plugins.validation.constraints.Required;
3333

3434
/**
@@ -72,7 +72,7 @@ public synchronized List<LogEvent> drainEvents() {
7272
return oldEvents;
7373
}
7474

75-
@PluginFactory
75+
@Factory
7676
public static FailOnceAppender createAppender(
7777
@PluginAttribute("name") @Required(message = "A name for the Appender must be specified") final String name,
7878
@PluginAttribute("throwableClassName") final String throwableClassName) {

log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/ReconfigurationDeadlockTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,12 @@
3232
import org.apache.logging.log4j.core.Layout;
3333
import org.apache.logging.log4j.core.LogEvent;
3434
import org.apache.logging.log4j.core.appender.AbstractAppender;
35-
import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
36-
import org.apache.logging.log4j.core.config.plugins.PluginElement;
37-
import org.apache.logging.log4j.core.config.plugins.PluginFactory;
3835
import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
3936
import org.apache.logging.log4j.plugins.Configurable;
37+
import org.apache.logging.log4j.plugins.Factory;
4038
import org.apache.logging.log4j.plugins.Plugin;
39+
import org.apache.logging.log4j.plugins.PluginAttribute;
40+
import org.apache.logging.log4j.plugins.PluginElement;
4141
import org.apache.logging.log4j.plugins.validation.constraints.Required;
4242
import org.junit.jupiter.api.AfterEach;
4343
import org.junit.jupiter.api.Assertions;
@@ -138,7 +138,7 @@ private TestAppender(
138138
this.logger = LogManager.getRootLogger();
139139
}
140140

141-
@PluginFactory
141+
@Factory
142142
public static TestAppender createAppender(
143143
@PluginAttribute("name") @Required(message = "A name for the Appender must be specified")
144144
final String name,

log4j-core/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,11 @@
112112
<artifactId>log4j-plugin-processor</artifactId>
113113
<version>${project.version}</version>
114114
</path>
115+
<path>
116+
<groupId>org.apache.logging.log4j</groupId>
117+
<artifactId>log4j-docgen</artifactId>
118+
<version>0.8.0-SNAPSHOT</version>
119+
</path>
115120
</annotationProcessorPaths>
116121
</configuration>
117122
</plugin>

log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractAppender.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,26 @@ public abstract class AbstractAppender extends AbstractFilterable implements App
4747
*/
4848
public abstract static class Builder<B extends Builder<B>> extends AbstractFilterable.Builder<B> {
4949

50+
/**
51+
* Determines whether to propagate logging exceptions
52+
* <p>
53+
* If set to {@code true} (default), exceptions that occur during logging will appear in the status logger.
54+
* </p>
55+
* <p>
56+
* If set to {@code false}, exceptions will be propagates to the caller.
57+
* </p>
58+
*/
5059
@PluginBuilderAttribute
5160
private boolean ignoreExceptions = true;
52-
61+
/**
62+
* Formats the log events
63+
*/
5364
private Layout layout;
65+
/**
66+
* Name of the appender to use in references
67+
*/
5468
private String name;
69+
5570
private Configuration configuration;
5671

5772
public String getName() {

log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
*/
1717
package org.apache.logging.log4j.core.appender;
1818

19+
import java.io.OutputStream;
1920
import java.util.concurrent.TimeUnit;
2021
import org.apache.logging.log4j.core.Filter;
2122
import org.apache.logging.log4j.core.Layout;
@@ -38,12 +39,34 @@ public abstract class AbstractOutputStreamAppender<M extends OutputStreamManager
3839
*/
3940
public abstract static class Builder<B extends Builder<B>> extends AbstractAppender.Builder<B> {
4041

42+
/**
43+
* Determines whether to use a buffered {@code OutputStream}
44+
* <p>
45+
* If set to {@code true} (default) the appender will buffer messages before sending them. This attribute is
46+
* ignored if {@code immediateFlush} is set to {@code true}.
47+
* </p>
48+
*/
4149
@PluginBuilderAttribute
4250
private boolean bufferedIo = true;
4351

52+
/**
53+
* Size of the buffer in bytes
54+
*/
4455
@PluginBuilderAttribute
4556
private int bufferSize = Constants.ENCODER_BYTE_BUFFER_SIZE;
4657

58+
/**
59+
* Flushes the underlying {@code OutputStream} after each event
60+
* <p>
61+
* The effects of this setting depend on the output stream implementation (see {@link OutputStream#flush()}.
62+
* In the case of files, for example, setting this attribute to {@code true}, guarantees that all bytes
63+
* written are passed to the operating system, but it <strong>does not</strong> guarantee that they are
64+
* actually written to a physical device.
65+
* </p>
66+
* <p>
67+
* Setting this to {@code true} automatically disables buffering.
68+
* </p>
69+
*/
4770
@PluginBuilderAttribute
4871
private boolean immediateFlush = true;
4972

log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@
3838
import org.apache.logging.log4j.core.config.Configuration;
3939
import org.apache.logging.log4j.core.config.ConfigurationException;
4040
import org.apache.logging.log4j.core.config.Property;
41-
import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory;
4241
import org.apache.logging.log4j.core.config.plugins.PluginConfiguration;
4342
import org.apache.logging.log4j.core.filter.AbstractFilterable;
4443
import org.apache.logging.log4j.plugins.Configurable;
44+
import org.apache.logging.log4j.plugins.Factory;
4545
import org.apache.logging.log4j.plugins.Plugin;
4646
import org.apache.logging.log4j.plugins.PluginAliases;
4747
import org.apache.logging.log4j.plugins.PluginBuilderAttribute;
@@ -252,13 +252,13 @@ private void logToErrorAppenderIfNecessary(final boolean appendSuccessful, final
252252
}
253253
}
254254

255-
@PluginBuilderFactory
255+
@Factory
256256
public static Builder newBuilder() {
257257
return new Builder();
258258
}
259259

260-
public static class Builder<B extends Builder<B>> extends AbstractFilterable.Builder<B>
261-
implements org.apache.logging.log4j.core.util.Builder<AsyncAppender> {
260+
public static class Builder extends AbstractFilterable.Builder<Builder>
261+
implements org.apache.logging.log4j.plugins.util.Builder<AsyncAppender> {
262262

263263
@PluginElement("AppenderRef")
264264
@Required(message = "No appender references provided to AsyncAppender")
@@ -277,6 +277,9 @@ public static class Builder<B extends Builder<B>> extends AbstractFilterable.Bui
277277
@PluginBuilderAttribute
278278
private int bufferSize = DEFAULT_QUEUE_SIZE;
279279

280+
/**
281+
* Name of the appender to use in references
282+
*/
280283
@PluginBuilderAttribute
281284
@Required(message = "No name provided for AsyncAppender")
282285
private String name;

log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FailoverAppender.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,8 +181,13 @@ public String toString() {
181181
* @param retryIntervalSeconds The retry interval in seconds.
182182
* @param config The current Configuration (passed by the Configuration when the appender is created).
183183
* @param filter A Filter (optional).
184-
* @param ignoreExceptions If {@code "true"} (default) exceptions encountered when appending events are logged; otherwise
185-
* they are propagated to the caller.
184+
* @param ignoreExceptions Determines whether to propagate logging exceptions
185+
* <p>
186+
* If set to {@code true} (default), exceptions that occur during logging will appear in the status logger.
187+
* </p>
188+
* <p>
189+
* If set to {@code false}, exceptions will be propagates to the caller.
190+
* </p>
186191
* @return The FailoverAppender that was created.
187192
*/
188193
@PluginFactory

log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/ClassArbiter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
package org.apache.logging.log4j.core.config.arbiters;
1818

1919
import org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute;
20-
import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory;
2120
import org.apache.logging.log4j.plugins.Configurable;
21+
import org.apache.logging.log4j.plugins.Factory;
2222
import org.apache.logging.log4j.plugins.Plugin;
2323
import org.apache.logging.log4j.util.LoaderUtil;
2424

@@ -40,7 +40,7 @@ public boolean isCondition() {
4040
return LoaderUtil.isClassAvailable(className);
4141
}
4242

43-
@PluginBuilderFactory
43+
@Factory
4444
public static ClassArbiter.Builder newBuilder() {
4545
return new ClassArbiter.Builder();
4646
}

log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/DefaultArbiter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
*/
1717
package org.apache.logging.log4j.core.config.arbiters;
1818

19-
import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory;
2019
import org.apache.logging.log4j.plugins.Configurable;
20+
import org.apache.logging.log4j.plugins.Factory;
2121
import org.apache.logging.log4j.plugins.Plugin;
2222

2323
/**
@@ -35,7 +35,7 @@ public boolean isCondition() {
3535
return true;
3636
}
3737

38-
@PluginBuilderFactory
38+
@Factory
3939
public static Builder newBuilder() {
4040
return new Builder();
4141
}

0 commit comments

Comments
 (0)