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;
                 }
             }