001    package railo.commons.lang;
002    
003    import java.io.IOException;
004    import java.io.InputStream;
005    import java.net.URL;
006    import java.util.Enumeration;
007    
008    import railo.commons.io.log.Log;
009    
010    public final class LogClassLoader extends ClassLoader {
011            
012            private final ClassLoader cl;
013            private final Log log;
014    
015            public LogClassLoader(ClassLoader cl,Log log){
016                    this.cl=cl;
017                    this.log=log;
018            }
019    
020            @Override
021            public synchronized void clearAssertionStatus() {
022                    log.debug("LogClassLoader", "clearAssertion");
023                    cl.clearAssertionStatus();
024            }
025    
026            @Override
027            protected Package definePackage(String name, String specTitle, String specVersion, String specVendor, String implTitle, String implVersion, String implVendor, URL sealBase) throws IllegalArgumentException {
028                    log.debug("LogClassLoader", "definePackage");
029                    return null;
030            }
031    
032            @Override
033            protected Class findClass(String name) throws ClassNotFoundException {
034                    log.debug("LogClassLoader", "findClass");
035                    return null;
036            }
037    
038            @Override
039            protected String findLibrary(String libname) {
040                    log.debug("LogClassLoader", "findLibrary");
041                    return null;
042            }
043    
044            @Override
045            protected URL findResource(String name) {
046                    log.debug("LogClassLoader", "findResource");
047                    return null;
048            }
049    
050            @Override
051            protected Enumeration findResources(String name) throws IOException {
052                    log.debug("LogClassLoader", "findResources");
053                    return null;
054            }
055    
056            @Override
057            protected Package getPackage(String name) {
058                    log.debug("LogClassLoader", "getPackage");
059                    return null;
060            }
061    
062            @Override
063            protected Package[] getPackages() {
064                    log.debug("LogClassLoader", "getPackages");
065                    return null;
066            }
067    
068            @Override
069            public URL getResource(String name) {
070                    log.debug("LogClassLoader", "getResource");
071                    return cl.getResource(name);
072            }
073    
074            @Override
075            public InputStream getResourceAsStream(String name) {
076                    log.debug("LogClassLoader", "getResourceAsStream");
077                    return cl.getResourceAsStream(name);
078            }
079    
080            @Override
081            protected synchronized Class loadClass(String name, boolean resolve) throws ClassNotFoundException {
082                    log.debug("LogClassLoader", "loadClass");
083                    return null;
084            }
085    
086            @Override
087            public Class loadClass(String name) throws ClassNotFoundException {
088                    Class clazz = cl.loadClass(name);
089                    log.debug("LogClassLoader", "loadClass("+name+"):"+clazz);
090                    return clazz;
091            }
092    
093            @Override
094            public synchronized void setClassAssertionStatus(String className, boolean enabled) {
095                    log.debug("LogClassLoader", "setClassAssertionStatus");
096                    cl.setClassAssertionStatus(className, enabled);
097            }
098    
099            @Override
100            public synchronized void setDefaultAssertionStatus(boolean enabled) {
101                    log.debug("LogClassLoader", "setdefaultAssertionStatus");
102                    cl.setDefaultAssertionStatus(enabled);
103            }
104    
105            @Override
106            public synchronized void setPackageAssertionStatus(String packageName, boolean enabled) {
107                    log.debug("LogClassLoader", "setPackageAssertionStatus");
108                    cl.setPackageAssertionStatus(packageName, enabled);
109            }
110    }