Author: rmannibucau
Date: Sat Oct 22 12:34:00 2011
New Revision: 1187705

URL: http://svn.apache.org/viewvc?rev=1187705&view=rev
Log:
TOMEE-39 using a parameter in standardContext to keep moduleId of the webapp to 
be able to get the WebContext in later events

Modified:
    
openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatJndiBuilder.java
    
openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java

Modified: 
openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatJndiBuilder.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatJndiBuilder.java?rev=1187705&r1=1187704&r2=1187705&view=diff
==============================================================================
--- 
openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatJndiBuilder.java
 (original)
+++ 
openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatJndiBuilder.java
 Sat Oct 22 12:34:00 2011
@@ -180,18 +180,23 @@ public class TomcatJndiBuilder {
             // no-op
         }
 
-        // TODO: uniformize webapp moduleId?
         // classical deployment - needed because can be overriden through 
META-INF/context.xml
-        String path = standardContext.getHostname();
-        if (standardContext.getPath().startsWith("/")) {
-            path += standardContext.getPath();
-        } else {
-            path += "/" + standardContext.getPath();
+        String path = 
standardContext.findParameter(TomcatWebAppBuilder.OPENEJB_WEBAPP_MODULE_ID);
+        if (path == null) { // standardContext not created by OpenEJB
+            path = standardContext.getHostname();
+            if (standardContext.getPath().startsWith("/")) {
+                path += standardContext.getPath();
+            } else {
+                path += "/" + standardContext.getPath();
+            }
         }
 
         WebContext webContext = cs.getWebContext(path);
         if (webContext == null) { // tomee-embedded deployment
             webContext = 
cs.getWebContext(standardContext.getPath().replaceFirst("/", ""));
+            if (webContext == null) {
+                webContext = cs.getWebContext(standardContext.getPath());
+            }
         }
 
         if (webContext != null && webContext.getBindings() != null) {
@@ -220,7 +225,9 @@ public class TomcatJndiBuilder {
             comp.rebind("ORB", new SystemComponentReference(ORB.class));
             comp.rebind("HandleDelegate", new 
SystemComponentReference(HandleDelegate.class));
 
-            comp.rebind("BeanManager", 
webContext.getAppContext().getBeanManager());
+            if (webContext != null) {
+                comp.rebind("BeanManager", 
webContext.getAppContext().getBeanManager());
+            }
         } catch (Exception ignored) {
             ignored.printStackTrace();
             // no-op

Modified: 
openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java?rev=1187705&r1=1187704&r2=1187705&view=diff
==============================================================================
--- 
openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
 (original)
+++ 
openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
 Sat Oct 22 12:34:00 2011
@@ -29,6 +29,7 @@ import org.apache.catalina.core.NamingCo
 import org.apache.catalina.core.StandardContext;
 import org.apache.catalina.core.StandardHost;
 import org.apache.catalina.core.StandardServer;
+import org.apache.catalina.deploy.ApplicationParameter;
 import org.apache.catalina.deploy.ContextEnvironment;
 import org.apache.catalina.deploy.ContextResource;
 import org.apache.catalina.deploy.ContextResourceLink;
@@ -123,6 +124,7 @@ public class TomcatWebAppBuilder impleme
     private static final Logger logger = 
Logger.getInstance(LogCategory.OPENEJB.createChild("tomcat"), 
"org.apache.openejb.util.resources");
 
     private static final Digester CONTEXT_DIGESTER = createDigester();
+    public static final String OPENEJB_WEBAPP_MODULE_ID = 
"openejb.webapp.moduleId";
 
     /**
      * Context information for web applications
@@ -290,6 +292,11 @@ public class TomcatWebAppBuilder impleme
                 webApp.host = standardContext.getHostname();
             }
 
+            ApplicationParameter appParam = new ApplicationParameter();
+            appParam.setName(OPENEJB_WEBAPP_MODULE_ID);
+            appParam.setValue(webApp.moduleId);
+            standardContext.addApplicationParameter(appParam);
+
             if (getContextInfo(webApp.host, webApp.contextRoot) == null) {
                 if (standardContext.getPath() == null) {
                     if (webApp.contextRoot != null && 
webApp.contextRoot.startsWith("/")) {


Reply via email to