diff options
author | Rich Hickey <richhickey@gmail.com> | 2008-08-17 13:39:17 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2008-08-17 13:39:17 +0000 |
commit | 4509f5c715dc69164a15391d80adae93f5223d00 (patch) | |
tree | 66b95cae6ef6ac72d891294a85b285c91eb13c21 /src | |
parent | 4371ab9b199cd3b35660effd58c59069bdf4c7bc (diff) |
made DynamicClassLoader delegate findResource(s)
Diffstat (limited to 'src')
-rw-r--r-- | src/jvm/clojure/lang/DynamicClassLoader.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/jvm/clojure/lang/DynamicClassLoader.java b/src/jvm/clojure/lang/DynamicClassLoader.java index db5a6944..8f3442be 100644 --- a/src/jvm/clojure/lang/DynamicClassLoader.java +++ b/src/jvm/clojure/lang/DynamicClassLoader.java @@ -13,8 +13,11 @@ package clojure.lang; import java.util.HashMap; +import java.util.Enumeration; +import java.util.Vector; import java.net.URLClassLoader; import java.net.URL; +import java.io.IOException; //todo: possibly extend URLClassLoader? @@ -50,6 +53,29 @@ protected Class<?> findClass(String name) throws ClassNotFoundException{ //throw new ClassNotFoundException(name); } +public URL findResource(String name){ + URL url = super.findResource(name); + if(url == null) + url = getParent().getResource(name); + return url; +} + +public Enumeration<URL> findResources(String name) throws IOException{ + Enumeration<URL> ret = getParent().getResources(name); + if(ret.hasMoreElements()) + { + Vector<URL> v = new Vector(); + Enumeration<URL> sret = super.findResources(name); + while(sret.hasMoreElements()) + v.add(sret.nextElement()); + while(ret.hasMoreElements()) + v.add(ret.nextElement()); + return v.elements(); + } + else + return super.findResources(name); +} + public void registerConstants(int id, Object[] val){ constantVals.put(id, val); } |