Skip to content

Commit a31eb66

Browse files
committed
Fixup compilation warnings
Note that this will only work with newer versions of Log4j.
1 parent 24aff1b commit a31eb66

File tree

3 files changed

+37
-26
lines changed

3 files changed

+37
-26
lines changed

src/main/java/net/minecrell/terminalconsole/TerminalConsoleAppender.java

+29-26
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,9 @@
3030
import org.apache.logging.log4j.core.Layout;
3131
import org.apache.logging.log4j.core.LogEvent;
3232
import org.apache.logging.log4j.core.appender.AbstractAppender;
33+
import org.apache.logging.log4j.core.config.Property;
3334
import org.apache.logging.log4j.core.config.plugins.Plugin;
34-
import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
35-
import org.apache.logging.log4j.core.config.plugins.PluginElement;
36-
import org.apache.logging.log4j.core.config.plugins.PluginFactory;
37-
import org.apache.logging.log4j.core.config.plugins.validation.constraints.Required;
38-
import org.apache.logging.log4j.core.layout.PatternLayout;
35+
import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory;
3936
import org.apache.logging.log4j.util.PropertiesUtil;
4037
import org.checkerframework.checker.nullness.qual.Nullable;
4138
import org.jline.reader.LineReader;
@@ -90,6 +87,9 @@
9087
@Plugin(name = TerminalConsoleAppender.PLUGIN_NAME, category = Core.CATEGORY_NAME, elementType = Appender.ELEMENT_TYPE, printObject = true)
9188
public final class TerminalConsoleAppender extends AbstractAppender {
9289

90+
/**
91+
* The name of the appender in the configuration.
92+
*/
9393
public static final String PLUGIN_NAME = "TerminalConsole";
9494

9595
/**
@@ -201,9 +201,11 @@ public static boolean isAnsiSupported() {
201201
* @param ignoreExceptions If {@code true} exceptions encountered when
202202
* appending events are logged, otherwise they are propagated to the
203203
* caller
204+
* @param properties Optional properties
204205
*/
205-
protected TerminalConsoleAppender(String name, Filter filter, Layout<? extends Serializable> layout, boolean ignoreExceptions) {
206-
super(name, filter, layout, ignoreExceptions);
206+
protected TerminalConsoleAppender(String name, Filter filter, Layout<? extends Serializable> layout,
207+
boolean ignoreExceptions, Property[] properties) {
208+
super(name, filter, layout, ignoreExceptions, properties);
207209
if (!initialized)
208210
initializeTerminal();
209211
}
@@ -291,28 +293,29 @@ public synchronized static void close() throws IOException {
291293
}
292294

293295
/**
294-
* Creates a new {@link TerminalConsoleAppender}.
296+
* Creates a new {@link Builder} for {@link TerminalConsoleAppender}.
295297
*
296-
* @param name The name of the appender
297-
* @param filter The filter, can be {@code null}
298-
* @param layout The layout, can be {@code null}
299-
* @param ignoreExceptions If {@code true} exceptions encountered when
300-
* appending events are logged, otherwise they are propagated to the
301-
* caller
302-
* @return The new appender
298+
* @param <B> The type to build
299+
* @return The new builder
303300
*/
304-
@PluginFactory
305-
public static TerminalConsoleAppender createAppender(
306-
@Required(message = "No name provided for TerminalConsoleAppender") @PluginAttribute("name") String name,
307-
@PluginElement("Filter") Filter filter,
308-
@PluginElement("Layout") @Nullable Layout<? extends Serializable> layout,
309-
@PluginAttribute(value = "ignoreExceptions", defaultBoolean = true) boolean ignoreExceptions) {
310-
311-
if (layout == null) {
312-
layout = PatternLayout.createDefaultLayout();
313-
}
301+
@PluginBuilderFactory
302+
public static <B extends Builder<B>> B newBuilder() {
303+
return new Builder<B>().asBuilder();
304+
}
314305

315-
return new TerminalConsoleAppender(name, filter, layout, ignoreExceptions);
306+
/**
307+
* Builds {@link TerminalConsoleAppender} instances.
308+
*
309+
* @param <B> The type to build
310+
*/
311+
public static class Builder<B extends Builder<B>> extends AbstractAppender.Builder<B>
312+
implements org.apache.logging.log4j.core.util.Builder<TerminalConsoleAppender> {
313+
314+
@Override
315+
public TerminalConsoleAppender build() {
316+
return new TerminalConsoleAppender(getName(), getFilter(), getOrCreateLayout(),
317+
isIgnoreExceptions(), getPropertyArray());
318+
}
316319
}
317320

318321
private static @Nullable Boolean getOptionalBooleanProperty(String name) {

src/main/java/net/minecrell/terminalconsole/package-info.java

+3
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,8 @@
2222
* THE SOFTWARE.
2323
*/
2424

25+
/**
26+
* Main package of TerminalConsoleAppender.
27+
*/
2528
@org.checkerframework.framework.qual.DefaultQualifier(org.checkerframework.checker.nullness.qual.NonNull.class)
2629
package net.minecrell.terminalconsole;

src/main/java/net/minecrell/terminalconsole/util/package-info.java

+5
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,10 @@
2222
* THE SOFTWARE.
2323
*/
2424

25+
/**
26+
* Contains some extra utilities that are not strictly related to
27+
* TerminalConsoleAppender. Should be moved to a separate project
28+
* or submitted upstream into Log4j most likely.
29+
*/
2530
@org.checkerframework.framework.qual.DefaultQualifier(org.checkerframework.checker.nullness.qual.NonNull.class)
2631
package net.minecrell.terminalconsole.util;

0 commit comments

Comments
 (0)