MapStruct 1.2.0.Final is out
I’m very happy to announce the final version MapStruct 1.2!
After less than a year from the 1.1.0.Final release, 3 Beta and 2 CR releases, MapStruct 1.2.0.Final is finally out :).
Besides bug fixes, the 1.2 release brings some new interesting features:
- MapStruct can be used with Lombok out of the box
- Java 8 Stream support
- Mappings based on public fields
- Automatic creation of nested mapping methods
- Mapping methods can take “pass-through” context parameters, addressing different use cases like
- Passing a locale, timezone or similar to custom mapping methods
- Keeping track of processed nodes in circular object graphs
- Target bean factory methods can access a mapping’s source parameter(s)
- Nested target mappings have been reworked from the ground up
- Java 9 Compatibility
For more details checkout the individual release announcements for the Beta1, Beta2, Beta3, CR1 and CR2 releases. Also make sure to look at the migration notes (for Beta1 and Beta3) and the GitHub release notes for the rest of the releases.
We would not have been here without the great support of our users and contributors. So let me say a big thank you to everyone involved, be it through reporting bugs, starting discussions on the mailing list and, of course, helping out with contributions on the code base itself.
The following people have contributed to the MapStruct 1.2 release: Dmytro Polovinkin, Maxim Kolesnikov, Pascal Grün, Remo Meier, Harald Brabenetz, Alexander Zhuravlev, John Watson, 44past4, Azork, iersel, idkw, Aleksandr Shalugin, Cornelius Dirmeier, Darren Rambaud, Tillerino, Kevin Grüneberg and Thomas Eckl as well as seasoned MapStruct hackers Andreas Gudian, Filip Hrisafov, Sjaak Derksen and Gunnar Morling.
Big Thank You to all of you, your efforts and hard work are highly appreciated.
In total 111 issues have been fixed between 1.1.0.Final and 1.2.0.Final releases.
There are already some PRs in the pipeline, some ready to be merged, some need some time for one of the most requested features for MapStruct.
Two features planned for 1.3 are builders support (also support for AutoValue builders) and support for constructor injection for the generated mappers.
After that, it won’t be too long until MapStruct 2.0. We’ve planned to go to a new major version rather soon, allowing us to get rid of some deprecated features and drop support for Java 6 and 7. This will help us to keep the codebase maintainable and focus on exciting new mapping features.
Also take a look at the backlog. If there is anything in there you’d like to see addressed rather sooner than later, let us know by commenting or voting.
You can find MapStruct 1.2.0.Final in Maven Central under the following GAV coordinates:
- Annotation JAR: org.mapstruct:mapstruct-jdk8:1.2.0.Final (for usage with Java >= 8) or org.mapstruct:mapstruct:1.2.0.Final (for earlier Java versions)
- Annotation processor JAR: org.mapstruct:mapstruct-processor:1.2.0.Final
Alternatively, you can get ZIP and TAR.GZ distribution bundles - containing all the JARs, documentation etc. - from GitHub.
To get in touch, post a comment below or use one the following channels:
- Get help at the mapstruct-users group or in our Gitter room
- Report bugs and feature requests via the issue tracker
- Follow @GetMapStruct on Twitter
- Follow MapStruct on Google+