You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by va...@apache.org on 2007/06/28 09:29:33 UTC
svn commit: r551483 -
/geronimo/server/trunk/modules/geronimo-system/src/main/java/org/apache/geronimo/system/jmx/RealMBeanServerReference.java
Author: vamsic007
Date: Thu Jun 28 00:29:24 2007
New Revision: 551483
URL: http://svn.apache.org/viewvc?view=rev&rev=551483
Log:
GERONIMO-3268 RealMBeanServerReference unintentionally uses an MBeanServer not created by Geronimo
o Added a constructor so that Geronimo always uses an MBeanServer with default domain "geronimo".
Modified:
geronimo/server/trunk/modules/geronimo-system/src/main/java/org/apache/geronimo/system/jmx/RealMBeanServerReference.java
Modified: geronimo/server/trunk/modules/geronimo-system/src/main/java/org/apache/geronimo/system/jmx/RealMBeanServerReference.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-system/src/main/java/org/apache/geronimo/system/jmx/RealMBeanServerReference.java?view=diff&rev=551483&r1=551482&r2=551483
==============================================================================
--- geronimo/server/trunk/modules/geronimo-system/src/main/java/org/apache/geronimo/system/jmx/RealMBeanServerReference.java (original)
+++ geronimo/server/trunk/modules/geronimo-system/src/main/java/org/apache/geronimo/system/jmx/RealMBeanServerReference.java Thu Jun 28 00:29:24 2007
@@ -28,18 +28,40 @@
* @version $Rev$ $Date$
*/
public class RealMBeanServerReference implements MBeanServerReference {
+ private static final String GERONIMO_DEFAULT_DOMAIN = "geronimo";
+
private MBeanServer mbeanServer;
public RealMBeanServerReference(String mbeanServerId) throws MBeanServerNotFound {
ArrayList servers = MBeanServerFactory.findMBeanServer(mbeanServerId);
if (servers.size() == 0) {
- mbeanServer = MBeanServerFactory.createMBeanServer("geronimo");
+ mbeanServer = MBeanServerFactory.createMBeanServer(GERONIMO_DEFAULT_DOMAIN);
} else if (servers.size() > 1) {
throw new MBeanServerNotFound(servers.size() + " MBeanServers were found with the agent id " + mbeanServerId);
} else {
mbeanServer = (MBeanServer) servers.get(0);
}
}
+
+ /**
+ * Finds an existing MBeanServer with default domain GERONIMO_DEFAULT_DOMAIN
+ * or creates a new one if there isn't any.
+ */
+ public RealMBeanServerReference() {
+ // Find all MBeanServers
+ ArrayList<MBeanServer> servers = MBeanServerFactory.findMBeanServer(null);
+ for(MBeanServer server: servers) {
+ // Look for one with default domain GERONIMO_DEFAULT_DOMAIN
+ if (GERONIMO_DEFAULT_DOMAIN.equals(server.getDefaultDomain())) {
+ mbeanServer = server;
+ break;
+ }
+ }
+ if(mbeanServer == null) {
+ // No MBeanServer with default domain GERONIMO_DEFAULT_DOMAIN exists. Create one.
+ mbeanServer = MBeanServerFactory.createMBeanServer(GERONIMO_DEFAULT_DOMAIN);
+ }
+ }
public MBeanServer getMBeanServer() {
return mbeanServer;
@@ -50,7 +72,7 @@
static {
GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic(RealMBeanServerReference.class);
infoFactory.addAttribute("mbeanServerId", String.class, true);
- infoFactory.setConstructor(new String[]{"mbeanServerId"});
+ //infoFactory.setConstructor(new String[]{"mbeanServerId"});
GBEAN_INFO = infoFactory.getBeanInfo();
}