You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2011/09/21 00:46:18 UTC

svn commit: r1173413 - /openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java

Author: rmannibucau
Date: Tue Sep 20 22:46:18 2011
New Revision: 1173413

URL: http://svn.apache.org/viewvc?rev=1173413&view=rev
Log:
moving some javaee6 work in tomcat integration from deployWebapp to init method to manage tomcat created standard context - to validate against tcks

Modified:
    openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java

Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java?rev=1173413&r1=1173412&r2=1173413&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java Tue Sep 20 22:46:18 2011
@@ -219,17 +219,6 @@ public class TomcatWebAppBuilder impleme
         for (WebAppInfo webApp : appInfo.webApps) {
             if (getContextInfo(webApp) == null) {
                 StandardContext standardContext = new StandardContext();
-                standardContext.setCrossContext(Boolean.parseBoolean(System.getProperty(OPENEJB_CROSSCONTEXT_PROPERTY, "false")));
-                standardContext.setNamingResources(new OpenEJBNamingResource());
-
-                String s = File.pathSeparator;
-                File contextXmlFile = new File(webApp.path + s + "META-INF" + s + "context.xml");
-                if (contextXmlFile.exists()) {
-                    BackportUtil.getAPI().setConfigFile(standardContext, contextXmlFile);
-                    standardContext.setOverride(true);
-                }
-                ContextConfig contextConfig = new OpenEJBContextConfig();
-                standardContext.addLifecycleListener(contextConfig);
 
                 if (webApp.contextRoot != null && webApp.contextRoot.startsWith("/")) {
                     standardContext.setPath(webApp.contextRoot);
@@ -240,13 +229,6 @@ public class TomcatWebAppBuilder impleme
                 standardContext.setParentClassLoader(classLoader);
                 standardContext.setDelegate(true);
 
-                // force manually the namingContextListener to merge jndi in an easier way
-                NamingContextListener ncl = new NamingContextListener();
-                ncl.setName(standardContext.getName());
-                standardContext.setNamingContextListener(ncl);
-                standardContext.addLifecycleListener(ncl);
-                standardContext.addLifecycleListener(new TomcatJavaJndiBinder());
-
 
                 String host = webApp.host;
                 if (host == null) {
@@ -351,6 +333,32 @@ public class TomcatWebAppBuilder impleme
      */
     @Override
     public void init(StandardContext standardContext) {
+        standardContext.setCrossContext(Boolean.parseBoolean(System.getProperty(OPENEJB_CROSSCONTEXT_PROPERTY, "false")));
+        standardContext.setNamingResources(new OpenEJBNamingResource());
+
+        if (standardContext.getConfigFile() == null) {
+            String s = File.pathSeparator;
+            File contextXmlFile = new File(standardContext.getDocBase() + s + "META-INF" + s + "context.xml");
+            if (contextXmlFile.exists()) {
+                BackportUtil.getAPI().setConfigFile(standardContext, contextXmlFile);
+                standardContext.setOverride(true);
+            }
+        }
+
+        LifecycleListener[] listeners = standardContext.findLifecycleListeners();
+        for (LifecycleListener l : listeners) {
+            if (l instanceof ContextConfig) {
+                standardContext.removeLifecycleListener(l);
+            }
+        }
+        standardContext.addLifecycleListener(new OpenEJBContextConfig());
+
+        // force manually the namingContextListener to merge jndi in an easier way
+        NamingContextListener ncl = new NamingContextListener();
+        ncl.setName(standardContext.getName());
+        standardContext.setNamingContextListener(ncl);
+        standardContext.addLifecycleListener(ncl);
+        standardContext.addLifecycleListener(new TomcatJavaJndiBinder());
     }
 
     /**