Author: rmannibucau
Date: Wed Aug 15 18:48:22 2012
New Revision: 1373565
URL: http://svn.apache.org/viewvc?rev=1373565&view=rev
Log:
better management of startup listener of myfaces (was a reflection issue)
Modified:
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
openejb/trunk/openejb/tomee/tomee-myfaces/src/main/java/org/apache/tomee/myfaces/TomEEMyFacesContainerInitializer.java
Modified:
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java?rev=1373565&r1=1373564&r2=1373565&view=diff
==============================================================================
---
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
(original)
+++
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
Wed Aug 15 18:48:22 2012
@@ -33,7 +33,6 @@ import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLClassLoader;
-import java.util.Arrays;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
@@ -42,7 +41,6 @@ public class OpenEJBContextConfig extend
private static Logger logger = Logger.getInstance(LogCategory.OPENEJB,
OpenEJBContextConfig.class);
- private static final String MYFACES_STARTUP_SERVLET_CONTEXT_LISTENER =
"org.apache.myfaces.webapp.StartupServletContextListener";
private static final String MYFACES_TOMEEM_CONTAINER_INITIALIZER =
"org.apache.tomee.myfaces.TomEEMyFacesContainerInitializer";
private static final String TOMEE_MYFACES_CONTEXT_LISTENER =
"org.apache.tomee.myfaces.TomEEMyFacesContextListener";
@@ -91,9 +89,6 @@ public class OpenEJBContextConfig extend
final Class<?> myfacesInitializer =
Class.forName(MYFACES_TOMEEM_CONTAINER_INITIALIZER, true,
context.getLoader().getClassLoader());
final ServletContainerInitializer instance =
(ServletContainerInitializer) myfacesInitializer.newInstance();
context.addServletContainerInitializer(instance,
getJsfClasses(context));
- if
(!Arrays.asList(context.findApplicationListeners()).contains(MYFACES_STARTUP_SERVLET_CONTEXT_LISTENER))
{ // todo: probably do another listener (a delegator) which knows the context
and is abl to skip itself
-
context.addApplicationListener(MYFACES_STARTUP_SERVLET_CONTEXT_LISTENER);
- }
context.addApplicationListener(TOMEE_MYFACES_CONTEXT_LISTENER); //
cleanup listener
} catch (Exception ignored) {
// no-op
Modified:
openejb/trunk/openejb/tomee/tomee-myfaces/src/main/java/org/apache/tomee/myfaces/TomEEMyFacesContainerInitializer.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-myfaces/src/main/java/org/apache/tomee/myfaces/TomEEMyFacesContainerInitializer.java?rev=1373565&r1=1373564&r2=1373565&view=diff
==============================================================================
---
openejb/trunk/openejb/tomee/tomee-myfaces/src/main/java/org/apache/tomee/myfaces/TomEEMyFacesContainerInitializer.java
(original)
+++
openejb/trunk/openejb/tomee/tomee-myfaces/src/main/java/org/apache/tomee/myfaces/TomEEMyFacesContainerInitializer.java
Wed Aug 15 18:48:22 2012
@@ -83,8 +83,8 @@ public class TomEEMyFacesContainerInitia
if (ctx instanceof ApplicationContextFacade) {
try {
- final ApplicationContext appCtx = (ApplicationContext)
get(ctx);
- final Context tomcatCtx = (Context) get(appCtx);
+ final ApplicationContext appCtx = (ApplicationContext)
get(ApplicationContextFacade.class, ctx);
+ final Context tomcatCtx = (Context)
get(ApplicationContext.class, appCtx);
if
(!Arrays.asList(tomcatCtx.findApplicationListeners()).contains(StartupServletContextListener.class.getName()))
{
addListener(ctx);
}
@@ -144,8 +144,8 @@ public class TomEEMyFacesContainerInitia
}
}
- private static Object get(final Object facade) throws Exception {
- final Field field =
ApplicationContextFacade.class.getDeclaredField("context");
+ private static Object get(final Class<?> clazz, final Object facade)
throws Exception {
+ final Field field = clazz.getDeclaredField("context");
boolean acc = field.isAccessible();
field.setAccessible(true);
try {