Java 8 as a baseline, null value property mappings improved builders support and much more: MapStruct 1.3.0.Beta2 is out

It’s my pleasure to announce the second Beta release of MapStruct 1.3.

With the new Release we have finally made the switch to Java 8 as a baseline.

There are a whole lot of new enhancements as well, e.g.:

  • New NullValuePropertyMappingStrategy for controlling how properties are for update methods
  • Warnings for precision loss
  • Caching and reusing javax.xml.datatype.DatatypeFactory
  • Recursive source presence tracking
  • Improvements in the builders support

Read more...

Support for builders, mapper constructor injection and much more: MapStruct 1.3.0.Beta1 is out

It’ my pleasure to announce the first Beta release of MapStruct 1.3.

The new release comes with a whole lot of new functionality, e.g.:

  • Mapping of (immutable) objects using builders
  • Constructor injection for Annotation Based component models
  • unmappedSourcePolicy support
  • Support for defaultExpression
  • Limit mapping only to explicitly defined mappings
  • Performance improvement of constant / defaultValue primitive to String mappings

Read more...

Filip Hrisafov Taking Over as MapStruct Project Lead

It’s with great happiness and excitement that I’m announcing that Filip Hrisafov is taking over the role of MapStruct’s project lead!

Really that’s just manifesting the status quo of the last couple of months, during which Filip already was acting in that role effectively. As I’ve been able to contribute less and less time towards MapStruct over the last year, it was about time to pass on the baton to a new lead, with many fresh ideas and a great level of enthusiasm.

Filip joined the team in 2016, sending in a patch for improving our test suite. Since then, he became an invaluable member of the MapStruct community. He implemented several new features and stepped up to help with reviewing pull requests, providing help to new contributors, answering related questions on StackOverflow and even doing the last few releases of the project.

Having had the pleasure of working with Filip over the last years, I’m convinced that going forward he’s the perfect person for leading the project.

Read more...

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

Read more...

MapStruct support for IntelliJ IDEA

I am very happy to announce the first version of the MapStruct IntelliJ IDEA plugin. Now we have official support for 2 IDEs, Eclipse being the first IDE for which we had support from earlier (plugin here).

With the power of IntelliJ you now get completions in @Mapping and @ValueMapping annotations (also for nested mappings ;)). Apart from that you also get support for: finding usages of methods directly within annotations, going to declarations from annotations, highlighting support within annotations and refactoring support.

Read more...