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/07/24 22:16:56 UTC
svn commit: r1150481 -
/openejb/branches/openejb-3.2.x/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
Author: rmannibucau
Date: Sun Jul 24 20:16:55 2011
New Revision: 1150481
URL: http://svn.apache.org/viewvc?rev=1150481&view=rev
Log:
modifying jndi bindings in tomcat on branch 3.2.x - merged from trunk
Modified:
openejb/branches/openejb-3.2.x/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
Modified: openejb/branches/openejb-3.2.x/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-3.2.x/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java?rev=1150481&r1=1150480&r2=1150481&view=diff
==============================================================================
--- openejb/branches/openejb-3.2.x/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java (original)
+++ openejb/branches/openejb-3.2.x/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java Sun Jul 24 20:16:55 2011
@@ -20,6 +20,7 @@ package org.apache.openejb.tomcat.catali
import static org.apache.openejb.tomcat.catalina.BackportUtil.getServlet;
import static org.apache.openejb.tomcat.catalina.BackportUtil.*;
+import org.apache.catalina.core.NamingContextListener;
import org.apache.openejb.tomcat.common.LegacyAnnotationProcessor;
import org.apache.openejb.tomcat.common.TomcatVersion;
import org.apache.catalina.Container;
@@ -330,28 +331,37 @@ public class TomcatWebAppBuilder impleme
// bind extra stuff at the java:comp level which can only be
// bound after the context is created
- String listenerName = getNamingContextListener(standardContext).getName();
+ NamingContextListener ncl = getNamingContextListener(standardContext);
+ String listenerName = ncl.getName();
ContextAccessController.setWritable(listenerName, standardContext);
try {
- Context openejbContext = SystemInstance.get().getComponent(ContainerSystem.class).getJNDIContext();
+ Context openejbContext = getContainerSystem().getJNDIContext();
openejbContext = (Context) openejbContext.lookup("openejb");
- Context root = (Context) ContextBindings.getClassLoader().lookup("");
- safeBind(root, "openejb", openejbContext);
+ // Context root = (Context) ContextBindings.getClassLoader().lookup("");
+ // Context comp = (Context) ContextBindings.getClassLoader().lookup("comp");
- Context comp = (Context) ContextBindings.getClassLoader().lookup("comp");
+ Context root = ncl.getNamingContext();
+ Context comp = (Context) root.lookup("comp");
+ safeBind(root, "openejb", openejbContext);
// add context to WebDeploymentInfo
for (WebAppInfo webAppInfo : contextInfo.appInfo.webApps) {
- // Bean Validation
- standardContext.getServletContext().setAttribute("javax.faces.validator.beanValidator.ValidatorFactory", openejbContext.lookup(Assembler.VALIDATOR_FACTORY_NAMING_CONTEXT + webAppInfo.moduleId));
+ boolean isRoot = isRootApplication(standardContext);
+ if (("/" + webAppInfo.contextRoot).equals(standardContext.getPath()) || isRoot) {
+ CoreWebDeploymentInfo webContext = (CoreWebDeploymentInfo) getContainerSystem().getWebDeploymentInfo(webAppInfo.moduleId);
+ if (webContext != null) {
+ webContext.setJndiEnc(root);
+ }
- if (("/" + webAppInfo.contextRoot).equals(standardContext.getPath()) || isRootApplication(standardContext)) {
- CoreWebDeploymentInfo webDeploymentInfo = (CoreWebDeploymentInfo) getContainerSystem().getWebDeploymentInfo(webAppInfo.moduleId);
- if (webDeploymentInfo != null) {
- webDeploymentInfo.setJndiEnc(comp);
+ try {
+ // Bean Validation
+ standardContext.getServletContext().setAttribute("javax.faces.validator.beanValidator.ValidatorFactory", openejbContext.lookup(Assembler.VALIDATOR_FACTORY_NAMING_CONTEXT.replaceFirst("openejb", "") + webAppInfo.uniqueId));
+ } catch (NamingException ne) {
+ logger.warning("no validator factory found for webapp " + webAppInfo.moduleId);
}
+
break;
}
}