[jboss-cvs] JBossAS SVN: r107742 - in trunk/tomcat/src/main/java/org/jboss/web/tomcat/service: deployers and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Aug 23 16:03:56 EDT 2010


Author: wolfc
Date: 2010-08-23 16:03:55 -0400 (Mon, 23 Aug 2010)
New Revision: 107742

Modified:
   trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java
   trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java
Log:
JBAS-7862: fix injection container

Modified: trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java
===================================================================
--- trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java	2010-08-23 19:35:37 UTC (rev 107741)
+++ trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java	2010-08-23 20:03:55 UTC (rev 107742)
@@ -69,6 +69,7 @@
 import org.jboss.metadata.web.jboss.JBossWebMetaData;
 import org.jboss.ejb3.vfs.spi.VirtualFile;
 import org.jboss.ejb3.vfs.impl.vfs3.VirtualFileWrapper;
+import org.jboss.reloaded.naming.spi.JavaEEComponent;
 import org.jboss.web.WebApplication;
 import org.jboss.web.tomcat.service.injection.TomcatInjectionUtils;
 import org.jboss.web.tomcat.service.injection.WebEJBHandler;
@@ -142,6 +143,8 @@
    private static final Properties restrictedListeners = new Properties();
    private static final Properties restrictedServlets = new Properties();
    private List<Injector> defaultInjectors;
+   // the naming component counter-part
+   private JavaEEComponent component;
 
 
    static
@@ -198,10 +201,12 @@
    }
 
    public TomcatInjectionContainer(WebApplication appInfo, DeploymentUnit unit, org.apache.catalina.Context catalinaContext,
-         PersistenceUnitDependencyResolver resolver, Set<String> dynamicClassLoaders)
+         PersistenceUnitDependencyResolver resolver, Set<String> dynamicClassLoaders, JavaEEComponent component)
    {
       super(new SimpleJavaEEModule(appInfo.getName()));
 
+      assert component != null : "component is null";
+
       this.unit = unit;
       this.appInfo = appInfo;
       this.catalinaContext = catalinaContext;
@@ -213,6 +218,7 @@
       this.webDD = unit.getAttachment(JBossWebMetaData.class);
       assert this.webDD != null : "webDD is null (no JBossWebMetaData attachment in VFSDeploymentUnit)";
 
+      this.component = component;
    }
 
    public void setDefaultInjectors(List<Injector> injectors)
@@ -644,23 +650,7 @@
 
    public Context getEnc()
    {
-      ClassLoader old = Thread.currentThread().getContextClassLoader();
-      try
-      {
-         Thread.currentThread().setContextClassLoader(getClassloader());
-         try
-         {
-            return (Context)new InitialContext().lookup("java:comp");
-         }
-         catch (NamingException e)
-         {
-            throw new RuntimeException(e);
-         }
-      }
-      finally
-      {
-         Thread.currentThread().setContextClassLoader(old);
-      }
+      return component.getContext();
    }
 
    public boolean hasJNDIBinding(String jndiName)

Modified: trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java
===================================================================
--- trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java	2010-08-23 19:35:37 UTC (rev 107741)
+++ trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java	2010-08-23 20:03:55 UTC (rev 107742)
@@ -90,6 +90,8 @@
 
    private JavaEEComponentInformer componentInformer;
 
+   private JavaEEComponent component;
+
    public ORB getORB()
    {
       return orb;
@@ -187,9 +189,11 @@
          }
       }
       
+      this.component = createJavaEEComponent();
+
       TomcatInjectionContainer injectionContainer = 
          new TomcatInjectionContainer(webApp, depUnit, context, 
-               getPersistenceUnitDependencyResolver(), config.getDynamicClassloaders());
+               getPersistenceUnitDependencyResolver(), config.getDynamicClassloaders(), component);
 
       if (kernel != null)
       {
@@ -291,7 +295,6 @@
       JBossContextConfig.metaDataLocal.set(metaData);
       JBossContextConfig.deployerConfig.set(config);
       JBossContextConfig.tldMetaDataMapLocal.set(tldMetaDataMap);
-      JavaEEComponent component = createJavaEEComponent();
       NamingListener.idLocal.set(component);
 
       JBossContextConfig.kernelLocal.set(kernel);
@@ -402,8 +405,7 @@
                // TODO: The enc should be an input?
                currentThread.setContextClassLoader(webLoader.getClassLoader());
                metaData.setENCLoader(webLoader.getClassLoader());
-               InitialContext iniCtx = new InitialContext();
-               Context envCtx = (Context)iniCtx.lookup("java:comp");
+               Context envCtx = component.getContext();
                // Add ORB/UserTransaction
                ORB orb = null;
                try
@@ -689,10 +691,6 @@
    // TODO: weirdness, if I make this package private I get IllegalAccessError
    public String getJavaEEModuleName()
    {
-      // TODO: must come in via MC injection
-//      NamingJavaEEComponentInformer componentInformer = new NamingJavaEEComponentInformer();
-//      componentInformer.setJavaEEModuleIdentifier(new SimpleJavaEEModuleIdentifier());
-//      final JavaEEComponentInformer componentInformer = (JavaEEComponentInformer) kernel.getController().getContextByClass(JavaEEComponentInformer.class).getTarget();
       assert componentInformer != null : "componentInformer is null";
       // assert ControllerState.INSTALLED
 



More information about the jboss-cvs-commits mailing list