| | |
| | | // Try to register this monitor provider with an appropriate JMX MBean. |
| | | try |
| | | { |
| | | DN monitorDN = |
| | | DN.decode("cn=" + monitorProvider.getMonitorInstanceName() + |
| | | ",cn=monitor"); |
| | | DN monitorDN = getMonitorProviderDN(monitorProvider); |
| | | JMXMBean mBean = directoryServer.mBeans.get(monitorDN); |
| | | if (mBean == null) |
| | | { |
| | |
| | | { |
| | | try |
| | | { |
| | | DN monitorDN = |
| | | DN.decode("cn=" + provider.getMonitorInstanceName() + |
| | | ",cn=monitor"); |
| | | DN monitorDN = getMonitorProviderDN(provider); |
| | | JMXMBean mBean = directoryServer.mBeans.get(monitorDN); |
| | | if (mBean != null) |
| | | { |
| | |
| | | System.exit(1); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Construct the DN of a monitor provider entry. |
| | | * @param provider The monitor provider for which a DN is desired. |
| | | * @return The DN of the monitor provider entry. |
| | | */ |
| | | public static DN getMonitorProviderDN(MonitorProvider provider) |
| | | { |
| | | String monitorName = provider.getMonitorInstanceName(); |
| | | AttributeType cnType = getAttributeType(ATTR_COMMON_NAME); |
| | | DN monitorRootDN; |
| | | try |
| | | { |
| | | monitorRootDN = DN.decode(DN_MONITOR_ROOT); |
| | | } |
| | | catch (DirectoryException e) |
| | | { |
| | | // Cannot reach this point. |
| | | throw new RuntimeException(); |
| | | } |
| | | RDN[] baseRDNs = monitorRootDN.getRDNComponents(); |
| | | RDN[] rdns = new RDN[baseRDNs.length+1]; |
| | | rdns[0] = new RDN(cnType, new AttributeValue(cnType, monitorName)); |
| | | System.arraycopy(baseRDNs, 0, rdns, 1, baseRDNs.length); |
| | | return new DN(rdns); |
| | | } |
| | | } |
| | | |