You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by vi...@apache.org on 2008/03/12 17:14:53 UTC

svn commit: r636392 - /geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/MRCConnector.java

Author: viet
Date: Wed Mar 12 09:14:45 2008
New Revision: 636392

URL: http://svn.apache.org/viewvc?rev=636392&view=rev
Log:
Fix for geronimo-3833. Dynamically fetching the mbean name instead of hardcoding it.

Modified:
    geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/MRCConnector.java

Modified: geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/MRCConnector.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/MRCConnector.java?rev=636392&r1=636391&r2=636392&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/MRCConnector.java (original)
+++ geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/MRCConnector.java Wed Mar 12 09:14:45 2008
@@ -46,7 +46,7 @@
 
 public class MRCConnector {
 
-    private static final String PATH = "geronimo:ServiceModule=org.apache.geronimo.plugins.monitoring/agent-car-jmx/2.2-SNAPSHOT/car,J2EEServer=geronimo,name=MasterRemoteControlJMX,j2eeType=GBean";
+    private static String PATH = null;
     private static MBeanServerConnection mbServerConn;
     private MasterRemoteControlRemote mrc = null;
     private int Protocol = 0;
@@ -105,7 +105,27 @@
                 JMXConnector connector = JMXConnectorFactory.connect(
                         serviceURL, env);
                 mbServerConn = connector.getMBeanServerConnection();
+
+                // retrieve the mbean name to the agent-car-jmx plugin
+                if(PATH == null) {
+                    Set<ObjectName> mbeanNames = mbServerConn.queryNames(null, null);
+                    for(Iterator<ObjectName> it = mbeanNames.iterator(); it.hasNext(); ) {
+                        String mbeanName = ((ObjectName)it.next()).getCanonicalName();
+                        if(mbeanName.contains("agent-car-jmx") &&
+                           mbeanName.contains("MasterRemoteControlJMX") &&
+                           mbeanName.contains("GBean")) {
+                            PATH = mbeanName;
+                            break;
+                        }
+                    }
+
+                    // there must be a PATH to agent-car-jmx plugin
+                    if(PATH == null) {
+                        throw new Exception("[ERROR] Required mbean not found: agent-car-jmx");
+                    }
+                }
             } catch (Exception e) {
+                e.printStackTrace();
                 throw e;
             }