[jboss-cvs] JBossAS SVN: r85932 - in branches/Branch_5_x: tomcat/src/main/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 Mar 16 11:27:15 EDT 2009


Author: alesj
Date: 2009-03-16 11:27:15 -0400 (Mon, 16 Mar 2009)
New Revision: 85932

Modified:
   branches/Branch_5_x/server/src/main/org/jboss/deployment/EarClassLoaderDeployer.java
   branches/Branch_5_x/tomcat/src/main/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java
Log:
[JBAS-6600]; fix .ear cl isolation.
Fix TD's TomcatInjectionContainer usage - per deployment.

Modified: branches/Branch_5_x/server/src/main/org/jboss/deployment/EarClassLoaderDeployer.java
===================================================================
--- branches/Branch_5_x/server/src/main/org/jboss/deployment/EarClassLoaderDeployer.java	2009-03-16 14:56:10 UTC (rev 85931)
+++ branches/Branch_5_x/server/src/main/org/jboss/deployment/EarClassLoaderDeployer.java	2009-03-16 15:27:15 UTC (rev 85932)
@@ -79,21 +79,21 @@
          return;
 
       LoaderRepositoryMetaData lrmd = metaData.getLoaderRepository();
-      if (lrmd != null)
+      if (lrmd != null && LoaderRepositoryMetaDataHelper.create(unit, lrmd) != null)
+         return;
+
+      // For isolated automatically create the classloader in a new domain
+      if (isolated)
       {
-         ClassLoadingMetaData clmd = LoaderRepositoryMetaDataHelper.create(unit, lrmd);
-         // For isolated automatically create the classloader in a new domain
-         if (clmd == null && isolated)
-         {
-            String domain = EARDeployment.getJMXName(metaData, unit) + ",extension=LoaderRepository";
-            classLoadingMetaData = new ClassLoadingMetaData();
-            classLoadingMetaData.setName(unit.getName());
-            classLoadingMetaData.setDomain(domain);
-            classLoadingMetaData.setExportAll(ExportAll.NON_EMPTY);
-            classLoadingMetaData.setImportAll(true);
-            classLoadingMetaData.setVersion(Version.DEFAULT_VERSION);
-            classLoadingMetaData.setJ2seClassLoadingCompliance(false);
-         }
+         String domain = EARDeployment.getJMXName(metaData, unit) + ",extension=LoaderRepository";
+         classLoadingMetaData = new ClassLoadingMetaData();
+         classLoadingMetaData.setName(unit.getName());
+         classLoadingMetaData.setDomain(domain);
+         classLoadingMetaData.setExportAll(ExportAll.NON_EMPTY);
+         classLoadingMetaData.setImportAll(true);
+         classLoadingMetaData.setVersion(Version.DEFAULT_VERSION);
+         classLoadingMetaData.setJ2seClassLoadingCompliance(false);
+         unit.addAttachment(ClassLoadingMetaData.class, classLoadingMetaData);
       }
    }
 }

Modified: branches/Branch_5_x/tomcat/src/main/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java
===================================================================
--- branches/Branch_5_x/tomcat/src/main/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java	2009-03-16 14:56:10 UTC (rev 85931)
+++ branches/Branch_5_x/tomcat/src/main/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java	2009-03-16 15:27:15 UTC (rev 85932)
@@ -95,8 +95,6 @@
 
    private ORB orb = null;
 
-   private TomcatInjectionContainer injectionContainer;
-
    public ORB getORB()
    {
       return orb;
@@ -170,11 +168,11 @@
       StandardContext context = (StandardContext)Class.forName(config.getContextClassName()).newInstance();
 
       DeploymentUnit depUnit = webApp.getDeploymentUnit();
-      injectionContainer = new TomcatInjectionContainer(webApp, depUnit, context, getPersistenceUnitDependencyResolver());
+      TomcatInjectionContainer injectionContainer = new TomcatInjectionContainer(webApp, depUnit, context, getPersistenceUnitDependencyResolver());
 
       Loader webLoader = depUnit.getAttachment(Loader.class);
       if (webLoader == null)
-         webLoader = getWebLoader(depUnit, metaData, loader, warUrl);
+         webLoader = getWebLoader(depUnit, metaData, loader, warUrl, injectionContainer);
 
       webApp.setName(warUrl.getPath());
       webApp.setClassLoader(loader);
@@ -296,7 +294,7 @@
 
       // Set listener
       context.setConfigClass("org.jboss.web.tomcat.service.deployers.JBossContextConfig");
-      context.addLifecycleListener(new EncListener(loader, webLoader, webApp));
+      context.addLifecycleListener(new EncListener(loader, webLoader, injectionContainer, webApp));
 
       // Pass the metadata to the RunAsListener via a thread local
       RunAsListener.metaDataLocal.set(metaData);
@@ -407,10 +405,13 @@
 
       protected DeploymentUnit unit;
 
-      public EncListener(ClassLoader loader, Loader webLoader, WebApplication webApp)
+      protected TomcatInjectionContainer injectionContainer;
+
+      public EncListener(ClassLoader loader, Loader webLoader, TomcatInjectionContainer injectionContainer, WebApplication webApp)
       {
          this.loader = loader;
          this.webLoader = webLoader;
+         this.injectionContainer = injectionContainer;
          this.webApp = webApp;
          this.metaData = webApp.getMetaData();
          this.unit = webApp.getDeploymentUnit();
@@ -496,7 +497,7 @@
 
    }
 
-   public Loader getWebLoader(DeploymentUnit unit, JBossWebMetaData metaData, ClassLoader loader, URL rl) throws MalformedURLException
+   public Loader getWebLoader(DeploymentUnit unit, JBossWebMetaData metaData, ClassLoader loader, URL rl, TomcatInjectionContainer injectionContainer) throws MalformedURLException
    {
       Loader webLoader;
       
@@ -533,11 +534,6 @@
       return webLoader;
    }
 
-   public void setInjectionContainer(TomcatInjectionContainer container)
-   {
-      this.injectionContainer = container;
-   }
-
    /**
     * Called as part of the undeploy() method template to ask the subclass for perform the web container specific
     * undeployment steps.




More information about the jboss-cvs-commits mailing list