01: /**
02: * JOnAS: Java(TM) Open Application Server
03: * Copyright (C) 1999 Bull S.A.
04: * Contact: jonas-team@objectweb.org
05: *
06: * This library is free software; you can redistribute it and/or
07: * modify it under the terms of the GNU Lesser General Public
08: * License as published by the Free Software Foundation; either
09: * version 2.1 of the License, or any later version.
10: *
11: * This library is distributed in the hope that it will be useful,
12: * but WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: * Lesser General Public License for more details.
15: *
16: * You should have received a copy of the GNU Lesser General Public
17: * License along with this library; if not, write to the Free Software
18: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
19: * USA
20: *
21: * Initial developer(s): Guillaume SAUTHIER
22: * --------------------------------------------------------------------------
23: * $Id: EjbJarClassLoader.java 4622 2004-04-19 13:49:54Z sauthieg $
24: * --------------------------------------------------------------------------
25: */package org.objectweb.jonas_lib.loader;
26:
27: import java.io.IOException;
28: import java.net.URL;
29:
30: /**
31: * ClassLoader used for loading EJB classes and resources
32: *
33: * @author Guillaume Sauthier
34: */
35: public class EjbJarClassLoader extends AbsModuleClassLoader {
36:
37: /** classes are located in the module root */
38: private static final String CLASSES_DIRECTORY = "";
39:
40: /** WSDL files are located in META-INF/wsdl directory */
41: private static final String WSDL_DIRECTORY = "META-INF/wsdl/";
42:
43: /**
44: * Create a new EjbJarClassLoader with default parent ClassLoader
45: *
46: * @param modules an URL[] of EjbJar files
47: *
48: * @throws IOException if creation fails
49: */
50: public EjbJarClassLoader(URL[] modules) throws IOException {
51: super (modules);
52: }
53:
54: /**
55: * Create a new EjbJarClassLoader with specified parent ClassLoader
56: *
57: * @param modules an URL[] of EjbJar files
58: * @param parent the parent ClassLoader to use
59: *
60: * @throws IOException if creation fails
61: */
62: public EjbJarClassLoader(URL[] modules, ClassLoader parent)
63: throws IOException {
64: super (modules, parent);
65: }
66:
67: /**
68: * Add the directory and the content of META-INF/wsdl/ in the ClassLoader
69: *
70: * @throws IOException When WEB-INF/classes and WEB-INF/wsdl directories cannot be added
71: * in loader
72: */
73: protected void init() throws IOException {
74: super.init();
75: addInRepository(CLASSES_DIRECTORY);
76: addInRepository(WSDL_DIRECTORY);
77: }
78: }
|