Browse Source

Start simplifying so that metrics task does not complain as much

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271410 13f79535-47bb-0310-9956-ffa450edef68
master
Peter Donald 23 years ago
parent
commit
25c4d95cd5
1 changed files with 37 additions and 16 deletions
  1. +37
    -16
      proposal/myrmidon/src/java/org/apache/myrmidon/launcher/Main.java

+ 37
- 16
proposal/myrmidon/src/java/org/apache/myrmidon/launcher/Main.java View File

@@ -39,24 +39,11 @@ public final class Main
final File installDirectory = findInstallDir();
System.setProperty( "myrmidon.home", installDirectory.toString() );

//setup classloader appropriately for myrmidon jar
final File libDir = new File( installDirectory, "lib" );
final URL[] libUrls = buildURLList( libDir );
final URLClassLoader libClassLoader = new URLClassLoader( libUrls );

final File containerLibDir = new File( installDirectory, "bin" + File.separator + "lib" );
final URL[] containerLibUrls = buildURLList( containerLibDir );
final URLClassLoader sharedClassLoader = createSharedClassLoader( installDirectory );
final URLClassLoader classLoader =
new URLClassLoader( containerLibUrls, libClassLoader );

//load class and retrieve appropriate main method.
final Class clazz = classLoader.loadClass( "org.apache.myrmidon.frontends.CLIMain" );
final Method method = clazz.getMethod( "main", new Class[]{args.getClass()} );

Thread.currentThread().setContextClassLoader( classLoader );
createContainerClassLoader( installDirectory, sharedClassLoader );

//kick the tires and light the fires....
method.invoke( null, new Object[]{args} );
execMainClass( classLoader, args );
}
catch( final InvocationTargetException ite )
{
@@ -70,6 +57,40 @@ public final class Main
}
}

private static void execMainClass( final URLClassLoader classLoader, final String[] args )
throws Exception
{
//load class and retrieve appropriate main method.
final Class clazz = classLoader.loadClass( "org.apache.myrmidon.frontends.CLIMain" );
final Method method = clazz.getMethod( "main", new Class[]{args.getClass()} );

Thread.currentThread().setContextClassLoader( classLoader );

//kick the tires and light the fires....
method.invoke( null, new Object[]{args} );
}

private static URLClassLoader createContainerClassLoader( final File installDirectory,
final URLClassLoader sharedClassLoader )
throws Exception
{
final File containerLibDir = new File( installDirectory, "bin" + File.separator + "lib" );
final URL[] containerLibUrls = buildURLList( containerLibDir );
final URLClassLoader classLoader =
new URLClassLoader( containerLibUrls, sharedClassLoader );
return classLoader;
}

private static URLClassLoader createSharedClassLoader( final File installDirectory )
throws Exception
{
//setup classloader appropriately for myrmidon jar
final File libDir = new File( installDirectory, "lib" );
final URL[] libUrls = buildURLList( libDir );
final URLClassLoader libClassLoader = new URLClassLoader( libUrls );
return libClassLoader;
}

private static final URL[] buildURLList( final File dir )
throws Exception
{


Loading…
Cancel
Save