From f47644d890366b08206b17b941171b32e95acb80 Mon Sep 17 00:00:00 2001 From: Alexey Andreev Date: Thu, 5 Sep 2019 14:16:11 +0300 Subject: [PATCH] Move tool that generates JCL comparison into a separate project. Make this tool compatible with JRE9+ --- pom.xml | 7 + tools/classlib-comparison-gen/pom.xml | 101 +++++++++++++ .../tools/classlibcomparison}/JCLClass.java | 17 +-- .../classlibcomparison}/JCLClassType.java | 4 +- .../JCLComparisonBuilder.java | 135 +++++++++++------- .../JCLComparisonVisitor.java | 31 +--- .../tools/classlibcomparison}/JCLItem.java | 4 +- .../classlibcomparison}/JCLItemType.java | 4 +- .../tools/classlibcomparison}/JCLPackage.java | 4 +- .../tools/classlibcomparison}/JCLStatus.java | 4 +- .../classlibcomparison}/JCLVisibility.java | 4 +- .../main/resources/html/annotation_obj.png | Bin .../src/main/resources/html/class_obj.png | Bin .../src/main/resources/html/enum_obj.png | Bin .../resources/html/field_protected_obj.png | Bin .../main/resources/html/field_public_obj.png | Bin .../src/main/resources/html/int_obj.png | Bin .../src/main/resources/html/jcl-class.html | 0 .../src/main/resources/html/jcl.css | 0 .../src/main/resources/html/jcl.html | 0 .../src/main/resources/html/methpro_obj.png | Bin .../src/main/resources/html/methpub_obj.png | Bin .../src/main/resources/html/package_obj.png | Bin 23 files changed, 221 insertions(+), 94 deletions(-) create mode 100644 tools/classlib-comparison-gen/pom.xml rename {classlib/src/main/java/org/teavm/classlib/impl/report => tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison}/JCLClass.java (68%) rename {classlib/src/main/java/org/teavm/classlib/impl/report => tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison}/JCLClassType.java (89%) rename {classlib/src/main/java/org/teavm/classlib/impl/report => tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison}/JCLComparisonBuilder.java (79%) rename {classlib/src/main/java/org/teavm/classlib/impl/report => tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison}/JCLComparisonVisitor.java (88%) rename {classlib/src/main/java/org/teavm/classlib/impl/report => tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison}/JCLItem.java (91%) rename {classlib/src/main/java/org/teavm/classlib/impl/report => tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison}/JCLItemType.java (88%) rename {classlib/src/main/java/org/teavm/classlib/impl/report => tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison}/JCLPackage.java (91%) rename {classlib/src/main/java/org/teavm/classlib/impl/report => tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison}/JCLStatus.java (89%) rename {classlib/src/main/java/org/teavm/classlib/impl/report => tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison}/JCLVisibility.java (89%) rename {classlib => tools/classlib-comparison-gen}/src/main/resources/html/annotation_obj.png (100%) rename {classlib => tools/classlib-comparison-gen}/src/main/resources/html/class_obj.png (100%) rename {classlib => tools/classlib-comparison-gen}/src/main/resources/html/enum_obj.png (100%) rename {classlib => tools/classlib-comparison-gen}/src/main/resources/html/field_protected_obj.png (100%) rename {classlib => tools/classlib-comparison-gen}/src/main/resources/html/field_public_obj.png (100%) rename {classlib => tools/classlib-comparison-gen}/src/main/resources/html/int_obj.png (100%) rename {classlib => tools/classlib-comparison-gen}/src/main/resources/html/jcl-class.html (100%) rename {classlib => tools/classlib-comparison-gen}/src/main/resources/html/jcl.css (100%) rename {classlib => tools/classlib-comparison-gen}/src/main/resources/html/jcl.html (100%) rename {classlib => tools/classlib-comparison-gen}/src/main/resources/html/methpro_obj.png (100%) rename {classlib => tools/classlib-comparison-gen}/src/main/resources/html/methpub_obj.png (100%) rename {classlib => tools/classlib-comparison-gen}/src/main/resources/html/package_obj.png (100%) diff --git a/pom.xml b/pom.xml index 6c000fdbc..605714796 100644 --- a/pom.xml +++ b/pom.xml @@ -360,6 +360,13 @@ + + with-classlib-comparison + + tools/classlib-comparison-gen + + + sign-artifacts diff --git a/tools/classlib-comparison-gen/pom.xml b/tools/classlib-comparison-gen/pom.xml new file mode 100644 index 000000000..6ecf65bcd --- /dev/null +++ b/tools/classlib-comparison-gen/pom.xml @@ -0,0 +1,101 @@ + + + 4.0.0 + + + org.teavm + teavm + 0.6.0-SNAPSHOT + ../.. + + teavm-classlib-comparison-gen + + Tool that generates HTML report about supported classes in TeaVM + Tool that generates HTML report about supported classes in TeaVM + + + + org.teavm + teavm-classlib + ${project.version} + runtime + + + + org.ow2.asm + asm-commons + true + + + org.ow2.asm + asm-util + true + + + commons-io + commons-io + true + + + com.carrotsearch + hppc + 0.7.3 + true + + + org.teavm + teavm-core + ${project.version} + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.0 + + 9 + 9 + + + + + + + + org.apache.maven.plugins + maven-checkstyle-plugin + + ../../checkstyle.xml + config_loc=${basedir}/../.. + + + + org.apache.maven.plugins + maven-source-plugin + + + org.apache.maven.plugins + maven-javadoc-plugin + + + + \ No newline at end of file diff --git a/classlib/src/main/java/org/teavm/classlib/impl/report/JCLClass.java b/tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLClass.java similarity index 68% rename from classlib/src/main/java/org/teavm/classlib/impl/report/JCLClass.java rename to tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLClass.java index 8897c6b68..b87d8169a 100644 --- a/classlib/src/main/java/org/teavm/classlib/impl/report/JCLClass.java +++ b/tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLClass.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 Alexey Andreev. + * Copyright 2019 konsoletyper. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,19 +13,20 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.teavm.classlib.impl.report; +package org.teavm.tools.classlibcomparison; import java.util.ArrayList; import java.util.List; class JCLClass { - public final String name; - public JCLStatus status; - public JCLVisibility visibility = JCLVisibility.PUBLIC; - public JCLClassType type; - public final List items = new ArrayList<>(); + final String name; + JCLStatus status; + JCLVisibility visibility = JCLVisibility.PUBLIC; + JCLClassType type; + String outer; + final List items = new ArrayList<>(); - public JCLClass(String name) { + JCLClass(String name) { this.name = name; } } diff --git a/classlib/src/main/java/org/teavm/classlib/impl/report/JCLClassType.java b/tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLClassType.java similarity index 89% rename from classlib/src/main/java/org/teavm/classlib/impl/report/JCLClassType.java rename to tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLClassType.java index c1025bedf..21d77f4c1 100644 --- a/classlib/src/main/java/org/teavm/classlib/impl/report/JCLClassType.java +++ b/tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLClassType.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 Alexey Andreev. + * Copyright 2019 konsoletyper. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.teavm.classlib.impl.report; +package org.teavm.tools.classlibcomparison; enum JCLClassType { CLASS, diff --git a/classlib/src/main/java/org/teavm/classlib/impl/report/JCLComparisonBuilder.java b/tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLComparisonBuilder.java similarity index 79% rename from classlib/src/main/java/org/teavm/classlib/impl/report/JCLComparisonBuilder.java rename to tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLComparisonBuilder.java index f22ebbf26..8caa68b8a 100644 --- a/classlib/src/main/java/org/teavm/classlib/impl/report/JCLComparisonBuilder.java +++ b/tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLComparisonBuilder.java @@ -13,14 +13,31 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.teavm.classlib.impl.report; +package org.teavm.tools.classlibcomparison; -import java.io.*; -import java.net.URL; -import java.net.URLDecoder; -import java.util.*; -import java.util.jar.JarEntry; -import java.util.jar.JarInputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.Reader; +import java.io.Writer; +import java.net.URI; +import java.nio.charset.StandardCharsets; +import java.nio.file.FileSystemNotFoundException; +import java.nio.file.FileVisitResult; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.SimpleFileVisitor; +import java.nio.file.attribute.BasicFileAttributes; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import org.apache.commons.io.IOUtils; import org.objectweb.asm.ClassReader; import org.objectweb.asm.Type; @@ -28,11 +45,8 @@ import org.teavm.model.ReferenceCache; import org.teavm.parsing.ClasspathClassHolderSource; public class JCLComparisonBuilder { - private static final String JAR_PREFIX = "jar:file:"; - private static final String JAR_SUFFIX = "!/java/lang/Object.class"; private static final String CLASS_SUFFIX = ".class"; private static final String TEMPLATE_PLACEHOLDER = "${CONTENT}"; - private Set packages = new HashSet<>(); private ClassLoader classLoader = JCLComparisonBuilder.class.getClassLoader(); private JCLComparisonVisitor visitor; private String outputDirectory; @@ -45,10 +59,6 @@ public class JCLComparisonBuilder { this.classLoader = classLoader; } - public Set getPackages() { - return packages; - } - public String getOutputDirectory() { return outputDirectory; } @@ -59,7 +69,7 @@ public class JCLComparisonBuilder { public static void main(String[] args) throws IOException { if (args.length == 0) { - System.err.println("Usage: package.name [package.name2 ...] [-output directory]"); + System.err.println("Usage: -output "); System.exit(1); } JCLComparisonBuilder builder = new JCLComparisonBuilder(); @@ -67,8 +77,6 @@ public class JCLComparisonBuilder { for (int i = 0; i < args.length; ++i) { if (args[i].equals("-output")) { builder.setOutputDirectory(args[++i]); - } else { - builder.getPackages().add(args[i].replace('.', '/')); } } @@ -90,7 +98,7 @@ public class JCLComparisonBuilder { copyResource("html/enum_obj.png"); copyResource("html/annotation_obj.png"); try (Writer out = new OutputStreamWriter(new FileOutputStream(new File( - outputDirectory, "jcl.html")), "UTF-8")) { + outputDirectory, "jcl.html")), StandardCharsets.UTF_8)) { generateHtml(out, packages); } File packagesDirectory = new File(outputDirectory, "packages"); @@ -115,47 +123,75 @@ public class JCLComparisonBuilder { private List buildModel() throws IOException { Map packageMap = new HashMap<>(); - URL url = classLoader.getResource("java/lang/Object" + CLASS_SUFFIX); - String path = url.toString(); - if (!path.startsWith(JAR_PREFIX) || !path.endsWith(JAR_SUFFIX)) { - throw new RuntimeException("Can't find JCL classes"); - } ClasspathClassHolderSource classSource = new ClasspathClassHolderSource(classLoader, new ReferenceCache()); - path = path.substring(JAR_PREFIX.length(), path.length() - JAR_SUFFIX.length()); - File outDir = new File(outputDirectory).getParentFile(); - if (!outDir.exists()) { - outDir.mkdirs(); + visitor = new JCLComparisonVisitor(classSource, packageMap); + try { + Path p = Paths.get(URI.create("jrt:/modules/java.base/java/")); + Files.walkFileTree(p, new SimpleFileVisitor<>() { + @Override + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { + if (validateName(file.getFileName().toString())) { + try (InputStream input = Files.newInputStream(file)) { + compareClass(input); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + return FileVisitResult.CONTINUE; + } + }); + System.out.println(); + } catch (FileSystemNotFoundException ex) { + System.out.println("Could not read my modules (perhaps not Java 9?)."); } - path = URLDecoder.decode(path, "UTF-8"); - try (JarInputStream jar = new JarInputStream(new FileInputStream(path))) { - visitor = new JCLComparisonVisitor(classSource, packageMap); - while (true) { - JarEntry entry = jar.getNextJarEntry(); - if (entry == null) { - break; + + for (JCLPackage pkg : packageMap.values()) { + for (JCLClass cls : pkg.classes.toArray(new JCLClass[0])) { + if (cls.outer != null) { + removeInnerPrivateClasses(packageMap, pkg, cls.name); } - if (validateName(entry.getName())) { - compareClass(jar); - } - jar.closeEntry(); } } + + for (String packageName : packageMap.keySet().toArray(new String[0])) { + JCLPackage pkg = packageMap.get(packageName); + if (pkg.classes.stream().allMatch(cls -> cls.status == JCLStatus.MISSING)) { + packageMap.remove(packageName); + } else if (pkg.classes.stream().anyMatch(cls -> cls.status == JCLStatus.MISSING)) { + pkg.status = JCLStatus.PARTIAL; + } + } + return new ArrayList<>(packageMap.values()); } + private boolean removeInnerPrivateClasses(Map packageMap, JCLPackage pkg, String className) { + JCLClass cls = pkg.classes.stream().filter(c -> c.name.equals(className)).findFirst().orElse(null); + if (cls == null) { + return true; + } + + if (cls.outer != null) { + String packageName = cls.outer.substring(0, cls.outer.lastIndexOf('.')); + JCLPackage outerPackage = packageMap.get(packageName); + if (outerPackage == null || removeInnerPrivateClasses(packageMap, outerPackage, cls.outer)) { + pkg.classes.remove(cls); + return true; + } + } + + return false; + } + private void processModel(List packages) { - Collections.sort(packages, (o1, o2) -> o1.name.compareTo(o2.name)); + packages.sort(Comparator.comparing(o -> o.name)); for (JCLPackage pkg : packages) { - Collections.sort(pkg.classes, (o1, o2) -> o1.name.compareTo(o2.name)); + pkg.classes.sort(Comparator.comparing(o -> o.name)); } } private boolean validateName(String name) { - if (!name.endsWith(CLASS_SUFFIX)) { - return false; - } - int slashIndex = name.lastIndexOf('/'); - return slashIndex >= 0 && packages.contains(name.substring(0, slashIndex)); + return name.endsWith(CLASS_SUFFIX); } private void compareClass(InputStream input) throws IOException { @@ -174,7 +210,8 @@ public class JCLComparisonBuilder { private void generateHtml(Writer out, List packages) throws IOException { String template; - try (Reader reader = new InputStreamReader(classLoader.getResourceAsStream("html/jcl.html"), "UTF-8")) { + try (Reader reader = new InputStreamReader(classLoader.getResourceAsStream("html/jcl.html"), + StandardCharsets.UTF_8)) { template = IOUtils.toString(reader); } int placeholderIndex = template.indexOf(TEMPLATE_PLACEHOLDER); @@ -207,7 +244,8 @@ public class JCLComparisonBuilder { private void generatePackageHtml(Writer out, JCLPackage pkg) throws IOException { String template; - try (Reader reader = new InputStreamReader(classLoader.getResourceAsStream("html/jcl-class.html"), "UTF-8")) { + try (Reader reader = new InputStreamReader(classLoader.getResourceAsStream("html/jcl-class.html"), + StandardCharsets.UTF_8)) { template = IOUtils.toString(reader); } template = template.replace("${CLASSNAME}", pkg.name); @@ -242,7 +280,8 @@ public class JCLComparisonBuilder { private void generateClassHtml(Writer out, JCLPackage pkg, JCLClass cls) throws IOException { String template; - try (Reader reader = new InputStreamReader(classLoader.getResourceAsStream("html/jcl-class.html"), "UTF-8")) { + try (Reader reader = new InputStreamReader(classLoader.getResourceAsStream("html/jcl-class.html"), + StandardCharsets.UTF_8)) { template = IOUtils.toString(reader); } template = template.replace("${CLASSNAME}", pkg.name + "." + cls.name); diff --git a/classlib/src/main/java/org/teavm/classlib/impl/report/JCLComparisonVisitor.java b/tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLComparisonVisitor.java similarity index 88% rename from classlib/src/main/java/org/teavm/classlib/impl/report/JCLComparisonVisitor.java rename to tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLComparisonVisitor.java index d12c5117e..f1a12f0b9 100644 --- a/classlib/src/main/java/org/teavm/classlib/impl/report/JCLComparisonVisitor.java +++ b/tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLComparisonVisitor.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 Alexey Andreev. + * Copyright 2019 konsoletyper. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.teavm.classlib.impl.report; +package org.teavm.tools.classlibcomparison; import java.util.Map; import org.objectweb.asm.*; @@ -135,30 +135,9 @@ class JCLComparisonVisitor extends ClassVisitor { } @Override - public void visitSource(String source, String debug) { - } - - @Override - public void visitOuterClass(String owner, String name, String desc) { - } - - @Override - public AnnotationVisitor visitAnnotation(String desc, boolean visible) { - return null; - } - - @Override - public void visitAttribute(Attribute attr) { - } - - @Override - public void visitInnerClass(String name, String outerName, String innerName, int access) { - } - - @Override - public void visitEnd() { - if (jclPackage != null && (jclClass == null || jclClass.status != JCLStatus.FOUND)) { - jclPackage.status = JCLStatus.PARTIAL; + public void visitNestHost(String nestHost) { + if (jclClass != null) { + jclClass.outer = nestHost.replace('/', '.'); } } } diff --git a/classlib/src/main/java/org/teavm/classlib/impl/report/JCLItem.java b/tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLItem.java similarity index 91% rename from classlib/src/main/java/org/teavm/classlib/impl/report/JCLItem.java rename to tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLItem.java index 8573bf83d..052d3523a 100644 --- a/classlib/src/main/java/org/teavm/classlib/impl/report/JCLItem.java +++ b/tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLItem.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 Alexey Andreev. + * Copyright 2019 konsoletyper. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.teavm.classlib.impl.report; +package org.teavm.tools.classlibcomparison; class JCLItem { public final JCLItemType type; diff --git a/classlib/src/main/java/org/teavm/classlib/impl/report/JCLItemType.java b/tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLItemType.java similarity index 88% rename from classlib/src/main/java/org/teavm/classlib/impl/report/JCLItemType.java rename to tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLItemType.java index 07b3b56b9..092aaf663 100644 --- a/classlib/src/main/java/org/teavm/classlib/impl/report/JCLItemType.java +++ b/tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLItemType.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 Alexey Andreev. + * Copyright 2019 konsoletyper. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.teavm.classlib.impl.report; +package org.teavm.tools.classlibcomparison; enum JCLItemType { FIELD, diff --git a/classlib/src/main/java/org/teavm/classlib/impl/report/JCLPackage.java b/tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLPackage.java similarity index 91% rename from classlib/src/main/java/org/teavm/classlib/impl/report/JCLPackage.java rename to tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLPackage.java index 1206ea126..b361b5526 100644 --- a/classlib/src/main/java/org/teavm/classlib/impl/report/JCLPackage.java +++ b/tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLPackage.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 Alexey Andreev. + * Copyright 2019 konsoletyper. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.teavm.classlib.impl.report; +package org.teavm.tools.classlibcomparison; import java.util.ArrayList; import java.util.List; diff --git a/classlib/src/main/java/org/teavm/classlib/impl/report/JCLStatus.java b/tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLStatus.java similarity index 89% rename from classlib/src/main/java/org/teavm/classlib/impl/report/JCLStatus.java rename to tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLStatus.java index 3d8aa266c..b690a6d94 100644 --- a/classlib/src/main/java/org/teavm/classlib/impl/report/JCLStatus.java +++ b/tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 Alexey Andreev. + * Copyright 2019 konsoletyper. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.teavm.classlib.impl.report; +package org.teavm.tools.classlibcomparison; enum JCLStatus { FOUND, diff --git a/classlib/src/main/java/org/teavm/classlib/impl/report/JCLVisibility.java b/tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLVisibility.java similarity index 89% rename from classlib/src/main/java/org/teavm/classlib/impl/report/JCLVisibility.java rename to tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLVisibility.java index a821aeb03..85901935e 100644 --- a/classlib/src/main/java/org/teavm/classlib/impl/report/JCLVisibility.java +++ b/tools/classlib-comparison-gen/src/main/java/org/teavm/tools/classlibcomparison/JCLVisibility.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 Alexey Andreev. + * Copyright 2019 konsoletyper. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.teavm.classlib.impl.report; +package org.teavm.tools.classlibcomparison; enum JCLVisibility { PUBLIC, diff --git a/classlib/src/main/resources/html/annotation_obj.png b/tools/classlib-comparison-gen/src/main/resources/html/annotation_obj.png similarity index 100% rename from classlib/src/main/resources/html/annotation_obj.png rename to tools/classlib-comparison-gen/src/main/resources/html/annotation_obj.png diff --git a/classlib/src/main/resources/html/class_obj.png b/tools/classlib-comparison-gen/src/main/resources/html/class_obj.png similarity index 100% rename from classlib/src/main/resources/html/class_obj.png rename to tools/classlib-comparison-gen/src/main/resources/html/class_obj.png diff --git a/classlib/src/main/resources/html/enum_obj.png b/tools/classlib-comparison-gen/src/main/resources/html/enum_obj.png similarity index 100% rename from classlib/src/main/resources/html/enum_obj.png rename to tools/classlib-comparison-gen/src/main/resources/html/enum_obj.png diff --git a/classlib/src/main/resources/html/field_protected_obj.png b/tools/classlib-comparison-gen/src/main/resources/html/field_protected_obj.png similarity index 100% rename from classlib/src/main/resources/html/field_protected_obj.png rename to tools/classlib-comparison-gen/src/main/resources/html/field_protected_obj.png diff --git a/classlib/src/main/resources/html/field_public_obj.png b/tools/classlib-comparison-gen/src/main/resources/html/field_public_obj.png similarity index 100% rename from classlib/src/main/resources/html/field_public_obj.png rename to tools/classlib-comparison-gen/src/main/resources/html/field_public_obj.png diff --git a/classlib/src/main/resources/html/int_obj.png b/tools/classlib-comparison-gen/src/main/resources/html/int_obj.png similarity index 100% rename from classlib/src/main/resources/html/int_obj.png rename to tools/classlib-comparison-gen/src/main/resources/html/int_obj.png diff --git a/classlib/src/main/resources/html/jcl-class.html b/tools/classlib-comparison-gen/src/main/resources/html/jcl-class.html similarity index 100% rename from classlib/src/main/resources/html/jcl-class.html rename to tools/classlib-comparison-gen/src/main/resources/html/jcl-class.html diff --git a/classlib/src/main/resources/html/jcl.css b/tools/classlib-comparison-gen/src/main/resources/html/jcl.css similarity index 100% rename from classlib/src/main/resources/html/jcl.css rename to tools/classlib-comparison-gen/src/main/resources/html/jcl.css diff --git a/classlib/src/main/resources/html/jcl.html b/tools/classlib-comparison-gen/src/main/resources/html/jcl.html similarity index 100% rename from classlib/src/main/resources/html/jcl.html rename to tools/classlib-comparison-gen/src/main/resources/html/jcl.html diff --git a/classlib/src/main/resources/html/methpro_obj.png b/tools/classlib-comparison-gen/src/main/resources/html/methpro_obj.png similarity index 100% rename from classlib/src/main/resources/html/methpro_obj.png rename to tools/classlib-comparison-gen/src/main/resources/html/methpro_obj.png diff --git a/classlib/src/main/resources/html/methpub_obj.png b/tools/classlib-comparison-gen/src/main/resources/html/methpub_obj.png similarity index 100% rename from classlib/src/main/resources/html/methpub_obj.png rename to tools/classlib-comparison-gen/src/main/resources/html/methpub_obj.png diff --git a/classlib/src/main/resources/html/package_obj.png b/tools/classlib-comparison-gen/src/main/resources/html/package_obj.png similarity index 100% rename from classlib/src/main/resources/html/package_obj.png rename to tools/classlib-comparison-gen/src/main/resources/html/package_obj.png