[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