(no commit message)
[utils] / support / src / main / java / org / wamblee / general / ClassLoaderUtils.java
similarity index 61%
rename from support/src/main/java/org/wamblee/general/ClassPathHacker.java
rename to support/src/main/java/org/wamblee/general/ClassLoaderUtils.java
index b8d527385a0fb154dc529b7a90a1ef53cc250c62..5275e15972c847265bfdad3a7c3398ffa80d1427 100644 (file)
@@ -22,12 +22,23 @@ import java.net.URLClassLoader;
 import java.net.URL;
 import java.lang.reflect.Method;
 
-public class ClassPathHacker {
-
-    private static final Class[] PARAMETERS = new Class[] { URL.class };
+/**
+ * Utility for working with the class loader. Based on the ClassPathHacker
+ * 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. 
+     * @throws IOException
+     */
     public static void addJarsInDirectory(File aDirectory) throws IOException {
         System.out.println("directory '" + aDirectory + "'");
 
@@ -42,25 +53,40 @@ public class ClassPathHacker {
         }
     }
 
-    public static void addFile(String s) throws IOException {
-        File f = new File(s);
+    /**
+     * Adds a file to the classpath.
+     * @param aFilename Filename to add. 
+     * @throws IOException
+     */
+    public static void addFile(String aFilename) throws IOException {
+        File f = new File(aFilename);
         addFile(f);
     }
 
-    public static void addFile(File f) throws IOException {
-        addURL(f.toURL());
+    /**
+     * Adds a file to the classpath. 
+     * @param aFile File to add. 
+     * @throws IOException
+     */
+    public static void addFile(File aFile) throws IOException {
+        addURL(aFile.toURL());
     }
 
-    public static void addURL(URL u) throws IOException {
+    /**
+     * Adds a url to the classpath.
+     * @param aUrl Url to add. 
+     * @throws IOException
+     */
+    public static void addURL(URL aUrl) throws IOException {
 
         URLClassLoader sysloader = (URLClassLoader) ClassLoader
                 .getSystemClassLoader();
         Class sysclass = URLClassLoader.class;
 
         try {
-            Method method = sysclass.getDeclaredMethod("addURL", PARAMETERS);
+            Method method = sysclass.getDeclaredMethod("addURL", new Class[]{ URL.class } );
             method.setAccessible(true);
-            method.invoke(sysloader, new Object[] { u });
+            method.invoke(sysloader, new Object[] { aUrl });
         } catch (Throwable t) {
             t.printStackTrace();
             throw new IOException(