12 Commits

4 changed files with 70 additions and 10 deletions

8
.gitignore vendored
View File

@ -132,3 +132,11 @@ gradle-app.setting
# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
# gradle/wrapper/gradle-wrapper.properties
## maven release plugin
*.releaseBackup
release.properties
## maven versions plugin
*.versionsBackup

View File

@ -2,13 +2,31 @@
Additional DefaultAccessorNamingStrategy to support fluent API withXYZ setters.
[![License](https://img.shields.io/badge/License-Apache%202.0-yellowgreen.svg)](https://github.com/mapstruct/mapstruct/blob/master/LICENSE.txt)
* [What is MapStruct?](#what-is-mapstruct)
* [Features](#features)
* [Usage](#usage)
* [Example](#example)
* [Requirements](#requirements)
* [Building from Source](#building-from-source)
* [Licensing](#licensing)
## What is MapStruct?
MapStruct is a Java [annotation processor](https://docs.oracle.com/javase/6/docs/technotes/guides/apt/index.html) for the generation of type-safe and performant mappers for Java bean classes.
To learn more about MapStruct have a look at the [mapstruct](https://github.com/mapstruct/mapstruct) repository or the [website](https://mapstruct.org/)
## Features
Mapstruct default naming strategy detects the methods `withFirstName` and `withLastName` (see example below) as extra
target fields and therefore cause an error, when the mapper is annotated with
`unmappedTargetPolicy = ReportingPolicy.ERROR`.
The additional naming strategy makes Mapstruct ignore the withXYZ setters.
## Installation
## Usage
To use the extended naming strategy, just include it as project dependency alongside with mapstruct.
@ -18,12 +36,12 @@ To use the extended naming strategy, just include it as project dependency along
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.4.2.Final</version>
<version>1.5.5.Final</version>
</dependency>
<dependency>
<groupId>de.muehlencord.mapstruct</groupId>
<artifactId>mapstruct-support</artifactId>
<version>1.4.2</version>
<version>1.5.5</version>
</dependency>
</dependencies>
```
@ -54,7 +72,7 @@ public class Person {
}
/* fluent setter - these are detected as extra setters and would
cause an mapping exception, if the mapper is annotated with
cause a mapping exception, if the mapper is annotated with
unmappedTargetPolicy = ReportingPolicy.ERROR.
*/
@ -71,3 +89,17 @@ public class Person {
```
## Requirements
The MapStruct plugin requires Java 11 or later
## Building from Source
mapstruct-support uses maven as build system. Simple execute
```shell
mvn clean install
```
## Licensing
The MapStruct plugin is licensed under the Apache License, Version 2.0 (the "License"); you may not use it except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0.

4
copyright.txt Normal file
View File

@ -0,0 +1,4 @@
Contributors
============
Joern Muehlencord - https://github.com/jomu78

28
pom.xml
View File

@ -4,11 +4,16 @@
<groupId>de.muehlencord.mapstruct</groupId>
<artifactId>mapstruct-support</artifactId>
<version>1.4.3-SNAPSHOT</version>
<version>1.6.4-SNAPSHOT</version>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<java.version>21</java.version>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<maven.compiler.release>21</maven.compiler.release>
<mapstruct.version>1.6.3</mapstruct.version>
<maven-release-plugin.version>3.1.1</maven-release-plugin.version>
</properties>
<inceptionYear>2021</inceptionYear>
@ -21,6 +26,17 @@
<url>https://jomu.timelord.de/git/jomu/mapstruct-support/issues</url>
</issueManagement>
<distributionManagement>
<repository>
<id>jomu-gitea</id>
<url>https://jomu.timelord.de/git/api/packages/jomu/maven</url>
</repository>
<snapshotRepository>
<id>jomu-gitea</id>
<url>https://jomu.timelord.de/git/api/packages/jomu/maven</url>
</snapshotRepository>
</distributionManagement>
<scm>
<connection>scm:git:https://jomu.timelord.de/git/jomu/mapstruct-support</connection>
<developerConnection>scm:git:git@jomu.timelord.de:jomu/mapstruct-support.git</developerConnection>
@ -46,16 +62,16 @@
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.4.2.Final</version>
<version>${mapstruct.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<groupId>org.apache.maven.plugins</groupId>
<version>3.0.0-M6</version>
<artifactId>maven-release-plugin</artifactId>
<version>${maven-release-plugin.version}</version>
</plugin>
</plugins>
</build>