use of com.sun.appserv.management.base.Extra in project Payara by payara.
the class AMXTest method checkMapsHaveCreateRemove.
/**
* Verify that all getAbcConfigMgr() calls return a non-null result.
*/
public void checkMapsHaveCreateRemove(final ObjectName objectName) throws Exception {
final AMX proxy = getProxyFactory().getProxy(objectName, AMX.class);
if (proxy instanceof Container && proxy.getGroup().equals(AMX.GROUP_CONFIGURATION)) {
final Extra extra = Util.getExtra(proxy);
final String[] attrNames = extra.getAttributeNames();
for (int i = 0; i < attrNames.length; ++i) {
final String name = attrNames[i];
final String SUFFIX = "ObjectNameMap";
final String PREFIX = JMXUtil.GET;
if (name.endsWith(SUFFIX)) {
final String base = StringUtil.stripPrefixAndSuffix(name, PREFIX, SUFFIX);
if (base.endsWith("ConnectorModuleConfig")) {
// these are created via deployment not directly
continue;
}
final String createName = "create" + base;
final String removeName = "remove" + base;
final String j2eeType = proxy.getJ2EEType();
if (ignoreCreateRemove(proxy.getJ2EEType(), createName)) {
continue;
}
final MBeanOperationInfo[] creates = JMXUtil.findOperations(extra.getMBeanInfo().getOperations(), createName);
boolean haveCreate = false;
for (int op = 0; op < creates.length; ++op) {
final MBeanOperationInfo info = creates[op];
if (info.getReturnType().equals(ObjectName.class.getName())) {
haveCreate = true;
break;
}
}
assert (haveCreate) : "Missing operation " + createName + "() for " + objectName;
final MBeanOperationInfo[] removes = JMXUtil.findOperations(extra.getMBeanInfo().getOperations(), removeName);
boolean haveRemove = false;
for (int op = 0; op < removes.length; ++op) {
final MBeanOperationInfo info = removes[op];
if (info.getReturnType().equals("void") && info.getSignature().length <= 2) {
haveRemove = true;
break;
}
}
assert (haveRemove) : "Missing operation " + removeName + "() for " + objectName;
}
}
}
}
Aggregations