[jboss-cvs] JBossAS SVN: r66966 - trunk/embedded/src/main/java/org/jboss/embedded/adapters.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Nov 12 12:02:37 EST 2007
Author: alesj
Date: 2007-11-12 12:02:37 -0500 (Mon, 12 Nov 2007)
New Revision: 66966
Modified:
trunk/embedded/src/main/java/org/jboss/embedded/adapters/JMXKernel.java
Log:
MBeanServer bootstrap change.
Modified: trunk/embedded/src/main/java/org/jboss/embedded/adapters/JMXKernel.java
===================================================================
--- trunk/embedded/src/main/java/org/jboss/embedded/adapters/JMXKernel.java 2007-11-12 15:12:01 UTC (rev 66965)
+++ trunk/embedded/src/main/java/org/jboss/embedded/adapters/JMXKernel.java 2007-11-12 17:02:37 UTC (rev 66966)
@@ -21,14 +21,13 @@
*/
package org.jboss.embedded.adapters;
+import java.lang.reflect.Method;
import java.util.Date;
import java.util.Properties;
-import javax.management.JMRuntimeException;
import javax.management.ListenerNotFoundException;
import javax.management.MBeanNotificationInfo;
import javax.management.MBeanServer;
-import javax.management.MBeanServerBuilder;
-import javax.management.MBeanServerDelegate;
+import javax.management.MBeanServerFactory;
import javax.management.Notification;
import javax.management.NotificationBroadcasterSupport;
import javax.management.NotificationEmitter;
@@ -37,6 +36,7 @@
import javax.management.ObjectName;
import org.jboss.kernel.Kernel;
+import org.jboss.mx.server.ServerConstants;
import org.jboss.mx.util.JMXExceptionDecoder;
import org.jboss.mx.util.MBeanServerLocator;
import org.jboss.system.ServiceController;
@@ -45,7 +45,7 @@
import org.jboss.system.server.ServerConfigImpl;
import org.jboss.system.server.ServerConfigImplMBean;
import org.jboss.system.server.ServerImplMBean;
-import org.jboss.system.server.jmx.MBeanServerBuilderImpl;
+import org.jboss.system.server.jmx.LazyMBeanServer;
import org.jboss.util.JBossObject;
/**
@@ -63,7 +63,6 @@
* The JMX MBeanServer which will serve as our communication bus.
*/
private MBeanServer mbeanServer;
- private MBeanServerBuilder builder = new MBeanServerBuilderImpl();
private ServiceController controller;
private Kernel kernel;
private ServerConfig serverConfig;
@@ -85,11 +84,6 @@
this.kernel = kernel;
}
- public void setBuilder(MBeanServerBuilder builder)
- {
- this.builder = builder;
- }
-
public ServerConfig getServerConfig()
{
return serverConfig;
@@ -103,29 +97,42 @@
/**
* We don't want to override platforms default mechanism for creating MBeanServer so lets just do it ourselves
*
- * @param domain
+ * @param domain the domain
* @return the mbeanserver
+ * @throws Exception for any error
*/
- private MBeanServer createMBeanServer(String domain)
+ private MBeanServer createMBeanServer(String domain) throws Exception
{
- final MBeanServerDelegate delegate =
- builder.newMBeanServerDelegate();
- if (delegate == null)
+ MBeanServer server;
+
+ String builder = System.getProperty(ServerConstants.MBEAN_SERVER_BUILDER_CLASS_PROPERTY, ServerConstants.DEFAULT_MBEAN_SERVER_BUILDER_CLASS);
+ System.setProperty(ServerConstants.MBEAN_SERVER_BUILDER_CLASS_PROPERTY, builder);
+
+ // Check if we'll use the platform MBeanServer or instantiate our own
+ if (serverConfig.getPlatformMBeanServer() == true)
{
- final String msg =
- "MBeanServerBuilder.newMBeanServerDelegate() " +
- "returned null";
- throw new JMRuntimeException(msg);
+ // jdk1.5+
+ ClassLoader cl = Thread.currentThread().getContextClassLoader();
+ Class clazz = cl.loadClass("java.lang.management.ManagementFactory");
+ Class[] sig = null;
+ Method method = clazz.getMethod("getPlatformMBeanServer", sig);
+ Object[] args = null;
+ server = (MBeanServer) method.invoke(null, args);
+ // Tell the MBeanServerLocator to point to this mbeanServer
+ MBeanServerLocator.setJBoss(server);
+ /* If the LazyMBeanServer was used, we need to reset to the jboss
+ MBeanServer to use our implementation for the jboss services.
+ */
+ server = LazyMBeanServer.resetToJBossServer(server);
}
- final MBeanServer mbeanServer =
- builder.newMBeanServer(domain, null, delegate);
- if (mbeanServer == null)
+ else
{
- final String msg =
- "MBeanServerBuilder.newMBeanServer() returned null";
- throw new JMRuntimeException(msg);
+ // Create our own MBeanServer
+ server = MBeanServerFactory.createMBeanServer(domain);
}
- return mbeanServer;
+ log.debug("Created MBeanServer: " + server);
+
+ return server;
}
public static void setupUrlHandlers()
More information about the jboss-cvs-commits
mailing list