diff options
Diffstat (limited to 'qpid/java/bdbstore/jmx/src/main/java/org/apache/qpid/server/store/berkeleydb/jmx/BDBHAMessageStoreManagerMBean.java')
-rw-r--r-- | qpid/java/bdbstore/jmx/src/main/java/org/apache/qpid/server/store/berkeleydb/jmx/BDBHAMessageStoreManagerMBean.java | 57 |
1 files changed, 26 insertions, 31 deletions
diff --git a/qpid/java/bdbstore/jmx/src/main/java/org/apache/qpid/server/store/berkeleydb/jmx/BDBHAMessageStoreManagerMBean.java b/qpid/java/bdbstore/jmx/src/main/java/org/apache/qpid/server/store/berkeleydb/jmx/BDBHAMessageStoreManagerMBean.java index aa4ddd8181..f36c1ecc6f 100644 --- a/qpid/java/bdbstore/jmx/src/main/java/org/apache/qpid/server/store/berkeleydb/jmx/BDBHAMessageStoreManagerMBean.java +++ b/qpid/java/bdbstore/jmx/src/main/java/org/apache/qpid/server/store/berkeleydb/jmx/BDBHAMessageStoreManagerMBean.java @@ -36,19 +36,12 @@ import javax.management.openmbean.TabularDataSupport; import javax.management.openmbean.TabularType; import org.apache.log4j.Logger; -import org.apache.qpid.server.store.StoreException; import org.apache.qpid.server.jmx.AMQManagedObject; import org.apache.qpid.server.jmx.ManagedObject; -import org.apache.qpid.server.store.berkeleydb.BDBHAMessageStore; +import org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacade; /** * Management mbean for BDB HA. - * <p> - * At runtime, the classloader loading this clas must have visibility of the other Qpid JMX classes. This is - * currently arranged through OSGI using the <b>fragment</b> feature so that this bundle shares the - * same classloader as broker-plugins-management-jmx. See the <b>Fragment-Host:</b> header within the MANIFEST.MF - * of this bundle. - * </p> */ public class BDBHAMessageStoreManagerMBean extends AMQManagedObject implements ManagedBDBHAMessageStore { @@ -63,7 +56,7 @@ public class BDBHAMessageStoreManagerMBean extends AMQManagedObject implements M try { GROUP_MEMBER_ATTRIBUTE_TYPES = new OpenType<?>[] {SimpleType.STRING, SimpleType.STRING}; - final String[] itemNames = new String[] {BDBHAMessageStore.GRP_MEM_COL_NODE_NAME, BDBHAMessageStore.GRP_MEM_COL_NODE_HOST_PORT}; + final String[] itemNames = new String[] {ReplicatedEnvironmentFacade.GRP_MEM_COL_NODE_NAME, ReplicatedEnvironmentFacade.GRP_MEM_COL_NODE_HOST_PORT}; final String[] itemDescriptions = new String[] {"Unique node name", "Node host / port "}; GROUP_MEMBER_ROW = new CompositeType("GroupMember", "Replication group member", itemNames, @@ -71,7 +64,7 @@ public class BDBHAMessageStoreManagerMBean extends AMQManagedObject implements M GROUP_MEMBER_ATTRIBUTE_TYPES ); GROUP_MEMBERS_TABLE = new TabularType("GroupMembers", "Replication group memebers", GROUP_MEMBER_ROW, - new String[] {BDBHAMessageStore.GRP_MEM_COL_NODE_NAME}); + new String[] {ReplicatedEnvironmentFacade.GRP_MEM_COL_NODE_NAME}); } catch (final OpenDataException ode) { @@ -79,44 +72,46 @@ public class BDBHAMessageStoreManagerMBean extends AMQManagedObject implements M } } - private final BDBHAMessageStore _store; + private final ReplicatedEnvironmentFacade _replicatedEnvironmentFacade; + private final String _objectName; - protected BDBHAMessageStoreManagerMBean(BDBHAMessageStore store, ManagedObject parent) throws JMException + protected BDBHAMessageStoreManagerMBean(String virtualHostName, ReplicatedEnvironmentFacade replicatedEnvironmentFacade, ManagedObject parent) throws JMException { super(ManagedBDBHAMessageStore.class, ManagedBDBHAMessageStore.TYPE, ((AMQManagedObject)parent).getRegistry()); - LOGGER.debug("Creating BDBHAMessageStoreManagerMBean"); - _store = store; + LOGGER.debug("Creating BDBHAMessageStoreManagerMBean for " + virtualHostName); + _replicatedEnvironmentFacade = replicatedEnvironmentFacade; + _objectName = ObjectName.quote(virtualHostName); register(); } @Override public String getObjectInstanceName() { - return ObjectName.quote(_store.getName()); + return _objectName; } @Override public String getGroupName() { - return _store.getGroupName(); + return _replicatedEnvironmentFacade.getGroupName(); } @Override public String getNodeName() { - return _store.getNodeName(); + return _replicatedEnvironmentFacade.getNodeName(); } @Override public String getNodeHostPort() { - return _store.getNodeHostPort(); + return _replicatedEnvironmentFacade.getHostPort(); } @Override public String getHelperHostPort() { - return _store.getHelperHostPort(); + return _replicatedEnvironmentFacade.getHelperHostPort(); } @Override @@ -124,7 +119,7 @@ public class BDBHAMessageStoreManagerMBean extends AMQManagedObject implements M { try { - return _store.getDurability(); + return _replicatedEnvironmentFacade.getDurability(); } catch (RuntimeException e) { @@ -137,7 +132,7 @@ public class BDBHAMessageStoreManagerMBean extends AMQManagedObject implements M @Override public boolean getCoalescingSync() throws IOException, JMException { - return _store.isCoalescingSync(); + return _replicatedEnvironmentFacade.isCoalescingSync(); } @Override @@ -145,7 +140,7 @@ public class BDBHAMessageStoreManagerMBean extends AMQManagedObject implements M { try { - return _store.getNodeState(); + return _replicatedEnvironmentFacade.getNodeState(); } catch (RuntimeException e) { @@ -159,7 +154,7 @@ public class BDBHAMessageStoreManagerMBean extends AMQManagedObject implements M { try { - return _store.isDesignatedPrimary(); + return _replicatedEnvironmentFacade.isDesignatedPrimary(); } catch (RuntimeException e) { @@ -172,7 +167,7 @@ public class BDBHAMessageStoreManagerMBean extends AMQManagedObject implements M public TabularData getAllNodesInGroup() throws IOException, JMException { final TabularDataSupport data = new TabularDataSupport(GROUP_MEMBERS_TABLE); - final List<Map<String, String>> members = _store.getGroupMembers(); + final List<Map<String, String>> members = _replicatedEnvironmentFacade.getGroupMembers(); for (Map<String, String> map : members) { @@ -187,9 +182,9 @@ public class BDBHAMessageStoreManagerMBean extends AMQManagedObject implements M { try { - _store.removeNodeFromGroup(nodeName); + _replicatedEnvironmentFacade.removeNodeFromGroup(nodeName); } - catch (StoreException e) + catch (RuntimeException e) { LOGGER.error("Failed to remove node " + nodeName + " from group", e); throw new JMException(e.getMessage()); @@ -201,11 +196,11 @@ public class BDBHAMessageStoreManagerMBean extends AMQManagedObject implements M { try { - _store.setDesignatedPrimary(primary); + _replicatedEnvironmentFacade.setDesignatedPrimary(primary); } - catch (StoreException e) + catch (RuntimeException e) { - LOGGER.error("Failed to set node " + _store.getNodeName() + " as designated primary", e); + LOGGER.error("Failed to set node " + _replicatedEnvironmentFacade.getNodeName() + " as designated primary", e); throw new JMException(e.getMessage()); } } @@ -215,9 +210,9 @@ public class BDBHAMessageStoreManagerMBean extends AMQManagedObject implements M { try { - _store.updateAddress(nodeName, newHostName, newPort); + _replicatedEnvironmentFacade.updateAddress(nodeName, newHostName, newPort); } - catch(StoreException e) + catch(RuntimeException e) { LOGGER.error("Failed to update address for node " + nodeName + " to " + newHostName + ":" + newPort, e); throw new JMException(e.getMessage()); |