码迷,mamicode.com
首页 > 其他好文 > 详细

HelloWorldDynamic

时间:2017-08-25 13:56:46      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:exce   test   元数据   ant   ide   属性   generate   ring   getc   

package mbeanTest;

import java.lang.reflect.Method;

import javax.management.Attribute;
import javax.management.AttributeList;
import javax.management.AttributeNotFoundException;
import javax.management.DynamicMBean;
import javax.management.InvalidAttributeValueException;
import javax.management.MBeanAttributeInfo;
import javax.management.MBeanException;
import javax.management.MBeanInfo;
import javax.management.MBeanOperationInfo;
import javax.management.ReflectionException;

public class HelloWorldDynamic implements DynamicMBean
{
    public String hello;

    public HelloWorldDynamic()
    {
        this.hello = "Hello World! I am a Dynamic MBean";
    }

    public HelloWorldDynamic(String hello)
    {
        this.hello = hello;
    }

    public String getHello()
    {
        return hello;
    }

    public Object getInstance()
    {
        return new Object();
    }

    public void setHello(String hello)
    {
        this.hello = hello;
    }

    @Override
    public Object getAttribute(String attribute)
            throws AttributeNotFoundException, MBeanException,
            ReflectionException
    {
        // 设置getAttribute的执行逻辑
        if ("getInstance".equals(attribute))
        {
            return getInstance();
        }
        if("gh".equals(attribute))
        {
            return "fffffff";
        }

        return null;
    }

    @Override
    public AttributeList getAttributes(String[] attributes)
    {
        // TODO Auto-generated method stub
        return null;
    }

    MBeanInfo info = null;

    @Override
    public MBeanInfo getMBeanInfo()
    {
        try
        {
            Class cls = this.getClass();
            // 用反射获得 "getHello" 属性的读方法
            // DynamicMBean中,
            Method readMethod = cls.getMethod("getHello", new Class[0]);
            MBeanAttributeInfo attribute = new MBeanAttributeInfo("gh",
                    " the first attribute ", readMethod, null);
            // 执行java类的method需要的一些元数据,由MBeanOperationInfo提供
            MBeanOperationInfo operation = new MBeanOperationInfo(
                    " the first operation ", cls.getMethod("getInstance", null));
            info = new MBeanInfo(cls.getName(), " this is a dynamic MBean ",
                    new MBeanAttributeInfo[]
                    { attribute }, null, new MBeanOperationInfo[]
                    { operation }, null);
        } catch (Exception e)
        {
            System.out.println(e);
        }
        return info;
    }

    @Override
    public Object invoke(String actionName, Object[] params, String[] signature)
            throws MBeanException, ReflectionException
    {
        System.out.println(" the HelloWorldDynamic‘s method invoke  ");
        return null;
    }

    @Override
    public void setAttribute(Attribute attribute)
            throws AttributeNotFoundException, InvalidAttributeValueException,
            MBeanException, ReflectionException
    {

    }

    @Override
    public AttributeList setAttributes(AttributeList attributes)
    {
        return null;
    }
    
    
    
    
}   

 

HelloWorldDynamic

标签:exce   test   元数据   ant   ide   属性   generate   ring   getc   

原文地址:http://www.cnblogs.com/wangyonglong/p/7427184.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!