src/examples/tomcat/apache-tomcat-6.0.35-src/java-extras/stx/libjava/tomcat/loader/SmalltalkWebappClassLoader.java
branchjk_new_structure
changeset 1568 81d5c274ae88
parent 1501 6dfcb713c598
child 1621 99d5d5d38cfe
equal deleted inserted replaced
1567:7ae02432dd5c 1568:81d5c274ae88
     9  * @author Jan Vrany
     9  * @author Jan Vrany
    10  *
    10  *
    11  */
    11  */
    12 public class SmalltalkWebappClassLoader extends WebappClassLoader {
    12 public class SmalltalkWebappClassLoader extends WebappClassLoader {
    13 	
    13 	
    14 	ClassLoader scl;
    14     ClassLoader stcl;
    15 
    15 
    16 	public SmalltalkWebappClassLoader() {
    16     public SmalltalkWebappClassLoader() {
    17 		init();
    17 	init();
       
    18     }
       
    19 
       
    20     public SmalltalkWebappClassLoader(ClassLoader parent) {
       
    21 	super(parent);
       
    22 	init();
       
    23     }
       
    24 	
       
    25     protected void init() {
       
    26 	try {
       
    27 	    Class<ClassLoader> sclClass = (Class<ClassLoader>) Class.forName("stx.libjava.ClassLoader");
       
    28 	    Method m = sclClass.getMethod("getSystemClassLoader", new Class[0] );
       
    29 	    stcl = (ClassLoader)m.invoke(null, new Object[0]);
       
    30 	} catch (ClassNotFoundException e1) {
       
    31 	    // Not running under stx:libjava?
       
    32 	    stcl = null;
       
    33 	} catch (IllegalArgumentException e) {
       
    34 	    e.printStackTrace();
       
    35 	} catch (IllegalAccessException e) {
       
    36 	    // TODO Auto-generated catch block
       
    37 	    e.printStackTrace();
       
    38 	} catch (InvocationTargetException e) {
       
    39 	    // TODO Auto-generated catch block
       
    40 	    e.printStackTrace();
       
    41 	} catch (SecurityException e) {
       
    42 	    // TODO Auto-generated catch block
       
    43 	    e.printStackTrace();
       
    44 	} catch (NoSuchMethodException e) {
       
    45 	    // TODO Auto-generated catch block
       
    46 	    e.printStackTrace();
    18 	}
    47 	}
    19 
    48     }
    20 	public SmalltalkWebappClassLoader(ClassLoader parent) {
       
    21 		super(parent);
       
    22 		init();
       
    23 	}
       
    24 	
    49 	
    25 	protected void init() {
    50     public Class findClass(String name) throws ClassNotFoundException {	
    26 		try {
    51     	if ((stcl != null) && ( name.startsWith("SMALLTALK.") )) {
    27 			Class<ClassLoader> sclClass = (Class<ClassLoader>) Class.forName("stx.libjava.ClassLoader");
    52 	    return stcl.loadClass(name);
    28 			Method m = sclClass.getMethod("getSystemClassLoader", new Class[0] );
    53     	} else {
    29 			scl = (ClassLoader)m.invoke(null, new Object[0]);
    54 	    return super.findClass(name);
    30 		} catch (ClassNotFoundException e1) {
    55     	}
    31 			// Not running under stx:libjava?
    56     }
    32 			scl = null;
       
    33 		} catch (IllegalArgumentException e) {
       
    34 			e.printStackTrace();
       
    35 		} catch (IllegalAccessException e) {
       
    36 			// TODO Auto-generated catch block
       
    37 			e.printStackTrace();
       
    38 		} catch (InvocationTargetException e) {
       
    39 			// TODO Auto-generated catch block
       
    40 			e.printStackTrace();
       
    41 		} catch (SecurityException e) {
       
    42 			// TODO Auto-generated catch block
       
    43 			e.printStackTrace();
       
    44 		} catch (NoSuchMethodException e) {
       
    45 			// TODO Auto-generated catch block
       
    46 			e.printStackTrace();
       
    47 		}
       
    48 	}
       
    49 
    57 
    50 }
    58 }