Skip to content

Commit e3eb62d

Browse files
authored
MapStruct Spring Extensions 1.1.2 released (#149)
1 parent f89f7ec commit e3eb62d

File tree

165 files changed

+8087
-45306
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

165 files changed

+8087
-45306
lines changed
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
---
2+
title: "MapStruct Spring Extensions 1.1.2 released"
3+
author: Raimund Klein
4+
date: "2024-08-31"
5+
tags: [ release, news ]
6+
---
7+
8+
It is my pleasure to announce the next official release of MapStruct Spring Extensions.
9+
What started out as a [StackOverflow question](https://stackoverflow.com/q/58081224/3361467) turned into its
10+
own [(sub-)project](https://github.com/mapstruct/mapstruct-spring-extensions) within the MapStruct organization.
11+
12+
Changes in this release:
13+
14+
- TypeDescriptors will now be kept as fields in generated ConversionServiceAdapters which can speed up the conversion
15+
process. Thanks to [Jesse Bonzo](https://github.com/jbonzohln) for this contribution.
16+
- The [generated ConverterScan](https://mapstruct.org/documentation/spring-extensions/reference/html/#generateConverterScan)
17+
so far used the legacy `@PostConstruct` annotation from the deprecated `javax.annotation` package underneath. Thanks
18+
to [Jeff Schnitzer](https://github.com/stickfigure)'s contribution, the generator now checks for the availability of
19+
the "new" `jakarta.annotation.PostConstruct` annotation and will prefer this if it's available. For reasons of backwards
20+
compatibility, `javax.annotation.PostConstruct` is the fallback.
21+
22+
Including the annotations and extensions defined in this project will generate a class acting as bridge between
23+
MapStruct's conventions and Spring'
24+
s [ConversionService API](https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#core-convert-ConversionService-API)
25+
that in turn can be added to any Mapper's `uses` attribute. See
26+
the [examples](https://github.com/mapstruct/mapstruct-spring-extensions/tree/master/examples) for details.
27+
28+
<!--more-->
29+
30+
### Thanks
31+
32+
Thanks to [Sjaak Derksen](https://github.com/sjaakd) for suggesting this solution
33+
and [Filip Hrisafov](https://github.com/filiphr) for opening the community project.
34+
Also thanks
35+
to [Cosimo Damiano Prete](https://github.com/cdprete), [Daniel Shiplett](https://github.com/danielshiplett), [Alexey](https://github.com/PRIESt512), [Olivier Boudet](https://github.com/olivierboudet), [John Kelly](https://github.com/postalservice14), [Myat Min](https://github.com/myatmin), [Hypercube Software](https://github.com/hypercube-software), [coding-guo](https://github.com/coding-guo), [freund17](https://github.com/freund17), [Joose Haverinen](https://github.com/joosehav), [pw-lehre](https://github.com/pw-lehre),
36+
and [George Noble](https://github.com/giorgioscia) for their suggestions and fixes in previous releases.
37+
If you feel like there's something missing in MapStruct which could make the Spring experience any smoother, please get
38+
involved!
39+
40+
Also, if your favourite library or framework could use some tweaking with regard to MapStruct, contact us.
41+
42+
Happy coding with MapStruct Spring Extensions!
43+
44+
### Download
45+
46+
You can fetch the release from Maven Central using the following GAV coordinates:
47+
48+
* Annotation
49+
JAR: [org.mapstruct.extensions.spring:mapstruct-spring-annotations:1.1.2](http://search.maven.org/#artifactdetails|org.mapstruct.extensions.spring|mapstruct-spring-annotations|1.1.2|jar)
50+
* Annotation processor
51+
JAR: [org.mapstruct.extensions.spring:mapstruct-spring-extensions:1.1.2](http://search.maven.org/#artifactdetails|org.mapstruct.extensions.spring|mapstruct-spring-extensions|1.1.2|jar)
52+
* Test Extensions with Converter Scan
53+
JAR: [org.mapstruct.extensions.spring:mapstruct-spring-extensions:1.1.2](http://search.maven.org/#artifactdetails|org.mapstruct.extensions.spring|mapstruct-spring-test-extensions|1.1.2|jar)
54+
55+
Alternatively, you can get ZIP and TAR.GZ distribution bundles - containing all the JARs, documentation
56+
etc. - [from GitHub](https://github.com/mapstruct/mapstruct-spring-extensions/releases/tag/v1.1.2).
57+
58+
If you run into any trouble or would like to report a bug, feature request or similar, use the following channels to get
59+
in touch:
60+
61+
* Get help in our [Gitter room](https://gitter.im/mapstruct/mapstruct-users) or at
62+
the [mapstruct-users](https://groups.google.com/forum/?fromgroups#!forum/mapstruct-users) group
63+
* Report bugs and feature requests via
64+
the [issue tracker](https://github.com/mapstruct/mapstruct-spring-extensions/issues)
65+
* Follow [@GetMapStruct](https://twitter.com/GetMapStruct) on Twitter

data/releases/spring-extensions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name = "Spring Extensions"
22
versionRef = "spring-extensions"
33
order = 450
4-
releaseDate = 2023-09-25
4+
releaseDate = 2024-08-31
55
spring = true

static/documentation/spring-extensions/api/annotations/allclasses-index.html

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,25 @@
33
<html lang="de">
44
<head>
55
<!-- Generated by javadoc -->
6-
<title>All Classes (annotations 1.1.1 API)</title>
6+
<title>All Classes (annotations 1.1.2 API)</title>
77
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
88
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
9-
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
9+
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.min.css" title="Style">
10+
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
1011
<script type="text/javascript" src="script.js"></script>
1112
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
1213
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
1314
<!--[if IE]>
1415
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
1516
<![endif]-->
16-
<script type="text/javascript" src="jquery/jquery-3.4.1.js"></script>
17-
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
17+
<script type="text/javascript" src="jquery/jquery-3.6.1.min.js"></script>
18+
<script type="text/javascript" src="jquery/jquery-ui.min.js"></script>
1819
</head>
1920
<body>
2021
<script type="text/javascript"><!--
2122
try {
2223
if (location.href.indexOf('is-external=true') == -1) {
23-
parent.document.title="All Classes (annotations 1.1.1 API)";
24+
parent.document.title="All Classes (annotations 1.1.2 API)";
2425
}
2526
}
2627
catch(err) {
@@ -112,7 +113,7 @@ <h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
112113
<td class="colFirst"><a href="org/mapstruct/extensions/spring/DelegatingConverter.html" title="annotation in org.mapstruct.extensions.spring">DelegatingConverter</a></td>
113114
<th class="colLast" scope="row">
114115
<div class="block">Indicates that the system should generate a delegating <a href="https://docs.spring.io/spring/docs/5.0.0.RELEASE/javadoc-api/org/springframework/core/convert/converter/Converter.html?is-external=true" title="class or interface in org.springframework.core.convert.converter" class="externalLink"><code>Converter</code></a> that will call the annotated method in its
115-
own <a href="https://docs.spring.io/spring/docs/5.0.0.RELEASE/javadoc-api/org/springframework/core/convert/converter/Converter.html?is-external=true#convert(S)" title="class or interface in org.springframework.core.convert.converter" class="externalLink"><code>Converter.convert(Object)</code></a>.</div>
116+
own <a href="https://docs.spring.io/spring/docs/5.0.0.RELEASE/javadoc-api/org/springframework/core/convert/converter/Converter.html?is-external=true#convert-S-" title="class or interface in org.springframework.core.convert.converter" class="externalLink"><code>Converter.convert(Object)</code></a>.</div>
116117
</th>
117118
</tr>
118119
<tr id="i2" class="altColor">

static/documentation/spring-extensions/api/annotations/allclasses.html

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,31 @@
33
<html lang="de">
44
<head>
55
<!-- Generated by javadoc -->
6-
<title>All Classes (annotations 1.1.1 API)</title>
6+
<title>All Classes (annotations 1.1.2 API)</title>
77
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
88
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
9-
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
9+
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.min.css" title="Style">
10+
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
1011
<script type="text/javascript" src="script.js"></script>
1112
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
1213
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
1314
<!--[if IE]>
1415
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
1516
<![endif]-->
16-
<script type="text/javascript" src="jquery/jquery-3.4.1.js"></script>
17-
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
17+
<script type="text/javascript" src="jquery/jquery-3.6.1.min.js"></script>
18+
<script type="text/javascript" src="jquery/jquery-ui.min.js"></script>
1819
</head>
1920
<body>
21+
<main role="main">
2022
<h1 class="bar">All&nbsp;Classes</h1>
21-
<main role="main" class="indexContainer">
23+
<div class="indexContainer">
2224
<ul>
2325
<li><a href="org/mapstruct/extensions/spring/AdapterMethodName.html" title="annotation in org.mapstruct.extensions.spring">AdapterMethodName</a></li>
2426
<li><a href="org/mapstruct/extensions/spring/DelegatingConverter.html" title="annotation in org.mapstruct.extensions.spring">DelegatingConverter</a></li>
2527
<li><a href="org/mapstruct/extensions/spring/ExternalConversion.html" title="annotation in org.mapstruct.extensions.spring">ExternalConversion</a></li>
2628
<li><a href="org/mapstruct/extensions/spring/SpringMapperConfig.html" title="annotation in org.mapstruct.extensions.spring">SpringMapperConfig</a></li>
2729
</ul>
30+
</div>
2831
</main>
2932
</body>
3033
</html>

static/documentation/spring-extensions/api/annotations/allpackages-index.html

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,25 @@
33
<html lang="de">
44
<head>
55
<!-- Generated by javadoc -->
6-
<title>All Packages (annotations 1.1.1 API)</title>
6+
<title>All Packages (annotations 1.1.2 API)</title>
77
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
88
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
9-
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
9+
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.min.css" title="Style">
10+
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
1011
<script type="text/javascript" src="script.js"></script>
1112
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
1213
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
1314
<!--[if IE]>
1415
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
1516
<![endif]-->
16-
<script type="text/javascript" src="jquery/jquery-3.4.1.js"></script>
17-
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
17+
<script type="text/javascript" src="jquery/jquery-3.6.1.min.js"></script>
18+
<script type="text/javascript" src="jquery/jquery-ui.min.js"></script>
1819
</head>
1920
<body>
2021
<script type="text/javascript"><!--
2122
try {
2223
if (location.href.indexOf('is-external=true') == -1) {
23-
parent.document.title="All Packages (annotations 1.1.1 API)";
24+
parent.document.title="All Packages (annotations 1.1.2 API)";
2425
}
2526
}
2627
catch(err) {

static/documentation/spring-extensions/api/annotations/constant-values.html

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,25 @@
33
<html lang="de">
44
<head>
55
<!-- Generated by javadoc -->
6-
<title>Constant Field Values (annotations 1.1.1 API)</title>
6+
<title>Constant Field Values (annotations 1.1.2 API)</title>
77
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
88
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
9-
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
9+
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.min.css" title="Style">
10+
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
1011
<script type="text/javascript" src="script.js"></script>
1112
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
1213
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
1314
<!--[if IE]>
1415
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
1516
<![endif]-->
16-
<script type="text/javascript" src="jquery/jquery-3.4.1.js"></script>
17-
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
17+
<script type="text/javascript" src="jquery/jquery-3.6.1.min.js"></script>
18+
<script type="text/javascript" src="jquery/jquery-ui.min.js"></script>
1819
</head>
1920
<body>
2021
<script type="text/javascript"><!--
2122
try {
2223
if (location.href.indexOf('is-external=true') == -1) {
23-
parent.document.title="Constant Field Values (annotations 1.1.1 API)";
24+
parent.document.title="Constant Field Values (annotations 1.1.2 API)";
2425
}
2526
}
2627
catch(err) {
@@ -92,7 +93,7 @@
9293
<main role="main">
9394
<div class="header">
9495
<h1 title="Constant Field Values" class="title">Constant Field Values</h1>
95-
<section role="region">
96+
<section>
9697
<h2 title="Contents">Contents</h2>
9798
</section>
9899
</div>

static/documentation/spring-extensions/api/annotations/deprecated-list.html

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,25 @@
33
<html lang="de">
44
<head>
55
<!-- Generated by javadoc -->
6-
<title>Deprecated List (annotations 1.1.1 API)</title>
6+
<title>Deprecated List (annotations 1.1.2 API)</title>
77
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
88
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
9-
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
9+
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.min.css" title="Style">
10+
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
1011
<script type="text/javascript" src="script.js"></script>
1112
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
1213
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
1314
<!--[if IE]>
1415
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
1516
<![endif]-->
16-
<script type="text/javascript" src="jquery/jquery-3.4.1.js"></script>
17-
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
17+
<script type="text/javascript" src="jquery/jquery-3.6.1.min.js"></script>
18+
<script type="text/javascript" src="jquery/jquery-ui.min.js"></script>
1819
</head>
1920
<body>
2021
<script type="text/javascript"><!--
2122
try {
2223
if (location.href.indexOf('is-external=true') == -1) {
23-
parent.document.title="Deprecated List (annotations 1.1.1 API)";
24+
parent.document.title="Deprecated List (annotations 1.1.2 API)";
2425
}
2526
}
2627
catch(err) {

static/documentation/spring-extensions/api/annotations/help-doc.html

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,25 @@
33
<html lang="de">
44
<head>
55
<!-- Generated by javadoc -->
6-
<title>API Help (annotations 1.1.1 API)</title>
6+
<title>API Help (annotations 1.1.2 API)</title>
77
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
88
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
9-
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
9+
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.min.css" title="Style">
10+
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
1011
<script type="text/javascript" src="script.js"></script>
1112
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
1213
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
1314
<!--[if IE]>
1415
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
1516
<![endif]-->
16-
<script type="text/javascript" src="jquery/jquery-3.4.1.js"></script>
17-
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
17+
<script type="text/javascript" src="jquery/jquery-3.6.1.min.js"></script>
18+
<script type="text/javascript" src="jquery/jquery-ui.min.js"></script>
1819
</head>
1920
<body>
2021
<script type="text/javascript"><!--
2122
try {
2223
if (location.href.indexOf('is-external=true') == -1) {
23-
parent.document.title="API Help (annotations 1.1.1 API)";
24+
parent.document.title="API Help (annotations 1.1.2 API)";
2425
}
2526
}
2627
catch(err) {
@@ -97,7 +98,7 @@ <h1 class="title">How This API Document Is Organized</h1>
9798
<div class="contentContainer">
9899
<ul class="blockList">
99100
<li class="blockList">
100-
<section role="region">
101+
<section>
101102
<h2>Package</h2>
102103
<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain six categories:</p>
103104
<ul>
@@ -111,7 +112,7 @@ <h2>Package</h2>
111112
</section>
112113
</li>
113114
<li class="blockList">
114-
<section role="region">
115+
<section>
115116
<h2>Class or Interface</h2>
116117
<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p>
117118
<ul>
@@ -141,7 +142,7 @@ <h2>Class or Interface</h2>
141142
</section>
142143
</li>
143144
<li class="blockList">
144-
<section role="region">
145+
<section>
145146
<h2>Annotation Type</h2>
146147
<p>Each annotation type has its own separate page with the following sections:</p>
147148
<ul>
@@ -154,7 +155,7 @@ <h2>Annotation Type</h2>
154155
</section>
155156
</li>
156157
<li class="blockList">
157-
<section role="region">
158+
<section>
158159
<h2>Enum</h2>
159160
<p>Each enum has its own separate page with the following sections:</p>
160161
<ul>
@@ -166,7 +167,7 @@ <h2>Enum</h2>
166167
</section>
167168
</li>
168169
<li class="blockList">
169-
<section role="region">
170+
<section>
170171
<h2>Tree (Class Hierarchy)</h2>
171172
<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with <code>java.lang.Object</code>. Interfaces do not inherit from <code>java.lang.Object</code>.</p>
172173
<ul>
@@ -176,37 +177,37 @@ <h2>Tree (Class Hierarchy)</h2>
176177
</section>
177178
</li>
178179
<li class="blockList">
179-
<section role="region">
180+
<section>
180181
<h2>Deprecated API</h2>
181182
<p>The <a href="deprecated-list.html">Deprecated API</a> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</p>
182183
</section>
183184
</li>
184185
<li class="blockList">
185-
<section role="region">
186+
<section>
186187
<h2>Index</h2>
187188
<p>The <a href="index-all.html">Index</a> contains an alphabetic index of all classes, interfaces, constructors, methods, and fields, as well as lists of all packages and all classes.</p>
188189
</section>
189190
</li>
190191
<li class="blockList">
191-
<section role="region">
192+
<section>
192193
<h2>All&nbsp;Classes</h2>
193194
<p>The <a href="allclasses.html">All Classes</a> link shows all classes and interfaces except non-static nested types.</p>
194195
</section>
195196
</li>
196197
<li class="blockList">
197-
<section role="region">
198+
<section>
198199
<h2>Serialized Form</h2>
199200
<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.</p>
200201
</section>
201202
</li>
202203
<li class="blockList">
203-
<section role="region">
204+
<section>
204205
<h2>Constant Field Values</h2>
205206
<p>The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.</p>
206207
</section>
207208
</li>
208209
<li class="blockList">
209-
<section role="region">
210+
<section>
210211
<h2>Search</h2>
211212
<p>You can search for definitions of modules, packages, types, fields, methods and other terms defined in the API, using some or all of the name. "Camel-case" abbreviations are supported: for example, "InpStr" will find "InputStream" and "InputStreamReader".</p>
212213
</section>

0 commit comments

Comments
 (0)