    1   package javax.jdo;
    2
    3   import java.io.File;
    4   import java.io.IOException;
    5   import java.net.URL;
    6   import java.net.URLClassLoader;
    7
    8   /**
    9    * A class loader that allows the user to add classpath entries.
    10   */
    11  public class JDOConfigTestClassLoader extends URLClassLoader {
    12
    13      /**
    14       * Uses the CTCCL as the parent and adds the given path to this loader's classpath.
    15       */
    16      public JDOConfigTestClassLoader(String... additionalPath) throws IOException {
    17  	this(Thread.currentThread().getContextClassLoader(), additionalPath);
    18      }
    19
    20      /**
    21       * Uses the given ClassLoader as the parent & adds the given paths to this loader's classpath.
    22       */
    23      public JDOConfigTestClassLoader(ClassLoader parent, String... additionalPaths) throws IOException {
    24  	super(new URL[] {}, parent);
    25
    26  	for (String path : additionalPaths) {
    27  	    addFile(path);
    28  	}
    29      }
    30
    31      public void addFile(String s) throws IOException {
    32  	addFile(new File(s));
    33      }
    34
    35      public void addFile(File f) throws IOException {
    36  	addURL(f.toURI().toURL());
    37      }
    38
    39      @Override
    40      public void addURL(URL url) {
    41  	super.addURL(url);
    42      }
    43  }