[exo-jcr-commits] exo-jcr SVN: r2271 - in kernel/trunk/exo.kernel.container/src: main/java/org/exoplatform/container/monitor/jvm and 2 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Apr 13 03:53:42 EDT 2010


Author: nfilotto
Date: 2010-04-13 03:53:42 -0400 (Tue, 13 Apr 2010)
New Revision: 2271

Modified:
   kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManageableContainer.java
   kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/monitor/jvm/J2EEServerInfo.java
   kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl/JMXManagementProvider.java
   kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/jmx/support/ManagedManagementAware.java
Log:
EXOJCR-661: Now by default we use the MBeanServer from the platform

Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManageableContainer.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManageableContainer.java	2010-04-13 07:47:05 UTC (rev 2270)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManageableContainer.java	2010-04-13 07:53:42 UTC (rev 2271)
@@ -34,7 +34,6 @@
 import org.picocontainer.defaults.ComponentAdapterFactory;
 import org.picocontainer.defaults.DuplicateComponentKeyRegistrationException;
 
-import java.lang.management.ManagementFactory;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
@@ -52,12 +51,7 @@
    private static MBeanServer findMBeanServer()
    {
       J2EEServerInfo serverenv_ = new J2EEServerInfo();
-      MBeanServer server = serverenv_.getMBeanServer();
-      if (server == null)
-      {
-         server = ManagementFactory.getPlatformMBeanServer();
-      }
-      return server;
+      return serverenv_.getMBeanServer();
    }
 
    /** . */

Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/monitor/jvm/J2EEServerInfo.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/monitor/jvm/J2EEServerInfo.java	2010-04-13 07:47:05 UTC (rev 2270)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/monitor/jvm/J2EEServerInfo.java	2010-04-13 07:53:42 UTC (rev 2271)
@@ -19,11 +19,11 @@
 package org.exoplatform.container.monitor.jvm;
 
 import java.io.File;
+import java.lang.management.ManagementFactory;
 import java.lang.reflect.Method;
 import java.net.URL;
 
 import javax.management.MBeanServer;
-import javax.management.MBeanServerFactory;
 
 /**
  * @author Tuan Nguyen (tuan08 at users.sourceforge.net)
@@ -149,8 +149,11 @@
          serverName_ = "standalone";
          serverHome_ = System.getProperty("user.dir");
          exoConfDir_ = serverHome_ + "/" + confDirName;
-         mbeanServer = MBeanServerFactory.createMBeanServer();
       }
+      if (mbeanServer == null)
+      {
+         mbeanServer = ManagementFactory.getPlatformMBeanServer();
+      }
 
       String exoConfHome = System.getProperty(EXO_CONF_PARAM);
       if (exoConfHome != null && exoConfHome.length() > 0)

Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl/JMXManagementProvider.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl/JMXManagementProvider.java	2010-04-13 07:47:05 UTC (rev 2270)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl/JMXManagementProvider.java	2010-04-13 07:53:42 UTC (rev 2271)
@@ -18,11 +18,16 @@
  */
 package org.exoplatform.management.jmx.impl;
 
+import org.exoplatform.management.jmx.annotations.NameTemplate;
 import org.exoplatform.management.spi.ManagedResource;
 import org.exoplatform.management.spi.ManagementProvider;
-import org.exoplatform.management.jmx.annotations.NameTemplate;
+import org.exoplatform.services.log.ExoLogger;
+import org.exoplatform.services.log.Log;
 
-import javax.management.InstanceAlreadyExistsException;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Map;
+
 import javax.management.InstanceNotFoundException;
 import javax.management.MBeanRegistrationException;
 import javax.management.MBeanServer;
@@ -30,9 +35,6 @@
 import javax.management.MalformedObjectNameException;
 import javax.management.ObjectName;
 import javax.management.modelmbean.ModelMBeanInfo;
-import java.util.Hashtable;
-import java.util.Map;
-import java.util.List;
 
 /**
  * @author <a href="mailto:julien.viet at exoplatform.com">Julien Viet</a>
@@ -41,6 +43,11 @@
 public class JMXManagementProvider implements ManagementProvider
 {
 
+   /**
+    * The logger
+    */
+   private static final Log LOG = ExoLogger.getLogger("exo.kernel.container.JMXManagementProvider");
+
    /** . */
    private final MBeanServer server;
 
@@ -136,24 +143,25 @@
    {
       synchronized (server)
       {
-         try
+         if (server.isRegistered(name))
          {
-            server.registerMBean(mbean, name);
-         }
-         catch (InstanceAlreadyExistsException e)
-         {
+            if (LOG.isTraceEnabled())
+            {
+               LOG.trace("The MBean '" + name + " has already been registered, it will be unregistered and then re-registered");
+            }
             try
             {
-
-               server.unregisterMBean(name);
-               server.registerMBean(mbean, name);
-
+               server.unregisterMBean(name);            
             }
-            catch (Exception e1)
+            catch (Exception e)
             {
-               throw new RuntimeException("Failed to register MBean '" + name + " due to " + e.getMessage(), e);
+               throw new RuntimeException("Failed to unregister MBean '" + name + " due to " + e.getMessage(), e);
             }
          }
+         try
+         {
+            server.registerMBean(mbean, name);
+         }
          catch (Exception e)
          {
             throw new RuntimeException("Failed to register MBean '" + name + " due to " + e.getMessage(), e);

Modified: kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/jmx/support/ManagedManagementAware.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/jmx/support/ManagedManagementAware.java	2010-04-13 07:47:05 UTC (rev 2270)
+++ kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/jmx/support/ManagedManagementAware.java	2010-04-13 07:53:42 UTC (rev 2271)
@@ -43,7 +43,6 @@
 
    public void setContext(ManagementContext context)
    {
-      this.context = context;
 
       //
       if (count == 0)
@@ -52,7 +51,8 @@
          {
             failure = new AssertionError();
          }
-         context.register(foo);
+         this.context = context;
+         this.context.register(foo);
          count = 1;
       }
       else if (count == 1)
@@ -61,7 +61,7 @@
          {
             failure = new AssertionError();
          }
-         context.unregister(foo);
+         this.context.unregister(foo);
       }
       else
       {



More information about the exo-jcr-commits mailing list