You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2010/07/30 04:07:22 UTC
svn commit: r980634 - in /myfaces/test/trunk:
test12/src/main/java/org/apache/myfaces/test/config/ConfigParser.java
test20/src/main/java/org/apache/myfaces/test/config/ConfigParser.java
Author: lu4242
Date: Fri Jul 30 02:07:22 2010
New Revision: 980634
URL: http://svn.apache.org/viewvc?rev=980634&view=rev
Log:
MYFACESTEST-23 ConfigParser should use Class.forName to load classes
Modified:
myfaces/test/trunk/test12/src/main/java/org/apache/myfaces/test/config/ConfigParser.java
myfaces/test/trunk/test20/src/main/java/org/apache/myfaces/test/config/ConfigParser.java
Modified: myfaces/test/trunk/test12/src/main/java/org/apache/myfaces/test/config/ConfigParser.java
URL: http://svn.apache.org/viewvc/myfaces/test/trunk/test12/src/main/java/org/apache/myfaces/test/config/ConfigParser.java?rev=980634&r1=980633&r2=980634&view=diff
==============================================================================
--- myfaces/test/trunk/test12/src/main/java/org/apache/myfaces/test/config/ConfigParser.java (original)
+++ myfaces/test/trunk/test12/src/main/java/org/apache/myfaces/test/config/ConfigParser.java Fri Jul 30 02:07:22 2010
@@ -333,7 +333,7 @@ public class ConfigParser {
} else {
Class clazz = null;
try {
- clazz = this.getClass().getClassLoader().loadClass(bean.getConverterForClass());
+ clazz = classForName(bean.getConverterForClass());
} catch (ClassNotFoundException e) {
throw new IllegalArgumentException("java.lang.ClassNotFoundException: "
+ bean.getConverterForClass());
@@ -343,7 +343,24 @@ public class ConfigParser {
}
}
-
+
+ private Class classForName(String type) throws ClassNotFoundException
+ {
+ try
+ {
+ // Try WebApp ClassLoader first
+ return Class.forName(type,
+ false, // do not initialize for faster startup
+ Thread.currentThread().getContextClassLoader());
+ }
+ catch (ClassNotFoundException ignore)
+ {
+ // fallback: Try ClassLoader for ClassUtils (i.e. the myfaces.jar lib)
+ return Class.forName(type,
+ false, // do not initialize for faster startup
+ this.getClass().getClassLoader());
+ }
+ }
/**
* <p>Digester <code>Rule</code> for processing render kits.</p>
@@ -431,7 +448,7 @@ public class ConfigParser {
Renderer renderer = null;
Class clazz = null;
try {
- clazz = this.getClass().getClassLoader().loadClass(bean.getRendererClass());
+ clazz = classForName(bean.getRendererClass());
renderer = (Renderer) clazz.newInstance();
} catch (Exception e) {
throw new IllegalArgumentException("Exception while trying to instantiate"
Modified: myfaces/test/trunk/test20/src/main/java/org/apache/myfaces/test/config/ConfigParser.java
URL: http://svn.apache.org/viewvc/myfaces/test/trunk/test20/src/main/java/org/apache/myfaces/test/config/ConfigParser.java?rev=980634&r1=980633&r2=980634&view=diff
==============================================================================
--- myfaces/test/trunk/test20/src/main/java/org/apache/myfaces/test/config/ConfigParser.java (original)
+++ myfaces/test/trunk/test20/src/main/java/org/apache/myfaces/test/config/ConfigParser.java Fri Jul 30 02:07:22 2010
@@ -345,7 +345,7 @@ public class ConfigParser {
} else {
Class clazz = null;
try {
- clazz = this.getClass().getClassLoader().loadClass(bean.getConverterForClass());
+ clazz = classForName(bean.getConverterForClass());
} catch (ClassNotFoundException e) {
throw new IllegalArgumentException("java.lang.ClassNotFoundException: "
+ bean.getConverterForClass());
@@ -356,7 +356,24 @@ public class ConfigParser {
}
-
+ private Class classForName(String type) throws ClassNotFoundException
+ {
+ try
+ {
+ // Try WebApp ClassLoader first
+ return Class.forName(type,
+ false, // do not initialize for faster startup
+ Thread.currentThread().getContextClassLoader());
+ }
+ catch (ClassNotFoundException ignore)
+ {
+ // fallback: Try ClassLoader for ClassUtils (i.e. the myfaces.jar lib)
+ return Class.forName(type,
+ false, // do not initialize for faster startup
+ this.getClass().getClassLoader());
+ }
+ }
+
/**
* <p>Digester <code>Rule</code> for processing render kits.</p>
*/
@@ -443,7 +460,7 @@ public class ConfigParser {
Renderer renderer = null;
Class clazz = null;
try {
- clazz = this.getClass().getClassLoader().loadClass(bean.getRendererClass());
+ clazz = classForName(bean.getRendererClass());
renderer = (Renderer) clazz.newInstance();
} catch (Exception e) {
throw new IllegalArgumentException("Exception while trying to instantiate"
@@ -538,7 +555,7 @@ public class ConfigParser {
ClientBehaviorRenderer renderer = null;
Class clazz = null;
try {
- clazz = this.getClass().getClassLoader().loadClass(bean.getClientBehaviorRendererClass());
+ clazz = classForName(bean.getClientBehaviorRendererClass());
renderer = (ClientBehaviorRenderer) clazz.newInstance();
} catch (Exception e) {
throw new IllegalArgumentException("Exception while trying to instantiate"