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("/")) {