Search in sources :

Example 1 with Extra

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;
            }
        }
    }
}
Also used : Container(com.sun.appserv.management.base.Container) Extra(com.sun.appserv.management.base.Extra) MBeanOperationInfo(javax.management.MBeanOperationInfo) AMX(com.sun.appserv.management.base.AMX) ObjectName(javax.management.ObjectName)

Aggregations

AMX (com.sun.appserv.management.base.AMX)1 Container (com.sun.appserv.management.base.Container)1 Extra (com.sun.appserv.management.base.Extra)1 MBeanOperationInfo (javax.management.MBeanOperationInfo)1 ObjectName (javax.management.ObjectName)1