Author: rmannibucau
Date: Thu May 10 22:54:31 2012
New Revision: 1336937
URL: http://svn.apache.org/viewvc?rev=1336937&view=rev
Log:
TOMEE-189 using contextroot to match the webapp webbeansconext
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java?rev=1336937&r1=1336936&r2=1336937&view=diff
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
(original)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
Thu May 10 22:54:31 2012
@@ -40,6 +40,7 @@ public class WebContext {
private final AppContext appContext;
private Map<String,Object> bindings;
private WebBeansContext webbeansContext;
+ private String contextRoot;
public Context getInitialContext() {
if (initialContext != null) return initialContext;
@@ -184,4 +185,12 @@ public class WebContext {
public WebBeansContext getWebbeansContext() {
return webbeansContext;
}
+
+ public void setContextRoot(String contextRoot) {
+ this.contextRoot = contextRoot;
+ }
+
+ public String getContextRoot() {
+ return contextRoot;
+ }
}
Modified:
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java?rev=1336937&r1=1336936&r2=1336937&view=diff
==============================================================================
---
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
(original)
+++
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
Thu May 10 22:54:31 2012
@@ -704,6 +704,7 @@ public class TomcatWebAppBuilder impleme
final WebContext webContext = new WebContext(appContext);
webContext.setClassLoader(classLoader);
webContext.setId(webAppInfo.moduleId);
+ webContext.setContextRoot(webAppInfo.contextRoot);
webContext.setBindings(bindings);
webContext.getInjections().addAll(injections);
appContext.getWebContexts().add(webContext);
@@ -907,17 +908,39 @@ public class TomcatWebAppBuilder impleme
if (webBeansContext == null) return null;
for (WebContext web : appContext.getWebContexts()) {
- final String name = web.getId();
- final String stdName = contextInfo.standardContext.getName();
- if (stdName.equals(name) || stdName.equals("/" + name) || ("/" +
name).equals(stdName + ".war")) {
+ final String stdName =
removeFirstSlashAndWar(contextInfo.standardContext.getName());
+ if (stdName == null) {
+ continue;
+ }
+
+ final String name = removeFirstSlashAndWar(web.getContextRoot());
+ if (stdName.equals(name)) {
webBeansContext = web.getWebbeansContext();
break;
}
}
+ if (webBeansContext == null) webBeansContext =
appContext.getWebBeansContext();
+
return new WebBeansListener(webBeansContext);
}
+ private static String removeFirstSlashAndWar(String name) {
+ if (name == null || "/".equals(name) || name.isEmpty()) {
+ return "";
+ }
+
+ String out = name;
+ if (out.startsWith("/")) {
+ out = out.substring(1);
+ }
+ if (out.endsWith(".war")) {
+ return out.substring(0, Math.max(out.length() - 4, 0));
+ }
+
+ return out;
+ }
+
private static boolean isIgnored(final StandardContext standardContext) {
// useful to disable web applications deployment