[jboss-cvs] JBossAS SVN: r76230 - projects/jboss-cl/trunk/classloading-vfs/src/tests/org/jboss/test/classloading/vfs/client/support/launcher.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Jul 25 07:58:42 EDT 2008
Author: adrian at jboss.org
Date: 2008-07-25 07:58:42 -0400 (Fri, 25 Jul 2008)
New Revision: 76230
Modified:
projects/jboss-cl/trunk/classloading-vfs/src/tests/org/jboss/test/classloading/vfs/client/support/launcher/ClientLauncher.java
Log:
Use reflection to avoid CCE
Modified: projects/jboss-cl/trunk/classloading-vfs/src/tests/org/jboss/test/classloading/vfs/client/support/launcher/ClientLauncher.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/tests/org/jboss/test/classloading/vfs/client/support/launcher/ClientLauncher.java 2008-07-25 11:36:00 UTC (rev 76229)
+++ projects/jboss-cl/trunk/classloading-vfs/src/tests/org/jboss/test/classloading/vfs/client/support/launcher/ClientLauncher.java 2008-07-25 11:58:42 UTC (rev 76230)
@@ -338,6 +338,7 @@
* @param args
* @throws Throwable
*/
+ @SuppressWarnings("unchecked")
public static void launch(String clientClass, String clientName, String[] cp, String[] args)
throws Throwable
{
@@ -404,20 +405,22 @@
deploy(deployment);
validate();
- ClientContainer client = getBean("ClientContainer", ControllerState.INSTALLED, ClientContainer.class);
- if(client == null )
- throw new Exception("ClientContainer bean was not created");
ClassLoader ccLoader = getBean(classLoaderName, ControllerState.INSTALLED, ClassLoader.class);
if(ccLoader == null )
throw new Exception(classLoaderName+" bean was not created");
- Class<?> mainClass = client.getMainClass();
- ClassLoader mainClassLoader = mainClass.getClass().getClassLoader();
+ Class<?> clientContainerClass = ccLoader.loadClass(ClientContainer.class.getName());
+ Object client = getBean("ClientContainer", ControllerState.INSTALLED, clientContainerClass);
+ if(client == null )
+ throw new Exception("ClientContainer bean was not created");
+ Method method = clientContainerClass.getMethod("getMainClass");
+ Class<?> mainClass = (Class) method.invoke(client);
+ ClassLoader mainClassLoader = mainClass.getClassLoader();
if(ccLoader != mainClassLoader)
throw new Exception(ccLoader+" != "+mainClassLoader);
// Invoke main on the underlying client main class
Class<?> parameterTypes[] = { args.getClass() };
- Method method = client.getClass().getDeclaredMethod("invokeMain", parameterTypes);
+ method = clientContainerClass.getDeclaredMethod("invokeMain", parameterTypes);
method.invoke(client, (Object) args);
undeploy(deployment);
More information about the jboss-cvs-commits
mailing list