package com.cloudhopper.commons.util;
/*
* #%L
* ch-commons-util
* %%
* Copyright (C) 2012 Cloudhopper by Twitter
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
import javax.management.*;
/**
*
* @author joelauer (twitter: @jjlauer or <a href="http://twitter.com/jjlauer" target=window>http://twitter.com/jjlauer</a>)
*/
public class ManagementUtil {
/**
* Get the MBeanServerId of Agent ID for the provided MBeanServer.
*
* @param aMBeanServer MBeanServer whose Server ID/Agent ID is desired.
* @return MBeanServerId/Agent ID of provided MBeanServer.
*/
public static String getMBeanServerId(final MBeanServer aMBeanServer) {
String serverId = null;
final String SERVER_DELEGATE = "JMImplementation:type=MBeanServerDelegate";
final String MBEAN_SERVER_ID_KEY = "MBeanServerId";
try {
ObjectName delegateObjName = new ObjectName(SERVER_DELEGATE);
serverId = (String) aMBeanServer.getAttribute(delegateObjName,
MBEAN_SERVER_ID_KEY);
} catch (MalformedObjectNameException malformedObjectNameException) {
//System.err.println("Problems constructing MBean ObjectName: " + malformedObjectNameException.getMessage());
} catch (AttributeNotFoundException noMatchingAttrException) {
//System.err.println("Unable to find attribute " + MBEAN_SERVER_ID_KEY + " in MBean " + SERVER_DELEGATE + ": " + noMatchingAttrException);
} catch (MBeanException mBeanException) {
//System.err.println("Exception thrown by MBean's (" + SERVER_DELEGATE + "'s " + MBEAN_SERVER_ID_KEY + ") getter: " + mBeanException.getMessage());
} catch (ReflectionException reflectionException) {
//System.err.println("Exception thrown by MBean's (" + SERVER_DELEGATE + "'s " + MBEAN_SERVER_ID_KEY + ") setter: " + reflectionException.getMessage());
} catch (InstanceNotFoundException noMBeanInstance) {
//System.err.println("No instance of MBean " + SERVER_DELEGATE + " found in MBeanServer: " + noMBeanInstance.getMessage());
}
return serverId;
}
}