1.1 --- a/emul/mini/src/main/java/java/lang/Class.java Thu Jan 24 18:03:29 2013 +0100
1.2 +++ b/emul/mini/src/main/java/java/lang/Class.java Thu Jan 24 19:36:40 2013 +0100
1.3 @@ -32,6 +32,7 @@
1.4 import java.lang.reflect.Field;
1.5 import java.lang.reflect.Method;
1.6 import java.lang.reflect.TypeVariable;
1.7 +import java.net.URL;
1.8 import org.apidesign.bck2brwsr.core.JavaScriptBody;
1.9 import org.apidesign.bck2brwsr.emul.reflect.MethodImpl;
1.10
1.11 @@ -1028,15 +1029,16 @@
1.12 * @since JDK1.1
1.13 */
1.14 public java.net.URL getResource(String name) {
1.15 - name = resolveName(name);
1.16 - ClassLoader cl = null;
1.17 - if (cl==null) {
1.18 - // A system class.
1.19 - return ClassLoader.getSystemResource(name);
1.20 - }
1.21 - return cl.getResource(name);
1.22 + InputStream is = getResourceAsStream(name);
1.23 + return is == null ? null : newResourceURL(URL.class, "res:/" + name, is);
1.24 }
1.25 -
1.26 +
1.27 + @JavaScriptBody(args = { "url", "spec", "is" }, body =
1.28 + "var u = url.cnstr(true);\n"
1.29 + + "u.constructor.cons__VLjava_lang_String_2Ljava_io_InputStream_2.call(u, spec, is);\n"
1.30 + + "return u;"
1.31 + )
1.32 + private static native URL newResourceURL(Class<URL> url, String spec, InputStream is);
1.33
1.34 /**
1.35 * Add a package name prefix if the name is not absolute Remove leading "/"