1 /*
2 LoaderGenerator - tool for generated xml, sql and doml file needed for Octopus.
3 Copyright (C) 2003 Together
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
8 This library is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 Lesser General Public License for more details.
12 You should have received a copy of the GNU Lesser General Public
13 License along with this library; if not, write to the Free Software
14 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
15 */
16
17
18 package org.webdocwf.util.loader.generator;
19
20 import java.io.*;
21 import java.net.*;
22 import java.lang.reflect.*;
23
24 /***
25 *
26 * GeneratorClassLoader class load new files into class loader
27 * @author Radoslav Dutina
28 * @version 1.0
29 */
30 public class GeneratorClassLoader {
31
32 private static final Class[] parameters = new Class[] {
33 URL.class};
34
35 /***
36 * This methdod adding the file object to class loader
37 * @param s defines the string representation of file path
38 * @throws IOException
39 */
40 public static void addFile(String s) throws IOException {
41
42 File f = new File(s);
43
44 addFile(f);
45
46 } //end method
47
48 /***
49 * This method adding the file object to class loader
50 * @param f defines the url of file object
51 * @throws IOException
52 */
53 public static void addFile(File f) throws IOException {
54
55 addURL(f.toURL());
56
57 } //end method
58
59 /***
60 * This method adding the file object to class loader
61 * @param u defines the url object
62 * @throws IOException
63 */
64 public static void addURL(URL u) throws IOException {
65
66 URLClassLoader sysloader = (URLClassLoader) ClassLoader.
67 getSystemClassLoader();
68
69 Class sysclass = URLClassLoader.class;
70
71 try {
72
73 Method method = sysclass.getDeclaredMethod("addURL", parameters);
74
75 method.setAccessible(true);
76
77 method.invoke(sysloader, new Object[] {u});
78
79 }
80 catch (Throwable t) {
81
82 t.printStackTrace();
83
84 throw new IOException("Error, could not add URL to system classloader");
85
86 } //end try catch
87
88 } //end method
89
90 } //end class
This page was automatically generated by Maven