⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 abstractdynamicmbean.java

📁 jConfig,JAVA读取XML的开源项目
💻 JAVA
字号:
package org.jconfig.jmx;

//import org.apache.log4j.Logger;

import java.util.Iterator;

import javax.management.Attribute;
import javax.management.AttributeList;
import javax.management.DynamicMBean;
import javax.management.MBeanRegistration;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import javax.management.RuntimeOperationsException;

public abstract class AbstractDynamicMBean implements DynamicMBean, MBeanRegistration {
    
    String dClassName;
    MBeanServer server;
    
    /**
     * Enables the to get the values of several attributes of the Dynamic MBean.
     */
    public AttributeList getAttributes(String[] attributeNames) {
        
        // Check attributeNames is not null to avoid NullPointerException later on
        if (attributeNames == null) {
            throw new RuntimeOperationsException(
            new IllegalArgumentException("attributeNames[] cannot be null"),
            "Cannot invoke a getter of " + dClassName);
        }
        
        AttributeList resultList = new AttributeList();
        
        // if attributeNames is empty, return an empty result list
        if (attributeNames.length == 0)
            return resultList;
        
        // build the result attribute list
        for (int i = 0; i < attributeNames.length; i++) {
            try {
                Object value = getAttribute((String) attributeNames[i]);
                resultList.add(new Attribute(attributeNames[i], value));
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return (resultList);
    }
    
    /**
     * Sets the values of several attributes of the Dynamic MBean, and returns the
     * list of attributes that have been set.
     */
    public AttributeList setAttributes(AttributeList attributes) {
        
        // Check attributes is not null to avoid NullPointerException later on
        if (attributes == null) {
            throw new RuntimeOperationsException(
            new IllegalArgumentException("AttributeList attributes cannot be null"),
            "Cannot invoke a setter of " + dClassName);
        }
        AttributeList resultList = new AttributeList();
        
        // if attributeNames is empty, nothing more to do
        if (attributes.isEmpty())
            return resultList;
        
        // for each attribute, try to set it and add to the result list if successfull
        for (Iterator i = attributes.iterator(); i.hasNext();) {
            Attribute attr = (Attribute) i.next();
            try {
                setAttribute(attr);
                String name = attr.getName();
                Object value = getAttribute(name);
                resultList.add(new Attribute(name, value));
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return (resultList);
    }
    
    //protected abstract Logger getLogger();
    
    public void postDeregister() {
      //  getLogger().debug("postDeregister is called.");
    }
    
    public void postRegister(java.lang.Boolean registrationDone) {
    }
    
    public void preDeregister() {
      //  getLogger().debug("preDeregister called.");
    }
    
    public ObjectName preRegister(MBeanServer server, ObjectName name) {
        /*
        getLogger().debug(
        "preRegister called. Server=" + server + ", name=" + name);        
         */
        this.server = server;
        return name;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -