diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/launcher/LauncherClassLoader.java b/proposal/myrmidon/src/java/org/apache/myrmidon/launcher/LauncherClassLoader.java deleted file mode 100644 index 011043888..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/launcher/LauncherClassLoader.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (C) The Apache Software Foundation. All rights reserved. - * - * This software is published under the terms of the Apache Software License - * version 1.1, a copy of which has been included with this distribution in - * the LICENSE file. - */ -package org.apache.myrmidon.launcher; - -import java.io.File; -import java.lang.reflect.Method; -import java.net.URL; -import java.net.URLClassLoader; -import java.util.StringTokenizer; - -/** - * Basic classloader that allows addition of URLs at runtime. - * Used from Main.class to inject Classes into ClassLoader. - * - * @author Peter Donald - */ -public final class LauncherClassLoader - extends URLClassLoader -{ - /** - * Basic constructor. - * - * @param urls the Starting URLS - */ - public LauncherClassLoader( final URL[] urls ) - { - super( urls ); - } - - /** - * Add a URL to classloader - * - * @param url the url - */ - public void addURL( final URL url ) - { - super.addURL( url ); - } - - /** - * Add an array of URLs to classloader - * - * @param url the url - */ -/* - void addURLs( final URL[] urls ) - { - for( int i = 0; i < urls.length; i++ ) - { - addURL( urls[ i ] ); - } - } -*/ -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/launcher/Main.java b/proposal/myrmidon/src/java/org/apache/myrmidon/launcher/Main.java index 72b895dda..62fd43c55 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/launcher/Main.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/launcher/Main.java @@ -11,6 +11,7 @@ import java.io.File; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.net.URL; +import java.net.URLClassLoader; import java.util.ArrayList; import java.util.StringTokenizer; @@ -41,12 +42,14 @@ public final class Main final File libDir = new File( installDirectory, "lib" ); final URL[] urls = buildURLList( libDir ); - final LauncherClassLoader classLoader = new LauncherClassLoader( urls ); + final URLClassLoader classLoader = new URLClassLoader( urls ); //load class and retrieve appropriate main method. final Class clazz = classLoader.loadClass( "org.apache.myrmidon.Main" ); 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 } ); } @@ -80,6 +83,14 @@ public final class Main if( !file.isFile() || !file.canRead() ) { + //ignore non-files or unreadable files + continue; + } + + final String name = file.getName(); + if( !name.endsWith( ".jar" ) && !name.endsWith( ".zip" ) ) + { + //Ifnore files in lib dir that are not jars or zips continue; }