@surli surli released this Mar 8, 2018 · 570 commits to master since this release

Assets 6

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)
  • 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)
  • 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