emul/mini/src/main/java/java/lang/Class.java
branchemul
changeset 576 b679a7dad297
parent 573 d3a0383d01d3
child 588 6f864278604a
     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 "/"