[jboss-cvs] JBossAS SVN: r83721 - branches/Branch_5_x/system-jmx/src/main/org/jboss/system/deployers.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sat Jan 31 08:35:59 EST 2009
Author: thomas.diesler at jboss.com
Date: 2009-01-31 08:35:59 -0500 (Sat, 31 Jan 2009)
New Revision: 83721
Modified:
branches/Branch_5_x/system-jmx/src/main/org/jboss/system/deployers/ServiceDeployer.java
Log:
[JBAS-6425] full hirarcy search for RealClassLoader
Modified: branches/Branch_5_x/system-jmx/src/main/org/jboss/system/deployers/ServiceDeployer.java
===================================================================
--- branches/Branch_5_x/system-jmx/src/main/org/jboss/system/deployers/ServiceDeployer.java 2009-01-31 13:34:30 UTC (rev 83720)
+++ branches/Branch_5_x/system-jmx/src/main/org/jboss/system/deployers/ServiceDeployer.java 2009-01-31 13:35:59 UTC (rev 83721)
@@ -84,13 +84,7 @@
{
ObjectName loaderName = deployment.getClassLoaderName();
if (loaderName == null)
- {
- ClassLoader cl = unit.getClassLoader();
- if (cl != null && cl instanceof RealClassLoader)
- loaderName = ((RealClassLoader) cl).getObjectName();
- else
- loaderName = defaultClassLoader;
- }
+ loaderName = findLoaderName(unit.getClassLoader());
controller.install(deployment, loaderName);
ServiceContext context = controller.getServiceContext(name);
@@ -124,6 +118,28 @@
}
}
+ /**
+ * Find first RealClassLoader instance
+ * and return its ObjectName.
+ * If none is found return defaultClassloader.
+ *
+ * @param cl the classloader
+ * @return classloader's ObjectName
+ */
+ protected ObjectName findLoaderName(ClassLoader cl)
+ {
+ if (cl == null)
+ return defaultClassLoader;
+
+ if (cl instanceof RealClassLoader)
+ {
+ RealClassLoader rcl = RealClassLoader.class.cast(cl);
+ return rcl.getObjectName();
+ }
+
+ return findLoaderName(cl.getParent());
+ }
+
public void undeploy(DeploymentUnit unit, ServiceMetaData deployment)
{
ObjectName name = deployment.getObjectName();
More information about the jboss-cvs-commits
mailing list