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 {


Reply via email to