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 2010/10/05 22:57:32 UTC
svn commit: r1004812 - in
/myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl:
projectstage/ProjectStageProducer.java utils/ClassDeactivation.java
utils/JndiUtils.java
Author: jakobk
Date: Tue Oct 5 20:57:31 2010
New Revision: 1004812
URL: http://svn.apache.org/viewvc?rev=1004812&view=rev
Log:
use JndiUtils for JNDI lookup in ProjectStageProducer and cleanup ClassDeactivation
Modified:
myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/projectstage/ProjectStageProducer.java
myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/utils/ClassDeactivation.java
myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/utils/JndiUtils.java
Modified: myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/projectstage/ProjectStageProducer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/projectstage/ProjectStageProducer.java?rev=1004812&r1=1004811&r2=1004812&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/projectstage/ProjectStageProducer.java (original)
+++ myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/projectstage/ProjectStageProducer.java Tue Oct 5 20:57:31 2010
@@ -21,17 +21,14 @@ package org.apache.myfaces.extensions.cd
import org.apache.myfaces.extensions.cdi.core.api.projectstage.ProjectStage;
import org.apache.myfaces.extensions.cdi.core.impl.utils.CodiUtils;
+import org.apache.myfaces.extensions.cdi.core.impl.utils.JndiUtils;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.context.Dependent;
import javax.enterprise.inject.Default;
import javax.enterprise.inject.Produces;
import javax.inject.Inject;
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
import java.io.IOException;
-import java.util.logging.Level;
import java.util.logging.Logger;
/**
@@ -200,30 +197,14 @@ public class ProjectStageProducer
protected ProjectStage getProjectStageFromJNDI()
{
- // TODO use JndiUtils
-
ProjectStage ps = null;
String stageName = null;
+
try
{
- Context ctx = new InitialContext();
- Object temp = ctx.lookup(PROJECT_STAGE_JNDI_NAME);
- if (temp != null)
- {
- if (temp instanceof String)
- {
- stageName = (String) temp;
- }
- else
- {
- log.log(Level.SEVERE,
- "JNDI lookup for key " + PROJECT_STAGE_JNDI_NAME
- + " should return a java.lang.String value");
- return null;
- }
- }
+ stageName = JndiUtils.lookup(PROJECT_STAGE_JNDI_NAME, String.class);
}
- catch (NamingException e)
+ catch (RuntimeException jndiException)
{
// no-op
}
Modified: myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/utils/ClassDeactivation.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/utils/ClassDeactivation.java?rev=1004812&r1=1004811&r2=1004812&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/utils/ClassDeactivation.java (original)
+++ myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/utils/ClassDeactivation.java Tue Oct 5 20:57:31 2010
@@ -60,27 +60,12 @@ public class ClassDeactivation
ClassDeactivator classDeactivator = null;
// check system property
- String classDeactivatorName = System.getProperty(CLASS_DEACTIVATOR_PROPERTY_NAME);
- if (classDeactivatorName != null)
- {
- classDeactivator = tryToInstantiateClassForName(classDeactivatorName, ClassDeactivator.class);
- }
+ classDeactivator = getClassDeactivatorFromEnvironment();
// check JNDI param
if (classDeactivator == null)
{
- try
- {
- classDeactivatorName = JndiUtils.lookup(CLASS_DEACTIVATOR_JNDI_NAME, String.class);
- if (classDeactivatorName != null)
- {
- classDeactivator = tryToInstantiateClassForName(classDeactivatorName, ClassDeactivator.class);
- }
- }
- catch (RuntimeException re)
- {
- // noop - lookup did not work
- }
+ classDeactivator = getClassDeactivatorFromJNDI();
}
// use default deactivator
@@ -104,6 +89,38 @@ public class ClassDeactivation
return classDeactivator;
}
+ private static ClassDeactivator getClassDeactivatorFromEnvironment()
+ {
+ String classDeactivatorName = System.getProperty(CLASS_DEACTIVATOR_PROPERTY_NAME);
+ if (classDeactivatorName != null)
+ {
+ return tryToInstantiateClassForName(classDeactivatorName, ClassDeactivator.class);
+ }
+
+ return null;
+ }
+
+ private static ClassDeactivator getClassDeactivatorFromJNDI()
+ {
+ String classDeactivatorName = null;
+
+ try
+ {
+ classDeactivatorName = JndiUtils.lookup(CLASS_DEACTIVATOR_JNDI_NAME, String.class);
+ }
+ catch (RuntimeException jndiException)
+ {
+ // noop - lookup did not work
+ }
+
+ if (classDeactivatorName != null)
+ {
+ return tryToInstantiateClassForName(classDeactivatorName, ClassDeactivator.class);
+ }
+
+ return null;
+ }
+
private static AbstractClassDeactivator createClassDeactivatorPlaceholder()
{
return new AbstractClassDeactivator()
Modified: myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/utils/JndiUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/utils/JndiUtils.java?rev=1004812&r1=1004811&r2=1004812&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/utils/JndiUtils.java (original)
+++ myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/utils/JndiUtils.java Tue Oct 5 20:57:31 2010
@@ -22,6 +22,8 @@ import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NameNotFoundException;
import javax.naming.NamingException;
+import java.util.logging.Level;
+import java.util.logging.Logger;
/**
* This is the internal helper class for low level access to JNDI
@@ -29,6 +31,8 @@ import javax.naming.NamingException;
public final class JndiUtils
{
+ private final static Logger log = Logger.getLogger(JndiUtils.class.getName());
+
private static InitialContext initialContext = null;
static
@@ -99,7 +103,25 @@ public final class JndiUtils
{
try
{
- return (T) initialContext.lookup(name);
+ Object lookedUp = initialContext.lookup(name);
+
+ if (lookedUp != null)
+ {
+ if (expectedClass.isAssignableFrom(lookedUp.getClass()))
+ {
+ // we have a value and the type fits
+ return (T) lookedUp;
+ }
+ 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);
+ }
+ }
+
+ return null;
}
catch (NamingException e)
{