[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