Don't include VM in VMTest initialization, let it be loaded on demand.
1.1 --- a/benchmarks/jbox2d/pom.xml Tue Apr 26 08:04:12 2016 +0200
1.2 +++ b/benchmarks/jbox2d/pom.xml Tue Apr 26 08:05:09 2016 +0200
1.3 @@ -88,13 +88,6 @@
1.4 </dependency>
1.5 <dependency>
1.6 <groupId>org.apidesign.bck2brwsr</groupId>
1.7 - <artifactId>launcher.http</artifactId>
1.8 - <version>${project.version}</version>
1.9 - <classifier>bck2brwsr</classifier>
1.10 - <scope>test</scope>
1.11 - </dependency>
1.12 - <dependency>
1.13 - <groupId>org.apidesign.bck2brwsr</groupId>
1.14 <artifactId>jbox2d-osgi</artifactId>
1.15 <version>${project.version}</version>
1.16 <exclusions>
2.1 --- a/launcher/http/pom.xml Tue Apr 26 08:04:12 2016 +0200
2.2 +++ b/launcher/http/pom.xml Tue Apr 26 08:05:09 2016 +0200
2.3 @@ -30,29 +30,6 @@
2.4 <skip>false</skip>
2.5 </configuration>
2.6 </plugin>
2.7 - <plugin>
2.8 - <groupId>org.apidesign.bck2brwsr</groupId>
2.9 - <artifactId>bck2brwsr-maven-plugin</artifactId>
2.10 - <version>0.17</version>
2.11 - <executions>
2.12 - <execution>
2.13 - <goals>
2.14 - <goal>library</goal>
2.15 - </goals>
2.16 - </execution>
2.17 - </executions>
2.18 - <configuration>
2.19 - <ignoreBootClassPath>false</ignoreBootClassPath>
2.20 - </configuration>
2.21 - <dependencies>
2.22 - <dependency>
2.23 - <groupId>org.apidesign.bck2brwsr</groupId>
2.24 - <artifactId>aot</artifactId>
2.25 - <version>${project.version}</version>
2.26 - <type>jar</type>
2.27 - </dependency>
2.28 - </dependencies>
2.29 - </plugin>
2.30 </plugins>
2.31 </build>
2.32 <properties>
3.1 --- a/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/CompileCP.java Tue Apr 26 08:04:12 2016 +0200
3.2 +++ b/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/CompileCP.java Tue Apr 26 08:05:09 2016 +0200
3.3 @@ -101,24 +101,16 @@
3.4 } catch (URISyntaxException ex) {
3.5 throw new IOException(ex);
3.6 }
3.7 - final Bck2Brwsr all;
3.8 - try {
3.9 - URL u = r.get(Bck2Brwsr.class.getName().replace('.', '/') + ".class", 0);
3.10 - all = configureFrom(u, rt, 4);
3.11 - } catch (URISyntaxException ex) {
3.12 - throw new IOException(ex);
3.13 - }
3.14 -
3.15 - all
3.16 - .standalone(true)
3.17 + final Bck2Brwsr all = Bck2Brwsr.newCompiler()
3.18 + .standalone(false)
3.19 //.obfuscation(ObfuscationLevel.FULL)
3.20 .resources(new Bck2Brwsr.Resources() {
3.21 @Override
3.22 public InputStream get(String resource) throws IOException {
3.23 - final URL url = r.get(resource, 0);
3.24 - return url == null ? null : url.openStream();
3.25 + return null;
3.26 }
3.27 - }).generate(sb);
3.28 + });
3.29 + all.generate(sb);
3.30 }
3.31
3.32 static Bck2Brwsr configureFrom(URL u, Bck2Brwsr rt, int parents) throws IOException, URISyntaxException {
4.1 --- a/rt/emul/compact/pom.xml Tue Apr 26 08:04:12 2016 +0200
4.2 +++ b/rt/emul/compact/pom.xml Tue Apr 26 08:05:09 2016 +0200
4.3 @@ -22,6 +22,18 @@
4.4 <scope>provided</scope>
4.5 </dependency>
4.6 <dependency>
4.7 + <groupId>${project.groupId}</groupId>
4.8 + <artifactId>launcher.http</artifactId>
4.9 + <version>${project.version}</version>
4.10 + <scope>provided</scope>
4.11 + </dependency>
4.12 + <dependency>
4.13 + <groupId>${project.groupId}</groupId>
4.14 + <artifactId>vm4brwsr</artifactId>
4.15 + <version>${project.version}</version>
4.16 + <scope>provided</scope>
4.17 + </dependency>
4.18 + <dependency>
4.19 <groupId>org.apidesign.bck2brwsr</groupId>
4.20 <artifactId>core</artifactId>
4.21 <version>${project.version}</version>
4.22 @@ -84,6 +96,11 @@
4.23 </executions>
4.24 <configuration>
4.25 <mainJar>${project.build.directory}/${project.build.finalName}-rt.jar</mainJar>
4.26 + <aotDeps>
4.27 + <aotDep>org.apidesign.bck2brwsr:emul.mini</aotDep>
4.28 + <aotDep>org.apidesign.bck2brwsr:launcher.http</aotDep>
4.29 + <aotDep>org.apidesign.bck2brwsr:vm4brwsr</aotDep>
4.30 + </aotDeps>
4.31 </configuration>
4.32 </plugin>
4.33 </plugins>
5.1 --- a/rt/emul/compact/src/main/assembly/rt.xml Tue Apr 26 08:04:12 2016 +0200
5.2 +++ b/rt/emul/compact/src/main/assembly/rt.xml Tue Apr 26 08:05:09 2016 +0200
5.3 @@ -15,8 +15,16 @@
5.4 <exclude>META-INF/maven/**/*mini*/**</exclude>
5.5 </excludes>
5.6 </unpackOptions>
5.7 + <includes>
5.8 + <include>org.apidesign.bck2brwsr:*:*</include>
5.9 + </includes>
5.10 <excludes>
5.11 <exclude>org.apidesign.bck2brwsr:core:*</exclude>
5.12 + <exclude>org.apidesign.bck2brwsr:vm4brwsr:*</exclude>
5.13 + <exclude>org.apidesign.bck2brwsr:aot:*</exclude>
5.14 + <exclude>org.apidesign.bck2brwsr:launcher.fx:*</exclude>
5.15 + <exclude>org.apidesign.bck2brwsr:launcher.api:*</exclude>
5.16 + <exclude>org.apidesign.bck2brwsr:launcher.http:*</exclude>
5.17 </excludes>
5.18 </dependencySet>
5.19 </dependencySets>
6.1 --- a/rt/emul/compacttest/pom.xml Tue Apr 26 08:04:12 2016 +0200
6.2 +++ b/rt/emul/compacttest/pom.xml Tue Apr 26 08:05:09 2016 +0200
6.3 @@ -29,9 +29,8 @@
6.4 </dependency>
6.5 <dependency>
6.6 <groupId>${project.groupId}</groupId>
6.7 - <artifactId>launcher.http</artifactId>
6.8 + <artifactId>vm4brwsr</artifactId>
6.9 <version>${project.version}</version>
6.10 - <classifier>bck2brwsr</classifier>
6.11 <scope>test</scope>
6.12 </dependency>
6.13 <dependency>
7.1 --- a/rt/emul/zip/pom.xml Tue Apr 26 08:04:12 2016 +0200
7.2 +++ b/rt/emul/zip/pom.xml Tue Apr 26 08:05:09 2016 +0200
7.3 @@ -87,5 +87,13 @@
7.4 <type>jar</type>
7.5 <scope>provided</scope>
7.6 </dependency>
7.7 + <dependency>
7.8 + <groupId>org.apidesign.bck2brwsr</groupId>
7.9 + <artifactId>emul</artifactId>
7.10 + <version>${project.version}</version>
7.11 + <classifier>bck2brwsr</classifier>
7.12 + <type>jar</type>
7.13 + <scope>test</scope>
7.14 + </dependency>
7.15 </dependencies>
7.16 </project>
8.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ClassPath.java Tue Apr 26 08:04:12 2016 +0200
8.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ClassPath.java Tue Apr 26 08:05:09 2016 +0200
8.3 @@ -28,6 +28,7 @@
8.4 *
8.5 * @author Jaroslav Tulach <jtulach@netbeans.org>
8.6 */
8.7 +@Exported
8.8 final class ClassPath {
8.9 private ClassPath() {
8.10 }
9.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Tue Apr 26 08:04:12 2016 +0200
9.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Tue Apr 26 08:05:09 2016 +0200
9.3 @@ -70,9 +70,7 @@
9.4 String[] both = config.classes().toArray();
9.5
9.6 final StringArray fixedNames = new StringArray();
9.7 - fixedNames.add(Object.class.getName().replace('.', '/'));
9.8 - fixedNames.add(Class.class.getName().replace('.', '/'));
9.9 - fixedNames.add(ArithmeticException.class.getName().replace('.', '/'));
9.10 + boolean addThree = false;
9.11
9.12 VM vm;
9.13 if (config.isExtension()) {
9.14 @@ -81,15 +79,22 @@
9.15 config.getResources(), both, config.exported(),
9.16 config.allResources(), config.classpath()
9.17 );
9.18 + addThree = true;
9.19 } else {
9.20 if (config.includeVM()) {
9.21 fixedNames.add(VM.class.getName().replace('.', '/'));
9.22 + addThree = true;
9.23 }
9.24 vm = new Standalone(out,
9.25 config.getResources(), config.exported(),
9.26 config.allResources()
9.27 );
9.28 }
9.29 + if (addThree) {
9.30 + fixedNames.add(Object.class.getName().replace('.', '/'));
9.31 + fixedNames.add(Class.class.getName().replace('.', '/'));
9.32 + fixedNames.add(ArithmeticException.class.getName().replace('.', '/'));
9.33 + }
9.34 vm.doCompile(fixedNames.addAndNew(both));
9.35 }
9.36
9.37 @@ -615,14 +620,20 @@
9.38 + " }\n"
9.39 + " var reload = function(name, arr, keep) {\n"
9.40 + " if (!arr) throw 'Cannot find ' + name;\n"
9.41 - + " var lazy = vm['org_apidesign_vm4brwsr_VMLazy'];\n"
9.42 - + " if (!lazy) throw 'No bck2brwsr VM module to compile ' + name;\n"
9.43 + + " var err = null;\n"
9.44 + + " try {\n"
9.45 + + " var lazy = loadClass('org.apidesign.vm4brwsr.VMLazy');\n"
9.46 + + " } catch (e) {\n"
9.47 + + " err = e;\n"
9.48 + + " }\n"
9.49 + + " if (!lazy) {\n"
9.50 + + " throw 'No bck2brwsr VM module to compile ' + name + ':\\n' + err;\n"
9.51 + + " }\n"
9.52 + " if (!keep) {\n"
9.53 + " var attr = mangleClass(name);\n"
9.54 + " delete vm[attr];\n"
9.55 + " }\n"
9.56 - + " return lazy(false)\n"
9.57 - + " ['load__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_String_2_3Ljava_lang_Object_2_3B']\n"
9.58 + + " return lazy['load__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_String_2_3Ljava_lang_Object_2_3B']\n"
9.59 + " (vm, name, args, arr);\n"
9.60 + " };\n"
9.61 + " var loadClass = function(name) {\n"
9.62 @@ -791,6 +802,14 @@
9.63 }
9.64
9.65 @Override
9.66 + String accessClass(String className) {
9.67 + if (this.extensionClasses.contains(className.replace('_', '/'))) {
9.68 + return className;
9.69 + }
9.70 + return super.accessClass(className);
9.71 + }
9.72 +
9.73 + @Override
9.74 protected String generateClass(String className) throws IOException {
9.75 if (isExternalClass(className)) {
9.76 final String cls = className.replace("_", "_1").replace('/', '_');
10.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VMLazy.java Tue Apr 26 08:04:12 2016 +0200
10.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VMLazy.java Tue Apr 26 08:05:09 2016 +0200
10.3 @@ -27,6 +27,7 @@
10.4 *
10.5 * @author Jaroslav Tulach <jtulach@netbeans.org>
10.6 */
10.7 +@Exported
10.8 final class VMLazy {
10.9 private final Object vm;
10.10 private final Object[] args;
11.1 --- a/rt/vm8/pom.xml Tue Apr 26 08:04:12 2016 +0200
11.2 +++ b/rt/vm8/pom.xml Tue Apr 26 08:05:09 2016 +0200
11.3 @@ -74,12 +74,14 @@
11.4 <artifactId>emul</artifactId>
11.5 <version>${project.version}</version>
11.6 <scope>compile</scope>
11.7 + <classifier>rt</classifier>
11.8 </dependency>
11.9 <dependency>
11.10 - <groupId>org.apidesign.bck2brwsr</groupId>
11.11 - <artifactId>emul.mini</artifactId>
11.12 + <groupId>${project.groupId}</groupId>
11.13 + <artifactId>emul</artifactId>
11.14 <version>${project.version}</version>
11.15 - <scope>compile</scope>
11.16 + <scope>provided</scope>
11.17 + <classifier>bck2brwsr</classifier>
11.18 </dependency>
11.19 <dependency>
11.20 <groupId>org.apidesign.bck2brwsr</groupId>