use of com.sun.appserv.management.base.AMX in project Payara by payara.
the class AMXTest method checkTemplateAttributes.
/**
* Look for Attributes that probably should be String and not int/long
* due to our template facility ${...}
*/
public void checkTemplateAttributes(final ObjectName objectName) {
final AMX proxy = getProxyFactory().getProxy(objectName, AMX.class);
if (proxy instanceof AMXConfig) {
final AMXConfig config = (AMXConfig) proxy;
final Set<String> s = new HashSet<String>();
final MBeanInfo mbeanInfo = Util.getExtra(config).getMBeanInfo();
final MBeanAttributeInfo[] attrInfos = mbeanInfo.getAttributes();
for (int i = 0; i < attrInfos.length; ++i) {
final MBeanAttributeInfo info = attrInfos[i];
final String type = info.getType();
if (type.equals("int") || type.equals("long")) {
s.add(info.getName());
}
}
if (s.size() != 0) {
trace("\n" + objectName + " contains the following int/long Attributes which perhaps ought to be String" + " due to the templatizing of config: " + toString(s) + "\n");
}
}
}
use of com.sun.appserv.management.base.AMX in project Payara by payara.
the class AMXTest method checkImplementsAMXConfig.
/**
* Verify:
* <ul>
* <li>if the interface name ends in "Config" or "ConfigMgr", then is is an AMXConfig</li>
* </ul>
*/
public void checkImplementsAMXConfig(final ObjectName objectName) throws Exception {
final AMX proxy = getProxyFactory().getProxy(objectName, AMX.class);
final String interfaceName = Util.getExtra(proxy).getInterfaceName();
if (interfaceName.endsWith("Config") || interfaceName.endsWith("ConfigMgr")) {
if (!(proxy instanceof AMXConfig)) {
trace("WARNING: " + ClassUtil.stripPackageName(interfaceName) + " does not implement AMXConfig");
}
}
}
use of com.sun.appserv.management.base.AMX 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;
}
}
}
}
use of com.sun.appserv.management.base.AMX in project Payara by payara.
the class ContainerTest method testContaineesOfType.
private void testContaineesOfType(final Container c, final String j2eeType) {
final Set<String> j2eeTypes = c.getContaineeJ2EETypes();
final Map<String, Map<String, AMX>> all = c.getMultiContaineeMap(j2eeTypes);
final Map<String, Map<String, AMX>> allFromNull = c.getMultiContaineeMap(null);
assert (mapsOfMapsEqual(all, allFromNull));
final Map<String, AMX> byType = c.getContaineeMap(j2eeType);
assert mapsEqual(byType, all.get(j2eeType));
if (byType.keySet().size() == 1) {
final AMX cc = c.getContainee(j2eeType);
assert cc == byType.values().iterator().next();
}
final Set<AMX> s = c.getContaineeSet(j2eeType);
final Set<AMX> sByType = new HashSet<AMX>(byType.values());
assert setsEqual(sByType, s);
final Set<String> nullSet = null;
assert (setsEqual(c.getContaineeSet(nullSet), c.getContaineeSet(j2eeTypes)));
assert (setsEqual(c.getContaineeSet(), c.getContaineeSet(nullSet)));
for (final AMX amx : byType.values()) {
final String itsName = amx.getName();
final String itsType = amx.getJ2EEType();
final Set<String> types = GSetUtil.newStringSet(itsType);
final Set<AMX> x = c.getByNameContaineeSet(types, itsName);
assert (x.size() == 1);
assert (amx == x.iterator().next());
assert (c.getContainee(itsType, itsName) == amx);
}
}
use of com.sun.appserv.management.base.AMX in project Payara by payara.
the class ProxyTest method checkProxiesCached.
public void checkProxiesCached(final ObjectName src) throws Exception {
final AMX proxy = getProxyFactory().getProxy(src, AMX.class);
assert (proxy == getProxyFactory().getProxy(src, AMX.class));
assert (proxy.getContainer() == proxy.getContainer());
assert (proxy.getDomainRoot() == proxy.getDomainRoot());
final Class interfaceClass = getInterfaceClass(proxy);
final Method[] proxyMethods = interfaceClass.getMethods();
for (int methodIdx = 0; methodIdx < proxyMethods.length; ++methodIdx) {
final Method method = proxyMethods[methodIdx];
final String methodName = method.getName();
if (isProxyGetter(method)) {
// invoke it twice, and verify that the 2nd call results in the same proxy
// trace( "Invoking: " + method );
method.invoke(proxy, (Object[]) null);
}
}
}
Aggregations