Spoon v6.2.0 Release Notes

Release Date: 2018-03-08 // about 6 years ago
  • ๐Ÿš€ Thanks for the new contributors on this release ๐Ÿ‘

    ๐Ÿ†• New features

    • โž• Add support to change the destination file on disk for modules, packages and types. (PR: #1610)
    • โž• Add CtScanner#scan(Map) for a better EarlyTerminatingScanner. (PR: #1805)
    • โž• Add support for paths for all elements from model root (CtElement#getPath). (PR: #1874)
    • One could add a type member that already exists (equals but not same) and modify it afterwards. (PR: #1864)
    • โž• Add method CtMethod#getTopDefinitions. (PR: #1844)
    • โž• Add Refactoring#copyType and #copyMethod for advanced cloning. (PR: #1884)
    • ๐Ÿšš All RoleHandlers supports set/add/remove. (PR: #1793)
    • โž• Add methods getRoleHandlers(Class), forEachRoleHandler, getRoleHandlerWrtParent in RoleHandlerHelper. (PR: #1794)
    • SpoonModelTree GUI can be created with a custom root element. (PR: #1799)
    • โž• Add support for clone process customization with CloneHelper#addClone. (PR: #1802)
    • Spoon Filter implements java.util.function.Predicate. (PR: #1798)

    ๐Ÿ› Bug Fixes

    • GetDocComment returns the complete Javadoc comment, incl. tags. (PR: #1822)
    • โž• Add RoleHandler setter for SUPER_TYPE and INTERFACE. (PR: #1890)
    • CtCatchVariable#multiType role TYPE changed to MULTI_TYPE. (PR: #1877)
    • โœ… Fully comply with the contract of CtScannerTest#testScannerCallsAllProperties. (PR: #1870)
    • ๐Ÿ’… Change how DJPP prints "return" so that it's checkstyle-compliant. (PR: #1871)
    • โœ… Unsettable properties are now really unsettable, and there is a test for this. (PR: #1893)
    • ๐Ÿ›  Fix equality for assignments. (PR: #1845)
    • GetDocComment() returns asterisk (*) and spaces before comment. (PR: #1841)
    • Small bugs in MethodTypingContext and CtTypeReference. (PR: #1838)
    • ClassTypingContext resolveTypeParameter can gracefully handle outer parameters. (PR: #1837)
    • ๐Ÿ›  Fix StringIndexOutOfBoundsException in CtJavadoc#getShortDescription. (PR: #1827)
    • TypeFactory#get(qualifiedName) for class names containing $. (PR: #1891)
    • Stackoverflow on AbstractTypingContext. (PR: #1817)
    • NPE when using MavenLauncher on module containing dependency with variable. (PR: #1810)
    • Undo #1798 for backward compatibility. (PR: #1811)
    • Filter extends Predicate is now working with projects in JDK7. (PR: #1808)
    • Shadow classes should be interpreted according to their kind (enum, interface, etc). (PR: #1806)
    • Easier specification of template parameters (without annotations). (PR: #1801)
    • 0๏ธโƒฃ DefaultJavaPrettyPrinter prints an ERROR comment instead of raising an exception when a field is missing in the model. (PR: #1797)
    • ๐Ÿ›  Various fixes in VisitorPartialEvaluator. (PR: #1800)
    • 0๏ธโƒฃ DefaultJavaPrettyPrinter exposes the tokenWriter for subclasses. (PR: #1796)
    • ParentFunction doesn't fail on null parent. (PR: #1795)
    • โž• Add generic typing to TypeFactory constants. (PR: #1792)
    • serialization : SourcePosition#getFile() after deserialization. (PR: #1847)
    • ๐Ÿ›  Fix order of type members. (PR: #1787)

    ๐Ÿ“š Documentation

    • โž• Add missing javadoc. (PR: #1843)
    • โž• Add missing Javadoc in ModelsUtils. (PR: #1860)
    • ๐Ÿ“š Missing documentation in public methods used for pretty-printing. (PR: #1854)
    • Another set of Javadoc comments for public methods. (PR: #1856)
    • โž• Add API documentation to interface JavaReflectionVisitor. (PR: #1850)
    • โž• Add doc for public method in RtMethod. (PR: #1858)
    • ๐Ÿ›  Fix Javadoc (incorrect starting tag). (PR: #1839)
    • ๐Ÿ›  Fix missing javadoc. (PR: #1840)
    • ๐Ÿ‘Œ Improve Javadoc of #getAllMethods. (PR: #1836)
    • ๐Ÿ‘Œ Improves the documentation of getOverridingExecutable. (PR: #1828)
    • โฌ†๏ธ Bump Spoon number in doc. (PR: #1790)

    ๐Ÿ”จ Refactoring

    • ๐Ÿ‘Œ Improve Meta-Metamodel classes in src/test. (PR: #1894)
    • ๐Ÿ”จ Refactor cloning code to increase extendability. (PR: #1878)
    • โœ‚ Remove CtParameterReferenceImpl#declaringExecutable. (PR: #1875)
    • Push down the equality checking code in EqualsVisitor. (PR: #1853)
    • ๐Ÿ“ฆ Hide some methods that are clearly meant to be package visible. (PR: #1855)
    • ๐Ÿ“ฆ Internal utility type in JDTTreeBuilder should be package-visible. (PR: #1848)
    • ๐Ÿ“ฆ Package-visible class CommentHelper should have package-visible methods. (PR: #1849)
    • โœ‚ Remove wrong comments and unused imports. (PR: #1803)
    • ๐Ÿ–จ prettyprinter : Restore DJPP#writeHeaders that clients can override. (PR: #1866)

    โœ… Tests

    • architecture : All public API methods should be documented with Javadoc. (PR: #1867)
    • ๐Ÿ›  Fix CI failure due to interaction between #1864 and #1787. (PR: #1868)
    • ๐Ÿšš Move metamodel related method to class SpoonMetaModel for better discoverability. (PR: #1851)
    • โž• Add method ModelUtils#getOptimizedString for handling EOL, TAB, etc in assertions. (PR: #1804)

    Chores

    • โš  Enable unchecked compiler warnings. (PR: #1886)
    • Enables incremental compilation. (PR: #1885)
    • ๐Ÿ›  Fix javadoc linter config in pom.xml. (PR: #1881)
    • โž• Add Eclipse's .checkstyle to .gitignore. (PR: #1882)
    • โž• Add a script to update pom.xml for running pit-descartes. (PR: #1820)
    • โž• Add CI script to check whether Spoon compiles with Maven 3.3.9. (PR: #1815)
    • revapi : Fix revapi commenting bot. (PR: #1863)
    • Prepare for next development iteration.

    Authors

    Name Nb Commit
    Martin Monperrus 30
    Pavel Vojtechovsky 21
    Simon Urli 9
    Egor18 4
    Nicolas Harrand 2
    Thomas Durieux 1
    Shantanu 1