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());
}
}
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);
}
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;
}
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 };
}
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!");
}
Aggregations