com.taobao.common.store.util.MyMBeanServer Maven / Gradle / Ivy
/*
* (C) 2007-2012 Alibaba Group Holding Limited.
*
* 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.
* Authors:
* dogun (yuexuqiang at gmail.com)
*/
package com.taobao.common.store.util;
import java.lang.management.ManagementFactory;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.log4j.Logger;
/**
* ????ע??MBean?Ĺ?????
*
* ֻ?ṩע??MBean???????Ⱪ¶JMXConnectorServer
*
* @author dogun (yuexuqiang at gmail.com)
*
*/
public final class MyMBeanServer {
private final Log log = LogFactory.getLog(MyMBeanServer.class);
private MBeanServer mbs = null;
private static MyMBeanServer me = new MyMBeanServer();
private MyMBeanServer() {
try {
final boolean useJmx = Boolean.parseBoolean(System.getProperty("store4j.useJMX", "false"));
if (useJmx) {
mbs = ManagementFactory.getPlatformMBeanServer();
}
}
catch (final Exception e) {
log.error("create MBServer error", e);
}
}
/**
* ???MBeanServer
*
* @return MyMBeanServer
*/
public static MyMBeanServer getInstance() {
return me;
}
/**
* ע??һ??MBean
*
* @param o
* @param name
*/
public void registMBean(final Object o, final String name) {
// ע??MBean
if (null != mbs) {
try {
mbs.registerMBean(o, new ObjectName(o.getClass().getPackage().getName() + ":type="
+ o.getClass().getSimpleName()
+ (null == name ? (",id=" + o.hashCode()) : (",name=" + name + "-" + o.hashCode()))));
}
catch (final Exception e) {
throw new RuntimeException(e);
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy