X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=support%2Fgeneral%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fgeneral%2FClassLoaderUtils.java;h=b3453a9a7b25a3f0b65de5f6bc9108ed835aa9f3;hb=ddd261f331280640c5b53c7128230b629ebcd268;hp=5275e15972c847265bfdad3a7c3398ffa80d1427;hpb=92e23e5ecf9614f2ab770a8cdedc0b21ddf1e127;p=utils diff --git a/support/general/src/main/java/org/wamblee/general/ClassLoaderUtils.java b/support/general/src/main/java/org/wamblee/general/ClassLoaderUtils.java index 5275e159..b3453a9a 100644 --- a/support/general/src/main/java/org/wamblee/general/ClassLoaderUtils.java +++ b/support/general/src/main/java/org/wamblee/general/ClassLoaderUtils.java @@ -1,53 +1,55 @@ /* * Copyright 2006 the original author or authors. - * + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ - package org.wamblee.general; -import java.io.IOException; import java.io.File; -import java.net.URLClassLoader; -import java.net.URL; +import java.io.IOException; + import java.lang.reflect.Method; +import java.net.URL; +import java.net.URLClassLoader; + + /** * Utility for working with the class loader. Based on the ClassPathHacker - * example found on the internet. + * example found on the internet. */ public class ClassLoaderUtils { - // No logging in this class to keep the required class libraries // limited to the standard java classes. This allows use of the // utilities in an environment with a very limited classpath. - private static final String JAR_SUFFIX = ".jar"; /** - * Adds all jars in the given directory to the class path. - * @param aDirectory Directory. + * Adds all jars in the given directory to the class path. + * @param aDirectory Directory. * @throws IOException */ - public static void addJarsInDirectory(File aDirectory) throws IOException { + public static void addJarsInDirectory(File aDirectory) + throws IOException { System.out.println("directory '" + aDirectory + "'"); for (File aFile : aDirectory.listFiles()) { - System.out - .println("Considering '" + aFile.getCanonicalPath() + "'"); + System.out.println("Considering '" + aFile.getCanonicalPath() + + "'"); + if (aFile.getName().toLowerCase().endsWith(JAR_SUFFIX)) { - System.out.println("Adding '" + aFile.getCanonicalPath() - + "' to classpath."); + System.out.println("Adding '" + aFile.getCanonicalPath() + + "' to classpath."); addFile(aFile); } } @@ -55,7 +57,7 @@ public class ClassLoaderUtils { /** * Adds a file to the classpath. - * @param aFilename Filename to add. + * @param aFilename Filename to add. * @throws IOException */ public static void addFile(String aFilename) throws IOException { @@ -64,8 +66,8 @@ public class ClassLoaderUtils { } /** - * Adds a file to the classpath. - * @param aFile File to add. + * Adds a file to the classpath. + * @param aFile File to add. * @throws IOException */ public static void addFile(File aFile) throws IOException { @@ -74,25 +76,22 @@ public class ClassLoaderUtils { /** * Adds a url to the classpath. - * @param aUrl Url to add. + * @param aUrl Url to add. * @throws IOException */ public static void addURL(URL aUrl) throws IOException { - - URLClassLoader sysloader = (URLClassLoader) ClassLoader - .getSystemClassLoader(); + URLClassLoader sysloader = (URLClassLoader) ClassLoader.getSystemClassLoader(); Class sysclass = URLClassLoader.class; try { - Method method = sysclass.getDeclaredMethod("addURL", new Class[]{ URL.class } ); + Method method = sysclass.getDeclaredMethod("addURL", + new Class[] { URL.class }); method.setAccessible(true); method.invoke(sysloader, new Object[] { aUrl }); } catch (Throwable t) { t.printStackTrace(); throw new IOException( - "Error, could not add URL to system classloader"); + "Error, could not add URL to system classloader"); } - } - }