All Versions
15
Latest Version
Avg Release Cycle
90 days
Latest Release
1692 days ago
Changelog History
Page 2
Changelog History
Page 2
-
v6.2.0 Changes
March 08, 2018๐ 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 -
v6.1.0 Changes
December 20, 2017๐ Christmas release! ๐ ๐ โจ
๐ The main new feature of this release is the integration of Java 9 module in Spoon model, but it also contains some other new features and bug fixes.
Thanks for the contributors, merry christmas and happy new year for all of you :)๐ New features
- โ Add Factory#createQuery(Iterable). (PR: #1777)
- โ Add a method to get the unit type of the compilation unit. (PR: #1776)
- โ Add support for Java9 constructs in the Spoon metamodel (CtModule and related concepts). (PR: #1730)
- ๐ Support partial evaluation of new Object[]{...}.length -> Literal. (PR: #1750)
- โ Add an explicit construct for imports in the metamodel (CtImport). (PR: #1707)
- โ Add method hasAnnotation. (PR: #1737)
- โ Add inheritance between roles (CtRole#getSuperRole(), CtRole#getSubRole()). (PR: #1725)
- CtModel implements CtQueryable. (PR: #1739)
- ๐จ Processor properties can be passed as string. (PR: #1734)
๐ Bug Fixes
- CompilationUnits are created on demand. (PR: #1782)
- ๐จ Start prefix space in ElementPrinterHelper. (PR: #1768)
- ๐ Fix a NPE in CtTypeImpl#isSameParameter in noclasspath. (PR: #1767)
- CtQueryImpl handles well preallocated exceptions done by JVM optimization. (PR: #1759)
- ๐ Fix bug in partial evaluator. (PR: #1751)
- ๐ Fix dirty exception in checking code at the end of model building. (PR: #1749)
- annotation : Bug when using an annotation targeting declaration and types. (PR: #1774)
- โ test : Improve CtGenerationTest and CtScannerTest. (PR: #1736)
๐ Documentation
- โ Add explanation in Javadoc of CtTypeReference#getActualClass. (PR: #1761)
- ๐ Bump version number after release 6.0.0. (PR: #1732)
๐จ Refactoring
- OutputType is available in Environment. (PR: #1784)
- CompilationUnit returns an unmodifiable collection. (PR: #1781)
- Manage sourceOutputDirectory in Environment. (PR: #1770)
- ๐ป SetSourceClasspath throws an exception in case a .class is given. (PR: #1766)
- โ Add a new way to build a query in QueryFactory. (PR: #1740)
โ Tests
- Check inheritance behaviour when using noclasspath with a sourceclasspath. (PR: #1760)
- ๐จ Refactor test to be independent from JDK version. (PR: #1764)
- Metamodel's MMField valueTypes are not implicit. (PR: #1756)
- โ Add test for substitution of
return expression.S()
with expressions. (PR: #1755) - Prepare upcoming behavioral change in template matcher. (PR: #1748)
- โ Add test for getAnnotation().value() on shadow classes. (PR: #1738)
Other
- ๐ Skip checkstyle in Travis install phase. (PR: #1746)
Unknown
- Prepare for next development iteration.
Authors
Name Nb Commit Simon Urli 20 Pavel Vojtechovsky 9 Martin Monperrus 3 -
v6.0.0 Changes
November 17, 2017๐ New major Spoon 6.0.0 release ๐
๐ โ ๏ธ This release breaks some existing API. Here follows the changelog with indication of what is breaking.
๐ Thanks to all contributors on this amazing release ๐๐ New features
- Roles
- ๐จ Introduction of TokenWriter to support custom formatting of pretty-printed code. (PR: #1494)
- Spoon runs on Java9 JVM with JDK9. (PR: #1585)
- โ Add TypeFactory LIST, SET, MAP, ... constant type references. (PR: #1660)
- โ Add new create method in Factory. (PR: #1659)
- โ Add CtPackage#getQualifiedName. (PR: #1652)
- The cloning behavior can be subclassed. (PR: #1580)
- โ Add a static method to getting started with one single line of code. (PR: #1559)
- โ Add support for analyzing whether a type reference is generic or not (method isGeneric). (PR: #1562)
- โ Add support for implicit / explicit modifiers (CtExtendedModifier). (PR: #1649)
- โ Add simple support for enter/exit in DJPP as in CtScanner. (PR: #1538)
- Create a launcher to analyze maven projects. (PR: #1533)
- โ Add utility methods in CtModifiable. (PR: #1726)
๐ Bug Fixes
- ๐ฑ โ ๏ธ [BREAKING] Fix ClassTypingContext#isSameSignature for generic methods. (PR: #1639)
- ๐ฑ โ ๏ธ [BREAKING] SetVisibility should only be used with private, public or protected. (PR: #1705)
- ๐ฑ โ ๏ธ [MAYBE BREAKING] Less hashcode collisions for CtReference. (PR: #1717)
- ๐ฑ โ ๏ธ [BREAKING] Move deprecated classes to spoon.legacy. (PR: #1518)
- ๐ฑ โ ๏ธ [BREAKING] Template: Replacing of field access by refining behaviour of String parameter. (PR: #1476)
- ๐ฑ โ ๏ธ [BREAKING] Remove the useless factory in Environment. (PR: #1673)
- ๐ฑ โ ๏ธ Fix bug with repeatable annotations. (PR: #1724)
- Typo in RoleHandlersGenerator. (PR: #1709)
- Method with varargs should never be transient. (PR: #1701)
- JDTImportBuilder should not import all public methods from interfaces. (PR: #1620)
- ๐จ Explicit "final" modifier are possible in catch variables and should be kept when pretty-printing. (PR: #1690)
- CtVariableAccess#getVariable() sets the type of "super". (PR: #1684)
- MavenLauncher warns when a provided dependency is not loaded. (PR: #1681)
- โ Add position for implicit blocks. (PR: #1678)
- ๐ Bug related with cloning newClass invocation with anonymous class. (PR: #1667)
- ๐ Improve contract+test of CtScanner and it relation to roles. (PR: #1642)
- In CtCatchVariable set/getType is derived from multiType. (PR: #1668)
- AbstractTypingContext should set consistent parents. (PR: #1664)
- [BREAKING] CtTypeParameterReference#getBoundingType() consistently returns null when Object is the bound. (PR: #1661)
- โ Remove useless code on CtElement#setParent. (PR: #1662)
- ๐ Change default log level. (PR: #1646)
- ๐ Fix StackOverflow in MethodTypingContext on <T, U extends T>. (PR: #1640)
- ๐ Fix NPE in MavenLauncher when there is no build section. (PR: #1720)
- โ CtTypeInformationTest now use patch JDK version for the expected test number. (PR: #1721)
- Optional maven dependencies should not be passed to SpoonMavenLauncher. (PR: #1619)
- ๐ Fix bug related to generics in CtTypeReference in noclasspath. (PR: #1609)
- ๐ฆ Auto-imports works for package-info. (PR: #1611)
- CtNewClassImpl#setAnonymousClass has CtRole.NESTED_TYPE not CtRole.EXECUTABLE. (PR: #1605)
- ๐จ Pretty printer adds no space before comma in new array expression. (PR: #1602)
- Spoon model is a tree not a lattice. (PR: #1592)
- ImportBuilder checks visibility when importing starred imports. (PR: #1588)
- The query engine also works on JVMs where lambdas are not in stack trace elements. (PR: #1579)
- Cleaning of method signature computation. (PR: #1561)
- DJPP sends "class" as keyword and wildcard "?" as separator token. (PR: #1568)
- PotentialVariableDeclarationFunction should consider static scopes. (PR: #1536)
- ๐ Fix issue with recursively defined annotation in shadow class. (PR: #1711)
- โ Remove an hardcoded encoding value in CompilationUnitWrapper. (PR: #1544)
- ๐ฆ SetSimpleName of CtRootPackage if now fail-silent to simplify client code. (PR: #1523)
- ๐จ File resource leak in pretty printing. (PR: #1521)
- โฌ๏ธ Bump commons-io version. (PR: #1530)
- ๐จ prettyprinter
- role
- template
- Relax template parameter constraint. (PR: #1535)
๐จ Refactoring
- ๐ฑ โ ๏ธ [BREAKING] Get rid of snapshotLength and hasNewContent. (PR: #1576)
- ๐ฑ โ ๏ธ [BREAKING] CompilationUnit#create renamed to getOrCreate. (PR: #1645)
- ๐ฑ โ ๏ธ [BREAKING] CtModifiable add/removeModifier stick to convention on returned object. (PR: #1706)
- ๐ฑ โ ๏ธ [BREAKING] Remove ant related code and dependency. (PR: #1540)
- ๐ฆ โ ๏ธ [BREAKING] Move ElementPrinterHelper to the appropriate package. (PR: #1551)
- ๐ฑ โ ๏ธ [BREAKING] GetBoundingType returns Object by default. (PR: #1672)
- All non-leaf interfaces of the metamodel should be visited by CtInheritanceScanner. (PR: #1703)
- โ Remove replace methods which pollute code completion and do not provide additional behavior. (PR: #1704)
- ๐ฆ Move package
spoon.generating.*
from src/main to src/test. (PR: #1647) - Introduce CommentHelper, LiteralHelper and OperatorHelper. (PR: #1525)
- Compute CtRole#forName automatically based on enum value names. (PR: #1702)
- ๐จ PrinterHelper prints tabs automatically. (PR: #1566)
- 0๏ธโฃ DefaultJavaPrettyPrinter better uses OperatorHelper. (PR: #1553)
- โ Delete old/useless config files. (PR: #1548)
- ๐ Launcher#buildModel returns a CtModel. (PR: #1549)
- โ Add constant for code compliance level. (PR: #1543)
- โ Test code assumes java 8 compliance so as to allow lambdas in spoon code. (PR: #1539)
- 0๏ธโฃ Use LiteralHelper in DefaultJavaPrettyPrinter. (PR: #1529)
- modifier : CreateCtModifierHandler that handles the modifiers. (PR: #1677)
- role
๐ Performance
- โ MainTest#checkModelIsTree needs less memory. (PR: #1596)
- Avoid slow CCE. Check acceptable type when possible. (PR: #1541)
โ Tests
- โ Add a test about the behavior of PropertySetter. (PR: #1612)
- SpoonMetaModel checks whether provided model is complete. (PR: #1714)
- โ Add an architectural test to catch package creation during code review. (PR: #1696)
- ๐ Fix typo in MMType. (PR: #1708)
- Check that CtComment works with \r separator. (PR: #1679)
- โ Add explicit Spoon metamodel to facilitate consistency checks and code generation. (PR: #1627)
- ๐ฆ Declares missing packages for new architecture enforcing test. (PR: #1710)
- โ Adds a test on roles for CtReference fields. (PR: #1601)
- โ Don't use Junit3 classes in test suite, only use Junit4 org.junit.*. (PR: #1577)
- โ Add a test to verify an important contract of setParent. (PR: #1591)
- โ Add a new test to check if static imports are placed after type imports. (PR: #1572)
- โ Enforce test naming discipline. (PR: #1554)
- ๐ The ant dependency was removed so the test should be changed. (PR: #1547)
- ๐ Fix test assertion with JDK8 1.8.0_15 on Travis. (PR: #1718)
- ๐จ Refactor: Faster test execution. (PR: #1552)
๐ Documentation
- ๐ Improve getting started. (PR: #1676)
- ๐ Clarify CtType#getAllMethods documentation. (PR: #1644)
- End-of-life for mailing list spoon-discuss. (PR: #1643)
- Clarifies contracts of @DerivedProperty. (PR: #1613)
- ๐ Move around some documentation items for easier finding. (PR: #1564)
- โ Add recent papers that use Spoon. (PR: #1556)
- ๐ Update version number after the new release 5.9.0. (PR: #1517)
Other
- ๐ Change Revapi template to have class name shortening by a bunch of Freemarker macros. (PR: #1697)
- Revapi reports are smaller on screen to save space on the corresponding Github page. (PR: #1692)
- Revapi now deletes its own comments before commenting. (PR: #1683)
- ๐ Improve Travis configuration for parallel jobs. (PR: #1655)
- โฌ๏ธ Bump revapi version. (PR: #1665)
- โฌ๏ธ Upgrade to org.eclipse.tycho:org.eclipse.jdt.core:3.13.0. (PR: #1492)
- Now depends on Java8/JDK8. (PR: #1528)
- maven : Remove maven reporting plugins that we never use. (PR: #1560)
- Prepare for next development iteration.
Authors
Name Nb Commit Simon Urli 49 Pavel Vojtechovsky 44 Martin Monperrus 22 Thomas Durieux 4 tiagodrcarvalho 1 Lukas Krejci 1 -
v5.9.0 Changes
September 06, 2017Spoon release on this back-to-work times!
๐ฑ Thanks to all contributors ๐
๐ Changelog
๐ New features
- Introduce NamedElementFilter (because NameFilter is ill-designed). (PR: #1500)
- In auto-import mode, imports from original source code are reused. (PR: #1499)
- โ Add automatically generated comments in template-produced code. (PR: #1465)
- โ Add support for short pretty-printing of annotation value when appropriate. (PR: #1485)
- ๐จ prettyprinter : DefaultJavaPrettyPrinter#setLineSeparator(String). (PR: #1490)
๐ Bug Fixes
- ๐ Fix a stack overflow when calling getDeclaration in noclasspath. (PR: #1515)
- ๐ Fix issue related to processing generic types. (PR: #1504)
- ๐ Fix NPE in noclasspath mode. (PR: #1502)
- Compute positions of elements. (PR: #1493)
- ๐ Support substitution of references to target type in inner type. (PR: #1477)
- setInputClassloader : Bug when using a URLClassLoader with standard URLs. (PR: #1507)
- comment : Splitting of comment by EOL. (PR: #1455)
- template : Object is not an template parameter implicitly. (PR: #1461)
- reference : Fix getReference of an unknown class that has the same name as an existing class. (PR: #1480)
๐ Documentation
- โก๏ธ Update usage of maven plugin to latest version 2.5. (PR: #1508)
- โ Remove information about deleted stable branch. (PR: #1474)
- ๐ release : Update release information in documentation. (PR: #1471)
๐จ Refactoring
- Encoding is correctly handled in Environment. (PR: #1498)
- ๐ฆ Deprecate PrettyPrinter#getPackageDeclaration. (PR: #1489)
- ๐จ printer : Remove deprecated method from PrinterHelper. (PR: #1472)
๐ Performance
- Compile comments only if needed. (PR: #1487)
- Collect list of source files only once. (PR: #1486)
- No call to expensive toString in DoNotFurtherTemplateThisElement. (PR: #1478)
โ Tests
- ๐ Fix CtRenameLocalVariableRefactoringTest#testRenameAllLocalVariablesOfRenameTestSubject. (PR: #1491)
Community
- ๐ @pvojtechovsky gets merge honor and responsibility. (PR: #1468)
Other
- ๐ Fix pom.xml to allow deploying snapshots. (PR: #1495)
- Prepare for next development iteration.
Authors
Name Nb Commit Pavel Vojtechovsky 11 Simon Urli 10 Wreulicke 1 Marcel Steinbeck 1 Lionel Seinturier 1 Thomas Durieux 1 Jan Galinski 1 Martin Monperrus 1 -
v0.1.0 Changes
September 26, 2019๐ Initial release of spoon-decompiler
๐ This release contains the following functionalities:
- JarLauncher
- DecompiledResource
- SpoonCLassFileTransformer
- Wwrapper for two decompilers (CFR and Procyon)