summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2008-08-17 13:39:17 +0000
committerRich Hickey <richhickey@gmail.com>2008-08-17 13:39:17 +0000
commit4509f5c715dc69164a15391d80adae93f5223d00 (patch)
tree66b95cae6ef6ac72d891294a85b285c91eb13c21 /src
parent4371ab9b199cd3b35660effd58c59069bdf4c7bc (diff)
made DynamicClassLoader delegate findResource(s)
Diffstat (limited to 'src')
-rw-r--r--src/jvm/clojure/lang/DynamicClassLoader.java26
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);
}