[jboss-cvs] JBoss Messaging SVN: r3568 - branches/Branch_Stable/src/main/org/jboss/jms/server.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Jan 15 03:30:19 EST 2008


Author: scott.stark at jboss.org
Date: 2008-01-15 03:30:19 -0500 (Tue, 15 Jan 2008)
New Revision: 3568

Modified:
   branches/Branch_Stable/src/main/org/jboss/jms/server/ServerPeer.java
Log:
Generalize the destination mbean class loader object name access using reflection

Modified: branches/Branch_Stable/src/main/org/jboss/jms/server/ServerPeer.java
===================================================================
--- branches/Branch_Stable/src/main/org/jboss/jms/server/ServerPeer.java	2008-01-15 07:59:36 UTC (rev 3567)
+++ branches/Branch_Stable/src/main/org/jboss/jms/server/ServerPeer.java	2008-01-15 08:30:19 UTC (rev 3568)
@@ -25,6 +25,7 @@
 import java.io.CharArrayWriter;
 import java.io.InputStream;
 import java.io.PrintWriter;
+import java.lang.reflect.Method;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -1462,10 +1463,19 @@
 
       ClassLoader cl = this.getClass().getClassLoader();
       ObjectName loaderObjectName = null;
-      if (cl instanceof UnifiedClassLoader3)
+      // Try reflection for getObjectName on the class loader
+      Class[] sig = {};
+      Method getObjectName = cl.getClass().getMethod("getObjectName", sig);
+      try
       {
-         loaderObjectName = ((UnifiedClassLoader3)cl).getObjectName();
+         Object[] args = {};
+         loaderObjectName = (ObjectName) getObjectName.invoke(cl, args);
       }
+      catch(Throwable e)
+      {
+         if(log.isTraceEnabled())
+            log.trace("Failed to find/invoke getObjectName", e);
+      }
 
       sc.install(on, loaderObjectName, element);
 




More information about the jboss-cvs-commits mailing list