You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gg...@apache.org on 2022/02/20 18:07:03 UTC
[logging-log4j2] branch release-2.x updated: Internal refactoring.
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
The following commit(s) were added to refs/heads/release-2.x by this push:
new 7254541 Internal refactoring.
7254541 is described below
commit 7254541045be96046cb494e2472f5a11a0b5e228
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Feb 20 13:07:00 2022 -0500
Internal refactoring.
---
.../org/apache/log4j/builders/AbstractBuilder.java | 4 +-
.../java/org/apache/log4j/builders/Builder.java | 4 +-
.../org/apache/log4j/builders/BuilderManager.java | 70 +++++++---------------
.../{appender/AppenderBuilder.java => Parser.java} | 29 ++++++---
.../log4j/builders/appender/AppenderBuilder.java | 4 +-
.../builders/appender/RewriteAppenderBuilder.java | 3 +-
.../builders/filter/DenyAllFilterBuilder.java | 4 +-
.../log4j/builders/filter/FilterBuilder.java | 13 +---
.../builders/filter/LevelMatchFilterBuilder.java | 6 +-
.../builders/filter/LevelRangeFilterBuilder.java | 6 +-
.../builders/filter/StringMatchFilterBuilder.java | 6 +-
.../log4j/builders/layout/HtmlLayoutBuilder.java | 6 +-
.../log4j/builders/layout/LayoutBuilder.java | 12 +---
.../builders/layout/PatternLayoutBuilder.java | 6 +-
.../log4j/builders/layout/SimpleLayoutBuilder.java | 4 +-
.../log4j/builders/layout/TTCCLayoutBuilder.java | 6 +-
.../log4j/builders/layout/XmlLayoutBuilder.java | 6 +-
.../builders/rewrite/RewritePolicyBuilder.java | 12 +---
.../log4j/config/PropertiesConfiguration.java | 4 +-
19 files changed, 88 insertions(+), 117 deletions(-)
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/AbstractBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/AbstractBuilder.java
index 4b1ef5b..e2b2d6f 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/AbstractBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/AbstractBuilder.java
@@ -39,8 +39,10 @@ import org.w3c.dom.Element;
/**
* Base class for Log4j 1 component builders.
+ *
+ * @param <T> The type to build.
*/
-public abstract class AbstractBuilder implements Builder {
+public abstract class AbstractBuilder<T> implements Builder<T> {
private static Logger LOGGER = StatusLogger.getLogger();
protected static final String FILE_PARAM = "File";
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/Builder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/Builder.java
index 7ff5879..8a9b670 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/Builder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/Builder.java
@@ -19,7 +19,9 @@ package org.apache.log4j.builders;
/**
* A marker interface for Log4j 1.x component builders.
+ *
+ * @param <T> The type to build.
*/
-public interface Builder {
+public interface Builder<T> {
// empty
}
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/BuilderManager.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/BuilderManager.java
index 60c9e68..9202d92 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/BuilderManager.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/BuilderManager.java
@@ -44,19 +44,23 @@ import org.w3c.dom.Element;
*/
public class BuilderManager {
+ /** Plugin category. */
public static final String CATEGORY = "Log4j Builder";
+
private static final Logger LOGGER = StatusLogger.getLogger();
private static Class<?>[] CONSTRUCTOR_PARAMS = new Class[] {String.class, Properties.class};
private final Map<String, PluginType<?>> plugins;
+ /**
+ * Constructs a new instance.
+ */
public BuilderManager() {
final PluginManager manager = new PluginManager(CATEGORY);
manager.collectPlugins();
plugins = manager.getPlugins();
}
- @SuppressWarnings("unchecked")
- private <T extends Builder> T createBuilder(final PluginType<T> plugin, final String prefix, final Properties props) {
+ private <T extends Builder<U>, U> T createBuilder(final PluginType<T> plugin, final String prefix, final Properties props) {
if (plugin == null) {
return null;
}
@@ -65,13 +69,13 @@ public class BuilderManager {
if (AbstractBuilder.class.isAssignableFrom(clazz)) {
return clazz.getConstructor(CONSTRUCTOR_PARAMS).newInstance(prefix, props);
}
- final Object builder = LoaderUtil.newInstanceOf(clazz);
+ final T builder = LoaderUtil.newInstanceOf(clazz);
// Reasonable message instead of `ClassCastException`
if (!Builder.class.isAssignableFrom(clazz)) {
LOGGER.warn("Unable to load plugin: builder {} does not implement {}", clazz, Builder.class);
return null;
}
- return (T) builder;
+ return builder;
} catch (final ReflectiveOperationException ex) {
LOGGER.warn("Unable to load plugin: {} due to: {}", plugin.getKey(), ex.getMessage());
return null;
@@ -90,7 +94,7 @@ public class BuilderManager {
return (PluginType<T>) pluginType;
}
- private <T extends Builder, U> U newInstance(final PluginType<T> plugin, final Function<T, U> consumer) {
+ private <T extends Builder<U>, U> U newInstance(final PluginType<T> plugin, final Function<T, U> consumer) {
if (plugin != null) {
try {
final T builder = LoaderUtil.newInstanceOf(plugin.getPluginClass());
@@ -104,61 +108,31 @@ public class BuilderManager {
return null;
}
- public Appender parseAppender(final String className, final Element appenderElement, final XmlConfiguration config) {
- final PluginType<AppenderBuilder> plugin = getPlugin(className);
- return newInstance(plugin, b -> b.parseAppender(appenderElement, config));
+ public <P extends Parser<T>, T> T parse(final String className, final String prefix, final Properties props, final PropertiesConfiguration config) {
+ final P parser = createBuilder(getPlugin(className), prefix, props);
+ return parser != null ? parser.parse(config) : null;
}
- public Appender parseAppender(final String name, final String className, final String prefix, final String layoutPrefix, final String filterPrefix, final Properties props,
- final PropertiesConfiguration config) {
- final PluginType<AppenderBuilder> plugin = getPlugin(className);
- final AppenderBuilder builder = createBuilder(plugin, prefix, props);
- if (builder != null) {
- return builder.parseAppender(name, prefix, layoutPrefix, filterPrefix, props, config);
- }
- return null;
+ public Appender parseAppender(final String className, final Element appenderElement, final XmlConfiguration config) {
+ return newInstance(this.<AppenderBuilder<Appender>>getPlugin(className), b -> b.parseAppender(appenderElement, config));
}
- public Filter parseFilter(final String className, final Element filterElement, final XmlConfiguration config) {
- final PluginType<FilterBuilder> plugin = getPlugin(className);
- return newInstance(plugin, b -> b.parseFilter(filterElement, config));
+ public Appender parseAppender(final String name, final String className, final String prefix, final String layoutPrefix, final String filterPrefix,
+ final Properties props, final PropertiesConfiguration config) {
+ final AppenderBuilder<Appender> builder = createBuilder(getPlugin(className), prefix, props);
+ return builder != null ? builder.parseAppender(name, prefix, layoutPrefix, filterPrefix, props, config) : null;
}
- public Filter parseFilter(final String className, final String filterPrefix, final Properties props, final PropertiesConfiguration config) {
- final PluginType<FilterBuilder> plugin = getPlugin(className);
- final FilterBuilder builder = createBuilder(plugin, filterPrefix, props);
- if (builder != null) {
- return builder.parseFilter(config);
- }
- return null;
+ public Filter parseFilter(final String className, final Element filterElement, final XmlConfiguration config) {
+ return newInstance(this.<FilterBuilder>getPlugin(className), b -> b.parse(filterElement, config));
}
public Layout parseLayout(final String className, final Element layoutElement, final XmlConfiguration config) {
- final PluginType<LayoutBuilder> plugin = getPlugin(className);
- return newInstance(plugin, b -> b.parseLayout(layoutElement, config));
- }
-
- public Layout parseLayout(final String className, final String layoutPrefix, final Properties props, final PropertiesConfiguration config) {
- final PluginType<LayoutBuilder> plugin = getPlugin(className);
- final LayoutBuilder builder = createBuilder(plugin, layoutPrefix, props);
- if (builder != null) {
- return builder.parseLayout(config);
- }
- return null;
+ return newInstance(this.<LayoutBuilder>getPlugin(className), b -> b.parse(layoutElement, config));
}
public RewritePolicy parseRewritePolicy(final String className, final Element rewriteElement, final XmlConfiguration config) {
- final PluginType<RewritePolicyBuilder> plugin = getPlugin(className);
- return newInstance(plugin, b -> b.parseRewritePolicy(rewriteElement, config));
- }
-
- public RewritePolicy parseRewritePolicy(final String className, final String policyPrefix, final Properties props, final PropertiesConfiguration config) {
- final PluginType<RewritePolicyBuilder> plugin = getPlugin(className);
- final RewritePolicyBuilder builder = createBuilder(plugin, policyPrefix, props);
- if (builder != null) {
- return builder.parseRewritePolicy(config);
- }
- return null;
+ return newInstance(this.<RewritePolicyBuilder>getPlugin(className), b -> b.parse(rewriteElement, config));
}
}
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/AppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/Parser.java
similarity index 62%
copy from log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/AppenderBuilder.java
copy to log4j-1.2-api/src/main/java/org/apache/log4j/builders/Parser.java
index 4dffaf1..01812ef 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/AppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/Parser.java
@@ -14,24 +14,35 @@
* See the license for the specific language governing permissions and
* limitations under the license.
*/
-package org.apache.log4j.builders.appender;
-import java.util.Properties;
+package org.apache.log4j.builders;
-import org.apache.log4j.Appender;
-import org.apache.log4j.builders.Builder;
import org.apache.log4j.config.PropertiesConfiguration;
import org.apache.log4j.xml.XmlConfiguration;
import org.w3c.dom.Element;
/**
- * Define an Appender Builder.
+ * Parses DOM and properties.
+ *
+ * @param <T> The type to build.
*/
-public interface AppenderBuilder extends Builder {
+public interface Parser<T> extends Builder<T> {
- Appender parseAppender(Element element, XmlConfiguration configuration);
+ /**
+ * Parses a DOM Element.
+ *
+ * @param element the DOM Element.
+ * @param config the XML configuration.
+ * @return parse result.
+ */
+ T parse(Element element, XmlConfiguration config);
- Appender parseAppender(String name, String appenderPrefix, String layoutPrefix, String filterPrefix,
- Properties props, PropertiesConfiguration configuration);
+ /**
+ * Parses a PropertiesConfigurationt.
+ *
+ * @param element the PropertiesConfiguration.
+ * @return parse result.
+ */
+ T parse(PropertiesConfiguration config);
}
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/AppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/AppenderBuilder.java
index 4dffaf1..aacbc80 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/AppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/AppenderBuilder.java
@@ -26,8 +26,10 @@ import org.w3c.dom.Element;
/**
* Define an Appender Builder.
+ *
+ * @param <T> The type to build.
*/
-public interface AppenderBuilder extends Builder {
+public interface AppenderBuilder<T extends Appender> extends Builder<T> {
Appender parseAppender(Element element, XmlConfiguration configuration);
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RewriteAppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RewriteAppenderBuilder.java
index 28102be..7ceb9ce 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RewriteAppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RewriteAppenderBuilder.java
@@ -106,8 +106,7 @@ public class RewriteAppenderBuilder extends AbstractBuilder implements AppenderB
final Filter filter = configuration.parseAppenderFilters(props, filterPrefix, name);
final String policyPrefix = appenderPrefix + ".rewritePolicy";
final String className = getProperty(policyPrefix);
- final RewritePolicy policy = configuration.getBuilderManager().parseRewritePolicy(className, policyPrefix,
- props, configuration);
+ final RewritePolicy policy = configuration.getBuilderManager().parse(className, policyPrefix, props, configuration);
final String level = getProperty(THRESHOLD_PARAM);
if (appenderRef == null) {
LOGGER.warn("No appender references configured for AsyncAppender {}", name);
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/DenyAllFilterBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/DenyAllFilterBuilder.java
index caa119a..20f756a 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/DenyAllFilterBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/DenyAllFilterBuilder.java
@@ -33,12 +33,12 @@ import org.w3c.dom.Element;
public class DenyAllFilterBuilder implements FilterBuilder {
@Override
- public Filter parseFilter(Element filterElement, XmlConfiguration config) {
+ public Filter parse(Element filterElement, XmlConfiguration config) {
return new FilterWrapper(DenyAllFilter.newBuilder().build());
}
@Override
- public Filter parseFilter(PropertiesConfiguration config) {
+ public Filter parse(PropertiesConfiguration config) {
return new FilterWrapper(DenyAllFilter.newBuilder().build());
}
}
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/FilterBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/FilterBuilder.java
index e331927..8153bdd 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/FilterBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/FilterBuilder.java
@@ -16,19 +16,12 @@
*/
package org.apache.log4j.builders.filter;
-import org.apache.log4j.builders.Builder;
-import org.apache.log4j.config.PropertiesConfiguration;
+import org.apache.log4j.builders.Parser;
import org.apache.log4j.spi.Filter;
-import org.apache.log4j.xml.XmlConfiguration;
-import org.w3c.dom.Element;
/**
* Define a Filter Builder.
*/
-public interface FilterBuilder extends Builder {
-
- Filter parseFilter(Element element, XmlConfiguration config);
-
- Filter parseFilter(PropertiesConfiguration config);
-
+public interface FilterBuilder extends Parser<Filter> {
+ // empty
}
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelMatchFilterBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelMatchFilterBuilder.java
index 49a9c7a..2c5dd92 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelMatchFilterBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelMatchFilterBuilder.java
@@ -37,7 +37,7 @@ import org.w3c.dom.Element;
* Build a Level match failter.
*/
@Plugin(name = "org.apache.log4j.varia.LevelMatchFilter", category = CATEGORY)
-public class LevelMatchFilterBuilder extends AbstractBuilder implements FilterBuilder {
+public class LevelMatchFilterBuilder extends AbstractBuilder<Filter> implements FilterBuilder {
private static final String LEVEL = "LevelToMatch";
private static final String ACCEPT_ON_MATCH = "AcceptOnMatch";
@@ -50,7 +50,7 @@ public class LevelMatchFilterBuilder extends AbstractBuilder implements FilterBu
}
@Override
- public Filter parseFilter(Element filterElement, XmlConfiguration config) {
+ public Filter parse(Element filterElement, XmlConfiguration config) {
final AtomicReference<String> level = new AtomicReference<>();
final AtomicBoolean acceptOnMatch = new AtomicBoolean();
forEachElement(filterElement.getElementsByTagName("param"), currentElement -> {
@@ -69,7 +69,7 @@ public class LevelMatchFilterBuilder extends AbstractBuilder implements FilterBu
}
@Override
- public Filter parseFilter(PropertiesConfiguration config) {
+ public Filter parse(PropertiesConfiguration config) {
String level = getProperty(LEVEL);
boolean acceptOnMatch = getBooleanProperty(ACCEPT_ON_MATCH);
return createFilter(level, acceptOnMatch);
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelRangeFilterBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelRangeFilterBuilder.java
index 7162ecf..a1f3918 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelRangeFilterBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelRangeFilterBuilder.java
@@ -37,7 +37,7 @@ import org.w3c.dom.Element;
* Build a Level match failter.
*/
@Plugin(name = "org.apache.log4j.varia.LevelRangeFilter", category = CATEGORY)
-public class LevelRangeFilterBuilder extends AbstractBuilder implements FilterBuilder {
+public class LevelRangeFilterBuilder extends AbstractBuilder<Filter> implements FilterBuilder {
private static final String LEVEL_MAX = "LevelMax";
private static final String LEVEL_MIN = "LevelMin";
@@ -51,7 +51,7 @@ public class LevelRangeFilterBuilder extends AbstractBuilder implements FilterBu
}
@Override
- public Filter parseFilter(Element filterElement, XmlConfiguration config) {
+ public Filter parse(Element filterElement, XmlConfiguration config) {
final AtomicReference<String> levelMax = new AtomicReference<>();
final AtomicReference<String> levelMin = new AtomicReference<>();
final AtomicBoolean acceptOnMatch = new AtomicBoolean();
@@ -74,7 +74,7 @@ public class LevelRangeFilterBuilder extends AbstractBuilder implements FilterBu
}
@Override
- public Filter parseFilter(PropertiesConfiguration config) {
+ public Filter parse(PropertiesConfiguration config) {
String levelMax = getProperty(LEVEL_MAX);
String levelMin = getProperty(LEVEL_MIN);
boolean acceptOnMatch = getBooleanProperty(ACCEPT_ON_MATCH);
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/StringMatchFilterBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/StringMatchFilterBuilder.java
index 00101c0..b7ae6a0 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/StringMatchFilterBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/StringMatchFilterBuilder.java
@@ -37,14 +37,14 @@ import org.w3c.dom.Element;
* Build a String match filter.
*/
@Plugin(name = "org.apache.log4j.varia.StringMatchFilter", category = CATEGORY)
-public class StringMatchFilterBuilder extends AbstractBuilder implements FilterBuilder {
+public class StringMatchFilterBuilder extends AbstractBuilder<Filter> implements FilterBuilder {
private static final Logger LOGGER = StatusLogger.getLogger();
private static final String STRING_TO_MATCH = "StringToMatch";
private static final String ACCEPT_ON_MATCH = "AcceptOnMatch";
@Override
- public Filter parseFilter(Element filterElement, XmlConfiguration config) {
+ public Filter parse(Element filterElement, XmlConfiguration config) {
final AtomicBoolean acceptOnMatch = new AtomicBoolean();
final AtomicReference<String> text = new AtomicReference<>();
forEachElement(filterElement.getElementsByTagName("param"), currentElement -> {
@@ -64,7 +64,7 @@ public class StringMatchFilterBuilder extends AbstractBuilder implements FilterB
}
@Override
- public Filter parseFilter(PropertiesConfiguration config) {
+ public Filter parse(PropertiesConfiguration config) {
String text = getProperty(STRING_TO_MATCH);
boolean acceptOnMatch = getBooleanProperty(ACCEPT_ON_MATCH);
return createFilter(text, acceptOnMatch);
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/HtmlLayoutBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/HtmlLayoutBuilder.java
index 5d209eb..db08f6f 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/HtmlLayoutBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/HtmlLayoutBuilder.java
@@ -37,7 +37,7 @@ import org.w3c.dom.Element;
* Build a Pattern Layout
*/
@Plugin(name = "org.apache.log4j.HTMLLayout", category = CATEGORY)
-public class HtmlLayoutBuilder extends AbstractBuilder implements LayoutBuilder {
+public class HtmlLayoutBuilder extends AbstractBuilder<Layout> implements LayoutBuilder {
private static final String DEFAULT_TITLE = "Log4J Log Messages";
private static final String TITLE_PARAM = "Title";
@@ -52,7 +52,7 @@ public class HtmlLayoutBuilder extends AbstractBuilder implements LayoutBuilder
@Override
- public Layout parseLayout(Element layoutElement, XmlConfiguration config) {
+ public Layout parse(Element layoutElement, XmlConfiguration config) {
final AtomicReference<String> title = new AtomicReference<>("Log4J Log Messages");
final AtomicBoolean locationInfo = new AtomicBoolean();
forEachElement(layoutElement.getElementsByTagName("param"), currentElement -> {
@@ -68,7 +68,7 @@ public class HtmlLayoutBuilder extends AbstractBuilder implements LayoutBuilder
}
@Override
- public Layout parseLayout(PropertiesConfiguration config) {
+ public Layout parse(PropertiesConfiguration config) {
String title = getProperty(TITLE_PARAM, DEFAULT_TITLE);
boolean locationInfo = getBooleanProperty(LOCATION_INFO_PARAM);
return createLayout(title, locationInfo);
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/LayoutBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/LayoutBuilder.java
index 0a3ecb2..72c1763 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/LayoutBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/LayoutBuilder.java
@@ -17,17 +17,11 @@
package org.apache.log4j.builders.layout;
import org.apache.log4j.Layout;
-import org.apache.log4j.builders.Builder;
-import org.apache.log4j.config.PropertiesConfiguration;
-import org.apache.log4j.xml.XmlConfiguration;
-import org.w3c.dom.Element;
+import org.apache.log4j.builders.Parser;
/**
* Define a Layout Builder.
*/
-public interface LayoutBuilder extends Builder {
-
- Layout parseLayout(Element element, XmlConfiguration config);
-
- Layout parseLayout(PropertiesConfiguration config);
+public interface LayoutBuilder extends Parser<Layout> {
+ // empty
}
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/PatternLayoutBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/PatternLayoutBuilder.java
index f43cc65..3bf241e 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/PatternLayoutBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/PatternLayoutBuilder.java
@@ -41,7 +41,7 @@ import org.w3c.dom.NodeList;
*/
@Plugin(name = "org.apache.log4j.PatternLayout", category = CATEGORY)
@PluginAliases("org.apache.log4j.EnhancedPatternLayout")
-public class PatternLayoutBuilder extends AbstractBuilder implements LayoutBuilder {
+public class PatternLayoutBuilder extends AbstractBuilder<Layout> implements LayoutBuilder {
private static final Logger LOGGER = StatusLogger.getLogger();
private static final String PATTERN = "ConversionPattern";
@@ -54,7 +54,7 @@ public class PatternLayoutBuilder extends AbstractBuilder implements LayoutBuild
}
@Override
- public Layout parseLayout(final Element layoutElement, final XmlConfiguration config) {
+ public Layout parse(final Element layoutElement, final XmlConfiguration config) {
NodeList params = layoutElement.getElementsByTagName("param");
final int length = params.getLength();
String pattern = null;
@@ -74,7 +74,7 @@ public class PatternLayoutBuilder extends AbstractBuilder implements LayoutBuild
}
@Override
- public Layout parseLayout(final PropertiesConfiguration config) {
+ public Layout parse(final PropertiesConfiguration config) {
String pattern = getProperty(PATTERN);
return createLayout(pattern, config);
}
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/SimpleLayoutBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/SimpleLayoutBuilder.java
index 5d8ba52..5119ce8 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/SimpleLayoutBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/SimpleLayoutBuilder.java
@@ -33,7 +33,7 @@ import org.w3c.dom.Element;
public class SimpleLayoutBuilder implements LayoutBuilder {
@Override
- public Layout parseLayout(Element layoutElement, XmlConfiguration config) {
+ public Layout parse(Element layoutElement, XmlConfiguration config) {
return new LayoutWrapper(PatternLayout.newBuilder()
.withPattern("%level - %m%n")
.withConfiguration(config)
@@ -41,7 +41,7 @@ public class SimpleLayoutBuilder implements LayoutBuilder {
}
@Override
- public Layout parseLayout(PropertiesConfiguration config) {
+ public Layout parse(PropertiesConfiguration config) {
return new LayoutWrapper(PatternLayout.newBuilder()
.withPattern("%level - %m%n")
.withConfiguration(config)
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/TTCCLayoutBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/TTCCLayoutBuilder.java
index e6f9718..cc78781 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/TTCCLayoutBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/TTCCLayoutBuilder.java
@@ -38,7 +38,7 @@ import org.w3c.dom.Element;
* Build a Pattern Layout
*/
@Plugin(name = "org.apache.log4j.TTCCLayout", category = CATEGORY)
-public class TTCCLayoutBuilder extends AbstractBuilder implements LayoutBuilder {
+public class TTCCLayoutBuilder extends AbstractBuilder<Layout> implements LayoutBuilder {
private static final String THREAD_PRINTING_PARAM = "ThreadPrinting";
private static final String CATEGORY_PREFIXING_PARAM = "CategoryPrefixing";
@@ -54,7 +54,7 @@ public class TTCCLayoutBuilder extends AbstractBuilder implements LayoutBuilder
}
@Override
- public Layout parseLayout(Element layoutElement, XmlConfiguration config) {
+ public Layout parse(Element layoutElement, XmlConfiguration config) {
final AtomicBoolean threadPrinting = new AtomicBoolean(Boolean.TRUE);
final AtomicBoolean categoryPrefixing = new AtomicBoolean(Boolean.TRUE);
final AtomicBoolean contextPrinting = new AtomicBoolean(Boolean.TRUE);
@@ -86,7 +86,7 @@ public class TTCCLayoutBuilder extends AbstractBuilder implements LayoutBuilder
}
@Override
- public Layout parseLayout(PropertiesConfiguration config) {
+ public Layout parse(PropertiesConfiguration config) {
boolean threadPrinting = getBooleanProperty(THREAD_PRINTING_PARAM, true);
boolean categoryPrefixing = getBooleanProperty(CATEGORY_PREFIXING_PARAM, true);
boolean contextPrinting = getBooleanProperty(CONTEXT_PRINTING_PARAM, true);
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/XmlLayoutBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/XmlLayoutBuilder.java
index 7b321c4..81a9c2e 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/XmlLayoutBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/XmlLayoutBuilder.java
@@ -36,7 +36,7 @@ import org.w3c.dom.Element;
* Build an XML Layout
*/
@Plugin(name = "org.apache.log4j.xml.XMLLayout", category = CATEGORY)
-public class XmlLayoutBuilder extends AbstractBuilder implements LayoutBuilder {
+public class XmlLayoutBuilder extends AbstractBuilder<Layout> implements LayoutBuilder {
private static final String LOCATION_INFO = "LocationInfo";
private static final String PROPERTIES = "Properties";
@@ -50,7 +50,7 @@ public class XmlLayoutBuilder extends AbstractBuilder implements LayoutBuilder {
@Override
- public Layout parseLayout(Element layoutElement, XmlConfiguration config) {
+ public Layout parse(Element layoutElement, XmlConfiguration config) {
final AtomicBoolean properties = new AtomicBoolean();
final AtomicBoolean locationInfo = new AtomicBoolean();
forEachElement(layoutElement.getElementsByTagName(PARAM_TAG), currentElement -> {
@@ -64,7 +64,7 @@ public class XmlLayoutBuilder extends AbstractBuilder implements LayoutBuilder {
}
@Override
- public Layout parseLayout(PropertiesConfiguration config) {
+ public Layout parse(PropertiesConfiguration config) {
boolean properties = getBooleanProperty(PROPERTIES);
boolean locationInfo = getBooleanProperty(LOCATION_INFO);
return createLayout(properties, locationInfo);
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/rewrite/RewritePolicyBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/rewrite/RewritePolicyBuilder.java
index 94500ae..e83d033 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/rewrite/RewritePolicyBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/rewrite/RewritePolicyBuilder.java
@@ -16,18 +16,12 @@
*/
package org.apache.log4j.builders.rewrite;
-import org.apache.log4j.builders.Builder;
-import org.apache.log4j.config.PropertiesConfiguration;
+import org.apache.log4j.builders.Parser;
import org.apache.log4j.rewrite.RewritePolicy;
-import org.apache.log4j.xml.XmlConfiguration;
-import org.w3c.dom.Element;
/**
* Define a RewritePolicy Builder.
*/
-public interface RewritePolicyBuilder extends Builder {
-
- RewritePolicy parseRewritePolicy(Element element, XmlConfiguration config);
-
- RewritePolicy parseRewritePolicy(PropertiesConfiguration config);
+public interface RewritePolicyBuilder extends Parser<RewritePolicy> {
+ // empty
}
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/config/PropertiesConfiguration.java b/log4j-1.2-api/src/main/java/org/apache/log4j/config/PropertiesConfiguration.java
index 06b8854..0a0cb45 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/config/PropertiesConfiguration.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/config/PropertiesConfiguration.java
@@ -484,7 +484,7 @@ public class PropertiesConfiguration extends Log4j1Configuration {
if (layoutClass == null) {
return null;
}
- Layout layout = manager.parseLayout(layoutClass, layoutPrefix, props, this);
+ Layout layout = manager.parse(layoutClass, layoutPrefix, props, this);
if (layout == null) {
layout = buildLayout(layoutPrefix, layoutClass, appenderName, props);
}
@@ -560,7 +560,7 @@ public class PropertiesConfiguration extends Log4j1Configuration {
final String clazz = props.getProperty(entry.getKey());
Filter filter = null;
if (clazz != null) {
- filter = manager.parseFilter(clazz, entry.getKey(), props, this);
+ filter = manager.parse(clazz, entry.getKey(), props, this);
if (filter == null) {
LOGGER.debug("Filter key: [{}] class: [{}] props: {}", entry.getKey(), clazz, entry.getValue());
filter = buildFilter(clazz, appenderName, entry.getValue());