Repository: logging-log4j2
Updated Branches:
  refs/heads/master aa4bec184 -> ce29cb3f9


[LOG4J2-2491] Allow all Appenders to optionally carry a Property array.


Allow all Appenders to optionally carry a Property array. This allows
3rd party tooling to read and write properties for their own use.

This refactoring pulls up the properties instance variable and methods
from org.apache.logging.log4j.kafka.appender.KafkaAppender.Builder to
org.apache.logging.log4j.core.filter.AbstractFilterable.Builder.

Also deprecate withFilter() in favor of setFilter().

Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/ce29cb3f
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/ce29cb3f
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/ce29cb3f

Branch: refs/heads/master
Commit: ce29cb3f9632c72325dd6db0bae01b72d755081c
Parents: aa4bec1
Author: Gary Gregory <[email protected]>
Authored: Mon Oct 29 11:18:29 2018 -0600
Committer: Gary Gregory <[email protected]>
Committed: Mon Oct 29 11:18:29 2018 -0600

----------------------------------------------------------------------
 .../log4j/core/appender/FileAppender.java       | 15 ++--
 .../core/appender/MemoryMappedFileAppender.java | 11 ++-
 .../core/appender/RandomAccessFileAppender.java | 13 ++-
 .../core/appender/RollingFileAppender.java      | 17 ++--
 .../RollingRandomAccessFileAppender.java        |  3 +-
 .../log4j/core/appender/SocketAppender.java     |  7 +-
 .../log4j/core/appender/SyslogAppender.java     | 21 +++--
 .../log4j/core/filter/AbstractFilterable.java   | 89 ++++++++++++--------
 .../log4j/jdbc/appender/JdbcAppender.java       | 13 ++-
 .../log4j/kafka/appender/KafkaAppender.java     | 13 ---
 .../log4j/web/appender/ServletAppender.java     |  3 +-
 11 files changed, 102 insertions(+), 103 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ce29cb3f/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileAppender.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileAppender.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileAppender.java
index 8e5736f..034fb15 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileAppender.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileAppender.java
@@ -226,14 +226,13 @@ public final class FileAppender extends 
AbstractOutputStreamAppender<FileManager
             final String advertiseUri,
             final Configuration config) {
         return FileAppender.<B>newBuilder()
-            .withAdvertise(Boolean.parseBoolean(advertise))
-            .withAdvertiseUri(advertiseUri)
-            .withAppend(Booleans.parseBoolean(append, true))
-            .withBufferedIo(Booleans.parseBoolean(bufferedIo, true))
-            .withBufferSize(Integers.parseInt(bufferSizeStr, 
DEFAULT_BUFFER_SIZE))
-            .setConfiguration(config)
-            .withFileName(fileName)
-            .withFilter(filter)
+        .withAdvertise(Boolean.parseBoolean(advertise))
+        .withAdvertiseUri(advertiseUri)
+        .withAppend(Booleans.parseBoolean(append, true))
+        .withBufferedIo(Booleans.parseBoolean(bufferedIo, true))
+        .withBufferSize(Integers.parseInt(bufferSizeStr, DEFAULT_BUFFER_SIZE))
+        .setConfiguration(config)
+        .withFileName(fileName).setFilter(filter)
             .withIgnoreExceptions(Booleans.parseBoolean(ignoreExceptions, 
true))
             .withImmediateFlush(Booleans.parseBoolean(immediateFlush, true))
             .withLayout(layout)

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ce29cb3f/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileAppender.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileAppender.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileAppender.java
index 17f64ee..a6162bd 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileAppender.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileAppender.java
@@ -233,12 +233,11 @@ public final class MemoryMappedFileAppender extends 
AbstractOutputStreamAppender
 
         // @formatter:off
         return MemoryMappedFileAppender.<B>newBuilder()
-            .setAdvertise(isAdvertise)
-            .setAdvertiseURI(advertiseURI)
-            .setAppend(isAppend)
-            .setConfiguration(config)
-            .setFileName(fileName)
-            .withFilter(filter)
+        .setAdvertise(isAdvertise)
+        .setAdvertiseURI(advertiseURI)
+        .setAppend(isAppend)
+        .setConfiguration(config)
+        .setFileName(fileName).setFilter(filter)
             .withIgnoreExceptions(ignoreExceptions)
             .withImmediateFlush(isImmediateFlush)
             .withLayout(layout)

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ce29cb3f/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java
index d7ec920..0ea8d99 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java
@@ -222,13 +222,12 @@ public final class RandomAccessFileAppender extends 
AbstractOutputStreamAppender
         final int bufferSize = Integers.parseInt(bufferSizeStr, 
RandomAccessFileManager.DEFAULT_BUFFER_SIZE);
 
         return RandomAccessFileAppender.<B>newBuilder()
-            .setAdvertise(isAdvertise)
-            .setAdvertiseURI(advertiseURI)
-            .setAppend(isAppend)
-            .withBufferSize(bufferSize)
-            .setConfiguration(configuration)
-            .setFileName(fileName)
-            .withFilter(filter)
+        .setAdvertise(isAdvertise)
+        .setAdvertiseURI(advertiseURI)
+        .setAppend(isAppend)
+        .withBufferSize(bufferSize)
+        .setConfiguration(configuration)
+        .setFileName(fileName).setFilter(filter)
             .withIgnoreExceptions(ignoreExceptions)
             .withImmediateFlush(isFlush)
             .withLayout(layout)

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ce29cb3f/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingFileAppender.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingFileAppender.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingFileAppender.java
index def63a4..cb9303a 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingFileAppender.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingFileAppender.java
@@ -378,15 +378,14 @@ public final class RollingFileAppender extends 
AbstractOutputStreamAppender<Roll
         final int bufferSize = Integers.parseInt(bufferSizeStr, 
DEFAULT_BUFFER_SIZE);
         // @formatter:off
         return RollingFileAppender.<B>newBuilder()
-                .withAdvertise(Boolean.parseBoolean(advertise))
-                .withAdvertiseUri(advertiseUri)
-                .withAppend(Booleans.parseBoolean(append, true))
-                .withBufferedIo(Booleans.parseBoolean(bufferedIO, true))
-                .withBufferSize(bufferSize)
-                .setConfiguration(config)
-                .withFileName(fileName)
-                .withFilePattern(filePattern)
-                .withFilter(filter)
+        .withAdvertise(Boolean.parseBoolean(advertise))
+        .withAdvertiseUri(advertiseUri)
+        .withAppend(Booleans.parseBoolean(append, true))
+        .withBufferedIo(Booleans.parseBoolean(bufferedIO, true))
+        .withBufferSize(bufferSize)
+        .setConfiguration(config)
+        .withFileName(fileName)
+        .withFilePattern(filePattern).setFilter(filter)
                 .withIgnoreExceptions(Booleans.parseBoolean(ignore, true))
                 .withImmediateFlush(Booleans.parseBoolean(immediateFlush, 
true))
                 .withLayout(layout)

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ce29cb3f/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java
index f43ccd0..a3d8611 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java
@@ -334,8 +334,7 @@ public final class RollingRandomAccessFileAppender extends 
AbstractOutputStreamA
            .withBufferSize(bufferSize)
            .setConfiguration(configuration)
            .withFileName(fileName)
-           .withFilePattern(filePattern)
-           .withFilter(filter)
+           .withFilePattern(filePattern).setFilter(filter)
            .withIgnoreExceptions(isIgnoreExceptions)
            .withImmediateFlush(isImmediateFlush)
            .withLayout(layout)

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ce29cb3f/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SocketAppender.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SocketAppender.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SocketAppender.java
index b1d167c..ce4d254 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SocketAppender.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SocketAppender.java
@@ -317,10 +317,9 @@ public class SocketAppender extends 
AbstractOutputStreamAppender<AbstractSocketM
 
         // @formatter:off
         return newBuilder()
-            .withAdvertise(advertise)
-            .setConfiguration(configuration)
-            .withConnectTimeoutMillis(connectTimeoutMillis)
-            .withFilter(filter)
+        .withAdvertise(advertise)
+        .setConfiguration(configuration)
+        .withConnectTimeoutMillis(connectTimeoutMillis).setFilter(filter)
             .withHost(host)
             .withIgnoreExceptions(ignoreExceptions)
             .withImmediateFail(immediateFail)

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ce29cb3f/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SyslogAppender.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SyslogAppender.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SyslogAppender.java
index 26b435f..2b14598 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SyslogAppender.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SyslogAppender.java
@@ -387,17 +387,16 @@ public class SyslogAppender extends SocketAppender {
 
         // @formatter:off
         return SyslogAppender.<B>newSyslogAppenderBuilder()
-                .withHost(host)
-                .withPort(port)
-                .withProtocol(EnglishEnums.valueOf(Protocol.class, 
protocolStr))
-                .withSslConfiguration(sslConfiguration)
-                .withConnectTimeoutMillis(connectTimeoutMillis)
-                .withReconnectDelayMillis(reconnectDelayMillis)
-                .withImmediateFail(immediateFail)
-                .withName(appName)
-                .withImmediateFlush(immediateFlush)
-                .withIgnoreExceptions(ignoreExceptions)
-                .withFilter(filter)
+        .withHost(host)
+        .withPort(port)
+        .withProtocol(EnglishEnums.valueOf(Protocol.class, protocolStr))
+        .withSslConfiguration(sslConfiguration)
+        .withConnectTimeoutMillis(connectTimeoutMillis)
+        .withReconnectDelayMillis(reconnectDelayMillis)
+        .withImmediateFail(immediateFail)
+        .withName(appName)
+        .withImmediateFlush(immediateFlush)
+        .withIgnoreExceptions(ignoreExceptions).setFilter(filter)
                 .setConfiguration(configuration)
                 .withAdvertise(advertise)
                 .setFacility(facility)

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ce29cb3f/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/AbstractFilterable.java
----------------------------------------------------------------------
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 3bd20ce..9ef6cce 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
@@ -23,6 +23,7 @@ import org.apache.logging.log4j.core.AbstractLifeCycle;
 import org.apache.logging.log4j.core.Filter;
 import org.apache.logging.log4j.core.LifeCycle2;
 import org.apache.logging.log4j.core.LogEvent;
+import org.apache.logging.log4j.core.config.Property;
 import org.apache.logging.log4j.core.config.plugins.PluginElement;
 
 /**
@@ -40,20 +41,40 @@ public abstract class AbstractFilterable extends 
AbstractLifeCycle implements Fi
         @PluginElement("Filter")
         private Filter filter;
 
-        public Filter getFilter() {
-            return filter;
-        }
+        @PluginElement("Properties")
+        protected Property[] properties;
 
         @SuppressWarnings("unchecked")
         public B asBuilder() {
             return (B) this;
         }
 
-        public B withFilter(final Filter filter) {
+        public Filter getFilter() {
+            return filter;
+        }
+
+        public Property[] getProperties() {
+            return properties;
+        }
+
+        public B setFilter(final Filter filter) {
             this.filter = filter;
             return asBuilder();
         }
 
+        public B setProperties(final Property[] properties) {
+            this.properties = properties;
+            return asBuilder();
+        }
+
+        /**
+         * @deprecated Use {@link #setFilter(Filter)}.
+         */
+        @Deprecated
+        public B withFilter(final Filter filter) {
+            return setFilter(filter);
+        }
+
     }
 
     /**
@@ -61,20 +82,11 @@ public abstract class AbstractFilterable extends 
AbstractLifeCycle implements Fi
      */
     private volatile Filter filter;
 
-    protected AbstractFilterable(final Filter filter) {
-        this.filter = filter;
-    }
-
     protected AbstractFilterable() {
     }
 
-    /**
-     * Returns the Filter.
-     * @return the Filter or null.
-     */
-    @Override
-    public Filter getFilter() {
-        return filter;
+    protected AbstractFilterable(final Filter filter) {
+        this.filter = filter;
     }
 
     /**
@@ -97,6 +109,34 @@ public abstract class AbstractFilterable extends 
AbstractLifeCycle implements Fi
     }
 
     /**
+     * Returns the Filter.
+     * @return the Filter or null.
+     */
+    @Override
+    public Filter getFilter() {
+        return filter;
+    }
+
+    /**
+     * Determines if a Filter is present.
+     * @return false if no Filter is present.
+     */
+    @Override
+    public boolean hasFilter() {
+        return filter != null;
+    }
+
+    /**
+     * Determine if the LogEvent should be processed or ignored.
+     * @param event The LogEvent.
+     * @return true if the LogEvent should be processed.
+     */
+    @Override
+    public boolean isFiltered(final LogEvent event) {
+        return filter != null && filter.filter(event) == Filter.Result.DENY;
+    }
+
+    /**
      * Removes a Filter.
      * @param filter The Filter to remove.
      */
@@ -122,15 +162,6 @@ public abstract class AbstractFilterable extends 
AbstractLifeCycle implements Fi
     }
 
     /**
-     * Determines if a Filter is present.
-     * @return false if no Filter is present.
-     */
-    @Override
-    public boolean hasFilter() {
-        return filter != null;
-    }
-
-    /**
      * Make the Filter available for use.
      */
     @Override
@@ -172,14 +203,4 @@ public abstract class AbstractFilterable extends 
AbstractLifeCycle implements Fi
         return stopped;
     }
 
-    /**
-     * Determine if the LogEvent should be processed or ignored.
-     * @param event The LogEvent.
-     * @return true if the LogEvent should be processed.
-     */
-    @Override
-    public boolean isFiltered(final LogEvent event) {
-        return filter != null && filter.filter(event) == Filter.Result.DENY;
-    }
-
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ce29cb3f/log4j-jdbc/src/main/java/org/apache/logging/log4j/jdbc/appender/JdbcAppender.java
----------------------------------------------------------------------
diff --git 
a/log4j-jdbc/src/main/java/org/apache/logging/log4j/jdbc/appender/JdbcAppender.java
 
b/log4j-jdbc/src/main/java/org/apache/logging/log4j/jdbc/appender/JdbcAppender.java
index d68556c..0cc2f2a 100644
--- 
a/log4j-jdbc/src/main/java/org/apache/logging/log4j/jdbc/appender/JdbcAppender.java
+++ 
b/log4j-jdbc/src/main/java/org/apache/logging/log4j/jdbc/appender/JdbcAppender.java
@@ -86,13 +86,12 @@ public final class JdbcAppender extends 
AbstractDatabaseAppender<JdbcDatabaseMan
         final boolean ignoreExceptions = Booleans.parseBoolean(ignore, true);
 
         return JdbcAppender.<B>newBuilder()
-            .setBufferSize(bufferSizeInt)
-            .setColumnConfigs(columnConfigs)
-            .setConnectionSource(connectionSource)
-            .setTableName(tableName)
-            .withName(name)
-            .withIgnoreExceptions(ignoreExceptions)
-            .withFilter(filter)
+        .setBufferSize(bufferSizeInt)
+        .setColumnConfigs(columnConfigs)
+        .setConnectionSource(connectionSource)
+        .setTableName(tableName)
+        .withName(name)
+        .withIgnoreExceptions(ignoreExceptions).setFilter(filter)
             .build();
     }
 

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ce29cb3f/log4j-kafka/src/main/java/org/apache/logging/log4j/kafka/appender/KafkaAppender.java
----------------------------------------------------------------------
diff --git 
a/log4j-kafka/src/main/java/org/apache/logging/log4j/kafka/appender/KafkaAppender.java
 
b/log4j-kafka/src/main/java/org/apache/logging/log4j/kafka/appender/KafkaAppender.java
index 687a9e7..b5c9939 100644
--- 
a/log4j-kafka/src/main/java/org/apache/logging/log4j/kafka/appender/KafkaAppender.java
+++ 
b/log4j-kafka/src/main/java/org/apache/logging/log4j/kafka/appender/KafkaAppender.java
@@ -35,7 +35,6 @@ import org.apache.logging.log4j.core.config.Property;
 import org.apache.logging.log4j.core.config.plugins.Plugin;
 import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
 import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory;
-import org.apache.logging.log4j.core.config.plugins.PluginElement;
 import org.apache.logging.log4j.core.layout.SerializedLayout;
 
 /**
@@ -60,9 +59,6 @@ public final class KafkaAppender extends AbstractAppender {
         @PluginAttribute(value = "syncSend", defaultBoolean = true)
         private boolean syncSend;
 
-        @PluginElement("Properties") 
-        private Property[] properties;
-
         @SuppressWarnings("resource")
         @Override
         public KafkaAppender build() {
@@ -84,10 +80,6 @@ public final class KafkaAppender extends AbstractAppender {
             return syncSend;
         }
 
-        public Property[] getProperties() {
-            return properties;
-        }
-
         public B setTopic(final String topic) {
             this.topic = topic;
             return asBuilder();
@@ -97,11 +89,6 @@ public final class KafkaAppender extends AbstractAppender {
             this.syncSend = syncSend;
             return asBuilder();
         }
-
-        public B setProperties(final Property[] properties) {
-            this.properties = properties;
-            return asBuilder();
-        }
     }
     
     @Deprecated

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ce29cb3f/log4j-web/src/main/java/org/apache/logging/log4j/web/appender/ServletAppender.java
----------------------------------------------------------------------
diff --git 
a/log4j-web/src/main/java/org/apache/logging/log4j/web/appender/ServletAppender.java
 
b/log4j-web/src/main/java/org/apache/logging/log4j/web/appender/ServletAppender.java
index b7e30c2..6dace71 100644
--- 
a/log4j-web/src/main/java/org/apache/logging/log4j/web/appender/ServletAppender.java
+++ 
b/log4j-web/src/main/java/org/apache/logging/log4j/web/appender/ServletAppender.java
@@ -121,8 +121,7 @@ public class ServletAppender extends AbstractAppender {
     public static ServletAppender createAppender(final Layout<? extends 
Serializable> layout, final Filter filter,
             final String name, final boolean ignoreExceptions) {
         // @formatter:off
-       return newBuilder()
-                       .withFilter(filter)
+       return newBuilder().setFilter(filter)
                        .withIgnoreExceptions(ignoreExceptions)
                        .withLayout(layout)
                        .withName(name)

Reply via email to