Index: tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java =================================================================== --- tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java (revision 107713) +++ tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java (revision ) @@ -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 Index: tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java =================================================================== --- tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java (revision 101688) +++ tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java (revision ) @@ -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 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 dynamicClassLoaders) + PersistenceUnitDependencyResolver resolver, Set 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 injectors) @@ -644,24 +650,8 @@ public Context getEnc() { - ClassLoader old = Thread.currentThread().getContextClassLoader(); - try - { - Thread.currentThread().setContextClassLoader(getClassloader()); - try - { - return (Context)new InitialContext().lookup("java:comp"); + return component.getContext(); - } + } - catch (NamingException e) - { - throw new RuntimeException(e); - } - } - finally - { - Thread.currentThread().setContextClassLoader(old); - } - } public boolean hasJNDIBinding(String jndiName) {