You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ja...@apache.org on 2011/02/21 16:47:04 UTC
svn commit: r1073032 -
/myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/util/JndiUtils.java
Author: jakobk
Date: Mon Feb 21 15:47:04 2011
New Revision: 1073032
URL: http://svn.apache.org/viewvc?rev=1073032&view=rev
Log:
EXTCDI-134 unified base-config (check if looked up JNDI String value is a class name and create instance automatically)
Modified:
myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/util/JndiUtils.java
Modified: myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/util/JndiUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/util/JndiUtils.java?rev=1073032&r1=1073031&r2=1073032&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/util/JndiUtils.java (original)
+++ myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/util/JndiUtils.java Mon Feb 21 15:47:04 2011
@@ -112,12 +112,46 @@ public final class JndiUtils
// we have a value and the type fits
return (T) lookedUp;
}
+ else if (lookedUp instanceof String)
+ {
+ // lookedUp might be a class name
+ try
+ {
+ Class<?>lookedUpClass = Class.forName((String) lookedUp);
+ if (expectedClass.isAssignableFrom(lookedUpClass))
+ {
+ try
+ {
+ return (T) lookedUpClass.newInstance();
+ }
+ catch (Exception e)
+ {
+ // could not create instance
+ log.log(Level.SEVERE, "Class " + lookedUpClass + " from JNDI lookup for name "
+ + name + " could not be instantiated", e);
+ }
+ }
+ else
+ {
+ // lookedUpClass does not extend/implement expectedClass
+ log.log(Level.SEVERE, "JNDI lookup for key " + name
+ + " returned class " + lookedUpClass.getName()
+ + " which does not implement/extend the expected class"
+ + expectedClass.getName());
+ }
+ }
+ catch (ClassNotFoundException cnfe)
+ {
+ // could not find class
+ log.log(Level.SEVERE, "Could not find Class " + lookedUp
+ + " from JNDI lookup for name " + name, cnfe);
+ }
+ }
else
{
// we have a value, but the value does not fit
- log.log(Level.SEVERE,
- "JNDI lookup for key " + name
- + " should return a value of " + expectedClass);
+ log.log(Level.SEVERE, "JNDI lookup for key " + name + " should return a value of "
+ + expectedClass + ", but returned " + lookedUp);
}
}