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.