Coverage Report - argos.deploy.ChainClassLoader
 
Classes in this File Line Coverage Branch Coverage Complexity
ChainClassLoader
0%
0/24
0%
0/12
0
 
 1  
 package argos.deploy;
 2  
 
 3  
 import java.net.URL;
 4  
 import java.util.List;
 5  
 
 6  
 public class ChainClassLoader extends ClassLoader {
 7  
         private List<OpenClassLoader> loaders;
 8  
         
 9  
         public ChainClassLoader(List<OpenClassLoader> loaders) {
 10  0
                 super();
 11  0
                 this.loaders = loaders;
 12  0
         }
 13  
 
 14  
         @Override
 15  
         protected Class<?> findClass(String name) throws ClassNotFoundException {
 16  0
                 for(OpenClassLoader l : loaders) {
 17  
                         try {
 18  0
                                 return l.findClass(name);
 19  
                         }
 20  0
                         catch(ClassNotFoundException ignore) {}
 21  
                 }
 22  0
                 throw new ClassNotFoundException(name);
 23  
         }
 24  
 
 25  
         @Override
 26  
         protected URL findResource(String name) {
 27  0
                 URL url = null;
 28  0
                 for(OpenClassLoader l : loaders) {
 29  0
                         url = l.findResource(name);
 30  0
                         if(url != null) {
 31  0
                                 return url;
 32  
                         }
 33  
                 }
 34  0
                 return url;
 35  
         }
 36  
 
 37  
         @Override
 38  
         protected Package getPackage(String name) {
 39  0
                 Package pkg = null;
 40  0
                 for(OpenClassLoader l : loaders) {
 41  0
                         pkg = l.getPackage(name);
 42  0
                         if(pkg != null) {
 43  0
                                 return pkg;
 44  
                         }
 45  
                 }
 46  0
                 return pkg;
 47  
         }
 48  
 
 49  
         @Override
 50  
         protected synchronized Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
 51  0
                 for(OpenClassLoader l : loaders) {
 52  
                         try {
 53  0
                                 return l.loadClass(name, resolve);
 54  
                         }
 55  0
                         catch(ClassNotFoundException ignore) {}
 56  
                 }
 57  0
                 throw new ClassNotFoundException(name);
 58  
         }
 59  
 
 60  
         @Override
 61  
         public Class<?> loadClass(String name) throws ClassNotFoundException {
 62  0
                 return loadClass(name, true);
 63  
         }
 64  
 }