View Javadoc

1   package org.apache.maven.surefire;
2   
3   import org.apache.maven.surefire.battery.JUnitBattery;
4   
5   import java.lang.reflect.Constructor;
6   import java.lang.reflect.Modifier;
7   
8   /***
9    * @author Jason van  Zyl
10   * @version $Id: SurefireUtils.java 359692 2005-12-29 03:08:44Z brett $
11   */
12  public class SurefireUtils
13  {
14      public static Object instantiateBattery( Object[] holder, ClassLoader loader )
15          throws Exception
16      {
17          Class testClass;
18  
19          Class batteryClass;
20  
21          try
22          {
23              testClass = loader.loadClass( (String) holder[0] );
24  
25              batteryClass = loader.loadClass( "org.apache.maven.surefire.battery.Battery" );
26          }
27          catch ( Exception e )
28          {
29              return null;
30          }
31  
32          if ( Modifier.isAbstract( testClass.getModifiers() ) )
33          {
34              return null;
35          }
36  
37          Object battery = null;
38  
39          if ( batteryClass.isAssignableFrom( testClass ) )
40          {
41              if ( holder[1] != null )
42              {
43                  Object[] params = (Object[]) holder[1];
44  
45                  Class[] paramTypes = new Class[params.length];
46  
47                  for ( int j = 0; j < params.length; j++ )
48                  {
49                      paramTypes[j] = params[j].getClass();
50                  }
51  
52                  Constructor constructor = testClass.getConstructor( paramTypes );
53  
54                  battery = constructor.newInstance( params );
55              }
56              else
57              {
58                  battery = testClass.newInstance();
59              }
60          }
61          else
62          {
63              battery = new JUnitBattery( testClass, loader );
64          }
65  
66          return battery;
67      }
68  }