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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Jan 15 02:49:27 EST 2008


Author: scott.stark at jboss.org
Date: 2008-01-15 02:49:27 -0500 (Tue, 15 Jan 2008)
New Revision: 3565

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


Modified: branches/Branch_1_4_0_SP/src/main/org/jboss/jms/server/ServerPeer.java
===================================================================
--- branches/Branch_1_4_0_SP/src/main/org/jboss/jms/server/ServerPeer.java	2008-01-15 07:43:42 UTC (rev 3564)
+++ branches/Branch_1_4_0_SP/src/main/org/jboss/jms/server/ServerPeer.java	2008-01-15 07:49:27 UTC (rev 3565)
@@ -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;
@@ -1481,10 +1482,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