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 2015/09/01 23:35:28 UTC
logging-log4j2 git commit: In the class DefaultComponentBuilder,
make the type of builder passed in the ctor match the result type of
the getBuilder() method. This means introducing a type parameter ("CB") to
the class DefaultComponentBuilder. All subcla
Repository: logging-log4j2
Updated Branches:
refs/heads/LOG4J2-952 100c2ac93 -> 021f7d198
In the class DefaultComponentBuilder, make the type of builder passed in
the ctor match the result type of the getBuilder() method. This means
introducing a type parameter ("CB") to the class
DefaultComponentBuilder. All subclasses use the same type for this
(DefaultConfigurationBuilder<? extends Configuration>) so we capture
that type in a new class DefaultComponentAndConfigurationBuilder which
all other ComponentBuilders subclass.
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/021f7d19
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/021f7d19
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/021f7d19
Branch: refs/heads/LOG4J2-952
Commit: 021f7d1983de65a6614f435bdb55b0794a18277c
Parents: 100c2ac
Author: ggregory <gg...@apache.org>
Authored: Tue Sep 1 14:35:25 2015 -0700
Committer: ggregory <gg...@apache.org>
Committed: Tue Sep 1 14:35:25 2015 -0700
----------------------------------------------------------------------
.../impl/DefaultAppenderComponentBuilder.java | 4 +-
.../DefaultAppenderRefComponentBuilder.java | 4 +-
...DefaultComponentAndConfigurationBuilder.java | 45 ++++++++++++++++++++
.../builder/impl/DefaultComponentBuilder.java | 13 +++---
.../DefaultCompositeFilterComponentBuilder.java | 5 ++-
.../impl/DefaultConfigurationBuilder.java | 11 -----
.../DefaultCustomLevelComponentBuilder.java | 4 +-
.../impl/DefaultFilterComponentBuilder.java | 4 +-
.../impl/DefaultLayoutComponentBuilder.java | 4 +-
.../impl/DefaultLoggerComponentBuilder.java | 4 +-
.../impl/DefaultRootLoggerComponentBuilder.java | 4 +-
11 files changed, 69 insertions(+), 33 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/021f7d19/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultAppenderComponentBuilder.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultAppenderComponentBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultAppenderComponentBuilder.java
index f6e5452..10c5d51 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultAppenderComponentBuilder.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultAppenderComponentBuilder.java
@@ -24,8 +24,8 @@ import org.apache.logging.log4j.core.config.builder.api.LayoutComponentBuilder;
/**
* Holds the Appender Component attributes and subcomponents.
*/
-class DefaultAppenderComponentBuilder extends DefaultComponentBuilder<AppenderComponentBuilder> implements
- AppenderComponentBuilder {
+class DefaultAppenderComponentBuilder extends DefaultComponentAndConfigurationBuilder<AppenderComponentBuilder>
+ implements AppenderComponentBuilder {
public DefaultAppenderComponentBuilder(DefaultConfigurationBuilder<? extends Configuration> builder, String name,
String type) {
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/021f7d19/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultAppenderRefComponentBuilder.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultAppenderRefComponentBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultAppenderRefComponentBuilder.java
index a503d9d..19f7b17 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultAppenderRefComponentBuilder.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultAppenderRefComponentBuilder.java
@@ -23,8 +23,8 @@ import org.apache.logging.log4j.core.config.builder.api.FilterComponentBuilder;
/**
* Holds the Appender Component attributes and subcomponents.
*/
-class DefaultAppenderRefComponentBuilder extends DefaultComponentBuilder<AppenderRefComponentBuilder> implements
- AppenderRefComponentBuilder {
+class DefaultAppenderRefComponentBuilder extends DefaultComponentAndConfigurationBuilder<AppenderRefComponentBuilder>
+ implements AppenderRefComponentBuilder {
public DefaultAppenderRefComponentBuilder(DefaultConfigurationBuilder<? extends Configuration> builder,
String ref) {
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/021f7d19/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultComponentAndConfigurationBuilder.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultComponentAndConfigurationBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultComponentAndConfigurationBuilder.java
new file mode 100644
index 0000000..d4c2b36
--- /dev/null
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultComponentAndConfigurationBuilder.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
+package org.apache.logging.log4j.core.config.builder.impl;
+
+import org.apache.logging.log4j.core.config.Configuration;
+import org.apache.logging.log4j.core.config.builder.api.ComponentBuilder;
+
+/**
+ * Extends {@code DefaultComponentBuilder} to specify
+ * {@code DefaultConfigurationBuilder<? extends Configuration>} as the
+ * {@code ConfigurationBuilder} type.
+ */
+class DefaultComponentAndConfigurationBuilder<T extends ComponentBuilder<T>>
+ extends DefaultComponentBuilder<T, DefaultConfigurationBuilder<? extends Configuration>> {
+
+ DefaultComponentAndConfigurationBuilder(DefaultConfigurationBuilder<? extends Configuration> builder, String name,
+ String type, String value) {
+ super(builder, name, type, value);
+ }
+
+ DefaultComponentAndConfigurationBuilder(DefaultConfigurationBuilder<? extends Configuration> builder, String name,
+ String type) {
+ super(builder, name, type);
+ }
+
+ public DefaultComponentAndConfigurationBuilder(DefaultConfigurationBuilder<? extends Configuration> builder,
+ String type) {
+ super(builder, type);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/021f7d19/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultComponentBuilder.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultComponentBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultComponentBuilder.java
index a84b03a..a4609fe 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultComponentBuilder.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultComponentBuilder.java
@@ -31,24 +31,25 @@ import java.util.Map;
* Generic component that captures attributes and Components in preparation for assembling the Appender's
* Component.
*/
-class DefaultComponentBuilder<T extends ComponentBuilder<T>> implements ComponentBuilder<T> {
+class DefaultComponentBuilder<T extends ComponentBuilder<T>, CB extends ConfigurationBuilder<? extends Configuration>>
+ implements ComponentBuilder<T> {
- private ConfigurationBuilder<? extends Configuration> builder;
+ private CB builder;
private String type;
private Map<String, String> attributes = new HashMap<>();
private List<Component> components = new ArrayList<>();
private String name;
private String value;
- public DefaultComponentBuilder(ConfigurationBuilder<? extends Configuration> builder, String type) {
+ public DefaultComponentBuilder(CB builder, String type) {
this(builder, null, type, null);
}
- public DefaultComponentBuilder(ConfigurationBuilder<? extends Configuration> builder, String name, String type) {
+ public DefaultComponentBuilder(CB builder, String name, String type) {
this(builder, name, type, null);
}
- public DefaultComponentBuilder(ConfigurationBuilder<? extends Configuration> builder, String name, String type,
+ public DefaultComponentBuilder(CB builder, String name, String type,
String value) {
this.type = type;
this.builder = builder;
@@ -104,7 +105,7 @@ class DefaultComponentBuilder<T extends ComponentBuilder<T>> implements Componen
}
@Override
- public ConfigurationBuilder<? extends Configuration> getBuilder() {
+ public CB getBuilder() {
return builder;
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/021f7d19/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultCompositeFilterComponentBuilder.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultCompositeFilterComponentBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultCompositeFilterComponentBuilder.java
index a66cd8c..95d17f3 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultCompositeFilterComponentBuilder.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultCompositeFilterComponentBuilder.java
@@ -23,8 +23,9 @@ import org.apache.logging.log4j.core.config.builder.api.FilterComponentBuilder;
/**
*
*/
-class DefaultCompositeFilterComponentBuilder extends DefaultComponentBuilder<CompositeFilterComponentBuilder> implements
- CompositeFilterComponentBuilder {
+class DefaultCompositeFilterComponentBuilder
+ extends DefaultComponentAndConfigurationBuilder<CompositeFilterComponentBuilder>
+ implements CompositeFilterComponentBuilder {
public DefaultCompositeFilterComponentBuilder(DefaultConfigurationBuilder<? extends Configuration> builder,
String onMatch, String onMisMatch) {
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/021f7d19/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultConfigurationBuilder.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultConfigurationBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultConfigurationBuilder.java
index 8d023d4..c225a9d 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultConfigurationBuilder.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultConfigurationBuilder.java
@@ -124,14 +124,12 @@ public class DefaultConfigurationBuilder<T extends BuiltConfiguration> implement
}
@Override
- @SuppressWarnings("unchecked")
public ConfigurationBuilder<T> addProperty(String key, String value) {
properties.addComponent(newComponent(key, "Property", value).build());
return this;
}
@Override
- @SuppressWarnings({"unchecked"})
public T build() {
T configuration;
try {
@@ -211,13 +209,11 @@ public class DefaultConfigurationBuilder<T extends BuiltConfiguration> implement
}
@Override
- @SuppressWarnings("rawtypes")
public FilterComponentBuilder newFilter(String type, Filter.Result onMatch, Filter.Result onMisMatch) {
return new DefaultFilterComponentBuilder(this, type, onMatch.name(), onMisMatch.name());
}
@Override
- @SuppressWarnings("rawtypes")
public FilterComponentBuilder newFilter(String type, String onMatch, String onMisMatch) {
return new DefaultFilterComponentBuilder(this, type, onMatch, onMisMatch);
}
@@ -255,7 +251,6 @@ public class DefaultConfigurationBuilder<T extends BuiltConfiguration> implement
* @return this builder instance
*/
@Override
- @SuppressWarnings("unchecked")
public ConfigurationBuilder<T> setConfigurationName(String name) {
this.name = name;
return this;
@@ -268,42 +263,36 @@ public class DefaultConfigurationBuilder<T extends BuiltConfiguration> implement
* @return this builder instance
*/
@Override
- @SuppressWarnings("unchecked")
public ConfigurationBuilder<T> setConfigurationSource(ConfigurationSource configurationSource) {
source = configurationSource;
return this;
}
@Override
- @SuppressWarnings("unchecked")
public ConfigurationBuilder<T> setMonitorInterval(String intervalSeconds) {
monitorInterval = Integer.parseInt(intervalSeconds);
return this;
}
@Override
- @SuppressWarnings("unchecked")
public ConfigurationBuilder<T> setPackages(String packages) {
this.packages = packages;
return this;
}
@Override
- @SuppressWarnings("unchecked")
public ConfigurationBuilder<T> setShutdownHook(String flag) {
this.shutdownFlag = flag;
return this;
}
@Override
- @SuppressWarnings("unchecked")
public ConfigurationBuilder<T> setStatusLevel(Level level) {
this.level = level;
return this;
}
@Override
- @SuppressWarnings("unchecked")
public ConfigurationBuilder<T> setVerbosity(String verbosity) {
this.verbosity = verbosity;
return this;
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/021f7d19/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultCustomLevelComponentBuilder.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultCustomLevelComponentBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultCustomLevelComponentBuilder.java
index 28c2632..378582b 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultCustomLevelComponentBuilder.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultCustomLevelComponentBuilder.java
@@ -22,8 +22,8 @@ import org.apache.logging.log4j.core.config.builder.api.CustomLevelComponentBuil
/**
*
*/
-class DefaultCustomLevelComponentBuilder extends DefaultComponentBuilder<CustomLevelComponentBuilder> implements
- CustomLevelComponentBuilder {
+class DefaultCustomLevelComponentBuilder extends DefaultComponentAndConfigurationBuilder<CustomLevelComponentBuilder>
+ implements CustomLevelComponentBuilder {
public DefaultCustomLevelComponentBuilder(DefaultConfigurationBuilder<? extends Configuration> builder,
String name, int level) {
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/021f7d19/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultFilterComponentBuilder.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultFilterComponentBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultFilterComponentBuilder.java
index f67e1f6..362b3ec 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultFilterComponentBuilder.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultFilterComponentBuilder.java
@@ -22,8 +22,8 @@ import org.apache.logging.log4j.core.config.builder.api.FilterComponentBuilder;
/**
*
*/
-class DefaultFilterComponentBuilder extends DefaultComponentBuilder<FilterComponentBuilder> implements
- FilterComponentBuilder {
+class DefaultFilterComponentBuilder extends DefaultComponentAndConfigurationBuilder<FilterComponentBuilder>
+ implements FilterComponentBuilder {
public DefaultFilterComponentBuilder(DefaultConfigurationBuilder<? extends Configuration> builder, String type,
String onMatch, String onMisMatch) {
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/021f7d19/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultLayoutComponentBuilder.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultLayoutComponentBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultLayoutComponentBuilder.java
index 55b14df..275f7db 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultLayoutComponentBuilder.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultLayoutComponentBuilder.java
@@ -22,8 +22,8 @@ import org.apache.logging.log4j.core.config.builder.api.LayoutComponentBuilder;
/**
*
*/
-class DefaultLayoutComponentBuilder extends DefaultComponentBuilder<LayoutComponentBuilder> implements
- LayoutComponentBuilder {
+class DefaultLayoutComponentBuilder extends DefaultComponentAndConfigurationBuilder<LayoutComponentBuilder>
+ implements LayoutComponentBuilder {
public DefaultLayoutComponentBuilder(DefaultConfigurationBuilder<? extends Configuration> builder, String type) {
super(builder, type);
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/021f7d19/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultLoggerComponentBuilder.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultLoggerComponentBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultLoggerComponentBuilder.java
index 39451a4..7c5f4dc 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultLoggerComponentBuilder.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultLoggerComponentBuilder.java
@@ -24,8 +24,8 @@ import org.apache.logging.log4j.core.config.builder.api.LoggerComponentBuilder;
/**
*
*/
-class DefaultLoggerComponentBuilder extends DefaultComponentBuilder<LoggerComponentBuilder> implements
- LoggerComponentBuilder {
+class DefaultLoggerComponentBuilder extends DefaultComponentAndConfigurationBuilder<LoggerComponentBuilder>
+ implements LoggerComponentBuilder {
/**
* Configure a logger.
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/021f7d19/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultRootLoggerComponentBuilder.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultRootLoggerComponentBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultRootLoggerComponentBuilder.java
index 26b9967..19f84c5 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultRootLoggerComponentBuilder.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultRootLoggerComponentBuilder.java
@@ -24,8 +24,8 @@ import org.apache.logging.log4j.core.config.builder.api.RootLoggerComponentBuild
/**
*
*/
-class DefaultRootLoggerComponentBuilder extends DefaultComponentBuilder<RootLoggerComponentBuilder> implements
- RootLoggerComponentBuilder {
+class DefaultRootLoggerComponentBuilder extends DefaultComponentAndConfigurationBuilder<RootLoggerComponentBuilder>
+ implements RootLoggerComponentBuilder {
/**
* Configure the root logger.