You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bh...@apache.org on 2009/12/13 18:33:54 UTC

svn commit: r890081 - /myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/extensions/scripting/loader/ReloadingClassLoader.java

Author: bhuemer
Date: Sun Dec 13 17:33:53 2009
New Revision: 890081

URL: http://svn.apache.org/viewvc?rev=890081&view=rev
Log:
- Added generics

Modified:
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/extensions/scripting/loader/ReloadingClassLoader.java

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/extensions/scripting/loader/ReloadingClassLoader.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/extensions/scripting/loader/ReloadingClassLoader.java?rev=890081&r1=890080&r2=890081&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/extensions/scripting/loader/ReloadingClassLoader.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/extensions/scripting/loader/ReloadingClassLoader.java Sun Dec 13 17:33:53 2009
@@ -71,7 +71,8 @@
      * would loose the possibility to override them then, which is the reason why
      * each class has got its own class loader.
      */
-    private Map classLoaders = new HashMap();
+    private Map<String, ThrowAwayClassLoader> classLoaders =
+                        new HashMap<String, ThrowAwayClassLoader>();
 
     /**
      * The target directory for the compiler, i.e. the directory that contains the
@@ -134,8 +135,7 @@
                 // Check if the class loader is already outdated, i.e. there is a newer class file available
                 // for the class we want to load than the class file we've already loaded. If that's the case
                 // we're going to throw away this ClassLoader and create a new one for linkage reasons.
-                ThrowAwayClassLoader classLoader =
-                        (ThrowAwayClassLoader) classLoaders.get(className);
+                ThrowAwayClassLoader classLoader = classLoaders.get(className);
                 if (classLoader.isOutdated(classFile.lastModified())) {
                     // If the class loader is outdated, create a new one. Otherwise the same class loader
                     // would have to load the same class twice or more often which would cause severe
@@ -155,16 +155,14 @@
                 reloadClass(className);
             }
 
-            ThrowAwayClassLoader classLoader =
-                    (ThrowAwayClassLoader) classLoaders.get(className);
+            ThrowAwayClassLoader classLoader = classLoaders.get(className);
             return classLoader.loadClass(className, resolve);
         }
         else {
             // Even though there is no class file available, there's still a chance that this
             // class loader has forcefully reloaded a statically compiled class.
             if (classLoaders.containsKey(className)) {
-                ThrowAwayClassLoader classLoader =
-                        (ThrowAwayClassLoader) classLoaders.get(className);
+                ThrowAwayClassLoader classLoader = classLoaders.get(className);
                 return classLoader.loadClass(className, resolve);
             }
             else {
@@ -244,8 +242,7 @@
             classLoader = new OverridingClassLoader(className, this);
         }
 
-        ThrowAwayClassLoader oldClassLoader =
-                (ThrowAwayClassLoader) classLoaders.put(className, classLoader);
+        ThrowAwayClassLoader oldClassLoader = classLoaders.put(className, classLoader);
         if (logger.isInfoEnabled()) {
             if (oldClassLoader != null) {
                 logger.info("Replaced the class loader '" + oldClassLoader + "' with the class loader '"
@@ -276,7 +273,7 @@
         // are immutable anyway (they are only supposed to load a single class) and additionally
         // this map doesn't contain any classes that have been loaded using the current parent
         // class loader!
-        classLoader.classLoaders = new HashMap(classLoaders);
+        classLoader.classLoaders = new HashMap<String, ThrowAwayClassLoader>(classLoaders);
 
         return classLoader;
     }