Can load multiple resources of the same name from extensions closure
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Sat, 03 May 2014 06:46:57 +0200
branchclosure
changeset 15194d3780a69843
parent 1518 8261c59be151
child 1520 f14753e81f06
Can load multiple resources of the same name from extensions
rt/emul/mini/src/main/java/java/lang/ClassLoader.java
rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java
rt/vm/src/test/java/org/apidesign/vm4brwsr/ResourcesWithExtensionsTest.java
     1.1 --- a/rt/emul/mini/src/main/java/java/lang/ClassLoader.java	Fri May 02 09:06:57 2014 +0200
     1.2 +++ b/rt/emul/mini/src/main/java/java/lang/ClassLoader.java	Sat May 03 06:46:57 2014 +0200
     1.3 @@ -588,6 +588,9 @@
     1.4       * @since  1.2
     1.5       */
     1.6      public Enumeration<URL> getResources(String name) throws IOException {
     1.7 +        if (this == SYSTEM) {
     1.8 +            return findResources(name);
     1.9 +        }
    1.10          Enumeration[] tmp = new Enumeration[2];
    1.11          if (parent != null) {
    1.12              tmp[0] = parent.getResources(name);
     2.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java	Fri May 02 09:06:57 2014 +0200
     2.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java	Sat May 03 06:46:57 2014 +0200
     2.3 @@ -541,9 +541,14 @@
     2.4                  + "        reload__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_String_2_3Ljava_lang_Object_2_3B(loader, name, args, byteCode);\n"
     2.5                  + "    };\n"
     2.6                  + "    vm.loadBytes = function(name, skip) {\n"
     2.7 -                + "      if (resources[name]) return resources[name][0];\n"
     2.8 +                + "      skip = typeof skip == 'number' ? skip : 0;\n"
     2.9 +                + "      var arr = resources[name];\n"
    2.10 +                + "      if (arr) {\n"
    2.11 +                + "        if (skip < arr.length) return arr[skip];\n"
    2.12 +                + "        skip -= arr.length;\n"
    2.13 +                + "      };\n"
    2.14                  + "      return vm.org_apidesign_vm4brwsr_VMLazy(false).\n"
    2.15 -                + "        loadBytes___3BLjava_lang_Object_2Ljava_lang_String_2_3Ljava_lang_Object_2I(loader, name, args, typeof skip == 'number' ? skip : 0);\n"
    2.16 +                + "        loadBytes___3BLjava_lang_Object_2Ljava_lang_String_2_3Ljava_lang_Object_2I(loader, name, args, skip);\n"
    2.17                  + "    }\n"
    2.18                  + "    vm.java_lang_reflect_Array(false);\n"
    2.19                  + "    vm.org_apidesign_vm4brwsr_VMLazy(false).\n"
     3.1 --- a/rt/vm/src/test/java/org/apidesign/vm4brwsr/ResourcesWithExtensionsTest.java	Fri May 02 09:06:57 2014 +0200
     3.2 +++ b/rt/vm/src/test/java/org/apidesign/vm4brwsr/ResourcesWithExtensionsTest.java	Sat May 03 06:46:57 2014 +0200
     3.3 @@ -36,7 +36,7 @@
     3.4              exp
     3.5          );
     3.6      }
     3.7 -    /*
     3.8 +
     3.9      @Test public void checkHelloWorld() throws Exception {
    3.10          String exp = "Hello World!";
    3.11          
    3.12 @@ -45,7 +45,6 @@
    3.13              exp
    3.14          );
    3.15      }
    3.16 -    */
    3.17  
    3.18      private static TestVM code;
    3.19