Spoon v7.2.0 Release Notes

Release Date: 2018-12-04 // over 5 years ago
  • πŸ†• New features

    • βž• Add CtImportVisitor. (PR: #2730)
    • βž• Add CtTypeReference#canAccess(CtTypeMember). (PR: #2815)
    • AllTypeMembersFunction has new mode SKIP_PRIVATE. (PR: #2803)
    • βž• Add support for javadoc inline tags. (PR: #2802)
    • βž• Add encoding detection callback. (PR: #2788)
    • EarlyTerminatingScanner can scan content of compilation units. (PR: #2793)
    • βž• Add assertCtElementEquals. (PR: #2767)
    • βž• Add CtAbstractImportVisitor. (PR: #2764)
    • βž• Add CtTypeReference#implicitParent. (PR: #2805)
    • βž• Add CtComment#getRawContent(). (PR: #2746)
    • πŸ†• New CtTypeMemberWildcardImportReference for import package.Type.*. (PR: #2731)
    • CtScannerListener knows role of scanned element. (PR: #2739)
    • βž• Add CtCompilationUnit for future import and sniper improvements. (PR: #2702)
    • πŸ‘‰ Use Apache Common Compressor API to [de]compress serialized models. (PR: #2165)
    • βž• Add metamodel concept CtPackageDeclaration. (PR: #2707)
    • βž• Add support for Fernflower for decompilation. (PR: #2668)
    • βž• Add support for transformation at load-time in the JVM. (PR: #2645)

    πŸ› Bug Fixes

    • βœ… CtQueryImpl#detectTargetClassFromCCE, FilterTest#testInvalidQueryStep: Adapt parsing of ClassCastException message which has changed in oracle jdk 11. (PR: #2787)
    • βœ… FieldAccessTest: Adapt FieldAccessTest to oracle jdk 11/jdt changes. (PR: #2789)
    • βœ… MainTest: Quickfix for Travis 10min timeout. (PR: #2667)
    • doc: Explain the different kinds of pull-requests. (PR: #2647)
    • πŸ“š documentation: Pattern.md. (PR: #2735)
    • πŸ—„ javadoc: Replace deprecated by better javadoc. (PR: #2663)
    • πŸ–¨ printer: Add space before else of if statement. (PR: #2679)
    • βœ… test
      • MainTest#testGenericContract on MS Windows. (PR: #2814)
      • ImportTest. (PR: #2816)
    • Modifiers of enum members. (PR: #2630)
    • One can call getModifiers on ".class" of "Aclass.class". (PR: #2776)
    • πŸ›  Fix incomplete behavior: Javadoc#setContent should parse tags. (PR: #2765)
    • πŸ“œ Parsing of java version not starting with "1." in pom.xml. (PR: #2729)
    • πŸ“¦ CtPackageDeclaration has a valid source position. (PR: #2760)
    • πŸ— JDT spoon compiler builds imports and then comments. (PR: #2807)
    • Broken link in papers.md. (PR: #2749)
    • CtImport position includes its comment. (PR: #2810)
    • PatternMatcher ignores isImplicit. (PR: #2726)
    • CtExecutableReference cannot use CtTypeParameterReference. (PR: #2725)
    • ⬆️ Upgrade insecure commons-compress to latest version. (PR: #2717)
    • πŸ›  Fix comment of CtAnnotation value. (PR: #2587)
    • MetamodelProperty#containerKindOf knows Collection. (PR: #2705)
    • 🌲 Invalid error log message in ContextBuilder#getVariableDeclaration. (PR: #2677)
    • πŸ“¦ CtPackageDeclaration position doesn't include top file comment. (PR: #2811)
    • πŸ–¨ Sniper printer leaves when no more child tokens. (PR: #2808)
    • πŸ”„ ChangeCollector detects changes in CtCompilationUnit too. (PR: #2794)
    • πŸ‘‰ Use Environment encoding when writing files on disk. (PR: #2796)
    • πŸ›  Fix invalid if model with empty statements in then/else branch. (PR: #2733)

    πŸ“š Documentation

    • πŸ‘Œ Improve documentation about release process. (PR: #2650)
    • βœ‚ Remove all hard coded version numbers to simplify release. (PR: #2786)
    • Spoon-decompiler is not spoon-bytecode. (PR: #2784)
    • Getting started for external dependency. (PR: #2752)
    • πŸ›  Fix broken link in doc. (PR: #2743)
    • πŸ›  Fix javadoc in TypeFactory.java. (PR: #2688)
    • βœ‚ Remove link to decommissioned Gforge. (PR: #2792)
    • ⚑️ Updated spelling and formatting of path.md page. (PR: #2696)
    • βž• Add missing javadoc for PatternPrinter. (PR: #2689)
    • πŸ›  Fix @link in javadoc. (PR: #2685)
    • πŸ›  Fix contract sentence. (PR: #2691)
    • βž• Add example in path.md. (PR: #2661)
    • website: Document IncrementalLauncher. (PR: #2651)

    πŸ”¨ Refactoring

    • πŸ›  Fix sonarqube - use Java array syntax (not C-like). (PR: #2686)
    • πŸ‘ Better handling of SourceFragment in CompilationUnit. (PR: #2806)
    • βœ… Sort modifiers in ModelStreamerTest.java. (PR: #2755)
    • Excluding decompiler related features from spoon-core. (PR: #2766)
    • πŸ–¨ GetDocComment uses the same implementation as pretty-printer. (PR: #2775)
    • πŸ‘Œ Improve error message with Spoon testing fluent API. (PR: #2769)
    • πŸ— In clone code, builder.copy is called first. (PR: #2768)
    • πŸ–¨ JavaOutputProcessor uses Environment#createPrinter(). (PR: #2759)
    • πŸ‘ Better error handling in CtFieldReference#getActualField. (PR: #2754)
    • βœ… Replace List<? extends Object> by List<?> in PatternTest. (PR: #2753)
    • βœ‚ Remove redundant cast. (PR: #2700)
    • βœ‚ Remove useless assignment in JDTTreeBuilderHelper.java. (PR: #2690)
    • Simplify negation (fix SonarQube). (PR: #2695)
    • CtTypeAccess#implicit is derived now. (PR: #2804)
    • πŸ”„ Change assertion from assertSame to assertEquals. (PR: #2687)
    • βœ‚ Remove redundant parentheses in PatternBuilder. (PR: #2653)
    • βœ… Use static import for asserts in tests. (PR: #2655)
    • βœ‚ Remove redundant 'super' call from SpoonClassFileTransformerTest.java. (PR: #2678)
    • SourcePosition#equals should take into account all information. (PR: #2660)
    • Replace by . (PR: #2675)
    • Flip order of comparison - put literal first to lower risk of NPE. (PR: #2674)
    • βž• Add missing braces to tests. (PR: #2673)
    • βœ‚ Remove deprecated annotation (for sonarqube). (PR: #2665)
    • βž• Add final modifier. (PR: #2664)
    • Stream handling in SerializationModelStreamer#load(InputStream). (PR: #2635)
    • Replace length()==0 by isEmpty(). (PR: #2658)

    🐎 Performance

    • πŸ— .travis.yml: Merge travis builds to fall under 5 builds. (PR: #2782)
    • βœ… MainTest: Parallelize execution of testElementToPathToElementEquivalency. (PR: #2694)
    • Cache result of CtTypeReference#findClass(). (PR: #2591)

    βœ… Tests

    • βœ‚ Remove long logs fof CtGenerationTest which makes CI log unreadable. (PR: #2750)
    • βœ… Minimize logs in FilterTest. (PR: #2756)
    • βœ… Generic contracts are run only on .testclasses.. (PR: #2716)
    • πŸ‘‰ Use contains instead of indexOf. (PR: #2715)
    • βœ… Relax intercession test to prepare #2615. (PR: #2706)
    • βœ‚ Remove redundant cast. (PR: #2704)
    • βœ… Relax intercession test to prepare #2615.
    • Constructor with this(xxx) replaced by super(xxx)?. (PR: #2680)
    • 🏁 In tests also, windows's classpath elements are separated by semi column. (PR: #2692)
    • 🏁 IncrementalLauncherTest: Attempt to remove flackiness on windows CI. (PR: #2745)

    Other

    • πŸ’… Do not execute checkstyle for all jobs. (PR: #2799)
    • πŸ‘• Maven-javadoc-plugin now supports the doclint parameter. (PR: #2800)
    • πŸ’… Check style doesn't check left curly on lambda. (PR: #2795)
    • ⚑️ Update build.sh to use the correct snapshot repo in Jenkins. (PR: #2777)
    • πŸ”„ Change jenkins/build.sh to allow passing maven parameters. (PR: #2723)
    • πŸ›  Fix security issue in dependency. (PR: #2697)
    • πŸ’… Prepares checkstyle checking for src/test/java. (PR: #2611)
    • βœ‚ Remove deprecated methods after release. (PR: #2649)
    • πŸš€ Bump info after release of 7.1.0. (PR: #2648)

    Unknown

    • πŸš€ 7.2.0 released on Central.
    • Explicit rule on how integrators are chosen. (PR: #2791)
    • βœ… AccessFullyQualifiedFieldTest.java. (PR: #2656)

    Authors

    Name Nb Commit
    Pavel Vojtechovsky 38
    Martin Monperrus 27
    Tomasz ZieliΕ„ski 23
    Nicolas Harrand 12
    Egor Bredikhin 3
    Simon Urli 3
    Mehdi Kaytoue 1
    lodart 1
    raymogg 1