Search in sources :

Example 1 with MBeanConstructorInfo

use of javax.management.MBeanConstructorInfo in project jdk8u_jdk by JetBrains.

the class AnnotationTest method check.

private static void check(MBeanServer mbs, ObjectName on) throws Exception {
    MBeanInfo mbi = mbs.getMBeanInfo(on);
    // check the MBean itself
    check(mbi);
    // check attributes
    MBeanAttributeInfo[] attrs = mbi.getAttributes();
    for (MBeanAttributeInfo attr : attrs) {
        check(attr);
        if (attr.getName().equals("ReadOnly"))
            check("@Full", attr.getDescriptor(), expectedFullDescriptor);
    }
    // check operations
    MBeanOperationInfo[] ops = mbi.getOperations();
    for (MBeanOperationInfo op : ops) {
        check(op);
        check(op.getSignature());
    }
    MBeanConstructorInfo[] constrs = mbi.getConstructors();
    for (MBeanConstructorInfo constr : constrs) {
        check(constr);
        check(constr.getSignature());
    }
}
Also used : MBeanConstructorInfo(javax.management.MBeanConstructorInfo) MBeanInfo(javax.management.MBeanInfo) MBeanOperationInfo(javax.management.MBeanOperationInfo) MBeanAttributeInfo(javax.management.MBeanAttributeInfo)

Example 2 with MBeanConstructorInfo

use of javax.management.MBeanConstructorInfo in project felix by apache.

the class MBeanIntrospector method createStandardMBeanInfo.

private MBeanInfo createStandardMBeanInfo(MBeanMetaData metadata) {
    // This is a non-standard extension: description for standard MBeans
    MBeanDescription description = createMBeanDescription(metadata);
    MBeanConstructorInfo[] ctors = createMBeanConstructorInfo(metadata, description);
    if (ctors == null)
        return null;
    MBeanAttributeInfo[] attrs = createMBeanAttributeInfo(metadata, description);
    if (attrs == null)
        return null;
    MBeanOperationInfo[] opers = createMBeanOperationInfo(metadata, description);
    if (opers == null)
        return null;
    MBeanNotificationInfo[] notifs = createMBeanNotificationInfo(metadata);
    if (notifs == null)
        return null;
    return new MBeanInfo(metadata.mbean.getClass().getName(), description.getMBeanDescription(), attrs, ctors, opers, notifs);
}
Also used : MBeanConstructorInfo(javax.management.MBeanConstructorInfo) MBeanNotificationInfo(javax.management.MBeanNotificationInfo) MBeanDescription(org.apache.felix.mosgi.jmx.agent.mx4j.MBeanDescription) MBeanInfo(javax.management.MBeanInfo) MBeanOperationInfo(javax.management.MBeanOperationInfo) MBeanAttributeInfo(javax.management.MBeanAttributeInfo)

Example 3 with MBeanConstructorInfo

use of javax.management.MBeanConstructorInfo in project felix by apache.

the class MBeanCommandProcessor method createMBeanElement.

private Element createMBeanElement(Document document, ObjectName objectName, HttpInputStream in) throws JMException {
    Element root = document.createElement("MBean");
    MBeanInfo info = server.getMBeanInfo(objectName);
    root.setAttribute("description", info.getDescription());
    root.setAttribute("classname", info.getClassName());
    root.setAttribute("objectname", objectName.toString());
    /*
		if (info instanceof ModelMBeanInfo)
		{
			root.setAttribute("model", "true");
		}
*/
    if (HttpUtil.booleanVariableValue(in, "attributes", true)) {
        MBeanAttributeInfo[] attributes = info.getAttributes();
        if (attributes != null) {
            SortedMap sortedAttributes = new TreeMap();
            for (int i = 0; i < attributes.length; i++) {
                Element attribute = document.createElement("Attribute");
                attribute.setAttribute("name", attributes[i].getName());
                attribute.setAttribute("type", attributes[i].getType());
                attribute.setAttribute("description", attributes[i].getDescription());
                attribute.setAttribute("strinit", String.valueOf(CommandProcessorUtil.canCreateParameterValue(attributes[i].getType())));
                if (attributes[i].isReadable() && attributes[i].isWritable()) {
                    attribute.setAttribute("availability", "RW");
                }
                if (attributes[i].isReadable() && !attributes[i].isWritable()) {
                    attribute.setAttribute("availability", "RO");
                }
                if (!attributes[i].isReadable() && attributes[i].isWritable()) {
                    attribute.setAttribute("availability", "WO");
                }
                try {
                    Object attributeValue = server.getAttribute(objectName, attributes[i].getName());
                    attribute.setAttribute("isnull", (attributeValue == null) ? "true" : "false");
                    if (attributeValue != null) {
                        attribute.setAttribute("value", attributeValue.toString());
                        if (attributeValue.getClass().isArray()) {
                            attribute.setAttribute("aggregation", "array");
                        }
                        if (attributeValue instanceof java.util.Collection) {
                            attribute.setAttribute("aggregation", "collection");
                        }
                        if (attributeValue instanceof java.util.Map) {
                            attribute.setAttribute("aggregation", "map");
                        }
                    } else {
                        attribute.setAttribute("value", "null");
                    }
                } catch (JMException e) {
                    attribute.setAttribute("value", e.getMessage());
                }
                sortedAttributes.put(attributes[i].getName(), attribute);
            }
            Iterator keys = sortedAttributes.keySet().iterator();
            while (keys.hasNext()) {
                root.appendChild((Element) sortedAttributes.get(keys.next()));
            }
        }
    }
    if (HttpUtil.booleanVariableValue(in, "constructors", true)) {
        MBeanConstructorInfo[] constructors = info.getConstructors();
        if (constructors != null) {
            // How to order contructors?
            for (int i = 0; i < constructors.length; i++) {
                Element constructor = document.createElement("Constructor");
                constructor.setAttribute("name", constructors[i].getName());
                constructor.setAttribute("description", constructors[i].getDescription());
                addParameters(constructor, document, constructors[i].getSignature());
                root.appendChild(constructor);
            }
        }
    }
    if (HttpUtil.booleanVariableValue(in, "operations", true)) {
        MBeanOperationInfo[] operations = info.getOperations();
        if (operations != null) {
            for (int i = 0; i < operations.length; i++) {
                Element operation = document.createElement("Operation");
                operation.setAttribute("name", operations[i].getName());
                operation.setAttribute("description", operations[i].getDescription());
                operation.setAttribute("return", operations[i].getReturnType());
                switch(operations[i].getImpact()) {
                    case MBeanOperationInfo.UNKNOWN:
                        operation.setAttribute("impact", "unknown");
                        break;
                    case MBeanOperationInfo.ACTION:
                        operation.setAttribute("impact", "action");
                        break;
                    case MBeanOperationInfo.INFO:
                        operation.setAttribute("impact", "info");
                        break;
                    case MBeanOperationInfo.ACTION_INFO:
                        operation.setAttribute("impact", "action_info");
                        break;
                }
                addParameters(operation, document, operations[i].getSignature());
                root.appendChild(operation);
            }
        }
    }
    if (HttpUtil.booleanVariableValue(in, "notifications", true)) {
        MBeanNotificationInfo[] notifications = info.getNotifications();
        if (notifications != null) {
            for (int i = 0; i < notifications.length; i++) {
                Element notification = document.createElement("Notification");
                notification.setAttribute("name", notifications[i].getName());
                notification.setAttribute("description", notifications[i].getDescription());
                String[] types = notifications[i].getNotifTypes();
                for (int j = 0; j < types.length; j++) {
                    Element type = document.createElement("Type");
                    type.setAttribute("name", types[j]);
                    notification.appendChild(type);
                }
                root.appendChild(notification);
            }
        }
    }
    return root;
}
Also used : MBeanInfo(javax.management.MBeanInfo) MBeanOperationInfo(javax.management.MBeanOperationInfo) Element(org.w3c.dom.Element) TreeMap(java.util.TreeMap) MBeanAttributeInfo(javax.management.MBeanAttributeInfo) MBeanConstructorInfo(javax.management.MBeanConstructorInfo) MBeanNotificationInfo(javax.management.MBeanNotificationInfo) SortedMap(java.util.SortedMap) JMException(javax.management.JMException) Iterator(java.util.Iterator) TreeMap(java.util.TreeMap) SortedMap(java.util.SortedMap)

Example 4 with MBeanConstructorInfo

use of javax.management.MBeanConstructorInfo in project jdk8u_jdk by JetBrains.

the class MBeanInfoInteropTest method init.

private static void init() throws Exception {
    mbai = new MBeanAttributeInfo("name", "type", "descr", true, false, false);
    mbpi = new MBeanParameterInfo("name", "type", "descr");
    MBeanParameterInfo[] params = new MBeanParameterInfo[] { mbpi };
    mbci1 = new MBeanConstructorInfo("name", "descr", null);
    mbci2 = new MBeanConstructorInfo("name", "descr", params);
    mbni1 = new MBeanNotificationInfo(null, "name", "descr");
    mbni2 = new MBeanNotificationInfo(new String[] { "type" }, "name", "descr");
    mboi1 = new MBeanOperationInfo("name", "descr", null, "type", ACTION);
    mboi2 = new MBeanOperationInfo("name", "descr", params, "type", INFO);
    mbi1 = new MBeanInfo("class", "descr", null, null, null, null);
    mbi2 = new MBeanInfo("class", "descr", new MBeanAttributeInfo[] { mbai }, new MBeanConstructorInfo[] { mbci1, mbci2 }, new MBeanOperationInfo[] { mboi1, mboi2 }, new MBeanNotificationInfo[] { mbni1, mbni2 });
    ombai1 = new OpenMBeanAttributeInfoSupport("name", "descr", INTEGER, true, false, false);
    ombai2 = new OpenMBeanAttributeInfoSupport("name", "descr", INTEGER, true, false, false, 5);
    ombai3 = new OpenMBeanAttributeInfoSupport("name", "descr", INTEGER, true, false, false, 5, 1, 6);
    ombai4 = new OpenMBeanAttributeInfoSupport("name", "descr", INTEGER, true, false, false, 5, new Integer[] { 2, 3, 5, 7 });
    ombpi1 = new OpenMBeanParameterInfoSupport("name1", "descr", INTEGER);
    ombpi2 = new OpenMBeanParameterInfoSupport("name2", "descr", INTEGER, 5);
    ombpi3 = new OpenMBeanParameterInfoSupport("name3", "descr", INTEGER, 5, 1, 6);
    ombpi4 = new OpenMBeanParameterInfoSupport("name4", "descr", INTEGER, 5, new Integer[] { 2, 3, 5, 7 });
    OpenMBeanParameterInfo[] oparams = { ombpi1, ombpi2, ombpi3, ombpi4 };
    ombci1 = new OpenMBeanConstructorInfoSupport("name", "descr", null);
    ombci2 = new OpenMBeanConstructorInfoSupport("name", "descr", oparams);
    omboi1 = new OpenMBeanOperationInfoSupport("name", "descr", null, INTEGER, ACTION);
    omboi2 = new OpenMBeanOperationInfoSupport("name", "descr", oparams, INTEGER, ACTION);
    ombi1 = new OpenMBeanInfoSupport("class", "descr", null, null, null, null);
    ombi2 = new OpenMBeanInfoSupport("class", "descr", new OpenMBeanAttributeInfo[] { ombai1, ombai2, ombai3, ombai4 }, new OpenMBeanConstructorInfo[] { ombci1, ombci2 }, new OpenMBeanOperationInfo[] { omboi1, omboi2 }, new MBeanNotificationInfo[] { mbni1, mbni2 });
    Descriptor attrd = new DescriptorSupport(new String[] { "name=name", "descriptorType=attribute" });
    mmbai1 = new ModelMBeanAttributeInfo("name", "type", "descr", true, false, false);
    mmbai2 = new ModelMBeanAttributeInfo("name", "type", "descr", true, false, false, attrd);
    Descriptor constrd = new DescriptorSupport(new String[] { "name=name", "descriptorType=operation", "role=constructor" });
    mmbci1 = new ModelMBeanConstructorInfo("name", "descr", null);
    mmbci2 = new ModelMBeanConstructorInfo("name", "descr", null, constrd);
    mmbci3 = new ModelMBeanConstructorInfo("name", "descr", params);
    mmbci4 = new ModelMBeanConstructorInfo("name", "descr", params, constrd);
    Descriptor operd = new DescriptorSupport(new String[] { "name=name", "descriptorType=operation" });
    mmboi1 = new ModelMBeanOperationInfo("name", "descr", null, "type", ACTION);
    mmboi2 = new ModelMBeanOperationInfo("name", "descr", null, "type", ACTION, operd);
    mmboi3 = new ModelMBeanOperationInfo("name", "descr", params, "type", ACTION);
    mmboi4 = new ModelMBeanOperationInfo("name", "descr", params, "type", ACTION, operd);
    Descriptor notifd = new DescriptorSupport(new String[] { "name=name", "descriptorType=notification" });
    mmbni1 = new ModelMBeanNotificationInfo(null, "name", "descr");
    mmbni2 = new ModelMBeanNotificationInfo(null, "name", "descr", notifd);
    mmbni3 = new ModelMBeanNotificationInfo(new String[] { "type" }, "name", "descr");
    mmbni4 = new ModelMBeanNotificationInfo(new String[] { "type" }, "name", "descr", notifd);
    Descriptor mbeand = new DescriptorSupport(new String[] { "name=name", "descriptorType=mbean" });
    mmbi1 = new ModelMBeanInfoSupport("class", "descr", null, null, null, null);
    mmbi2 = new ModelMBeanInfoSupport("class", "descr", null, null, null, null, mbeand);
    mmbi3 = new ModelMBeanInfoSupport("class", "descr", new ModelMBeanAttributeInfo[] { mmbai1, mmbai2 }, new ModelMBeanConstructorInfo[] { mmbci1, mmbci2, mmbci3, mmbci4 }, new ModelMBeanOperationInfo[] { mmboi1, mmboi2, mmboi3, mmboi4 }, new ModelMBeanNotificationInfo[] { mmbni1, mmbni2, mmbni3, mmbni4 });
    mmbi4 = new ModelMBeanInfoSupport("class", "descr", new ModelMBeanAttributeInfo[] { mmbai1, mmbai2 }, new ModelMBeanConstructorInfo[] { mmbci1, mmbci2, mmbci3, mmbci4 }, new ModelMBeanOperationInfo[] { mmboi1, mmboi2, mmboi3, mmboi4 }, new ModelMBeanNotificationInfo[] { mmbni1, mmbni2, mmbni3, mmbni4 }, mbeand);
    objects = new Serializable[] { mbai, mbpi, mbci1, mbci2, mbni1, mbni2, mboi1, mboi2, mbi1, mbi2, ombai1, ombai2, ombai3, ombai4, ombpi1, ombpi2, ombpi3, ombpi4, ombci1, ombci2, omboi1, omboi2, ombi1, ombi2, mmbai1, mmbai2, mmbci1, mmbci2, mmbci3, mmbci4, mmboi1, mmboi2, mmboi3, mmboi4, mmbni1, mmbni2, mmbni3, mmbni4 };
}
Also used : ModelMBeanOperationInfo(javax.management.modelmbean.ModelMBeanOperationInfo) MBeanInfo(javax.management.MBeanInfo) OpenMBeanInfoSupport(javax.management.openmbean.OpenMBeanInfoSupport) OpenMBeanParameterInfoSupport(javax.management.openmbean.OpenMBeanParameterInfoSupport) ModelMBeanConstructorInfo(javax.management.modelmbean.ModelMBeanConstructorInfo) MBeanConstructorInfo(javax.management.MBeanConstructorInfo) OpenMBeanConstructorInfo(javax.management.openmbean.OpenMBeanConstructorInfo) ModelMBeanAttributeInfo(javax.management.modelmbean.ModelMBeanAttributeInfo) OpenMBeanAttributeInfo(javax.management.openmbean.OpenMBeanAttributeInfo) ModelMBeanInfoSupport(javax.management.modelmbean.ModelMBeanInfoSupport) OpenMBeanOperationInfoSupport(javax.management.openmbean.OpenMBeanOperationInfoSupport) OpenMBeanParameterInfo(javax.management.openmbean.OpenMBeanParameterInfo) ModelMBeanNotificationInfo(javax.management.modelmbean.ModelMBeanNotificationInfo) ModelMBeanOperationInfo(javax.management.modelmbean.ModelMBeanOperationInfo) MBeanOperationInfo(javax.management.MBeanOperationInfo) OpenMBeanOperationInfo(javax.management.openmbean.OpenMBeanOperationInfo) DescriptorSupport(javax.management.modelmbean.DescriptorSupport) ModelMBeanConstructorInfo(javax.management.modelmbean.ModelMBeanConstructorInfo) MBeanAttributeInfo(javax.management.MBeanAttributeInfo) ModelMBeanAttributeInfo(javax.management.modelmbean.ModelMBeanAttributeInfo) OpenMBeanAttributeInfo(javax.management.openmbean.OpenMBeanAttributeInfo) OpenMBeanConstructorInfo(javax.management.openmbean.OpenMBeanConstructorInfo) ModelMBeanNotificationInfo(javax.management.modelmbean.ModelMBeanNotificationInfo) MBeanNotificationInfo(javax.management.MBeanNotificationInfo) OpenMBeanConstructorInfoSupport(javax.management.openmbean.OpenMBeanConstructorInfoSupport) Descriptor(javax.management.Descriptor) OpenMBeanAttributeInfoSupport(javax.management.openmbean.OpenMBeanAttributeInfoSupport) OpenMBeanOperationInfo(javax.management.openmbean.OpenMBeanOperationInfo) MBeanParameterInfo(javax.management.MBeanParameterInfo) OpenMBeanParameterInfo(javax.management.openmbean.OpenMBeanParameterInfo)

Example 5 with MBeanConstructorInfo

use of javax.management.MBeanConstructorInfo in project jdk8u_jdk by JetBrains.

the class MustBeValidCommand method main.

public static void main(String[] args) throws Exception {
    // Instantiate the MBean server
    //
    final MBeanAttributeInfo[] atts = makeAttInfos(attributes);
    final MBeanConstructorInfo[] ctors = makeCtorInfos(constructors);
    final MBeanOperationInfo[] ops = makeOpInfos(operations);
    final MBeanNotificationInfo[] notifs = makeNotifInfos(notificationclasses);
    for (int i = 0; i < mbeanclasses.length; i++) {
        System.out.println("Create an MBeanInfo: " + mbeanclasses[i][0]);
        final MBeanInfo mbi = new MBeanInfo(mbeanclasses[i][1], mbeanclasses[i][0], atts, ctors, ops, notifs);
    }
    // Test OK!
    //
    System.out.println("All MBeanInfo successfuly created!");
    System.out.println("Bye! Bye!");
}
Also used : MBeanConstructorInfo(javax.management.MBeanConstructorInfo) MBeanNotificationInfo(javax.management.MBeanNotificationInfo) MBeanInfo(javax.management.MBeanInfo) MBeanOperationInfo(javax.management.MBeanOperationInfo) MBeanAttributeInfo(javax.management.MBeanAttributeInfo)

Aggregations

MBeanConstructorInfo (javax.management.MBeanConstructorInfo)25 MBeanAttributeInfo (javax.management.MBeanAttributeInfo)21 MBeanInfo (javax.management.MBeanInfo)21 MBeanNotificationInfo (javax.management.MBeanNotificationInfo)20 MBeanOperationInfo (javax.management.MBeanOperationInfo)20 InstanceNotFoundException (javax.management.InstanceNotFoundException)10 IntrospectionException (javax.management.IntrospectionException)10 ReflectionException (javax.management.ReflectionException)10 Test (org.testng.annotations.Test)10 MBeanParameterInfo (javax.management.MBeanParameterInfo)5 DescriptorSupport (javax.management.modelmbean.DescriptorSupport)3 Constructor (java.lang.reflect.Constructor)2 MemoryManagerMXBean (java.lang.management.MemoryManagerMXBean)1 MemoryPoolMXBean (java.lang.management.MemoryPoolMXBean)1 Method (java.lang.reflect.Method)1 ArrayList (java.util.ArrayList)1 Iterator (java.util.Iterator)1 SortedMap (java.util.SortedMap)1 TreeMap (java.util.TreeMap)1 Lock (java.util.concurrent.locks.Lock)1