Methods Summary |
---|
public void | checkCreateProxy(javax.management.ObjectName src)
final AMX proxy = getProxyFactory().getProxy( src, AMX.class);
Util.getObjectName( proxy );
proxy.getContainer();
proxy.getDomainRoot();
|
public void | checkProxiesCached(javax.management.ObjectName src)
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 );
}
}
|
public static com.sun.enterprise.management.Capabilities | getCapabilities()
return getOfflineCapableCapabilities( false );
|
private java.lang.String | getProxyGetterName(java.lang.String getterName)
final int baseLength = getterName.length() - "ObjectName".length();
final String baseName = getterName.substring( 0, baseLength );
return( baseName + "Proxy" );
|
private boolean | isChildProxyGetter(java.lang.reflect.Method method)
final Class[] paramTypes = method.getParameterTypes();
return( paramTypes.length == 1 &&
paramTypes[ 0 ] == String.class &&
AMX.class.isAssignableFrom( method.getReturnType() ) );
|
private boolean | isProxiesGetter(java.lang.reflect.Method method)
return( method.getParameterTypes().length == 0 &&
Set.class.isAssignableFrom( method.getReturnType() ) );
|
private boolean | isProxyGetter(java.lang.reflect.Method method)
return( method.getName().startsWith( JMXUtil.GET ) &&
method.getParameterTypes().length == 0 &&
AMX.class.isAssignableFrom( method.getReturnType() ) );
|
public void | testAllGetters()
final long start = now();
final Set<AMX> proxies = getAllAMX();
for( final AMX amx : proxies )
{
testProxyGetters( amx );
}
printElapsed( "testAllGetters", start );
|
public void | testCreateAllProxies()
testAll( "checkCreateProxy" );
|
public void | testDomainRootCachedProxies()
final DomainRoot root = (DomainRoot)getDomainRoot();
assert( root.getJ2EEDomain() == root.getJ2EEDomain() );
assert( root.getDomainConfig() == root.getDomainConfig() );
assert( root.getQueryMgr() == root.getQueryMgr() );
assert( root.getBulkAccess() == root.getBulkAccess() );
assert( root.getUploadDownloadMgr() == root.getUploadDownloadMgr() );
assert( root.getConfigDottedNames() == root.getConfigDottedNames() );
assert( root.getMonitoringDottedNames() == root.getMonitoringDottedNames() );
assert( root.getJ2EEDomain() == root.getJ2EEDomain() );
|
public void | testProxiesCached()
testAll( "checkProxiesCached" );
|
public void | testProxyGetters(com.sun.appserv.management.base.AMX proxy)Verify that every getXXX() method can be called (those without parameters).
final Method[] methods = getInterfaceClass( proxy ).getMethods();
final List<Method> failedMethods = new ArrayList<Method>();
final List<Throwable> exceptions = new ArrayList<Throwable>();
final long start = now();
for( int methodIdx = 0; methodIdx < methods.length; ++methodIdx )
{
final Method method = methods[ methodIdx ];
final String methodName = method.getName();
final Class[] parameterTypes = method.getParameterTypes();
if ( methodName.startsWith( JMXUtil.GET ) && parameterTypes.length == 0 )
{
try
{
final Object result = method.invoke( proxy, (Object[])null );
//trace( methodName + "=" + result);
}
catch( Throwable t )
{
final ObjectName objectName = Util.getObjectName( proxy );
if ( isRemoteIncomplete( objectName ) )
{
trace( "remoteIncomplete: " + objectName );
}
else
{
trace( "failure: " + methodName + " = " + t.getClass().getName() );
failedMethods.add( method );
exceptions.add( t );
}
}
}
}
final long elapsed = now() - start;
//printVerbose( "testProxyGetters for: " + Util.getObjectName( proxy ) + " = " + elapsed );
if ( failedMethods.size() != 0 )
{
final int numFailed = failedMethods.size();
trace( "\nMBean \"" + Util.getObjectName( proxy ) + "\" failed for:" );
for( int i = 0; i < numFailed; ++i )
{
final Method m = (Method)failedMethods.get( i );
final Throwable t = (Throwable)exceptions.get( i );
final Throwable rootCause = ExceptionUtil.getRootCause( t );
final String rootTrace = ExceptionUtil.getStackTrace( rootCause );
final Class rootCauseClass = rootCause.getClass();
trace( "testProxyGetters: failure from: " + m.getName() + ": " + rootCauseClass.getName() );
if ( rootCauseClass != AttributeNotFoundException.class )
{
trace( rootTrace + "\n" );
}
}
}
|
public void | testProxyInterfaceIsAMX()
final long start = now();
final TypeInfos infos = TypeInfos.getInstance();
final Iterator iter = infos.getJ2EETypes().iterator();
while ( iter.hasNext() )
{
final TypeInfo info = infos.getInfo( (String)iter.next() );
final Class proxyClass = info.getInterface();
if ( ! AMX.class.isAssignableFrom( proxyClass ) )
{
warning( "Proxy interface does not extend AMX: " + proxyClass.getName() );
}
}
printElapsed( "testProxyInterfaceNameConsistent", start );
|
public void | testProxyInterfaceNameConsistent()
final long start = now();
final TypeInfos infos = TypeInfos.getInstance();
final Iterator iter = infos.getJ2EETypes().iterator();
while ( iter.hasNext() )
{
final TypeInfo info = infos.getInfo( (String)iter.next() );
final Class proxyClass = info.getInterface();
if ( proxyClass.getName().endsWith( "ResourceConfigProxy" ) )
{
if ( proxyClass.getName().endsWith( "ConnectorConnectionPoolConfigProxy" ) )
{
// ConnectorConnectionPoolConfig does not extend ResourceConfig,
}
else if ( ! ResourceConfig.class.isAssignableFrom( proxyClass ) )
{
warning( "Proxy interface does not extend ResourceConfigProxy: " +
proxyClass.getName() );
}
}
if ( proxyClass.getName().endsWith( "ResourceRefConfigProxy" ) )
{
if ( ! ResourceRefConfig.class.isAssignableFrom( proxyClass ) )
{
warning( "Proxy interface does not extend ResourceRefConfigProxy: " +
proxyClass.getName() );
}
}
if ( proxyClass.getName().endsWith( "DeployedItemRefConfig" ) )
{
if ( ! DeployedItemRefConfig.class.isAssignableFrom( proxyClass ) )
{
trace( "Proxy interface does not extend DeployedItemRefConfig: " +
proxyClass.getName() );
}
}
}
printElapsed( "testProxyInterfaceNameConsistent", start );
|
public void | testProxyTime()This test is designed to check that performance is reasonable and/or
to detect a change that slows things down drastically.
public void
final DomainRoot root = (DomainRoot)getDomainRoot();
final long start = now();
for( int i = 0; i < 5; ++i )
{
root.getContainer();
root.getDomainRoot();
root.getJ2EEDomain();
root.getDomainConfig();
root.getQueryMgr();
root.getBulkAccess();
root.getUploadDownloadMgr();
root.getConfigDottedNames();
root.getMonitoringDottedNames();
root.getDeploymentMgr();
}
final long elapsed = now() - start;
// should be < 300 ms, so this is a 10X margin...
assert( elapsed < 300 * 10 );
|
public void | testQueryMgr()
final QueryMgr proxy = (QueryMgr)getQueryMgr();
Util.getObjectName( proxy );
proxy.getContainer();
proxy.getDomainRoot();
|