use of javax.management.openmbean.OpenMBeanOperationInfo in project jdk8u_jdk by JetBrains.
the class OpenMBeanInfoHashCodeNPETest method main.
public static void main(String[] args) throws Exception {
System.out.println("---OpenMBeanInfoHashCodeNPETest-main ...");
// ----
System.out.println("\n---Testing on OpenMBeanInfohashCodeTest...");
OpenMBeanAttributeInfo openMBeanAttributeInfo = new OpenMBeanAttributeInfoSupport("name", "description", SimpleType.INTEGER, true, true, false, null, new Integer[] { 1, 2, 3 });
test(openMBeanAttributeInfo, "defaultValue");
openMBeanAttributeInfo = new OpenMBeanAttributeInfoSupport("name", "description", SimpleType.INTEGER, true, true, false, 1, null);
test(openMBeanAttributeInfo, "legalValues");
// ----
System.out.println("\n---Testing on OpenMBeanConstructorInfoSupport...");
OpenMBeanConstructorInfo openMBeanConstructorInfo;
openMBeanConstructorInfo = new OpenMBeanConstructorInfoSupport("name", "description", null, new DescriptorSupport());
test(openMBeanConstructorInfo, "sigs");
openMBeanConstructorInfo = new OpenMBeanConstructorInfoSupport("name", "description", new OpenMBeanParameterInfo[] {}, null);
test(openMBeanConstructorInfo, "Descriptor");
// ----
System.out.println("\n---Testing on OpenMBeanOperationInfoSupport...");
OpenMBeanOperationInfo openMBeanOperationInfo;
openMBeanOperationInfo = new OpenMBeanOperationInfoSupport("name", "description", null, SimpleType.INTEGER, 1, new DescriptorSupport());
test(openMBeanOperationInfo, "sigs");
openMBeanOperationInfo = new OpenMBeanOperationInfoSupport("name", "description", new OpenMBeanParameterInfo[] {}, SimpleType.INTEGER, 1, null);
test(openMBeanOperationInfo, "Descriptor");
// ----
System.out.println("\n---Testing on OpenMBeanParameterInfoSupport 1...");
OpenMBeanParameterInfo openMBeanParameterInfo;
openMBeanParameterInfo = new OpenMBeanParameterInfoSupport("name", "description", SimpleType.INTEGER, null, -1, 1);
test(openMBeanParameterInfo, "default value");
openMBeanParameterInfo = new OpenMBeanParameterInfoSupport("name", "description", SimpleType.INTEGER, 0, null, 1);
test(openMBeanParameterInfo, "min value");
openMBeanParameterInfo = new OpenMBeanParameterInfoSupport("name", "description", SimpleType.INTEGER, 0, -1, null);
test(openMBeanParameterInfo, "max value");
// ----
System.out.println("\n---Testing on OpenMBeanParameterInfoSupport 2...");
openMBeanParameterInfo = new OpenMBeanParameterInfoSupport("name", "description", SimpleType.INTEGER, 1, new Integer[] { -1, 1, 2 });
openMBeanParameterInfo = new OpenMBeanParameterInfoSupport("name", "description", SimpleType.INTEGER, null, new Integer[] { -1, 1, 2 });
test(openMBeanParameterInfo, "default value");
openMBeanParameterInfo = new OpenMBeanParameterInfoSupport("name", "description", SimpleType.INTEGER, 1, null);
test(openMBeanParameterInfo, "legal values");
// ----
System.out.println("\n---Testing on OpenMBeanInfoSupport...");
String className = "toto";
String description = "titi";
OpenMBeanAttributeInfo[] attrInfos = new OpenMBeanAttributeInfo[] {};
OpenMBeanConstructorInfo[] constrInfos = new OpenMBeanConstructorInfo[] {};
OpenMBeanOperationInfo[] operaInfos = new OpenMBeanOperationInfo[] {};
MBeanNotificationInfo[] notifInfos = new MBeanNotificationInfo[] {};
OpenMBeanInfo ominfo = new OpenMBeanInfoSupport(null, description, attrInfos, constrInfos, operaInfos, notifInfos);
test(ominfo, "class name");
ominfo = new OpenMBeanInfoSupport(className, null, attrInfos, constrInfos, operaInfos, notifInfos);
test(ominfo, "description");
ominfo = new OpenMBeanInfoSupport(className, description, null, constrInfos, operaInfos, notifInfos);
test(ominfo, "attrInfos");
ominfo = new OpenMBeanInfoSupport(className, description, attrInfos, null, operaInfos, notifInfos);
test(ominfo, "constructor infos");
ominfo = new OpenMBeanInfoSupport(className, description, attrInfos, constrInfos, null, notifInfos);
test(ominfo, "operation infos");
ominfo = new OpenMBeanInfoSupport(className, description, attrInfos, constrInfos, operaInfos, null);
test(ominfo, "notif infos");
if (failed > 0) {
throw new RuntimeException("Test failed: " + failed);
} else {
System.out.println("---Test: PASSED");
}
}
use of javax.management.openmbean.OpenMBeanOperationInfo in project jdk8u_jdk by JetBrains.
the class StandardMBean method customize.
private static MBeanOperationInfo customize(MBeanOperationInfo oi, String description, MBeanParameterInfo[] signature, int impact) {
if (equal(description, oi.getDescription()) && identicalArrays(signature, oi.getSignature()) && impact == oi.getImpact())
return oi;
if (oi instanceof OpenMBeanOperationInfo) {
OpenMBeanOperationInfo ooi = (OpenMBeanOperationInfo) oi;
OpenMBeanParameterInfo[] oparams = paramsToOpenParams(signature);
return new OpenMBeanOperationInfoSupport(oi.getName(), description, oparams, ooi.getReturnOpenType(), impact, oi.getDescriptor());
} else {
return new MBeanOperationInfo(oi.getName(), description, signature, oi.getReturnType(), impact, oi.getDescriptor());
}
}
use of javax.management.openmbean.OpenMBeanOperationInfo 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.openmbean.OpenMBeanOperationInfo in project jdk8u_jdk by JetBrains.
the class TooManyFooTest method test.
private static void test(Object child, String name, boolean mxbean) throws Exception {
final ObjectName childName = new ObjectName("test:type=Child,name=" + name);
final MBeanServer server = ManagementFactory.getPlatformMBeanServer();
server.registerMBean(child, childName);
try {
final MBeanInfo info = server.getMBeanInfo(childName);
System.out.println(name + ": " + info.getDescriptor());
final int len = info.getOperations().length;
if (len == OPCOUNT) {
System.out.println(name + ": OK, only " + OPCOUNT + " operations here...");
} else {
final String qual = (len > OPCOUNT) ? "many" : "few";
System.err.println(name + ": Too " + qual + " foos! Found " + len + ", expected " + OPCOUNT);
for (MBeanOperationInfo op : info.getOperations()) {
System.err.println("public " + op.getReturnType() + " " + op.getName() + "();");
}
throw new RuntimeException("Too " + qual + " foos for " + name);
}
final Descriptor d = info.getDescriptor();
final String mxstr = String.valueOf(d.getFieldValue("mxbean"));
final boolean mxb = (mxstr == null) ? false : Boolean.valueOf(mxstr).booleanValue();
System.out.println(name + ": mxbean=" + mxb);
if (mxbean && !mxb)
throw new AssertionError("MXBean is not OpenMBean?");
for (MBeanOperationInfo mboi : info.getOperations()) {
// Sanity check
if (mxbean && !mboi.getName().equals("foo")) {
//
if (!(mboi instanceof OpenMBeanOperationInfo))
throw new AssertionError("Operation " + mboi.getName() + "() is not Open?");
}
final String exp = EXPECTED_TYPES.get(mboi.getName());
// For MXBeans, we need to compare 'exp' with the original
// type - because mboi.getReturnType() returns the OpenType
//
String type = (String) mboi.getDescriptor().getFieldValue("originalType");
if (type == null)
type = mboi.getReturnType();
if (type.equals(exp))
continue;
System.err.println("Bad return type for " + mboi.getName() + "! Found " + type + ", expected " + exp);
throw new RuntimeException("Bad return type for " + mboi.getName());
}
} finally {
server.unregisterMBean(childName);
}
}
use of javax.management.openmbean.OpenMBeanOperationInfo in project jdk8u_jdk by JetBrains.
the class OpenMBeanInfoEqualsNPETest method main.
public static void main(String[] args) throws Exception {
System.out.println("---OpenMBeanInfoEqualsNPETest-main ...");
// ----
System.out.println("\n---Testing on OpenMBeanAttributeInfoSupport...");
OpenMBeanAttributeInfo openMBeanAttributeInfo0 = new OpenMBeanAttributeInfoSupport("name", "description", SimpleType.INTEGER, true, true, false, 1, new Integer[] { 1, 2, 3 });
OpenMBeanAttributeInfo openMBeanAttributeInfo = new OpenMBeanAttributeInfoSupport("name", "description", SimpleType.INTEGER, true, true, false, null, new Integer[] { 1, 2, 3 });
test(openMBeanAttributeInfo0, openMBeanAttributeInfo, "defaultValue");
openMBeanAttributeInfo = new OpenMBeanAttributeInfoSupport("name", "description", SimpleType.INTEGER, true, true, false, 1, null);
test(openMBeanAttributeInfo0, openMBeanAttributeInfo, "legalValues");
// ----
System.out.println("\n---Testing on OpenMBeanConstructorInfoSupport...");
OpenMBeanConstructorInfo openMBeanConstructorInfo0 = new OpenMBeanConstructorInfoSupport("name", "description", new OpenMBeanParameterInfo[] {}, new DescriptorSupport());
OpenMBeanConstructorInfo openMBeanConstructorInfo;
openMBeanConstructorInfo = new OpenMBeanConstructorInfoSupport("name", "description", null, new DescriptorSupport());
test(openMBeanConstructorInfo0, openMBeanConstructorInfo, "sigs");
openMBeanConstructorInfo = new OpenMBeanConstructorInfoSupport("name", "description", new OpenMBeanParameterInfo[] {}, null);
test(openMBeanConstructorInfo0, openMBeanConstructorInfo, "Descriptor");
// ----
System.out.println("\n---Testing on OpenMBeanOperationInfoSupport...");
OpenMBeanOperationInfo openMBeanOperationInfo0 = new OpenMBeanOperationInfoSupport("name", "description", new OpenMBeanParameterInfo[] {}, SimpleType.INTEGER, 1, new DescriptorSupport());
OpenMBeanOperationInfo openMBeanOperationInfo;
openMBeanOperationInfo = new OpenMBeanOperationInfoSupport("name", "description", null, SimpleType.INTEGER, 1, new DescriptorSupport());
test(openMBeanOperationInfo0, openMBeanOperationInfo, "sigs");
openMBeanOperationInfo = new OpenMBeanOperationInfoSupport("name", "description", new OpenMBeanParameterInfo[] {}, SimpleType.INTEGER, MBeanOperationInfo.UNKNOWN, null);
test(openMBeanOperationInfo0, openMBeanOperationInfo, "Descriptor");
// ----
System.out.println("\n---Testing on OpenMBeanParameterInfoSupport 1...");
OpenMBeanParameterInfo openMBeanParameterInfo0 = new OpenMBeanParameterInfoSupport("name", "description", SimpleType.INTEGER, 0, -1, 1);
OpenMBeanParameterInfo openMBeanParameterInfo;
openMBeanParameterInfo = new OpenMBeanParameterInfoSupport("name", "description", SimpleType.INTEGER, null, -1, 1);
test(openMBeanParameterInfo0, openMBeanParameterInfo, "default value");
openMBeanParameterInfo = new OpenMBeanParameterInfoSupport("name", "description", SimpleType.INTEGER, 0, null, 1);
test(openMBeanParameterInfo0, openMBeanParameterInfo, "min value");
openMBeanParameterInfo = new OpenMBeanParameterInfoSupport("name", "description", SimpleType.INTEGER, 0, -1, null);
test(openMBeanParameterInfo0, openMBeanParameterInfo, "max value");
// ----
System.out.println("\n---Testing on OpenMBeanParameterInfoSupport 2...");
openMBeanParameterInfo0 = new OpenMBeanParameterInfoSupport("name", "description", SimpleType.INTEGER, 1, new Integer[] { -1, 1, 2 });
openMBeanParameterInfo = new OpenMBeanParameterInfoSupport("name", "description", SimpleType.INTEGER, null, new Integer[] { -1, 1, 2 });
test(openMBeanParameterInfo0, openMBeanParameterInfo, "default value");
openMBeanParameterInfo = new OpenMBeanParameterInfoSupport("name", "description", SimpleType.INTEGER, 1, null);
test(openMBeanParameterInfo0, openMBeanParameterInfo, "legal values");
// ----
System.out.println("\n---Testing on OpenMBeanInfoSupport...");
String className = "toto";
String description = "titi";
OpenMBeanAttributeInfo[] attrInfos = new OpenMBeanAttributeInfo[] {};
OpenMBeanConstructorInfo[] constrInfos = new OpenMBeanConstructorInfo[] {};
OpenMBeanOperationInfo[] operaInfos = new OpenMBeanOperationInfo[] {};
MBeanNotificationInfo[] notifInfos = new MBeanNotificationInfo[] {};
OpenMBeanInfo ominfo0 = new OpenMBeanInfoSupport("toto", description, attrInfos, constrInfos, operaInfos, notifInfos);
OpenMBeanInfo ominfo = new OpenMBeanInfoSupport(null, description, attrInfos, constrInfos, operaInfos, notifInfos);
test(ominfo0, ominfo, "class name");
ominfo = new OpenMBeanInfoSupport(className, null, attrInfos, constrInfos, operaInfos, notifInfos);
test(ominfo0, ominfo, "description");
ominfo = new OpenMBeanInfoSupport(className, description, null, constrInfos, operaInfos, notifInfos);
test(ominfo0, ominfo, "attrInfos");
ominfo = new OpenMBeanInfoSupport(className, description, attrInfos, null, operaInfos, notifInfos);
test(ominfo0, ominfo, "constructor infos");
ominfo = new OpenMBeanInfoSupport(className, description, attrInfos, constrInfos, null, notifInfos);
test(ominfo0, ominfo, "operation infos");
ominfo = new OpenMBeanInfoSupport(className, description, attrInfos, constrInfos, operaInfos, null);
test(ominfo0, ominfo, "notif infos");
if (failed > 0) {
throw new RuntimeException("Test failed: " + failed);
} else {
System.out.println("---Test: PASSED");
}
}
Aggregations