You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2019/08/31 17:58:42 UTC

[logging-log4j2] 02/02: Clean up type warnings

This is an automated email from the ASF dual-hosted git repository.

mattsicker pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit 11c57c03d1a16cc0f3a29ae2f6c13bf11fde03c4
Author: Matt Sicker <bo...@gmail.com>
AuthorDate: Sat Aug 31 12:57:58 2019 -0500

    Clean up type warnings
    
    Signed-off-by: Matt Sicker <bo...@gmail.com>
---
 .../apache/logging/log4j/core/pattern/PatternParser.java    | 13 ++++++-------
 .../org/apache/logging/log4j/core/util/WatcherFactory.java  |  3 +--
 .../apache/logging/log4j/plugins/util/PluginRegistry.java   |  2 +-
 3 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/PatternParser.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/PatternParser.java
index 2390d43..21c3ffb 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/PatternParser.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/PatternParser.java
@@ -87,7 +87,7 @@ public final class PatternParser {
 
     private final Configuration config;
 
-    private final Map<String, Class<PatternConverter>> converterRules;
+    private final Map<String, Class<? extends PatternConverter>> converterRules;
 
     /**
      * Constructor.
@@ -131,12 +131,11 @@ public final class PatternParser {
         final PluginManager manager = new PluginManager(converterKey);
         manager.collectPlugins(config == null ? null : config.getPluginPackages());
         final Map<String, PluginType<?>> plugins = manager.getPlugins();
-        final Map<String, Class<PatternConverter>> converters = new LinkedHashMap<>();
+        final Map<String, Class<? extends PatternConverter>> converters = new LinkedHashMap<>();
 
         for (final PluginType<?> type : plugins.values()) {
             try {
-                @SuppressWarnings("unchecked")
-                final Class<PatternConverter> clazz = (Class<PatternConverter>) type.getPluginClass();
+                final Class<? extends PatternConverter> clazz = type.getPluginClass().asSubclass(PatternConverter.class);
                 if (filterClass != null && !filterClass.isAssignableFrom(clazz)) {
                     continue;
                 }
@@ -518,10 +517,10 @@ public final class PatternParser {
      * @return converter or null.
      */
     private PatternConverter createConverter(final String converterId, final StringBuilder currentLiteral,
-            final Map<String, Class<PatternConverter>> rules, final List<String> options, final boolean disableAnsi,
+            final Map<String, Class<? extends PatternConverter>> rules, final List<String> options, final boolean disableAnsi,
             final boolean noConsoleNoAnsi) {
         String converterName = converterId;
-        Class<PatternConverter> converterClass = null;
+        Class<? extends PatternConverter> converterClass = null;
 
         if (rules == null) {
             LOGGER.error("Null rules for [" + converterId + ']');
@@ -643,7 +642,7 @@ public final class PatternParser {
      */
     private int finalizeConverter(final char c, final String pattern, final int start,
             final StringBuilder currentLiteral, final FormattingInfo formattingInfo,
-            final Map<String, Class<PatternConverter>> rules, final List<PatternConverter> patternConverters,
+            final Map<String, Class<? extends PatternConverter>> rules, final List<PatternConverter> patternConverters,
             final List<FormattingInfo> formattingInfos, final boolean disableAnsi, final boolean noConsoleNoAnsi,
             final boolean convertBackslashes) {
         int i = start;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatcherFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatcherFactory.java
index f7d5785..74b3f2b 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatcherFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatcherFactory.java
@@ -59,7 +59,6 @@ public class WatcherFactory {
         return factory;
     }
 
-    @SuppressWarnings("unchecked")
     public Watcher newWatcher(Source source, final Configuration configuration, final Reconfigurable reconfigurable,
         final List<ConfigurationListener> configurationListeners, long lastModifiedMillis) {
         if (source.getFile() != null) {
@@ -69,7 +68,7 @@ public class WatcherFactory {
             String name = source.getURI().getScheme();
             PluginType<?> pluginType = plugins.get(name);
             if (pluginType != null) {
-                return instantiate(name, (Class<? extends Watcher>) pluginType.getPluginClass(), configuration,
+                return instantiate(name, pluginType.getPluginClass().asSubclass(Watcher.class), configuration,
                     reconfigurable, configurationListeners, lastModifiedMillis);
             }
             LOGGER.info("No Watcher plugin is available for protocol '{}'", name);
diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/util/PluginRegistry.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/util/PluginRegistry.java
index a759cf3..f18fd1e 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/util/PluginRegistry.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/util/PluginRegistry.java
@@ -197,7 +197,7 @@ public class PluginRegistry {
             for (PluginEntry entry : entries) {
                 try {
                     final Class<?> clazz = classLoader.loadClass(entry.getClassName());
-                    final PluginType<?> type = new PluginType(entry, clazz, entry.getName());
+                    final PluginType<?> type = new PluginType<>(entry, clazz, entry.getName());
                     String category = entry.getCategory().toLowerCase();
                     if (!map.containsKey(category)) {
                         map.put(category, new ArrayList<>());