Fixing bugs in WASM emitter

This commit is contained in:
Alexey Andreev 2016-07-28 19:57:16 +03:00
parent e5356fae27
commit 89c16b9807
53 changed files with 457 additions and 250 deletions

View File

@ -1,31 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<option name="DEFAULT_COMPILER" value="Javac" />
<excludeFromCompile>
<directory url="file://$PROJECT_DIR$/tools/maven/webapp/src/main/resources/archetype-resources" includeSubdirectories="true" />
</excludeFromCompile>
<resourceExtensions />
<wildcardResourcePatterns>
<entry name="!?*.java" />
<entry name="!?*.form" />
<entry name="!?*.class" />
<entry name="!?*.groovy" />
<entry name="!?*.scala" />
<entry name="!?*.flex" />
<entry name="!?*.kt" />
<entry name="!?*.clj" />
<entry name="!?*.aj" />
</wildcardResourcePatterns>
<annotationProcessing>
<profile default="true" name="Default" enabled="false">
<processorPath useClasspath="true" />
</profile>
<profile default="false" name="Maven default annotation processors profile" enabled="true">
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<processorPath useClasspath="true" />
<module name="impl" />
<module name="teavm-chrome-rdp" />
<module name="teavm-classlib" />
@ -33,6 +16,7 @@
<module name="teavm-core" />
<module name="teavm-extras-slf4j" />
<module name="teavm-html4j" />
<module name="teavm-interop" />
<module name="teavm-jso" />
<module name="teavm-jso-apis" />
<module name="teavm-jso-impl" />
@ -61,6 +45,7 @@
<module name="teavm-core" target="1.8" />
<module name="teavm-extras-slf4j" target="1.8" />
<module name="teavm-html4j" target="1.8" />
<module name="teavm-interop" target="1.5" />
<module name="teavm-jso" target="1.8" />
<module name="teavm-jso-apis" target="1.8" />
<module name="teavm-jso-impl" target="1.8" />

View File

@ -6,6 +6,7 @@
<file url="file://$PROJECT_DIR$/core" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/extras-slf4j" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/html4j" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/interop/core" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jso/apis" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jso/core" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jso/impl" charset="UTF-8" />

View File

@ -62,6 +62,7 @@
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
<option value="$PROJECT_DIR$/interop/core/pom.xml" />
</list>
</option>
<option name="ignoredFiles">

View File

@ -2,7 +2,6 @@
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/all-deps/all-deps.iml" filepath="$PROJECT_DIR$/all-deps/all-deps.iml" />
<module fileurl="file://$PROJECT_DIR$/teavm.iml" filepath="$PROJECT_DIR$/teavm.iml" />
<module fileurl="file://$PROJECT_DIR$/tools/chrome-rdp/teavm-chrome-rdp.iml" filepath="$PROJECT_DIR$/tools/chrome-rdp/teavm-chrome-rdp.iml" />
<module fileurl="file://$PROJECT_DIR$/classlib/teavm-classlib.iml" filepath="$PROJECT_DIR$/classlib/teavm-classlib.iml" />
@ -10,9 +9,7 @@
<module fileurl="file://$PROJECT_DIR$/core/teavm-core.iml" filepath="$PROJECT_DIR$/core/teavm-core.iml" />
<module fileurl="file://$PROJECT_DIR$/extras-slf4j/teavm-extras-slf4j.iml" filepath="$PROJECT_DIR$/extras-slf4j/teavm-extras-slf4j.iml" />
<module fileurl="file://$PROJECT_DIR$/html4j/teavm-html4j.iml" filepath="$PROJECT_DIR$/html4j/teavm-html4j.iml" />
<module fileurl="file://$PROJECT_DIR$/tools/idea/teavm-idea-plugin.iml" filepath="$PROJECT_DIR$/tools/idea/teavm-idea-plugin.iml" />
<module fileurl="file://$PROJECT_DIR$/tools/idea/jps-common/teavm-jps-common.iml" filepath="$PROJECT_DIR$/tools/idea/jps-common/teavm-jps-common.iml" />
<module fileurl="file://$PROJECT_DIR$/tools/idea/jps-plugin/teavm-jps-plugin.iml" filepath="$PROJECT_DIR$/tools/idea/jps-plugin/teavm-jps-plugin.iml" />
<module fileurl="file://$PROJECT_DIR$/interop/core/teavm-interop.iml" filepath="$PROJECT_DIR$/interop/core/teavm-interop.iml" />
<module fileurl="file://$PROJECT_DIR$/jso/core/teavm-jso.iml" filepath="$PROJECT_DIR$/jso/core/teavm-jso.iml" />
<module fileurl="file://$PROJECT_DIR$/jso/apis/teavm-jso-apis.iml" filepath="$PROJECT_DIR$/jso/apis/teavm-jso-apis.iml" />
<module fileurl="file://$PROJECT_DIR$/jso/impl/teavm-jso-impl.iml" filepath="$PROJECT_DIR$/jso/impl/teavm-jso-impl.iml" />

View File

@ -1,20 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="CheckStyle-IDEA-Module">
<option name="configuration">
<map>
<entry key="exclude-from-scan" value="true" />
</map>
</option>
</component>
<component name="FacetManager">
<facet type="Osmorc" name="OSGi">
<configuration manifestGenerationMode="OsmorcControlled" manifestLocation="" jarfileLocation="teavm-classlib-1.0.0-SNAPSHOT.jar" outputPathType="CompilerOutputPath" bndFileLocation="" bundlorFileLocation="" bundleActivator="" bundleSymbolicName="teavm-classlib" bundleVersion="1.0.0.SNAPSHOT" ignoreFilePattern="" useProjectDefaultManifestFileLocation="true" alwaysRebuildBundleJAR="false" doNotSynchronizeWithMaven="false">
<additionalProperties>
<property key="Bundle-Description" value="TeaVM Java class library emulation" />
<property key="Export-Package" value="org.teavm.classlib.*" />
<property key="Bundle-Name" value="TeaVM Java class library" />
<property key="Include-Resource" value="org/teavm/classlib/impl/tz/tzdata2015d.zip=$MODULE_DIR$/src/main/resources/org/teavm/classlib/impl/tz/tzdata2015d.zip,org/teavm/classlib/impl/currency/iso3166.csv=$MODULE_DIR$/src/main/resources/org/teavm/classlib/impl/currency/iso3166.csv,org/teavm/classlib/impl/currency/iso4217.xml=$MODULE_DIR$/src/main/resources/org/teavm/classlib/impl/currency/iso4217.xml,org/teavm/classlib/impl/unicode/cldr-json.zip=$MODULE_DIR$/src/main/resources/org/teavm/classlib/impl/unicode/cldr-json.zip,org/teavm/classlib/impl/unicode/UnicodeData.txt=$MODULE_DIR$/src/main/resources/org/teavm/classlib/impl/unicode/UnicodeData.txt,html/methpro_obj.png=$MODULE_DIR$/src/main/resources/html/methpro_obj.png,html/enum_obj.png=$MODULE_DIR$/src/main/resources/html/enum_obj.png,html/class_obj.png=$MODULE_DIR$/src/main/resources/html/class_obj.png,html/annotation_obj.png=$MODULE_DIR$/src/main/resources/html/annotation_obj.png,html/methpub_obj.png=$MODULE_DIR$/src/main/resources/html/methpub_obj.png,html/jcl-class.html=$MODULE_DIR$/src/main/resources/html/jcl-class.html,html/package_obj.png=$MODULE_DIR$/src/main/resources/html/package_obj.png,html/field_public_obj.png=$MODULE_DIR$/src/main/resources/html/field_public_obj.png,html/jcl.html=$MODULE_DIR$/src/main/resources/html/jcl.html,html/jcl.css=$MODULE_DIR$/src/main/resources/html/jcl.css,html/field_protected_obj.png=$MODULE_DIR$/src/main/resources/html/field_protected_obj.png,html/int_obj.png=$MODULE_DIR$/src/main/resources/html/int_obj.png,META-INF/teavm.properties=$MODULE_DIR$/src/main/resources/META-INF/teavm.properties,META-INF/services/org.teavm.vm.spi.TeaVMPlugin=$MODULE_DIR$/src/main/resources/META-INF/services/org.teavm.vm.spi.TeaVMPlugin" />
<property key="Include-Resource" value="META-INF/services/org.teavm.vm.spi.TeaVMPlugin=$MODULE_DIR$/src/main/resources/META-INF/services/org.teavm.vm.spi.TeaVMPlugin,META-INF/teavm.properties=$MODULE_DIR$/src/main/resources/META-INF/teavm.properties,html/field_public_obj.png=$MODULE_DIR$/src/main/resources/html/field_public_obj.png,html/methpro_obj.png=$MODULE_DIR$/src/main/resources/html/methpro_obj.png,html/int_obj.png=$MODULE_DIR$/src/main/resources/html/int_obj.png,html/jcl-class.html=$MODULE_DIR$/src/main/resources/html/jcl-class.html,html/enum_obj.png=$MODULE_DIR$/src/main/resources/html/enum_obj.png,html/jcl.css=$MODULE_DIR$/src/main/resources/html/jcl.css,html/field_protected_obj.png=$MODULE_DIR$/src/main/resources/html/field_protected_obj.png,html/class_obj.png=$MODULE_DIR$/src/main/resources/html/class_obj.png,html/package_obj.png=$MODULE_DIR$/src/main/resources/html/package_obj.png,html/methpub_obj.png=$MODULE_DIR$/src/main/resources/html/methpub_obj.png,html/annotation_obj.png=$MODULE_DIR$/src/main/resources/html/annotation_obj.png,html/jcl.html=$MODULE_DIR$/src/main/resources/html/jcl.html,org/teavm/classlib/impl/currency/iso4217.xml=$MODULE_DIR$/src/main/resources/org/teavm/classlib/impl/currency/iso4217.xml,org/teavm/classlib/impl/currency/iso3166.csv=$MODULE_DIR$/src/main/resources/org/teavm/classlib/impl/currency/iso3166.csv,org/teavm/classlib/impl/unicode/UnicodeData.txt=$MODULE_DIR$/src/main/resources/org/teavm/classlib/impl/unicode/UnicodeData.txt,org/teavm/classlib/impl/unicode/cldr-json.zip=$MODULE_DIR$/src/main/resources/org/teavm/classlib/impl/unicode/cldr-json.zip,org/teavm/classlib/impl/tz/tzdata2015d.zip=$MODULE_DIR$/src/main/resources/org/teavm/classlib/impl/tz/tzdata2015d.zip" />
</additionalProperties>
<additionalJARContents />
</configuration>
@ -35,15 +27,15 @@
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="module" module-name="teavm-platform" />
<orderEntry type="module" module-name="teavm-core" />
<orderEntry type="module" module-name="teavm-metaprogramming-api" />
<orderEntry type="module" module-name="teavm-jso-apis" />
<orderEntry type="module" module-name="teavm-interop" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" name="Maven: com.carrotsearch:hppc:0.6.1" level="project" />
<orderEntry type="library" name="Maven: org.objenesis:objenesis:2.4" level="project" />
<orderEntry type="module" module-name="teavm-jso" />
<orderEntry type="module" module-name="teavm-jso-apis" />
<orderEntry type="module" module-name="teavm-jso-impl" />
<orderEntry type="library" name="Maven: org.mozilla:rhino:1.7.7" level="project" />
<orderEntry type="library" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.2.4" level="project" />
<orderEntry type="library" name="Maven: com.jcraft:jzlib:1.1.3" level="project" />
<orderEntry type="library" name="Maven: joda-time:joda-time:2.7" level="project" />

View File

@ -37,7 +37,7 @@
</dependency>
<dependency>
<groupId>org.teavm</groupId>
<artifactId>teavm-metaprogramming-api</artifactId>
<artifactId>teavm-interop</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>

View File

@ -394,7 +394,24 @@ public class TypeInferer {
@Override
public void binary(BinaryOperation op, VariableReader receiver, VariableReader first, VariableReader second,
NumericOperandType type) {
switch (op) {
case ADD:
case SUBTRACT:
case MULTIPLY:
case DIVIDE:
case MODULO:
case AND:
case OR:
case XOR:
case SHIFT_LEFT:
case SHIFT_RIGHT:
case SHIFT_RIGHT_UNSIGNED:
types[receiver.getIndex()] = convert(type);
break;
case COMPARE:
types[receiver.getIndex()] = VariableType.INT;
break;
}
}
@Override

View File

@ -15,10 +15,6 @@
*/
package org.teavm.model.util;
/**
*
* @author Alexey Andreev
*/
public enum VariableType {
INT,
LONG,

View File

@ -85,7 +85,7 @@ public class TeaVMEntryPoint {
return reference;
}
String getPublicName() {
public String getPublicName() {
return publicName;
}

View File

@ -0,0 +1,70 @@
/*
* Copyright 2016 Alexey Andreev.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.teavm.wasm.generate;
import java.util.HashMap;
import java.util.Map;
import org.teavm.interop.Import;
import org.teavm.model.AnnotationReader;
import org.teavm.model.AnnotationValue;
import org.teavm.model.ClassReader;
import org.teavm.model.ClassReaderSource;
import org.teavm.model.MethodReader;
import org.teavm.model.MethodReference;
public class WasmGenerationContext {
private ClassReaderSource classSource;
private Map<MethodReference, ImportedMethod> importedMethods = new HashMap<>();
public WasmGenerationContext(ClassReaderSource classSource) {
this.classSource = classSource;
}
public ImportedMethod getImportedMethod(MethodReference reference) {
return importedMethods.computeIfAbsent(reference, ref -> {
ClassReader cls = classSource.get(ref.getClassName());
if (cls == null) {
return null;
}
MethodReader method = cls.getMethod(ref.getDescriptor());
if (method == null) {
return null;
}
AnnotationReader annotation = method.getAnnotations().get(Import.class.getName());
if (annotation == null) {
return null;
}
String name = annotation.getValue("name").getString();
AnnotationValue moduleValue = annotation.getValue("module");
String module = moduleValue != null ? moduleValue.getString() : null;
if (module != null && module.isEmpty()) {
module = null;
}
return new ImportedMethod(name, module);
});
}
public class ImportedMethod {
public final String name;
public final String module;
ImportedMethod(String name, String module) {
this.name = name;
this.module = module;
}
}
}

View File

@ -59,6 +59,7 @@ import org.teavm.ast.UnaryExpr;
import org.teavm.ast.UnwrapArrayExpr;
import org.teavm.ast.VariableExpr;
import org.teavm.ast.WhileStatement;
import org.teavm.model.MethodReference;
import org.teavm.wasm.model.WasmFunction;
import org.teavm.wasm.model.WasmLocal;
import org.teavm.wasm.model.expression.WasmBlock;
@ -83,10 +84,12 @@ import org.teavm.wasm.model.expression.WasmIntType;
import org.teavm.wasm.model.expression.WasmReturn;
import org.teavm.wasm.model.expression.WasmSetLocal;
import org.teavm.wasm.model.expression.WasmSwitch;
import org.teavm.wasm.runtime.WasmRuntime;
class WasmGenerationVisitor implements StatementVisitor, ExprVisitor {
private int firstVariable;
private WasmGenerationContext context;
private WasmFunction function;
private int firstVariable;
private IdentifiedStatement currentContinueTarget;
private IdentifiedStatement currentBreakTarget;
private Map<IdentifiedStatement, WasmBlock> breakTargets = new HashMap<>();
@ -94,7 +97,8 @@ class WasmGenerationVisitor implements StatementVisitor, ExprVisitor {
private Set<WasmBlock> usedBlocks = new HashSet<>();
WasmExpression result;
public WasmGenerationVisitor(WasmFunction function, int firstVariable) {
WasmGenerationVisitor(WasmGenerationContext context, WasmFunction function, int firstVariable) {
this.context = context;
this.function = function;
this.firstVariable = firstVariable;
}
@ -121,7 +125,9 @@ class WasmGenerationVisitor implements StatementVisitor, ExprVisitor {
generateBinary(WasmIntBinaryOperation.REM_SIGNED, expr);
break;
default:
WasmCall call = new WasmCall("rt$remainder." + typeAsString(expr.getType()), false);
Class<?> type = convertType(expr.getType());
MethodReference method = new MethodReference(WasmRuntime.class, "remainder", type, type, type);
WasmCall call = new WasmCall(WasmMangling.mangleMethod(method), false);
expr.getFirstOperand().acceptVisitor(this);
call.getArguments().add(result);
expr.getSecondOperand().acceptVisitor(this);
@ -169,7 +175,9 @@ class WasmGenerationVisitor implements StatementVisitor, ExprVisitor {
generateBinary(WasmIntBinaryOperation.SHR_UNSIGNED, expr);
break;
case COMPARE: {
WasmCall call = new WasmCall("rt$compare." + typeAsString(expr.getType()), false);
Class<?> type = convertType(expr.getType());
MethodReference method = new MethodReference(WasmRuntime.class, "compare", type, type, int.class);
WasmCall call = new WasmCall(WasmMangling.mangleMethod(method), false);
expr.getFirstOperand().acceptVisitor(this);
call.getArguments().add(result);
expr.getSecondOperand().acceptVisitor(this);
@ -231,16 +239,16 @@ class WasmGenerationVisitor implements StatementVisitor, ExprVisitor {
}
}
private String typeAsString(OperationType type) {
private Class<?> convertType(OperationType type) {
switch (type) {
case INT:
return "i32";
return int.class;
case LONG:
return "i64";
return long.class;
case FLOAT:
return "float";
return float.class;
case DOUBLE:
return "double";
return double.class;
}
throw new AssertionError(type.toString());
}
@ -491,7 +499,11 @@ class WasmGenerationVisitor implements StatementVisitor, ExprVisitor {
public void visit(InvocationExpr expr) {
if (expr.getType() == InvocationType.STATIC || expr.getType() == InvocationType.SPECIAL) {
String methodName = WasmMangling.mangleMethod(expr.getMethod());
WasmCall call = new WasmCall(methodName);
if (context.getImportedMethod(expr.getMethod()) != null) {
call.setImported(true);
}
for (Expr argument : expr.getArguments()) {
argument.acceptVisitor(this);
call.getArguments().add(result);

View File

@ -32,10 +32,12 @@ import org.teavm.wasm.model.WasmLocal;
public class WasmGenerator {
private Decompiler decompiler;
private ClassHolderSource classSource;
private WasmGenerationContext context;
public WasmGenerator(Decompiler decompiler, ClassHolderSource classSource) {
public WasmGenerator(Decompiler decompiler, ClassHolderSource classSource, WasmGenerationContext context) {
this.decompiler = decompiler;
this.classSource = classSource;
this.context = context;
}
public WasmFunction generate(MethodReference methodReference) {
@ -62,10 +64,25 @@ public class WasmGenerator {
function.setResult(WasmGeneratorUtil.mapType(methodReference.getReturnType()));
}
WasmGenerationVisitor visitor = new WasmGenerationVisitor(function, firstVariable);
WasmGenerationVisitor visitor = new WasmGenerationVisitor(context, function, firstVariable);
methodAst.getBody().acceptVisitor(visitor);
function.getBody().add(visitor.result);
return function;
}
public WasmFunction generateNative(MethodReference methodReference) {
WasmFunction function = new WasmFunction(WasmMangling.mangleMethod(methodReference));
for (int i = 0; i < methodReference.parameterCount(); ++i) {
function.getParameters().add(WasmGeneratorUtil.mapType(methodReference.parameterType(i)));
}
WasmGenerationContext.ImportedMethod importedMethod = context.getImportedMethod(methodReference);
if (importedMethod != null) {
function.setImportName(importedMethod.name);
function.setImportModule(importedMethod.module);
}
return function;
}
}

View File

@ -25,7 +25,8 @@ public final class WasmMangling {
}
public static String mangleMethod(MethodReference method) {
StringBuilder sb = new StringBuilder("method_" + mangleString(method.getClassName()) + "_");
String className = method.getClassName().length() + mangleString(method.getClassName());
StringBuilder sb = new StringBuilder("method$" + className + "_");
String name = mangleString(method.getName());
sb.append(mangleType(method.getReturnType()));
sb.append(name.length() + "_" + name);
@ -43,6 +44,15 @@ public final class WasmMangling {
case '$':
sb.append(c);
break;
case '.':
sb.append("_g");
break;
case '<':
sb.append("_h");
break;
case '>':
sb.append("_i");
break;
case '_':
sb.append("__");
break;
@ -88,7 +98,7 @@ public final class WasmMangling {
return "A" + mangleType(((ValueType.Array) type).getItemType());
} else if (type instanceof ValueType.Object) {
String className = ((ValueType.Object) type).getClassName();
return "L" + className.length() + "_" + className;
return className.length() + "_" + mangleString(className);
}
throw new IllegalArgumentException("Don't know how to mangle " + type);
}

View File

@ -24,7 +24,7 @@ import org.teavm.wasm.model.expression.WasmExpression;
public class WasmFunction {
WasmModule module;
private String name;
private boolean exported;
private String exportName;
private String importName;
private String importModule;
private List<WasmType> parameters = new ArrayList<>();
@ -46,12 +46,12 @@ public class WasmFunction {
return name;
}
public boolean isExported() {
return exported;
public String getExportName() {
return exportName;
}
public void setExported(boolean exported) {
this.exported = exported;
public void setExportName(String exportName) {
this.exportName = exportName;
}
public String getImportName() {

View File

@ -16,12 +16,14 @@
package org.teavm.wasm.model;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class WasmModule {
private Map<String, WasmFunction> functions = new LinkedHashMap<>();
private Map<String, WasmFunction> readonlyFunctions = Collections.unmodifiableMap(functions);
private List<WasmFunction> functionTable = new ArrayList<>();
public void add(WasmFunction function) {
@ -35,6 +37,10 @@ public class WasmModule {
function.module = this;
}
public Map<String, WasmFunction> getFunctions() {
return readonlyFunctions;
}
public List<WasmFunction> getFunctionTable() {
return functionTable;
}

View File

@ -18,35 +18,103 @@ package org.teavm.wasm.render;
import java.util.List;
import org.teavm.wasm.model.WasmFunction;
import org.teavm.wasm.model.WasmLocal;
import org.teavm.wasm.model.WasmModule;
import org.teavm.wasm.model.WasmType;
import org.teavm.wasm.model.expression.WasmExpression;
public class WasmRenderer {
private WasmRenderingVisitor visitor = new WasmRenderingVisitor();
public void render(WasmFunction function) {
visitor.open().append("func " + function.getName());
for (WasmType type : function.getParameters()) {
visitor.append(" ").open().append("param ").append(type).close();
}
if (function.getResult() != null) {
visitor.append(" ").open().append("result ").append(function.getResult()).close();
public WasmRenderer append(String text) {
visitor.append(text);
return this;
}
public WasmRenderer lf() {
visitor.lf();
return this;
}
public WasmRenderer indent() {
visitor.indent();
return this;
}
public WasmRenderer outdent() {
visitor.outdent();
return this;
}
public void render(WasmModule module) {
visitor.open().append("module");
for (WasmFunction function : module.getFunctions().values()) {
if (function.getImportName() == null) {
continue;
}
lf().renderImport(function);
}
for (WasmFunction function : module.getFunctions().values()) {
if (function.getImportName() != null) {
continue;
}
lf().render(function);
}
for (WasmFunction function : module.getFunctions().values()) {
if (function.getExportName() == null) {
continue;
}
lf().renderExport(function);
}
visitor.close().lf();
}
public void renderImport(WasmFunction function) {
String importModule = function.getImportModule();
if (importModule == null) {
importModule = "";
}
visitor.open().append("import $" + function.getName() + " \"" + importModule + "\" "
+ "\"" + function.getName() + "\"");
renderSignature(function);
visitor.close();
}
public void renderExport(WasmFunction function) {
visitor.open().append("export \"" + function.getExportName() + "\" $" + function.getName()).close();
}
public void render(WasmFunction function) {
visitor.open().append("func $" + function.getName());
renderSignature(function);
int firstLocalVariable = function.getParameters().size();
if (firstLocalVariable > function.getLocalVariables().size()) {
visitor.open().append("local");
if (firstLocalVariable < function.getLocalVariables().size()) {
visitor.lf().open().append("local");
List<WasmLocal> locals = function.getLocalVariables().subList(firstLocalVariable,
function.getLocalVariables().size());
for (WasmLocal local : locals) {
visitor.append(" " + local.getType());
visitor.append(" ").append(local.getType());
}
visitor.close();
}
for (WasmExpression part : function.getBody()) {
visitor.line(part);
}
visitor.close().lf().lf();
visitor.close().lf();
visitor.clear();
}
private void renderSignature(WasmFunction function) {
if (!function.getParameters().isEmpty()) {
visitor.append(" ").open().append("param");
for (WasmType type : function.getParameters()) {
visitor.append(" ").append(type);
}
visitor.close();
}
if (function.getResult() != null) {
visitor.append(" ").open().append("result ").append(function.getResult()).close();
}
}
@Override

View File

@ -63,13 +63,11 @@ class WasmRenderingVisitor implements WasmExpressionVisitor {
private Set<String> usedIdentifiers = new HashSet<>();
StringBuilder sb = new StringBuilder();
private Map<WasmBlock, String> blockIdentifiers = new HashMap<>();
private Map<WasmLocal, String> localIdentifiers = new HashMap<>();
private int indentLevel;
private boolean lfDeferred;
void clear() {
blockIdentifiers.clear();
localIdentifiers.clear();
usedIdentifiers.clear();
}
@ -134,7 +132,7 @@ class WasmRenderingVisitor implements WasmExpressionVisitor {
private void renderBlock(WasmBlock block, String name) {
String id = getIdentifier("@block");
blockIdentifiers.put(block, id);
open().append(name + " " + id);
open().append(name + " $" + id);
for (WasmExpression part : block.getBody()) {
line(part);
}
@ -144,7 +142,7 @@ class WasmRenderingVisitor implements WasmExpressionVisitor {
@Override
public void visit(WasmBranch expression) {
String id = blockIdentifiers.get(expression.getTarget());
open().append("br_if " + id);
open().append("br_if $" + id);
if (expression.getResult() != null) {
line(expression.getResult());
}
@ -155,7 +153,7 @@ class WasmRenderingVisitor implements WasmExpressionVisitor {
@Override
public void visit(WasmBreak expression) {
String id = blockIdentifiers.get(expression.getTarget());
open().append("br ").append(id);
open().append("br $").append(id);
if (expression.getResult() != null) {
line(expression.getResult());
}
@ -166,9 +164,9 @@ class WasmRenderingVisitor implements WasmExpressionVisitor {
public void visit(WasmSwitch expression) {
open().append("br_table ");
for (WasmBlock target : expression.getTargets()) {
append(blockIdentifiers.get(target)).append(" ");
append("$" + blockIdentifiers.get(target)).append(" ");
}
append(blockIdentifiers.get(expression.getDefaultTarget()));
append("$" + blockIdentifiers.get(expression.getDefaultTarget()));
line(expression.getSelector());
close();
}
@ -231,11 +229,8 @@ class WasmRenderingVisitor implements WasmExpressionVisitor {
open().append("set_local " + asString(expression.getLocal())).line(expression.getValue()).close();
}
private String asString(WasmLocal local) {
return localIdentifiers.computeIfAbsent(local, l -> {
String suggested = l.getName() != null ? l.getName() : "@local" + local.getIndex();
return getIdentifier(suggested);
});
String asString(WasmLocal local) {
return String.valueOf(local.getIndex());
}
@Override
@ -337,7 +332,7 @@ class WasmRenderingVisitor implements WasmExpressionVisitor {
@Override
public void visit(WasmCall expression) {
open().append(expression.isImported() ? "call_import" : "call").append(" " + expression.getFunctionName());
open().append(expression.isImported() ? "call_import" : "call").append(" $" + expression.getFunctionName());
for (WasmExpression argument : expression.getArguments()) {
line(argument);
}
@ -356,7 +351,7 @@ class WasmRenderingVisitor implements WasmExpressionVisitor {
@Override
public void visit(WasmDrop expression) {
open().append("drop").line(expression.getOperand()).close();
append(expression.getOperand());
}
@Override

View File

@ -15,6 +15,8 @@
*/
package org.teavm.wasm.runtime;
import org.teavm.interop.Import;
public final class WasmRuntime {
private WasmRuntime() {
}
@ -43,5 +45,6 @@ public final class WasmRuntime {
return a - (double) (long) (a / b) * b;
}
@Import(name = "print.i32")
public static native void print(int a);
}

View File

@ -4,7 +4,6 @@
<facet type="Osmorc" name="OSGi">
<configuration manifestGenerationMode="OsmorcControlled" manifestLocation="" jarfileLocation="teavm-core-1.0.0-SNAPSHOT.jar" outputPathType="CompilerOutputPath" bndFileLocation="" bundlorFileLocation="" bundleActivator="" bundleSymbolicName="teavm-core" bundleVersion="1.0.0.SNAPSHOT" ignoreFilePattern="" useProjectDefaultManifestFileLocation="true" alwaysRebuildBundleJAR="false" doNotSynchronizeWithMaven="false">
<additionalProperties>
<property key="Bundle-Description" value="TeaVM compiler and SPI" />
<property key="Export-Package" value="org.teavm.*" />
<property key="Bundle-Name" value="TeaVM core" />
<property key="Include-Resource" value="org/teavm/javascript/runtime.js=$MODULE_DIR$/src/main/resources/org/teavm/javascript/runtime.js" />
@ -27,7 +26,7 @@
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" scope="PROVIDED" name="Maven: junit:junit:4.11" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="module" module-name="teavm-metaprogramming-api" />
<orderEntry type="module" module-name="teavm-interop" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" name="Maven: com.carrotsearch:hppc:0.6.1" level="project" />

View File

@ -11,7 +11,7 @@
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="teavm-core" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-metaprogramming-api" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-interop" scope="PROVIDED" />
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.carrotsearch:hppc:0.6.1" level="project" />

View File

@ -3,6 +3,7 @@
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="false">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
@ -10,25 +11,21 @@
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/target/generated-test-sources/test-annotations" isTestSource="true" generated="true" />
<excludeFolder url="file://$MODULE_DIR$/target/apidocs" />
<excludeFolder url="file://$MODULE_DIR$/target/classes" />
<excludeFolder url="file://$MODULE_DIR$/target/javadoc-bundle-options" />
<excludeFolder url="file://$MODULE_DIR$/target/javascript-tck" />
<excludeFolder url="file://$MODULE_DIR$/target/javascript-test" />
<excludeFolder url="file://$MODULE_DIR$/target/maven-archiver" />
<excludeFolder url="file://$MODULE_DIR$/target/test-classes" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="teavm-core" />
<orderEntry type="module" module-name="teavm-metaprogramming-api" />
<orderEntry type="module" module-name="teavm-interop" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" name="Maven: com.carrotsearch:hppc:0.6.1" level="project" />
<orderEntry type="library" name="Maven: org.objenesis:objenesis:2.4" level="project" />
<orderEntry type="module" module-name="teavm-classlib" />
<orderEntry type="module" module-name="teavm-platform" />
<orderEntry type="module" module-name="teavm-jso" />
<orderEntry type="module" module-name="teavm-jso-apis" />
<orderEntry type="module" module-name="teavm-jso" />
<orderEntry type="module" module-name="teavm-jso-impl" />
<orderEntry type="library" name="Maven: org.mozilla:rhino:1.7.7" level="project" />
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.2.4" level="project" />
@ -39,10 +36,10 @@
<orderEntry type="library" name="Maven: org.netbeans.html:net.java.html.json.tck:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.netbeans.html:net.java.html.json:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.testng:testng:6.7" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.11" level="project" />
<orderEntry type="library" name="Maven: com.beust:jcommander:1.12" level="project" />
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.6" level="project" />
<orderEntry type="library" name="Maven: org.netbeans.html:ko4j:1.2.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.11" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
</component>
</module>

68
interop/core/pom.xml Normal file
View File

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright 2016 Alexey Andreev.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.teavm</groupId>
<artifactId>teavm</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../..</relativePath>
</parent>
<artifactId>teavm-interop</artifactId>
<name>TeaVM interop API</name>
<description>API that allows Java programs to interoperate with low-level languages like C in some low-level
environments like WebAssembly and LLVM</description>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<configuration>
<configLocation>../../checkstyle.xml</configLocation>
<propertyExpansion>config_loc=${basedir}/../..</propertyExpansion>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,29 @@
/*
* Copyright 2016 Alexey Andreev.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.teavm.interop;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.METHOD, ElementType.CONSTRUCTOR })
public @interface Import {
String name();
String module() default "";
}

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5" inherit-compiler-output="false">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@ -5,7 +5,6 @@
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />

View File

@ -12,7 +12,7 @@
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="teavm-core" />
<orderEntry type="module" module-name="teavm-metaprogramming-api" />
<orderEntry type="module" module-name="teavm-interop" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" name="Maven: com.carrotsearch:hppc:0.6.1" level="project" />

View File

@ -4,7 +4,6 @@
<facet type="Osmorc" name="OSGi">
<configuration manifestGenerationMode="OsmorcControlled" manifestLocation="" jarfileLocation="teavm-metaprogramming-api-1.0.0-SNAPSHOT.jar" outputPathType="CompilerOutputPath" bndFileLocation="" bundlorFileLocation="" bundleActivator="" bundleSymbolicName="teavm-metaprogramming-api" bundleVersion="1.0.0.SNAPSHOT" ignoreFilePattern="" useProjectDefaultManifestFileLocation="true" alwaysRebuildBundleJAR="false" doNotSynchronizeWithMaven="false">
<additionalProperties>
<property key="Bundle-Description" value="Declaration of interfaces and annotations for TeaVM metaprogramming" />
<property key="Export-Package" value="org.teavm.metaprogramming.*" />
<property key="Bundle-Name" value="TeaVM metaprogramming API" />
</additionalProperties>

View File

@ -4,7 +4,6 @@
<facet type="Osmorc" name="OSGi">
<configuration manifestGenerationMode="OsmorcControlled" manifestLocation="" jarfileLocation="teavm-metaprogramming-impl-1.0.0-SNAPSHOT.jar" outputPathType="CompilerOutputPath" bndFileLocation="" bundlorFileLocation="" bundleActivator="" bundleSymbolicName="teavm-metaprogramming-api" bundleVersion="1.0.0.SNAPSHOT" ignoreFilePattern="" useProjectDefaultManifestFileLocation="true" alwaysRebuildBundleJAR="false" doNotSynchronizeWithMaven="false">
<additionalProperties>
<property key="Bundle-Description" value="Implementation of metaprogramming API" />
<property key="Export-Package" value="org.teavm.metaprogramming.*" />
<property key="Bundle-Name" value="TeaVM metaprogramming API implementation" />
<property key="Include-Resource" value="META-INF/services/org.teavm.vm.spi.TeaVMPlugin=$MODULE_DIR$/src/main/resources/META-INF/services/org.teavm.vm.spi.TeaVMPlugin" />
@ -19,12 +18,12 @@
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="teavm-core" />
<orderEntry type="module" module-name="teavm-interop" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" name="Maven: com.carrotsearch:hppc:0.6.1" level="project" />

View File

@ -4,7 +4,6 @@
<facet type="Osmorc" name="OSGi">
<configuration manifestGenerationMode="OsmorcControlled" manifestLocation="" jarfileLocation="teavm-platform-1.0.0-SNAPSHOT.jar" outputPathType="CompilerOutputPath" bndFileLocation="" bundlorFileLocation="" bundleActivator="" bundleSymbolicName="teavm-platform" bundleVersion="1.0.0.SNAPSHOT" ignoreFilePattern="" useProjectDefaultManifestFileLocation="true" alwaysRebuildBundleJAR="false" doNotSynchronizeWithMaven="false">
<additionalProperties>
<property key="Bundle-Description" value="A low-level classes that help to implement Java class library" />
<property key="Export-Package" value="org.teavm.platform.*" />
<property key="Bundle-Name" value="TeaVM platform" />
<property key="Include-Resource" value="META-INF/services/org.teavm.vm.spi.TeaVMPlugin=$MODULE_DIR$/src/main/resources/META-INF/services/org.teavm.vm.spi.TeaVMPlugin" />
@ -24,7 +23,7 @@
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="teavm-core" />
<orderEntry type="module" module-name="teavm-metaprogramming-api" />
<orderEntry type="module" module-name="teavm-interop" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" name="Maven: com.carrotsearch:hppc:0.6.1" level="project" />

View File

@ -25,15 +25,15 @@
<orderEntry type="module" module-name="teavm-classlib" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-platform" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-core" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-jso-apis" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-interop" scope="PROVIDED" />
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.carrotsearch:hppc:0.6.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.objenesis:objenesis:2.4" level="project" />
<orderEntry type="module" module-name="teavm-jso" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-jso-apis" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-jso-impl" scope="PROVIDED" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.mozilla:rhino:1.7.7" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.gson:gson:2.2.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.jcraft:jzlib:1.1.3" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: joda-time:joda-time:2.7" level="project" />

View File

@ -14,8 +14,6 @@
</facet>
<facet type="gwt" name="GWT">
<configuration>
<setting name="compilerMaxHeapSize" value="1024" />
<setting name="gwtScriptOutputStyle" value="DETAILED" />
<setting name="gwtSdkUrl" value="file://$MAVEN_REPOSITORY$/com/google/gwt/gwt-dev/2.7.0/" />
<setting name="gwtSdkType" value="maven" />
<setting name="webFacet" value="Web" />
@ -35,18 +33,18 @@
<orderEntry type="module" module-name="teavm-classlib" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-platform" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-core" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-jso-apis" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-interop" scope="PROVIDED" />
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.carrotsearch:hppc:0.6.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.objenesis:objenesis:2.4" level="project" />
<orderEntry type="module" module-name="teavm-jso" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-jso-impl" scope="PROVIDED" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.mozilla:rhino:1.7.7" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.gson:gson:2.2.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.jcraft:jzlib:1.1.3" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: joda-time:joda-time:2.7" level="project" />
<orderEntry type="module" module-name="teavm-jso-apis" scope="PROVIDED" />
<orderEntry type="library" name="Maven: org.jbox2d:jbox2d-library:2.2.1.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.jbox2d:jbox2d-library:sources:2.2.1.1" level="project" />
<orderEntry type="library" name="Maven: org.apidesign.bck2brwsr:emul:rt:0.17" level="project" />
@ -55,12 +53,12 @@
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.validation:validation-api:sources:1.0.0.GA" level="project" />
<orderEntry type="library" name="Maven: com.dukescript.canvas:html5-canvas:0.7.2" level="project" />
<orderEntry type="library" name="Maven: com.dukescript.canvas:canvas-api:0.7.2" level="project" />
<orderEntry type="library" name="Maven: org.netbeans.html:net.java.html.boot:1.2.3" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apidesign.bck2brwsr:ko-bck2brwsr:bck2brwsr:0.17" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.netbeans.html:net.java.html.json:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.netbeans.html:net.java.html:1.2.3" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.netbeans.html:ko4j:1.2.3" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.netbeans.html:net.java.html.geo:1.2.3" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.netbeans.html:net.java.html.sound:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.netbeans.html:net.java.html.boot:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.netbeans.html:net.java.html:1.2.3" level="project" />
</component>
</module>

View File

@ -18,6 +18,7 @@
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
@ -25,23 +26,18 @@
<orderEntry type="module" module-name="teavm-classlib" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-platform" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-core" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-metaprogramming-api" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-jso-apis" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-interop" scope="PROVIDED" />
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.carrotsearch:hppc:0.6.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.objenesis:objenesis:2.4" level="project" />
<orderEntry type="module" module-name="teavm-jso-apis" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-jso" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-jso-impl" scope="PROVIDED" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.mozilla:rhino:1.7.7" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.gson:gson:2.2.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.jcraft:jzlib:1.1.3" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: joda-time:joda-time:2.7" level="project" />
<orderEntry type="module" module-name="teavm-jso" scope="PROVIDED" />
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
</component>
<component name="teavm">
<option name="enabled" value="true" />
<option name="mainClass" value="org.teavm.samples.hello.Client" />
<option name="targetDirectory" value="$MODULE_DIR$/target/generated/js/teavm" />
</component>
</module>

View File

@ -29,17 +29,17 @@
<orderEntry type="module" module-name="teavm-classlib" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-platform" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-core" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-jso-apis" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-interop" scope="PROVIDED" />
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.carrotsearch:hppc:0.6.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.objenesis:objenesis:2.4" level="project" />
<orderEntry type="module" module-name="teavm-jso" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-jso-impl" scope="PROVIDED" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.mozilla:rhino:1.7.7" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.gson:gson:2.2.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.jcraft:jzlib:1.1.3" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: joda-time:joda-time:2.7" level="project" />
<orderEntry type="module" module-name="teavm-jso-apis" scope="PROVIDED" />
</component>
</module>

View File

@ -25,18 +25,18 @@
<orderEntry type="module" module-name="teavm-classlib" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-platform" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-core" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-jso-apis" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-interop" scope="PROVIDED" />
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.carrotsearch:hppc:0.6.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.objenesis:objenesis:2.4" level="project" />
<orderEntry type="module" module-name="teavm-jso-apis" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-jso" />
<orderEntry type="module" module-name="teavm-jso-impl" scope="PROVIDED" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.mozilla:rhino:1.7.7" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.gson:gson:2.2.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.jcraft:jzlib:1.1.3" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: joda-time:joda-time:2.7" level="project" />
<orderEntry type="module" module-name="teavm-jso" />
<orderEntry type="library" name="Maven: org.scala-lang:scala-library:2.11.7" level="project" />
</component>
</module>

View File

@ -25,18 +25,18 @@
<orderEntry type="module" module-name="teavm-classlib" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-platform" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-core" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-jso-apis" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-interop" scope="PROVIDED" />
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.carrotsearch:hppc:0.6.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.objenesis:objenesis:2.4" level="project" />
<orderEntry type="module" module-name="teavm-jso" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-jso-impl" scope="PROVIDED" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.mozilla:rhino:1.7.7" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.gson:gson:2.2.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.jcraft:jzlib:1.1.3" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: joda-time:joda-time:2.7" level="project" />
<orderEntry type="module" module-name="teavm-jso-apis" scope="PROVIDED" />
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
</component>
</module>

View File

@ -25,18 +25,18 @@
<orderEntry type="module" module-name="teavm-classlib" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-platform" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-core" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-jso-apis" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-interop" scope="PROVIDED" />
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.carrotsearch:hppc:0.6.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.objenesis:objenesis:2.4" level="project" />
<orderEntry type="module" module-name="teavm-jso" scope="PROVIDED" />
<orderEntry type="module" module-name="teavm-jso-impl" scope="PROVIDED" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.mozilla:rhino:1.7.7" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.gson:gson:2.2.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.jcraft:jzlib:1.1.3" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: joda-time:joda-time:2.7" level="project" />
<orderEntry type="module" module-name="teavm-jso-apis" scope="PROVIDED" />
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
</component>
</module>

View File

@ -1,20 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="CheckStyle-IDEA-Module">
<option name="configuration">
<map>
<entry key="exclude-from-scan" value="true" />
</map>
</option>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5" inherit-compiler-output="false">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/classlib" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@ -11,62 +11,63 @@
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="teavm-core" />
<orderEntry type="module" module-name="teavm-metaprogramming-api" />
<orderEntry type="module" module-name="teavm-interop" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" name="Maven: com.carrotsearch:hppc:0.6.1" level="project" />
<orderEntry type="library" name="Maven: org.objenesis:objenesis:2.4" level="project" />
<orderEntry type="module" module-name="teavm-classlib" />
<orderEntry type="module" module-name="teavm-platform" />
<orderEntry type="module" module-name="teavm-jso" />
<orderEntry type="module" module-name="teavm-jso-apis" />
<orderEntry type="module" module-name="teavm-jso-impl" />
<orderEntry type="library" name="Maven: org.mozilla:rhino:1.7.7" level="project" />
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.2.4" level="project" />
<orderEntry type="library" name="Maven: com.jcraft:jzlib:1.1.3" level="project" />
<orderEntry type="library" name="Maven: joda-time:joda-time:2.7" level="project" />
<orderEntry type="module" module-name="teavm-platform" />
<orderEntry type="module" module-name="teavm-jso-apis" />
<orderEntry type="module" module-name="teavm-jso-apis" production-on-test="" />
<orderEntry type="module" module-name="teavm-metaprogramming-impl" />
<orderEntry type="module" module-name="teavm-metaprogramming-api" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.11" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="module" module-name="teavm-tooling" scope="TEST" />
<orderEntry type="module" module-name="teavm-junit" scope="TEST" />
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-java:2.47.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-chrome-driver:2.47.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-htmlunit-driver:2.47.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-firefox-driver:2.47.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-ie-driver:2.47.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-safari-driver:2.47.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-support:2.47.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.webbitserver:webbit:0.4.14" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: io.netty:netty:3.5.2.Final" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-leg-rc:2.47.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-remote-driver:2.47.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: cglib:cglib-nodep:2.1_3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-api:2.47.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-htmlunit-driver:2.47.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.sourceforge.htmlunit:htmlunit:2.19" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apache.httpcomponents:httpclient:4.4.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apache.httpcomponents:httpcore:4.4.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.google.guava:guava:18.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-firefox-driver:2.47.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apache.commons:commons-exec:1.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-ie-driver:2.47.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.java.dev.jna:jna:4.1.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.java.dev.jna:jna-platform:4.1.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-safari-driver:2.47.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.webbitserver:webbit:0.4.14" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-support:2.47.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: io.netty:netty:3.5.2.Final" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-leg-rc:2.47.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: cglib:cglib-nodep:2.1_3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-api:2.47.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.google.guava:guava:18.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apache.httpcomponents:httpcore:4.4.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: commons-logging:commons-logging:1.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: commons-codec:commons-codec:1.10" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.6.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.6.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.fasterxml.jackson.core:jackson-core:2.6.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.sourceforge.htmlunit:htmlunit:2.19" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: xalan:xalan:2.7.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: xalan:serializer:2.7.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apache.commons:commons-lang3:3.4" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apache.httpcomponents:httpmime:4.5.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: commons-codec:commons-codec:1.10" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.sourceforge.htmlunit:htmlunit-core-js:2.17" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: xerces:xercesImpl:2.11.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.sourceforge.nekohtml:nekohtml:1.9.22" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.sourceforge.cssparser:cssparser:0.9.18" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.w3c.css:sac:1.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: commons-logging:commons-logging:1.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.eclipse.jetty.websocket:websocket-client:9.2.13.v20150730" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.eclipse.jetty:jetty-util:9.2.13.v20150730" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.eclipse.jetty:jetty-io:9.2.13.v20150730" level="project" />

View File

@ -4,7 +4,6 @@
<facet type="Osmorc" name="OSGi">
<configuration manifestGenerationMode="OsmorcControlled" manifestLocation="" jarfileLocation="teavm-chrome-rdp-1.0.0-SNAPSHOT.jar" outputPathType="CompilerOutputPath" bndFileLocation="" bundlorFileLocation="" bundleActivator="" bundleSymbolicName="teavm-chrome-rdp" bundleVersion="1.0.0.SNAPSHOT" ignoreFilePattern="" useProjectDefaultManifestFileLocation="true" alwaysRebuildBundleJAR="false" doNotSynchronizeWithMaven="false">
<additionalProperties>
<property key="Bundle-Description" value="TeaVM debugging backend for Google Chrome RDP" />
<property key="Export-Package" value="org.teavm.chromerdp" />
<property key="Bundle-Name" value="TeaVM debugging backend for Google Chrome RDP" />
</additionalProperties>
@ -29,29 +28,29 @@
<orderEntry type="library" name="Maven: org.eclipse.jetty.websocket:javax-websocket-server-impl:9.2.1.v20140609" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-annotations:9.2.1.v20140609" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-plus:9.2.1.v20140609" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-jndi:9.2.1.v20140609" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-webapp:9.2.1.v20140609" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-jndi:9.2.1.v20140609" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-xml:9.2.1.v20140609" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlet:9.2.1.v20140609" level="project" />
<orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.2" level="project" />
<orderEntry type="library" name="Maven: org.ow2.asm:asm:5.0.1" level="project" />
<orderEntry type="library" name="Maven: org.ow2.asm:asm-commons:5.0.1" level="project" />
<orderEntry type="library" name="Maven: org.ow2.asm:asm-tree:5.0.1" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty.websocket:javax-websocket-client-impl:9.2.1.v20140609" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty.websocket:websocket-client:9.2.1.v20140609" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty.websocket:websocket-server:9.2.1.v20140609" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty.websocket:websocket-common:9.2.1.v20140609" level="project" />
<orderEntry type="library" name="Maven: javax.websocket:javax.websocket-api:1.0" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty.websocket:websocket-server:9.2.1.v20140609" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty.websocket:websocket-api:9.2.1.v20140609" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty.websocket:websocket-servlet:9.2.1.v20140609" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlet:9.2.1.v20140609" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-security:9.2.1.v20140609" level="project" />
<orderEntry type="module" module-name="teavm-core" />
<orderEntry type="module" module-name="teavm-metaprogramming-api" />
<orderEntry type="module" module-name="teavm-interop" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" name="Maven: com.carrotsearch:hppc:0.6.1" level="project" />
<orderEntry type="library" name="Maven: org.objenesis:objenesis:2.4" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.7" level="project" />
<orderEntry type="library" name="Maven: javax.websocket:javax.websocket-api:1.0" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-core-asl:1.9.13" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-mapper-asl:1.9.13" level="project" />
</component>

View File

@ -11,7 +11,7 @@
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="teavm-tooling" />
<orderEntry type="module" module-name="teavm-core" />
<orderEntry type="module" module-name="teavm-metaprogramming-api" />
<orderEntry type="module" module-name="teavm-interop" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" name="Maven: com.carrotsearch:hppc:0.6.1" level="project" />

View File

@ -21,10 +21,6 @@ import java.util.Properties;
import org.teavm.model.ClassHolderTransformer;
import org.teavm.tooling.sources.SourceFileProvider;
/**
*
* @author Alexey Andreev
*/
public interface BaseTeaVMTool {
void setTargetDirectory(File targetDirectory);

View File

@ -15,10 +15,6 @@
*/
package org.teavm.tooling;
/**
*
* @author Alexey Andreev
*/
public class ClassAlias {
private String className;
private String alias;

View File

@ -15,10 +15,6 @@
*/
package org.teavm.tooling;
/**
*
* @author Alexey Andreev
*/
public class EmptyTeaVMToolLog implements TeaVMToolLog {
@Override
public void info(String text) {

View File

@ -29,10 +29,6 @@ import org.teavm.model.instructions.InvocationType;
import org.teavm.model.instructions.NumericOperandType;
import org.teavm.model.instructions.SwitchTableEntryReader;
/**
*
* @author Alexey Andreev
*/
class InstructionLocationReader implements InstructionReader {
private Set<String> resources;

View File

@ -15,10 +15,6 @@
*/
package org.teavm.tooling;
/**
*
* @author Alexey Andreev
*/
public class MethodAlias {
private String alias;
private String className;

View File

@ -15,10 +15,6 @@
*/
package org.teavm.tooling;
/**
*
* @author Alexey Andreev
*/
public enum RuntimeCopyOperation {
SEPARATE,
MERGED,

View File

@ -26,10 +26,6 @@ import org.teavm.model.InstructionLocation;
import org.teavm.model.MethodReference;
import org.teavm.vm.TeaVM;
/**
*
* @author Alexey Andreev
*/
public final class TeaVMProblemRenderer {
private TeaVMProblemRenderer() {
}

View File

@ -15,10 +15,6 @@
*/
package org.teavm.tooling;
/**
*
* @author Alexey Andreev
*/
public class TeaVMToolException extends Exception {
private static final long serialVersionUID = 579149191624783241L;

View File

@ -15,10 +15,6 @@
*/
package org.teavm.tooling;
/**
*
* @author Alexey Andreev
*/
public interface TeaVMToolLog {
void info(String text);

View File

@ -4,10 +4,9 @@
<facet type="Osmorc" name="OSGi">
<configuration manifestGenerationMode="OsmorcControlled" manifestLocation="" jarfileLocation="teavm-tooling-1.0.0-SNAPSHOT.jar" outputPathType="CompilerOutputPath" bndFileLocation="" bundlorFileLocation="" bundleActivator="" bundleSymbolicName="teavm-tooling" bundleVersion="1.0.0.SNAPSHOT" ignoreFilePattern="" useProjectDefaultManifestFileLocation="true" alwaysRebuildBundleJAR="false" doNotSynchronizeWithMaven="false">
<additionalProperties>
<property key="Bundle-Description" value="TeaVM API that helps to create tooling" />
<property key="Export-Package" value="org.teavm.*" />
<property key="Bundle-Name" value="TeaVM tooling core" />
<property key="Include-Resource" value="org/teavm/tooling/test/junit.html=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/junit.html,org/teavm/tooling/test/junit-client.html=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/junit-client.html,org/teavm/tooling/test/res/tick-small-red.png=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/res/tick-small-red.png,org/teavm/tooling/test/res/class_obj.png=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/res/class_obj.png,org/teavm/tooling/test/res/junit.css=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/res/junit.css,org/teavm/tooling/test/res/junit-client.js=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/res/junit-client.js,org/teavm/tooling/test/res/methpub_obj.png=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/res/methpub_obj.png,org/teavm/tooling/test/res/tick-small.png=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/res/tick-small.png,org/teavm/tooling/test/res/control-000-small.png=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/res/control-000-small.png,org/teavm/tooling/test/res/junit-support.js=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/res/junit-support.js,org/teavm/tooling/test/res/package_obj.png=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/res/package_obj.png,org/teavm/tooling/test/res/toggle-small.png=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/res/toggle-small.png,org/teavm/tooling/test/res/toggle-small-expand.png=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/res/toggle-small-expand.png,org/teavm/tooling/main.html=$MODULE_DIR$/src/main/resources/org/teavm/tooling/main.html" />
<property key="Include-Resource" value="org/teavm/tooling/test/junit.html=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/junit.html,org/teavm/tooling/test/res/junit.css=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/res/junit.css,org/teavm/tooling/test/res/tick-small.png=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/res/tick-small.png,org/teavm/tooling/test/res/tick-small-red.png=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/res/tick-small-red.png,org/teavm/tooling/test/res/toggle-small-expand.png=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/res/toggle-small-expand.png,org/teavm/tooling/test/res/control-000-small.png=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/res/control-000-small.png,org/teavm/tooling/test/res/junit-support.js=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/res/junit-support.js,org/teavm/tooling/test/res/class_obj.png=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/res/class_obj.png,org/teavm/tooling/test/res/package_obj.png=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/res/package_obj.png,org/teavm/tooling/test/res/methpub_obj.png=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/res/methpub_obj.png,org/teavm/tooling/test/res/junit-client.js=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/res/junit-client.js,org/teavm/tooling/test/res/toggle-small.png=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/res/toggle-small.png,org/teavm/tooling/test/junit-client.html=$MODULE_DIR$/src/main/resources/org/teavm/tooling/test/junit-client.html,org/teavm/tooling/main.html=$MODULE_DIR$/src/main/resources/org/teavm/tooling/main.html" />
</additionalProperties>
<additionalJARContents />
</configuration>
@ -24,7 +23,7 @@
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="teavm-core" />
<orderEntry type="module" module-name="teavm-metaprogramming-api" />
<orderEntry type="module" module-name="teavm-interop" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" name="Maven: com.carrotsearch:hppc:0.6.1" level="project" />

View File

@ -6,7 +6,6 @@
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
@ -15,48 +14,48 @@
<orderEntry type="library" scope="PROVIDED" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="module" module-name="teavm-tooling" />
<orderEntry type="module" module-name="teavm-core" />
<orderEntry type="module" module-name="teavm-metaprogramming-api" />
<orderEntry type="module" module-name="teavm-interop" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" name="Maven: com.carrotsearch:hppc:0.6.1" level="project" />
<orderEntry type="library" name="Maven: org.objenesis:objenesis:2.4" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-java:2.47.2" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-chrome-driver:2.47.2" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-remote-driver:2.47.2" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-htmlunit-driver:2.47.2" level="project" />
<orderEntry type="library" name="Maven: net.sourceforge.htmlunit:htmlunit:2.19" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.4.1" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-firefox-driver:2.47.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-exec:1.3" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-ie-driver:2.47.2" level="project" />
<orderEntry type="library" name="Maven: net.java.dev.jna:jna:4.1.0" level="project" />
<orderEntry type="library" name="Maven: net.java.dev.jna:jna-platform:4.1.0" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-safari-driver:2.47.2" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-support:2.47.2" level="project" />
<orderEntry type="library" name="Maven: org.webbitserver:webbit:0.4.14" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-support:2.47.2" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty:3.5.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-leg-rc:2.47.2" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-remote-driver:2.47.2" level="project" />
<orderEntry type="library" name="Maven: cglib:cglib-nodep:2.1_3" level="project" />
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.3.1" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-api:2.47.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.1" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:18.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-exec:1.3" level="project" />
<orderEntry type="library" name="Maven: net.java.dev.jna:jna:4.1.0" level="project" />
<orderEntry type="library" name="Maven: net.java.dev.jna:jna-platform:4.1.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.1" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.6.2" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.6.2" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.6.2" level="project" />
<orderEntry type="library" name="Maven: net.sourceforge.htmlunit:htmlunit:2.19" level="project" />
<orderEntry type="library" name="Maven: xalan:xalan:2.7.2" level="project" />
<orderEntry type="library" name="Maven: xalan:serializer:2.7.2" level="project" />
<orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.1" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
<orderEntry type="library" name="Maven: net.sourceforge.htmlunit:htmlunit-core-js:2.17" level="project" />
<orderEntry type="library" name="Maven: xerces:xercesImpl:2.11.0" level="project" />
<orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
<orderEntry type="library" name="Maven: net.sourceforge.nekohtml:nekohtml:1.9.22" level="project" />
<orderEntry type="library" name="Maven: net.sourceforge.cssparser:cssparser:0.9.18" level="project" />
<orderEntry type="library" name="Maven: org.w3c.css:sac:1.3" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty.websocket:websocket-client:9.2.13.v20150730" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-util:9.2.13.v20150730" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-io:9.2.13.v20150730" level="project" />

View File

@ -5,7 +5,6 @@
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<excludeFolder url="file://$MODULE_DIR$/target" />
@ -14,76 +13,76 @@
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.apache.maven:maven-plugin-api:3.3.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.maven:maven-model:3.3.3" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.plexus:plexus-utils:3.0.20" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-artifact:3.3.3" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.sisu:org.eclipse.sisu.plexus:0.3.0" level="project" />
<orderEntry type="library" name="Maven: javax.enterprise:cdi-api:1.0" level="project" />
<orderEntry type="library" name="Maven: javax.annotation:jsr250-api:1.0" level="project" />
<orderEntry type="library" name="Maven: javax.inject:javax.inject:1" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.sisu:org.eclipse.sisu.inject:0.3.0" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.plexus:plexus-component-annotations:1.5.5" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.plexus:plexus-classworlds:2.5.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.plugin-tools:maven-plugin-annotations:3.3" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-core:3.3.3" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-settings:3.3.3" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-settings-builder:3.3.3" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-builder-support:3.3.3" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.codehaus.plexus:plexus-interpolation:1.21" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.sonatype.plexus:plexus-sec-dispatcher:1.3" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-repository-metadata:3.3.3" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-model-builder:3.3.3" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:18.0" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-aether-provider:3.3.3" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.aether:aether-spi:1.0.2.v20150114" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.aether:aether-impl:1.0.2.v20150114" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.aether:aether-api:1.0.2.v20150114" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.aether:aether-spi:1.0.2.v20150114" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.aether:aether-util:1.0.2.v20150114" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.aether:aether-impl:1.0.2.v20150114" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.sonatype.sisu:sisu-guice:no_aop:3.2.5" level="project" />
<orderEntry type="library" name="Maven: javax.inject:javax.inject:1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: aopalliance:aopalliance:1.0" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.codehaus.plexus:plexus-interpolation:1.21" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.plexus:plexus-utils:3.0.20" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.plexus:plexus-classworlds:2.5.2" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.plexus:plexus-component-annotations:1.5.5" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.sonatype.plexus:plexus-sec-dispatcher:1.3" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.sonatype.plexus:plexus-cipher:1.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-artifact:3.3.3" level="project" />
<orderEntry type="module" module-name="teavm-tooling" />
<orderEntry type="module" module-name="teavm-core" />
<orderEntry type="module" module-name="teavm-metaprogramming-api" />
<orderEntry type="module" module-name="teavm-interop" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" name="Maven: org.ow2.asm:asm-debug-all:5.0.4" level="project" />
<orderEntry type="library" name="Maven: com.carrotsearch:hppc:0.6.1" level="project" />
<orderEntry type="library" name="Maven: org.objenesis:objenesis:2.4" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-java:2.47.2" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-chrome-driver:2.47.2" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-remote-driver:2.47.2" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-htmlunit-driver:2.47.2" level="project" />
<orderEntry type="library" name="Maven: net.sourceforge.htmlunit:htmlunit:2.18" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.4.1" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-firefox-driver:2.47.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-exec:1.3" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-ie-driver:2.47.2" level="project" />
<orderEntry type="library" name="Maven: net.java.dev.jna:jna:4.1.0" level="project" />
<orderEntry type="library" name="Maven: net.java.dev.jna:jna-platform:4.1.0" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-safari-driver:2.47.2" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-support:2.47.2" level="project" />
<orderEntry type="library" name="Maven: org.webbitserver:webbit:0.4.14" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-support:2.47.2" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty:3.5.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-leg-rc:2.47.2" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-remote-driver:2.47.2" level="project" />
<orderEntry type="library" name="Maven: cglib:cglib-nodep:2.1_3" level="project" />
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.3.1" level="project" />
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-api:2.47.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.1" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:18.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-exec:1.3" level="project" />
<orderEntry type="library" name="Maven: net.java.dev.jna:jna:4.1.0" level="project" />
<orderEntry type="library" name="Maven: net.java.dev.jna:jna-platform:4.1.0" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.6.2" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.6.2" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.6.2" level="project" />
<orderEntry type="library" name="Maven: net.sourceforge.htmlunit:htmlunit:2.18" level="project" />
<orderEntry type="library" name="Maven: xalan:xalan:2.7.2" level="project" />
<orderEntry type="library" name="Maven: xalan:serializer:2.7.2" level="project" />
<orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
<orderEntry type="library" name="Maven: net.sourceforge.htmlunit:htmlunit-core-js:2.17" level="project" />
<orderEntry type="library" name="Maven: xerces:xercesImpl:2.11.0" level="project" />
<orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
<orderEntry type="library" name="Maven: net.sourceforge.nekohtml:nekohtml:1.9.22" level="project" />
<orderEntry type="library" name="Maven: net.sourceforge.cssparser:cssparser:0.9.16" level="project" />
<orderEntry type="library" name="Maven: org.w3c.css:sac:1.3" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty.websocket:websocket-client:9.2.12.v20150709" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-util:9.2.12.v20150709" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-io:9.2.12.v20150709" level="project" />

View File

@ -1,17 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="web" name="Web">
<configuration>
<descriptors>
<deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml" />
</descriptors>
<webroots>
<root url="file://$MODULE_DIR$/src/main/resources/archetype-resources/src/main/webapp" relative="/" />
</webroots>
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5" inherit-compiler-output="false">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />