|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to this project will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html) beginning with version [Unreleased]. |
| 6 | + |
| 7 | +## [Unreleased] |
| 8 | + |
| 9 | +### Added |
| 10 | + |
| 11 | +- Trivial recovery strategy to generate model elements for unresolved proxy objects |
| 12 | +- Parser: `TextBlock`s are converted to `TextBockReference`s so that model elements are generated for text blocks |
| 13 | + |
| 14 | +### Changed |
| 15 | + |
| 16 | +- Minimum required Java version: Java 17 |
| 17 | +- Supported Eclipse version: 2022-12 |
| 18 | +- Third variant: bindings of parameters and local variables are also resolved |
| 19 | + |
| 20 | +### Deprecated |
| 21 | + |
| 22 | +### Removed |
| 23 | + |
| 24 | +### Fixed |
| 25 | + |
| 26 | +### Security |
| 27 | + |
| 28 | +## [5.1.0] - 2022-01-21 |
| 29 | + |
| 30 | +From here, independent development by the Institute of Information Security and Dependability (KASTEL) at the Karlsruher Institute of Technology (KIT) resulting in the following changes. |
| 31 | + |
| 32 | +### Added |
| 33 | + |
| 34 | +- Meta-model support for features of Java 7-15: |
| 35 | + - Java 7 |
| 36 | + - Diamond in class instance creation expressions |
| 37 | + - `try`-with-resources statements |
| 38 | + - Multi-`catch` |
| 39 | + - Binary integer literals |
| 40 | + - Java 8 |
| 41 | + - Lambda expressions |
| 42 | + - Method reference expressions |
| 43 | + - Receiver parameters |
| 44 | + - Default interface methods |
| 45 | + - Further positions of annotations |
| 46 | + - Java 9 |
| 47 | + - Modules |
| 48 | + - Java 10/11 |
| 49 | + - `var` as local variable type |
| 50 | + - Java 14 |
| 51 | + - Switch expressions |
| 52 | + - Java 15 |
| 53 | + - Text blocks |
| 54 | +- Meta-model extensions: |
| 55 | + - `origin` field in the `JavaRoot` to represent the source (source file, class file, file from an archive, binding) of a Java model |
| 56 | + - `Reference`s include an optional list of `TypeReference`s to store concrete types and type arguments in contexts in which the types are usually inferred |
| 57 | +- Manual printer implementation |
| 58 | +- Parser implementation based on Eclipse JDT which converts the AST to a model |
| 59 | +- First variant for the reference resolution: Eclipse JDT bindings are used to directly set references |
| 60 | +- Third variant for the reference resolution (as combination of first and second one): proxy objects which are set for references can be resolved after the parsing (based on the Eclipse JDT bindings) or on demand |
| 61 | + |
| 62 | +### Changed |
| 63 | + |
| 64 | +- Minimum required Java version: Java 11 |
| 65 | +- Supported Eclipse version: 2021-12 |
| 66 | +- Update to Apache Commons Byte Code Engineering Library 6.5.0 |
| 67 | +- Meta-model: `TypeReference` inherits from `ArrayTypeable` so that a type can store information about array dimensions and if it is an array |
| 68 | +- Turned the extended reference resolution mechanism from the original version into the second variant for the reference resolution: proxy objects which are set for references are resolved on demand |
| 69 | +- Standalone version is based on the first variant |
| 70 | + |
| 71 | +### Removed |
| 72 | + |
| 73 | +- Java syntax definition in CS specification language and the generated parser and printer |
| 74 | + |
| 75 | +### Known Issues |
| 76 | + |
| 77 | +- First variant: ends in `StackOverflowException` because of an endless loop, also affects standalone version |
| 78 | + |
| 79 | +## Original JaMoPP Version - before 2019 |
| 80 | + |
| 81 | +Originally, developed by DevBoost GmbH and Software Technology Group, Dresden University of Technology. It consists of the development up to version [1.4.0] and the [development after 1.4.0] resulting in the following features. |
| 82 | + |
| 83 | +- Ecore-based meta-model for the Java programming language covering the syntax up to and including Java 6 |
| 84 | +- Definition of Java syntax in CS specification language of EMFText to generate a parser (Java source code -> Java model) and printer (Java model -> Java source code) |
| 85 | +- Loader for class files which generates Java models from class files (based on Apache Commons Byte Code Engineering Library 6.2.0) |
| 86 | +- Extended reference resolution mechanisms of generated EMFText code to connect Java models by language-specific links |
| 87 | +- Integration into the Eclipse IDE |
| 88 | +- Tests for the parsing (checks if generated model contains the expected elements) |
| 89 | +- Tests for the parsing and printing (checks if printed code is equal to parsed code by parsing both source codes with Eclipse JDT and comparing the resulting ASTs) |
| 90 | + |
| 91 | +[Unreleased]: https://github.com/PalladioSimulator/Palladio-Supporting-EclipseJavaDevelopmentTools/compare/releases/5.1.0...HEAD |
| 92 | +[5.1.0]: https://github.com/PalladioSimulator/Palladio-Supporting-EclipseJavaDevelopmentTools/compare/8bc07...releases/5.1.0 |
| 93 | +[development after 1.4.0]: https://github.com/PalladioSimulator/Palladio-Supporting-EclipseJavaDevelopmentTools/compare/e46b0...8bc07 |
| 94 | +[1.4.0]: https://github.com/PalladioSimulator/Palladio-Supporting-EclipseJavaDevelopmentTools/commit/e46b0003803a8ccda7c3aa380ff2c759937d1ccb |
0 commit comments