[jboss-cvs] JBoss Messaging SVN: r4803 - in trunk/src: main/org/jboss/messaging/core/management/impl and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Aug 14 09:30:46 EDT 2008
Author: jmesnil
Date: 2008-08-14 09:30:46 -0400 (Thu, 14 Aug 2008)
New Revision: 4803
Modified:
trunk/src/config/jbm-configuration.xml
trunk/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java
trunk/src/main/org/jboss/messaging/jms/server/management/impl/JMSManagementServiceImpl.java
Log:
JBMESSAGING-1303: Revisit management interfaces
* added a registry to ManagementService to keep track of managed resource even when MBeans are not exposed through JMX
Modified: trunk/src/config/jbm-configuration.xml
===================================================================
--- trunk/src/config/jbm-configuration.xml 2008-08-14 13:04:40 UTC (rev 4802)
+++ trunk/src/config/jbm-configuration.xml 2008-08-14 13:30:46 UTC (rev 4803)
@@ -12,6 +12,7 @@
<security-invalidation-interval>10000</security-invalidation-interval>
+ <!-- true to expose JBoss Messaging resources through JMX -->
<jmx-management-enabled>true</jmx-management-enabled>
<!-- Remoting configuration -->
Modified: trunk/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java 2008-08-14 13:04:40 UTC (rev 4802)
+++ trunk/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java 2008-08-14 13:30:46 UTC (rev 4803)
@@ -22,6 +22,8 @@
package org.jboss.messaging.core.management.impl;
+import java.util.HashMap;
+import java.util.Map;
import java.util.Set;
import javax.management.MBeanServer;
@@ -60,6 +62,7 @@
private final MBeanServer mbeanServer;
private final boolean jmxManagementEnabled;
+ private final Map<ObjectName, Object> registry;
private PostOffice postOffice;
private HierarchicalRepository<Set<Role>> securityRepository;
@@ -94,6 +97,7 @@
{
this.mbeanServer = mbeanServer;
this.jmxManagementEnabled = jmxManagementEnabled;
+ this.registry = new HashMap<ObjectName, Object>();
}
// Public --------------------------------------------------------
@@ -112,42 +116,27 @@
MessagingServerControlMBean managedServer = new MessagingServerControl(
postOffice, storageManager, configuration, securityRepository,
queueSettingsRepository, messagingServer);
- if (!jmxManagementEnabled)
- {
- return managedServer;
- }
- unregisterServer();
ObjectName objectName = getMessagingServerObjectName();
- mbeanServer.registerMBean(managedServer, objectName);
+ register(objectName, managedServer);
+ registerInJMX(objectName, managedServer);
log.info("registered core server under " + objectName);
return managedServer;
-
}
public void unregisterServer() throws Exception
{
- if (!jmxManagementEnabled)
- {
- return;
- }
ObjectName objectName = getMessagingServerObjectName();
- if (mbeanServer.isRegistered(objectName))
- {
- mbeanServer.unregisterMBean(getMessagingServerObjectName());
- }
+ unregister(objectName);
+ unregisterFromJMX(objectName);
}
public void registerAddress(final SimpleString address) throws Exception
{
- if (!jmxManagementEnabled)
- {
- return;
- }
- unregisterAddress(address);
ObjectName objectName = getAddressObjectName(address);
AddressControlMBean addressControl = new AddressControl(address,
postOffice, securityRepository);
- mbeanServer.registerMBean(addressControl, objectName);
+ register(objectName, addressControl);
+ registerInJMX(objectName, addressControl);
if (log.isDebugEnabled())
{
log.debug("registered address " + objectName);
@@ -156,29 +145,19 @@
public void unregisterAddress(final SimpleString address) throws Exception
{
- if (!jmxManagementEnabled)
- {
- return;
- }
ObjectName objectName = getAddressObjectName(address);
- if (mbeanServer.isRegistered(objectName))
- {
- mbeanServer.unregisterMBean(objectName);
- }
+ unregister(objectName);
+ unregisterFromJMX(objectName);
}
public void registerQueue(final Queue queue, final SimpleString address,
final StorageManager storageManager) throws Exception
{
- if (!jmxManagementEnabled)
- {
- return;
- }
- unregisterQueue(queue.getName(), address);
ObjectName objectName = getQueueObjectName(address, queue.getName());
QueueControlMBean queueControl = new QueueControl(queue, storageManager,
postOffice, queueSettingsRepository);
- mbeanServer.registerMBean(queueControl, objectName);
+ register(objectName, queueControl);
+ registerInJMX(objectName, queueControl);
if (log.isDebugEnabled())
{
log.debug("registered queue " + objectName);
@@ -188,22 +167,50 @@
public void unregisterQueue(final SimpleString name,
final SimpleString address) throws Exception
{
+ ObjectName objectName = getQueueObjectName(address, name);
+ unregister(objectName);
+ unregisterFromJMX(objectName);
+ }
+
+ // Package protected ---------------------------------------------
+
+ // Protected -----------------------------------------------------
+
+ // Private -------------------------------------------------------
+
+ private void register(ObjectName objectName, Object managedResource)
+ {
+ unregister(objectName);
+ registry.put(objectName, managedResource);
+ }
+
+ private void unregister(ObjectName objectName)
+ {
+ registry.remove(objectName);
+ }
+
+ private void registerInJMX(ObjectName objectName, Object managedResource)
+ throws Exception
+ {
if (!jmxManagementEnabled)
{
return;
}
- ObjectName objectName = getQueueObjectName(address, name);
+ unregisterFromJMX(objectName);
+ mbeanServer.registerMBean(managedResource, objectName);
+ }
+
+ private void unregisterFromJMX(ObjectName objectName) throws Exception
+ {
+ if (!jmxManagementEnabled)
+ {
+ return;
+ }
if (mbeanServer.isRegistered(objectName))
{
mbeanServer.unregisterMBean(objectName);
}
}
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- // Private -------------------------------------------------------
-
+
// Inner classes -------------------------------------------------
}
Modified: trunk/src/main/org/jboss/messaging/jms/server/management/impl/JMSManagementServiceImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/management/impl/JMSManagementServiceImpl.java 2008-08-14 13:04:40 UTC (rev 4802)
+++ trunk/src/main/org/jboss/messaging/jms/server/management/impl/JMSManagementServiceImpl.java 2008-08-14 13:30:46 UTC (rev 4803)
@@ -22,7 +22,9 @@
package org.jboss.messaging.jms.server.management.impl;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import javax.management.MBeanServer;
import javax.management.ObjectName;
@@ -54,6 +56,7 @@
public final MBeanServer mbeanServer;
private final boolean jmxManagementEnabled;
+ private Map<ObjectName, Object> registry;
// Static --------------------------------------------------------
@@ -91,6 +94,7 @@
{
this.mbeanServer = mbeanServer;
this.jmxManagementEnabled = jmxManagementEnabled;
+ this.registry = new HashMap<ObjectName, Object>();
}
// Public --------------------------------------------------------
@@ -100,22 +104,17 @@
public void registerJMSServer(final JMSServerManager server)
throws Exception
{
- if (!jmxManagementEnabled)
- {
- return;
- }
ObjectName objectName = getJMSServerObjectName();
- unregisterJMSServer();
- mbeanServer.registerMBean(new JMSServerControl(server), objectName);
+ JMSServerControl control = new JMSServerControl(server);
+ register(objectName, control);
+ registerInJMX(objectName, control);
}
public void unregisterJMSServer() throws Exception
{
ObjectName objectName = getJMSServerObjectName();
- if (mbeanServer.isRegistered(objectName))
- {
- mbeanServer.unregisterMBean(objectName);
- }
+ unregister(objectName);
+ unregisterFromJMX(objectName);
}
public void registerQueue(final JBossQueue queue, final Queue coreQueue,
@@ -124,89 +123,96 @@
HierarchicalRepository<QueueSettings> queueSettingsRepository)
throws Exception
{
- if (!jmxManagementEnabled)
- {
- return;
- }
ObjectName objectName = getJMSQueueObjectName(queue.getQueueName());
- unregisterQueue(queue.getQueueName());
- mbeanServer.registerMBean(new JMSQueueControl(queue, coreQueue,
- jndiBinding, postOffice, storageManager, queueSettingsRepository),
- objectName);
+ JMSQueueControl control = new JMSQueueControl(queue, coreQueue,
+ jndiBinding, postOffice, storageManager, queueSettingsRepository);
+ register(objectName, control);
+ registerInJMX(objectName, control);
}
public void unregisterQueue(final String name) throws Exception
{
- if (!jmxManagementEnabled)
- {
- return;
- }
ObjectName objectName = getJMSQueueObjectName(name);
- if (mbeanServer.isRegistered(objectName))
- {
- mbeanServer.unregisterMBean(objectName);
- }
+ unregister(objectName);
+ unregisterFromJMX(objectName);
}
public void registerTopic(final JBossTopic topic, final String jndiBinding,
final PostOffice postOffice, final StorageManager storageManager)
throws Exception
{
- if (!jmxManagementEnabled)
- {
- return;
- }
ObjectName objectName = getJMSTopicObjectName(topic.getTopicName());
- unregisterTopic(topic.getTopicName());
- mbeanServer.registerMBean(new TopicControl(topic, jndiBinding,
- postOffice, storageManager), objectName);
+ TopicControl control = new TopicControl(topic, jndiBinding, postOffice,
+ storageManager);
+ register(objectName, control);
+ registerInJMX(objectName, control);
}
public void unregisterTopic(final String name) throws Exception
{
- if (!jmxManagementEnabled)
- {
- return;
- }
ObjectName objectName = getJMSTopicObjectName(name);
- if (mbeanServer.isRegistered(objectName))
- {
- mbeanServer.unregisterMBean(getJMSTopicObjectName(name));
- }
+ unregister(objectName);
+ unregisterFromJMX(objectName);
}
public void registerConnectionFactory(final String name,
final JBossConnectionFactory connectionFactory,
final List<String> bindings) throws Exception
{
+ ObjectName objectName = getConnectionFactoryObjectName(name);
+ ConnectionFactoryControl control = new ConnectionFactoryControl(
+ connectionFactory, connectionFactory.getCoreConnection(), name,
+ bindings);
+ register(objectName, control);
+ registerInJMX(objectName, control);
+ }
+
+ public void unregisterConnectionFactory(final String name) throws Exception
+ {
+ ObjectName objectName = getConnectionFactoryObjectName(name);
+ unregister(objectName);
+ unregisterFromJMX(objectName);
+ }
+
+ // Package protected ---------------------------------------------
+
+ // Protected -----------------------------------------------------
+
+ // Private -------------------------------------------------------
+
+ private void register(ObjectName objectName, Object managedResource)
+ {
+ unregister(objectName);
+ registry.put(objectName, managedResource);
+ }
+
+ private void unregister(ObjectName objectName)
+ {
+ registry.remove(objectName);
+ }
+
+ private void registerInJMX(ObjectName objectName, Object managedResource)
+ throws Exception
+ {
if (!jmxManagementEnabled)
{
return;
}
- ObjectName objectName = getConnectionFactoryObjectName(name);
- unregisterConnectionFactory(name);
- mbeanServer.registerMBean(new ConnectionFactoryControl(connectionFactory,
- connectionFactory.getCoreConnection(), name, bindings), objectName);
+ unregisterFromJMX(objectName);
+ mbeanServer.registerMBean(managedResource, objectName);
}
- public void unregisterConnectionFactory(final String name) throws Exception
+ private void unregisterFromJMX(ObjectName objectName) throws Exception
{
if (!jmxManagementEnabled)
{
return;
}
- ObjectName objectName = getConnectionFactoryObjectName(name);
if (mbeanServer.isRegistered(objectName))
{
mbeanServer.unregisterMBean(objectName);
}
}
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- // Private -------------------------------------------------------
-
// Inner classes -------------------------------------------------
}
More information about the jboss-cvs-commits
mailing list