[exo-jcr-commits] exo-jcr SVN: r1083 - in kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container: jmx and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Dec 15 19:07:23 EST 2009


Author: julien_viet
Date: 2009-12-15 19:07:22 -0500 (Tue, 15 Dec 2009)
New Revision: 1083

Modified:
   kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ExoContainer.java
   kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ExoModelMBean.java
   kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManageableContainer.java
   kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManagementContextImpl.java
Log:
actually, scope properly the various mbeans for portal container as with several portal containers, only one is visible at random

Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ExoContainer.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ExoContainer.java	2009-12-15 22:45:01 UTC (rev 1082)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ExoContainer.java	2009-12-16 00:07:22 UTC (rev 1083)
@@ -94,7 +94,7 @@
 
    public ExoContainer(MBeanServer mbeanServer)
    {
-      super(new ManagementContextImpl(mbeanServer, new HashMap<String, String>()));
+      super(new ManagementContextImpl(mbeanServer));
       context = new ExoContainerContext(this);
       context.setName(this.getClass().getName());
       registerComponentInstance(context);

Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ExoModelMBean.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ExoModelMBean.java	2009-12-15 22:45:01 UTC (rev 1082)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ExoModelMBean.java	2009-12-16 00:07:22 UTC (rev 1083)
@@ -24,7 +24,7 @@
 import org.exoplatform.management.ManagementContext;
 import org.exoplatform.management.jmx.annotations.NamingContext;
 
-import java.util.HashMap;
+import java.util.Collections;
 import java.util.Map;
 
 import javax.management.InstanceNotFoundException;
@@ -116,17 +116,20 @@
       PropertiesInfo info = PropertiesInfo.resolve(mr.getClass(), NamingContext.class);
 
       //
-      Map<String, String> scopingProperties = new HashMap<String, String>();
-      if (info != null)
+      Map<String, String> scopingProperties = info != null ? info.resolve(mr) : Collections.<String, String>emptyMap();
+
+      //
+      if (mr instanceof ManageableContainer)
       {
-         for (PropertyInfo property : info.getProperties())
-         {
-            scopingProperties.put(property.getKey(), property.resolveValue(mr));
-         }
+         context = ((ManageableContainer)mr).managementContext;
       }
+      else
+      {
+         context = new ManagementContextImpl(parentContext);
+      }
 
       //
-      context = new ManagementContextImpl(parentContext, scopingProperties);
+      context.scopingProperties = scopingProperties;
 
       //
       if (mr instanceof ManagementAware)

Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManageableContainer.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManageableContainer.java	2009-12-15 22:45:01 UTC (rev 1082)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManageableContainer.java	2009-12-16 00:07:22 UTC (rev 1083)
@@ -122,7 +122,7 @@
          ManagementContextImpl parentManagementContext = ((ManageableContainer)parent).managementContext;
          if (parentManagementContext != null)
          {
-            managementContext = new ManagementContextImpl(parentManagementContext, new HashMap<String, String>());
+            managementContext = new ManagementContextImpl(parentManagementContext);
             managementContext.container  = this;
          }
       }

Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManagementContextImpl.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManagementContextImpl.java	2009-12-15 22:45:01 UTC (rev 1082)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManagementContextImpl.java	2009-12-16 00:07:22 UTC (rev 1083)
@@ -25,6 +25,7 @@
 
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.Map;
@@ -46,7 +47,7 @@
 {
 
    /** . */
-   private Map<String, String> scopingProperties;
+   Map<String, String> scopingProperties;
 
    /** The registrations done by this mbean. */
    private final Map<Object, ObjectName> registrations;
@@ -62,10 +63,10 @@
 
    public ManagementContextImpl()
    {
-      this(MBeanServerFactory.createMBeanServer(), new HashMap<String, String>());
+      this(MBeanServerFactory.createMBeanServer());
    }
 
-   public ManagementContextImpl(MBeanServer server, Map<String, String> scopingProperties)
+   public ManagementContextImpl(MBeanServer server)
    {
       if (server == null)
       {
@@ -73,11 +74,16 @@
       }
       this.registrations = new HashMap<Object, ObjectName>();
       this.parent = null;
-      this.scopingProperties = scopingProperties;
+
+      // This is the root container that never have scoping properties
+      // Also without that we would have an NPE when the portal container are registered
+      // as the scoping properties would not exist since the root container would not be yet
+      
+      this.scopingProperties = Collections.emptyMap();
       this.server = server;
    }
 
-   public ManagementContextImpl(ManagementContextImpl parent, Map<String, String> scopingProperties)
+   public ManagementContextImpl(ManagementContextImpl parent)
    {
       if (parent == null)
       {
@@ -85,7 +91,7 @@
       }
       this.registrations = new HashMap<Object, ObjectName>();
       this.parent = parent;
-      this.scopingProperties = scopingProperties;
+      this.scopingProperties = null;
       this.server = parent.server;
    }
 
@@ -216,7 +222,10 @@
                }
                for (ManagementContextImpl current = this; current != null; current = current.parent)
                {
-                  props.putAll(current.scopingProperties);
+                  if (current.scopingProperties != null)
+                  {
+                     props.putAll(current.scopingProperties);
+                  }
                }
                on = JMX.createObjectName(on.getDomain(), props);
                attemptToRegister(on, mbean);



More information about the exo-jcr-commits mailing list