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            /**
021             *
022             * @see java.lang.ClassLoader#clearAssertionStatus()
023             */
024            public synchronized void clearAssertionStatus() {
025                    log.debug("LogClassLoader", "clearAssertion");
026                    cl.clearAssertionStatus();
027            }
028    
029            /**
030             *
031             * @see java.lang.ClassLoader#definePackage(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.net.URL)
032             */
033            protected Package definePackage(String name, String specTitle, String specVersion, String specVendor, String implTitle, String implVersion, String implVendor, URL sealBase) throws IllegalArgumentException {
034                    log.debug("LogClassLoader", "definePackage");
035                    return null;
036            }
037    
038            /**
039             *
040             * @see java.lang.ClassLoader#findClass(java.lang.String)
041             */
042            protected Class findClass(String name) throws ClassNotFoundException {
043                    log.debug("LogClassLoader", "findClass");
044                    return null;
045            }
046    
047            /**
048             *
049             * @see java.lang.ClassLoader#findLibrary(java.lang.String)
050             */
051            protected String findLibrary(String libname) {
052                    log.debug("LogClassLoader", "findLibrary");
053                    return null;
054            }
055    
056            /**
057             *
058             * @see java.lang.ClassLoader#findResource(java.lang.String)
059             */
060            protected URL findResource(String name) {
061                    log.debug("LogClassLoader", "findResource");
062                    return null;
063            }
064    
065            /**
066             *
067             * @see java.lang.ClassLoader#findResources(java.lang.String)
068             */
069            protected Enumeration findResources(String name) throws IOException {
070                    log.debug("LogClassLoader", "findResources");
071                    return null;
072            }
073    
074            /**
075             *
076             * @see java.lang.ClassLoader#getPackage(java.lang.String)
077             */
078            protected Package getPackage(String name) {
079                    log.debug("LogClassLoader", "getPackage");
080                    return null;
081            }
082    
083            /**
084             *
085             * @see java.lang.ClassLoader#getPackages()
086             */
087            protected Package[] getPackages() {
088                    log.debug("LogClassLoader", "getPackages");
089                    return null;
090            }
091    
092            /**
093             *
094             * @see java.lang.ClassLoader#getResource(java.lang.String)
095             */
096            public URL getResource(String name) {
097                    log.debug("LogClassLoader", "getResource");
098                    return cl.getResource(name);
099            }
100    
101            /**
102             *
103             * @see java.lang.ClassLoader#getResourceAsStream(java.lang.String)
104             */
105            public InputStream getResourceAsStream(String name) {
106                    log.debug("LogClassLoader", "getResourceAsStream");
107                    return cl.getResourceAsStream(name);
108            }
109    
110            /**
111             *
112             * @see java.lang.ClassLoader#loadClass(java.lang.String, boolean)
113             */
114            protected synchronized Class loadClass(String name, boolean resolve) throws ClassNotFoundException {
115                    log.debug("LogClassLoader", "loadClass");
116                    return null;
117            }
118    
119            /**
120             *
121             * @see java.lang.ClassLoader#loadClass(java.lang.String)
122             */
123            public Class loadClass(String name) throws ClassNotFoundException {
124                    Class clazz = cl.loadClass(name);
125                    log.debug("LogClassLoader", "loadClass("+name+"):"+clazz);
126                    return clazz;
127            }
128    
129            /**
130             *
131             * @see java.lang.ClassLoader#setClassAssertionStatus(java.lang.String, boolean)
132             */
133            public synchronized void setClassAssertionStatus(String className, boolean enabled) {
134                    log.debug("LogClassLoader", "setClassAssertionStatus");
135                    cl.setClassAssertionStatus(className, enabled);
136            }
137    
138            /**
139             *
140             * @see java.lang.ClassLoader#setDefaultAssertionStatus(boolean)
141             */
142            public synchronized void setDefaultAssertionStatus(boolean enabled) {
143                    log.debug("LogClassLoader", "setdefaultAssertionStatus");
144                    cl.setDefaultAssertionStatus(enabled);
145            }
146    
147            /**
148             *
149             * @see java.lang.ClassLoader#setPackageAssertionStatus(java.lang.String, boolean)
150             */
151            public synchronized void setPackageAssertionStatus(String packageName, boolean enabled) {
152                    log.debug("LogClassLoader", "setPackageAssertionStatus");
153                    cl.setPackageAssertionStatus(packageName, enabled);
154            }
155    }