Use LoaderUtil.loadClass and remove need for supress warnings.

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

Branch: refs/heads/master
Commit: f67fac870d7a07110c4318d498955ce6be57686c
Parents: 3ae452e
Author: Matt Sicker <[email protected]>
Authored: Tue Feb 23 23:35:32 2016 -0600
Committer: Matt Sicker <[email protected]>
Committed: Tue Feb 23 23:35:32 2016 -0600

----------------------------------------------------------------------
 .../logging/log4j/core/async/AsyncEventRouterFactory.java | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/f67fac87/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncEventRouterFactory.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncEventRouterFactory.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncEventRouterFactory.java
index f2ef388..a1b254f 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncEventRouterFactory.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncEventRouterFactory.java
@@ -16,13 +16,14 @@
  */
 package org.apache.logging.log4j.core.async;
 
+import java.lang.reflect.Constructor;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.util.LoaderUtil;
 import org.apache.logging.log4j.util.PropertiesUtil;
 
-import java.lang.reflect.Constructor;
-
 /**
  * Creates {@link AsyncEventRouter} instances based on user-specified system 
properties. The {@code AsyncEventRouter}
  * created by this factory is used in AsyncLogger, AsyncLoggerConfig and 
AsyncAppender
@@ -86,11 +87,10 @@ public class AsyncEventRouterFactory {
 
     private static AsyncEventRouter createCustomRouter(final String router, 
final int queueSize) {
         try {
-            @SuppressWarnings("unchecked")
-            final Class<AsyncEventRouter> cls = (Class<AsyncEventRouter>) 
Class.forName(router);
+            final Class<? extends AsyncEventRouter> cls = 
LoaderUtil.loadClass(router).asSubclass(AsyncEventRouter.class);
             try {
                 // if the custom router has a constructor taking an int, pass 
it the queue size
-                Constructor<AsyncEventRouter> constructor = 
cls.getDeclaredConstructor(new Class[]{int.class});
+                Constructor<? extends AsyncEventRouter> constructor = 
cls.getDeclaredConstructor(new Class[]{int.class});
                 LOGGER.debug("Creating custom AsyncEventRouter '{}({})'", 
router, queueSize);
                 return constructor.newInstance(new Object[]{queueSize});
             } catch (final Exception e) {

Reply via email to