RetroLamda needs to access resources from classpath, not the converted ones to deal with lamda interfaces with default methods
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Sat, 05 Mar 2016 10:28:10 +0100
changeset 1886c4d37f95adf2
parent 1885 95250e1b35de
child 1887 6b74e398466d
RetroLamda needs to access resources from classpath, not the converted ones to deal with lamda interfaces with default methods
rt/aot/src/main/java/org/apidesign/bck2brwsr/aot/Bck2BrwsrJars.java
rt/vm8/src/main/java/org/apidesign/bck2brwsr/vm8/Functions.java
     1.1 --- a/rt/aot/src/main/java/org/apidesign/bck2brwsr/aot/Bck2BrwsrJars.java	Sat Mar 05 08:47:12 2016 +0100
     1.2 +++ b/rt/aot/src/main/java/org/apidesign/bck2brwsr/aot/Bck2BrwsrJars.java	Sat Mar 05 10:28:10 2016 +0100
     1.3 @@ -299,6 +299,10 @@
     1.4              if (is != null) {
     1.5                  return is;
     1.6              }
     1.7 +            return getFromCp(name);
     1.8 +        }
     1.9 +
    1.10 +        private InputStream getFromCp(String name) throws IOException {
    1.11              Enumeration<URL> en = cp.getResources(name);
    1.12              URL u = null;
    1.13              while (en.hasMoreElements()) {
    1.14 @@ -315,10 +319,17 @@
    1.15              return u.openStream();
    1.16          }
    1.17  
    1.18 +        private final class NoConvRes implements Bck2Brwsr.Resources {
    1.19 +            @Override
    1.20 +            public InputStream get(String resource) throws IOException {
    1.21 +                return getFromCp(resource);
    1.22 +            }
    1.23 +        }
    1.24 +
    1.25          private void addClassResource(String n) throws IOException {
    1.26              if (proc != null) {
    1.27                  try (InputStream is = this.get(n)) {
    1.28 -                    Map<String, byte[]> conv = proc.process(n, readFrom(is), this);
    1.29 +                    Map<String, byte[]> conv = proc.process(n, readFrom(is), new NoConvRes());
    1.30                      if (conv != null) {
    1.31                          boolean found = false;
    1.32                          for (Map.Entry<String, byte[]> entrySet : conv.entrySet()) {
     2.1 --- a/rt/vm8/src/main/java/org/apidesign/bck2brwsr/vm8/Functions.java	Sat Mar 05 08:47:12 2016 +0100
     2.2 +++ b/rt/vm8/src/main/java/org/apidesign/bck2brwsr/vm8/Functions.java	Sat Mar 05 10:28:10 2016 +0100
     2.3 @@ -57,6 +57,6 @@
     2.4      }
     2.5  
     2.6      private static SimpleOne<Void, Void, Void, Void, Integer> function4impl() {
     2.7 -        return null;
     2.8 +        return (Void p1, Void p2, Void p3, Void p4) -> 42;
     2.9      }
    2.10  }