diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml
index 213dbd3..a5a3afa 100644
--- a/.github/workflows/gradle.yml
+++ b/.github/workflows/gradle.yml
@@ -17,12 +17,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
- - name: Set up JDK 11
- uses: actions/setup-java@v4
+ - uses: actions/checkout@v5
+ - name: Set up JDK 17
+ uses: actions/setup-java@v5
with:
distribution: 'zulu'
- java-version: 11
+ java-version: 17
- name: Build with Gradle
uses: gradle/gradle-build-action@v3
with:
diff --git a/.github/workflows/nightly_checks.yml b/.github/workflows/nightly_checks.yml
deleted file mode 100644
index c3dfb59..0000000
--- a/.github/workflows/nightly_checks.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-# This workflow uses actions that are not certified by GitHub.
-# They are provided by a third-party and are governed by
-# separate terms of service, privacy policy, and support
-# documentation.
-# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
-# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
-
-name: Nightly checks with Gradle
-
-on:
- workflow_dispatch:
- schedule:
- - cron: "0 0 * * *"
-
-permissions:
- contents: read
-
-jobs:
- build:
-
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v4
- - name: Set up JDK 11
- uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: '11'
- - name: Build with Gradle
- uses: gradle/gradle-build-action@v3
- with:
- arguments: dependencyUpdates dependencyCheckAggregate
diff --git a/annotations/build.gradle b/annotations/build.gradle
index 8b2f71d..26bba56 100644
--- a/annotations/build.gradle
+++ b/annotations/build.gradle
@@ -47,8 +47,8 @@ publishing {
}
repositories {
maven {
- def releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
- def snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots/"
+ def releasesRepoUrl = "https://ossrh-staging-api.central.sonatype.com/service/local/staging/deploy/maven2/"
+ def snapshotsRepoUrl = "https://ossrh-staging-api.central.sonatype.com/content/repositories/snapshots/"
url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
credentials {
@@ -66,6 +66,6 @@ signing {
javadoc {
options.links = [
- "https://docs.spring.io/spring/docs/5.0.0.RELEASE/javadoc-api/"
+ "https://docs.spring.io/spring/docs/6.0.0/javadoc-api/"
]
}
diff --git a/build.gradle b/build.gradle
index 6e3528f..c229f91 100644
--- a/build.gradle
+++ b/build.gradle
@@ -55,11 +55,11 @@ subprojects {
apply plugin: "jacoco"
group = 'org.mapstruct.extensions.spring'
- version = '1.1.3'
+ version = '2.0.0'
java {
toolchain {
- languageVersion.set(JavaLanguageVersion.of(11))
+ languageVersion.set(JavaLanguageVersion.of(17))
}
withJavadocJar()
@@ -75,7 +75,7 @@ subprojects {
}
jacoco {
- toolVersion = "0.8.12"
+ toolVersion = "0.8.14"
}
jacocoTestReport {
diff --git a/docs/src/docs/asciidoc/chapter-2-set-up.asciidoc b/docs/src/docs/asciidoc/chapter-2-set-up.asciidoc
index ab9d451..dd2e7a0 100644
--- a/docs/src/docs/asciidoc/chapter-2-set-up.asciidoc
+++ b/docs/src/docs/asciidoc/chapter-2-set-up.asciidoc
@@ -1,7 +1,7 @@
[[setup]]
== Set up
-MapStruct Spring Extensions is a Java annotation processor based on http://www.jcp.org/en/jsr/detail?id=269[JSR 269] and as such can be used within command line builds (javac, Ant, Maven etc.) as well as from within your IDE. The minimum JDK version is 11.
+MapStruct Spring Extensions is a Java annotation processor based on http://www.jcp.org/en/jsr/detail?id=269[JSR 269] and as such can be used within command line builds (javac, Ant, Maven etc.) as well as from within your IDE. The minimum JDK version is 17.
IMPORTANT: Also, you will need MapStruct itself (at least version `1.4.0.Final`) in your project.
@@ -39,8 +39,8 @@ For Maven based projects add the following to your POM file in order to use MapS
maven-compiler-plugin
3.8.1
- 1.8
- 1.8
+ 17
+ 17
org.mapstruct.extensions.spring
@@ -226,7 +226,7 @@ Add the `javac` task configured as follows to your _build.xml_ file in order to
+ classpath="path/to/mapstruct-spring-annotations-{mapstructSpringExtensionsVersion}.jar">
diff --git a/examples/classname/build.gradle b/examples/classname/build.gradle
index a1ddc40..180c723 100644
--- a/examples/classname/build.gradle
+++ b/examples/classname/build.gradle
@@ -6,7 +6,6 @@ dependencies {
testImplementation projects.testExtensions
testImplementation libs.assertj
testImplementation libs.bundles.junit.jupiter
- implementation libs.jsr250
implementation libs.mapstruct.core
annotationProcessor libs.mapstruct.processor
implementation libs.spring.context
diff --git a/examples/custom-conversion-service-bean-with-converter-scan/build.gradle b/examples/custom-conversion-service-bean-with-converter-scan/build.gradle
index 53734ad..289002f 100644
--- a/examples/custom-conversion-service-bean-with-converter-scan/build.gradle
+++ b/examples/custom-conversion-service-bean-with-converter-scan/build.gradle
@@ -5,7 +5,7 @@ dependencies {
testImplementation libs.assertj
testImplementation libs.bundles.junit.jupiter
- implementation libs.jsr250
+ implementation libs.jakarta.annotation
implementation libs.mapstruct.core
annotationProcessor libs.mapstruct.processor
implementation libs.spring.context
diff --git a/examples/custom-conversion-service-bean/build.gradle b/examples/custom-conversion-service-bean/build.gradle
index 53734ad..8c2f547 100644
--- a/examples/custom-conversion-service-bean/build.gradle
+++ b/examples/custom-conversion-service-bean/build.gradle
@@ -5,7 +5,6 @@ dependencies {
testImplementation libs.assertj
testImplementation libs.bundles.junit.jupiter
- implementation libs.jsr250
implementation libs.mapstruct.core
annotationProcessor libs.mapstruct.processor
implementation libs.spring.context
diff --git a/examples/noconfig/build.gradle b/examples/noconfig/build.gradle
index 8de362a..e5ea005 100644
--- a/examples/noconfig/build.gradle
+++ b/examples/noconfig/build.gradle
@@ -6,7 +6,6 @@ dependencies {
testImplementation projects.testExtensions
testImplementation libs.assertj
testImplementation libs.bundles.junit.jupiter
- implementation libs.jsr250
implementation libs.mapstruct.core
annotationProcessor libs.mapstruct.processor
implementation libs.spring.context
diff --git a/examples/packagename-and-classname/build.gradle b/examples/packagename-and-classname/build.gradle
index a1ddc40..180c723 100644
--- a/examples/packagename-and-classname/build.gradle
+++ b/examples/packagename-and-classname/build.gradle
@@ -6,7 +6,6 @@ dependencies {
testImplementation projects.testExtensions
testImplementation libs.assertj
testImplementation libs.bundles.junit.jupiter
- implementation libs.jsr250
implementation libs.mapstruct.core
annotationProcessor libs.mapstruct.processor
implementation libs.spring.context
diff --git a/examples/packagename/build.gradle b/examples/packagename/build.gradle
index a1ddc40..180c723 100644
--- a/examples/packagename/build.gradle
+++ b/examples/packagename/build.gradle
@@ -6,7 +6,6 @@ dependencies {
testImplementation projects.testExtensions
testImplementation libs.assertj
testImplementation libs.bundles.junit.jupiter
- implementation libs.jsr250
implementation libs.mapstruct.core
annotationProcessor libs.mapstruct.processor
implementation libs.spring.context
diff --git a/extensions/build.gradle b/extensions/build.gradle
index fbdf364..095ced4 100644
--- a/extensions/build.gradle
+++ b/extensions/build.gradle
@@ -57,8 +57,8 @@ publishing {
}
repositories {
maven {
- def releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
- def snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots/"
+ def releasesRepoUrl = "https://ossrh-staging-api.central.sonatype.com/service/local/staging/deploy/maven2/"
+ def snapshotsRepoUrl = "https://ossrh-staging-api.central.sonatype.com/content/repositories/snapshots/"
url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
credentials {
diff --git a/extensions/src/main/java/org/mapstruct/extensions/spring/converter/ConverterRegistrationConfigurationGenerator.java b/extensions/src/main/java/org/mapstruct/extensions/spring/converter/ConverterRegistrationConfigurationGenerator.java
index e579cb2..9d5d5a2 100644
--- a/extensions/src/main/java/org/mapstruct/extensions/spring/converter/ConverterRegistrationConfigurationGenerator.java
+++ b/extensions/src/main/java/org/mapstruct/extensions/spring/converter/ConverterRegistrationConfigurationGenerator.java
@@ -1,12 +1,21 @@
package org.mapstruct.extensions.spring.converter;
-import static javax.lang.model.element.Modifier.*;
+import static javax.lang.model.element.Modifier.FINAL;
+import static javax.lang.model.element.Modifier.PRIVATE;
-import com.squareup.javapoet.*;
import java.time.Clock;
import java.util.List;
import java.util.Optional;
+import com.squareup.javapoet.AnnotationSpec;
+import com.squareup.javapoet.ClassName;
+import com.squareup.javapoet.FieldSpec;
+import com.squareup.javapoet.MethodSpec;
+import com.squareup.javapoet.ParameterSpec;
+import com.squareup.javapoet.ParameterizedTypeName;
+import com.squareup.javapoet.TypeSpec;
+import com.squareup.javapoet.WildcardTypeName;
+
public class ConverterRegistrationConfigurationGenerator extends AdapterRelatedGenerator {
private static final ClassName CONFIGURABLE_CONVERSION_SERVICE_CLASS_NAME =
@@ -56,11 +65,7 @@ protected TypeSpec createMainTypeSpec(final ConversionServiceAdapterDescriptor d
}
private ClassName postConstructClassName() {
- if (isTypeAvailable("jakarta.annotation.PostConstruct")) {
return ClassName.get("jakarta.annotation", "PostConstruct");
- } else {
- return ClassName.get("javax.annotation", "PostConstruct");
- }
}
private MethodSpec createRegistrationMethodSpec(
diff --git a/extensions/src/test/java/org/mapstruct/extensions/spring/converter/AbstractConversionServiceBeanNameIndependentGeneratorTest.java b/extensions/src/test/java/org/mapstruct/extensions/spring/converter/AbstractConversionServiceBeanNameIndependentGeneratorTest.java
index 60eaa85..280a81a 100644
--- a/extensions/src/test/java/org/mapstruct/extensions/spring/converter/AbstractConversionServiceBeanNameIndependentGeneratorTest.java
+++ b/extensions/src/test/java/org/mapstruct/extensions/spring/converter/AbstractConversionServiceBeanNameIndependentGeneratorTest.java
@@ -1,48 +1,37 @@
package org.mapstruct.extensions.spring.converter;
+import static java.lang.Boolean.TRUE;
+import static javax.lang.model.SourceVersion.RELEASE_9;
+import static org.mockito.BDDMockito.given;
+import static org.mockito.Mockito.mock;
+
+import java.io.IOException;
+import java.util.Map;
+import javax.annotation.processing.ProcessingEnvironment;
+import javax.lang.model.element.TypeElement;
+import javax.lang.model.util.Elements;
+
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
-import org.mockito.stubbing.Answer;
-
-import javax.annotation.processing.ProcessingEnvironment;
-import javax.lang.model.SourceVersion;
-import javax.lang.model.element.TypeElement;
-import javax.lang.model.util.Elements;
-import java.io.IOException;
-import java.util.Map;
-
-import static java.lang.Boolean.TRUE;
-import static javax.lang.model.SourceVersion.RELEASE_8;
-import static javax.lang.model.SourceVersion.RELEASE_9;
-import static org.mockito.BDDMockito.given;
-import static org.mockito.Mockito.mock;
@ExtendWith(MockitoExtension.class)
abstract class AbstractConversionServiceBeanNameIndependentGeneratorTest extends AdapterRelatedGeneratorTest {
@Mock private Elements elements;
- private boolean isAtLeastJava9;
-
- private final String java8GeneratedExpectedContentFilename;
- private final String java8GeneratedNoDateExpectedContentFileName;
private final String java9PlusGeneratedExpectedContentFileName;
private final String java9PlusGeneratedNoDateExpectedContentFileName;
private final String noGeneratedExpectedContentFileName;
private final AdapterRelatedGenerator underTest;
protected AbstractConversionServiceBeanNameIndependentGeneratorTest(
- final String java8GeneratedExpectedContentFilename,
- final String java8GeneratedNoDateExpectedContentFileName,
final String java9PlusGeneratedExpectedContentFileName,
final String java9PlusGeneratedNoDateExpectedContentFileName,
final String noGeneratedExpectedContentFileName,
final AdapterRelatedGenerator underTest) {
- this.java8GeneratedExpectedContentFilename = java8GeneratedExpectedContentFilename;
- this.java8GeneratedNoDateExpectedContentFileName = java8GeneratedNoDateExpectedContentFileName;
this.java9PlusGeneratedExpectedContentFileName = java9PlusGeneratedExpectedContentFileName;
this.java9PlusGeneratedNoDateExpectedContentFileName =
java9PlusGeneratedNoDateExpectedContentFileName;
@@ -57,49 +46,14 @@ class DefaultProcessingEnvironment {
@BeforeEach
void initWithProcessingEnvironment() {
given(processingEnvironment.getElementUtils()).willReturn(elements);
- given(processingEnvironment.getSourceVersion())
- .will(
- (Answer)
- (invocation) -> {
- if (isAtLeastJava9) {
- return RELEASE_9;
- } else {
- return RELEASE_8;
- }
- });
+ given(processingEnvironment.getSourceVersion()).willReturn(RELEASE_9);
underTest.init(processingEnvironment);
}
- @Nested
- class Java8Generated {
- @BeforeEach
- void initElements() {
- isAtLeastJava9 = false;
- given(elements.getTypeElement("javax.annotation.Generated"))
- .willReturn(mock(TypeElement.class));
- }
-
- @Test
- void shouldGenerateMatchingOutput() throws IOException {
- AbstractConversionServiceBeanNameIndependentGeneratorTest.this.shouldGenerateMatchingOutput(
- java8GeneratedExpectedContentFilename, underTest::writeGeneratedCodeToOutput);
- }
-
- @Test
- void shouldSuppressDateGenerationWhenProcessingEnvironmentHasSuppressionSetToTrue()
- throws IOException {
- given(processingEnvironment.getOptions())
- .willReturn(Map.of("mapstruct.suppressGeneratorTimestamp", String.valueOf(TRUE)));
- AbstractConversionServiceBeanNameIndependentGeneratorTest.this.shouldGenerateMatchingOutput(
- java8GeneratedNoDateExpectedContentFileName, underTest::writeGeneratedCodeToOutput);
- }
- }
-
@Nested
class Java9PlusGenerated {
@BeforeEach
void initElements() {
- isAtLeastJava9 = true;
given(elements.getTypeElement("javax.annotation.processing.Generated"))
.willReturn(mock(TypeElement.class));
}
@@ -122,11 +76,6 @@ void shouldSuppressDateGenerationWhenProcessingEnvironmentHasSuppressionSetToTru
@Nested
class NoGenerated {
- @BeforeEach
- void initElements() {
- isAtLeastJava9 = false;
- }
-
@Test
void shouldGenerateMatchingOutput() throws IOException {
AbstractConversionServiceBeanNameIndependentGeneratorTest.this.shouldGenerateMatchingOutput(
diff --git a/extensions/src/test/java/org/mapstruct/extensions/spring/converter/ConversionServiceAdapterGeneratorTest.java b/extensions/src/test/java/org/mapstruct/extensions/spring/converter/ConversionServiceAdapterGeneratorTest.java
index 45d538d..f7a517d 100644
--- a/extensions/src/test/java/org/mapstruct/extensions/spring/converter/ConversionServiceAdapterGeneratorTest.java
+++ b/extensions/src/test/java/org/mapstruct/extensions/spring/converter/ConversionServiceAdapterGeneratorTest.java
@@ -1,7 +1,6 @@
package org.mapstruct.extensions.spring.converter;
import static java.lang.Boolean.TRUE;
-import static javax.lang.model.SourceVersion.RELEASE_8;
import static javax.lang.model.SourceVersion.RELEASE_9;
import static org.mockito.BDDMockito.given;
import static org.mockito.Mockito.mock;
@@ -9,23 +8,20 @@
import java.io.IOException;
import java.util.Map;
import javax.annotation.processing.ProcessingEnvironment;
-import javax.lang.model.SourceVersion;
import javax.lang.model.element.TypeElement;
import javax.lang.model.util.Elements;
+
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
-import org.mockito.stubbing.Answer;
@ExtendWith(MockitoExtension.class)
class ConversionServiceAdapterGeneratorTest extends AdapterRelatedGeneratorTest {
@Mock private Elements elements;
- private boolean isAtLeastJava9;
-
private final ConversionServiceAdapterGenerator underTest =
new ConversionServiceAdapterGenerator(FIXED_CLOCK);
@@ -36,59 +32,14 @@ class DefaultProcessingEnvironment {
@BeforeEach
void initWithProcessingEnvironment() {
given(processingEnvironment.getElementUtils()).willReturn(elements);
- given(processingEnvironment.getSourceVersion())
- .will(
- (Answer)
- (invocation) -> {
- if (isAtLeastJava9) {
- return RELEASE_9;
- } else {
- return RELEASE_8;
- }
- });
+ given(processingEnvironment.getSourceVersion()).willReturn(RELEASE_9);
underTest.init(processingEnvironment);
}
- @Nested
- class Java8Generated {
- @BeforeEach
- void initElements() {
- isAtLeastJava9 = false;
- given(elements.getTypeElement("javax.annotation.Generated"))
- .willReturn(mock(TypeElement.class));
- }
-
- @Test
- void shouldGenerateMatchingOutput() throws IOException {
- ConversionServiceAdapterGeneratorTest.this.shouldGenerateMatchingOutput(
- "ConversionServiceAdapterJava8Generated.java",
- underTest::writeGeneratedCodeToOutput);
- }
-
- @Test
- void shouldGenerateMatchingOutputWhenUsingCustomConversionService() throws IOException {
- ConversionServiceAdapterGeneratorTest.this
- .shouldGenerateMatchingOutputWhenUsingCustomConversionService(
- "ConversionServiceAdapterCustomBeanJava8Generated.java",
- underTest::writeGeneratedCodeToOutput);
- }
-
- @Test
- void shouldSuppressDateGenerationWhenProcessingEnvironmentHasSuppressionSetToTrue()
- throws IOException {
- given(processingEnvironment.getOptions())
- .willReturn(Map.of("mapstruct.suppressGeneratorTimestamp", String.valueOf(TRUE)));
- ConversionServiceAdapterGeneratorTest.this.shouldGenerateMatchingOutput(
- "ConversionServiceAdapterJava8GeneratedNoDate.java",
- underTest::writeGeneratedCodeToOutput);
- }
- }
-
@Nested
class Java9PlusGenerated {
@BeforeEach
void initElements() {
- isAtLeastJava9 = true;
given(elements.getTypeElement("javax.annotation.processing.Generated"))
.willReturn(mock(TypeElement.class));
}
@@ -121,11 +72,6 @@ void shouldSuppressDateGenerationWhenProcessingEnvironmentHasSuppressionSetToTru
@Nested
class NoGenerated {
- @BeforeEach
- void initElements() {
- isAtLeastJava9 = false;
- }
-
@Test
void shouldGenerateMatchingOutput() throws IOException {
ConversionServiceAdapterGeneratorTest.this.shouldGenerateMatchingOutput(
diff --git a/extensions/src/test/java/org/mapstruct/extensions/spring/converter/ConverterRegistrationConfigurationGeneratorTest.java b/extensions/src/test/java/org/mapstruct/extensions/spring/converter/ConverterRegistrationConfigurationGeneratorTest.java
index 7924d44..a5ac59e 100644
--- a/extensions/src/test/java/org/mapstruct/extensions/spring/converter/ConverterRegistrationConfigurationGeneratorTest.java
+++ b/extensions/src/test/java/org/mapstruct/extensions/spring/converter/ConverterRegistrationConfigurationGeneratorTest.java
@@ -1,7 +1,6 @@
package org.mapstruct.extensions.spring.converter;
import static java.lang.Boolean.TRUE;
-import static javax.lang.model.SourceVersion.RELEASE_8;
import static javax.lang.model.SourceVersion.RELEASE_9;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.BDDMockito.given;
@@ -11,27 +10,20 @@
import java.io.IOException;
import java.util.Map;
import javax.annotation.processing.ProcessingEnvironment;
-import javax.lang.model.SourceVersion;
import javax.lang.model.element.TypeElement;
import javax.lang.model.util.Elements;
-import org.junit.Rule;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
import org.mockito.junit.jupiter.MockitoExtension;
-import org.mockito.stubbing.Answer;
@ExtendWith(MockitoExtension.class)
class ConverterRegistrationConfigurationGeneratorTest extends AdapterRelatedGeneratorTest {
@Mock private Elements elements;
- private boolean isAtLeastJava9;
-
private final ConverterRegistrationConfigurationGenerator underTest =
new ConverterRegistrationConfigurationGenerator(FIXED_CLOCK);
@@ -42,53 +34,13 @@ class DefaultProcessingEnvironment {
@BeforeEach
void initWithProcessingEnvironment() {
given(processingEnvironment.getElementUtils()).willReturn(elements);
- given(processingEnvironment.getSourceVersion())
- .will(
- (Answer)
- (invocation) -> {
- if (isAtLeastJava9) {
- return RELEASE_9;
- } else {
- return RELEASE_8;
- }
- });
+ given(processingEnvironment.getSourceVersion()).willReturn(RELEASE_9);
underTest.init(processingEnvironment);
}
-
- @Nested
- class Java8Generated {
- @BeforeEach
- void initElements() {
- isAtLeastJava9 = false;
- given(elements.getTypeElement("javax.annotation.Generated"))
- .willReturn(mock(TypeElement.class));
- }
-
- @Test
- void shouldGenerateMatchingOutput() throws IOException {
- ConverterRegistrationConfigurationGeneratorTest.this
- .shouldGenerateMatchingOutputWhenUsingCustomConversionService(
- "ConverterRegistrationConfigurationJava8Generated.java",
- underTest::writeGeneratedCodeToOutput);
- }
-
- @Test
- void shouldSuppressDateGenerationWhenProcessingEnvironmentHasSuppressionSetToTrue()
- throws IOException {
- given(processingEnvironment.getOptions())
- .willReturn(Map.of("mapstruct.suppressGeneratorTimestamp", String.valueOf(TRUE)));
- ConverterRegistrationConfigurationGeneratorTest.this
- .shouldGenerateMatchingOutputWhenUsingCustomConversionService(
- "ConverterRegistrationConfigurationJava8GeneratedNoDate.java",
- underTest::writeGeneratedCodeToOutput);
- }
- }
-
@Nested
class Java9PlusGenerated {
@BeforeEach
void initElements() {
- isAtLeastJava9 = true;
given(elements.getTypeElement("javax.annotation.processing.Generated"))
.willReturn(mock(TypeElement.class));
}
@@ -115,11 +67,6 @@ void shouldSuppressDateGenerationWhenProcessingEnvironmentHasSuppressionSetToTru
@Nested
class NoGenerated {
- @BeforeEach
- void initElements() {
- isAtLeastJava9 = false;
- }
-
@Test
void shouldGenerateMatchingOutput() throws IOException {
ConverterRegistrationConfigurationGeneratorTest.this
@@ -133,9 +80,7 @@ void shouldGenerateMatchingOutput() throws IOException {
class NoGeneratedJakartaAnnotation {
@BeforeEach
void initElements() {
- isAtLeastJava9 = false;
- when(elements.getTypeElement(anyString()))
- .thenReturn(null, mock(TypeElement.class)); // first for Generated, second for PostConstruct
+ when(elements.getTypeElement(anyString())).thenReturn(null);
}
@Test
diff --git a/extensions/src/test/java/org/mapstruct/extensions/spring/converter/ConverterScanGeneratorTest.java b/extensions/src/test/java/org/mapstruct/extensions/spring/converter/ConverterScanGeneratorTest.java
index ad0b3e3..ca8636e 100644
--- a/extensions/src/test/java/org/mapstruct/extensions/spring/converter/ConverterScanGeneratorTest.java
+++ b/extensions/src/test/java/org/mapstruct/extensions/spring/converter/ConverterScanGeneratorTest.java
@@ -4,8 +4,6 @@
class ConverterScanGeneratorTest extends AbstractConversionServiceBeanNameIndependentGeneratorTest {
ConverterScanGeneratorTest() {
super(
- "ConverterScanJava8Generated.java",
- "ConverterScanJava8GeneratedNoDate.java",
"ConverterScanJava9PlusGenerated.java",
"ConverterScanJava9PlusGeneratedNoDate.java",
"ConverterScanNoGenerated.java",
diff --git a/extensions/src/test/java/org/mapstruct/extensions/spring/converter/ConverterScansGeneratorTest.java b/extensions/src/test/java/org/mapstruct/extensions/spring/converter/ConverterScansGeneratorTest.java
index b05aebf..c0ef27b 100644
--- a/extensions/src/test/java/org/mapstruct/extensions/spring/converter/ConverterScansGeneratorTest.java
+++ b/extensions/src/test/java/org/mapstruct/extensions/spring/converter/ConverterScansGeneratorTest.java
@@ -4,8 +4,6 @@
class ConverterScansGeneratorTest extends AbstractConversionServiceBeanNameIndependentGeneratorTest {
ConverterScansGeneratorTest() {
super(
- "ConverterScansJava8Generated.java",
- "ConverterScansJava8GeneratedNoDate.java",
"ConverterScansJava9PlusGenerated.java",
"ConverterScansJava9PlusGeneratedNoDate.java",
"ConverterScansNoGenerated.java",
diff --git a/extensions/src/test/java/org/mapstruct/extensions/spring/converter/DelegatingConverterGeneratorTest.java b/extensions/src/test/java/org/mapstruct/extensions/spring/converter/DelegatingConverterGeneratorTest.java
index b145543..9370570 100644
--- a/extensions/src/test/java/org/mapstruct/extensions/spring/converter/DelegatingConverterGeneratorTest.java
+++ b/extensions/src/test/java/org/mapstruct/extensions/spring/converter/DelegatingConverterGeneratorTest.java
@@ -2,37 +2,34 @@
import static java.lang.Boolean.TRUE;
import static java.nio.charset.StandardCharsets.UTF_8;
-import static javax.lang.model.SourceVersion.RELEASE_8;
import static javax.lang.model.SourceVersion.RELEASE_9;
import static org.apache.commons.io.IOUtils.resourceToString;
import static org.assertj.core.api.BDDAssertions.then;
-import static org.mapstruct.extensions.spring.converter.AbstractProcessorTest.*;
+import static org.mapstruct.extensions.spring.converter.AbstractProcessorTest.CAR_DTO_SIMPLE_NAME;
+import static org.mapstruct.extensions.spring.converter.AbstractProcessorTest.CAR_SIMPLE_NAME;
import static org.mockito.BDDMockito.given;
import static org.mockito.Mockito.mock;
-import com.squareup.javapoet.ClassName;
import java.io.IOException;
import java.io.StringWriter;
import java.util.Map;
import javax.annotation.processing.ProcessingEnvironment;
-import javax.lang.model.SourceVersion;
import javax.lang.model.element.TypeElement;
import javax.lang.model.util.Elements;
+
+import com.squareup.javapoet.ClassName;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
-import org.mockito.stubbing.Answer;
@ExtendWith(MockitoExtension.class)
class DelegatingConverterGeneratorTest extends GeneratorTest {
private static final String MAPPER_PACKAGE_NAME = "org.mapstruct.extensions.spring.converter";
@Mock private Elements elements;
- private boolean isAtLeastJava9;
-
private final DelegatingConverterGenerator underTest =
new DelegatingConverterGenerator(FIXED_CLOCK);
@@ -43,49 +40,14 @@ class DefaultProcessingEnvironment {
@BeforeEach
void initWithProcessingEnvironment() {
given(processingEnvironment.getElementUtils()).willReturn(elements);
- given(processingEnvironment.getSourceVersion())
- .will(
- (Answer)
- (invocation) -> {
- if (isAtLeastJava9) {
- return RELEASE_9;
- } else {
- return RELEASE_8;
- }
- });
+ given(processingEnvironment.getSourceVersion()).willReturn(RELEASE_9);
underTest.init(processingEnvironment);
}
- @Nested
- class Java8Generated {
- @BeforeEach
- void initElements() {
- isAtLeastJava9 = false;
- given(elements.getTypeElement("javax.annotation.Generated"))
- .willReturn(mock(TypeElement.class));
- }
-
- @Test
- void shouldGenerateMatchingOutput() throws IOException {
- DelegatingConverterGeneratorTest.this.shouldGenerateMatchingOutput(
- "DelegatingConverterJava8Generated.java");
- }
-
- @Test
- void shouldSuppressDateGenerationWhenProcessingEnvironmentHasSuppressionSetToTrue()
- throws IOException {
- given(processingEnvironment.getOptions())
- .willReturn(Map.of("mapstruct.suppressGeneratorTimestamp", String.valueOf(TRUE)));
- DelegatingConverterGeneratorTest.this.shouldGenerateMatchingOutput(
- "DelegatingConverterJava8GeneratedNoDate.java");
- }
- }
-
@Nested
class Java9PlusGenerated {
@BeforeEach
void initElements() {
- isAtLeastJava9 = true;
given(elements.getTypeElement("javax.annotation.processing.Generated"))
.willReturn(mock(TypeElement.class));
}
@@ -108,11 +70,6 @@ void shouldSuppressDateGenerationWhenProcessingEnvironmentHasSuppressionSetToTru
@Nested
class NoGenerated {
- @BeforeEach
- void initElements() {
- isAtLeastJava9 = false;
- }
-
@Test
void shouldGenerateMatchingOutput() throws IOException {
DelegatingConverterGeneratorTest.this.shouldGenerateMatchingOutput(
diff --git a/extensions/src/test/resources/ConversionServiceAdapterCustomBeanJava8Generated.java b/extensions/src/test/resources/ConversionServiceAdapterCustomBeanJava8Generated.java
deleted file mode 100644
index a083d8a..0000000
--- a/extensions/src/test/resources/ConversionServiceAdapterCustomBeanJava8Generated.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package org.mapstruct.extensions.spring.converter;
-
-import java.util.List;
-import javax.annotation.Generated;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.context.annotation.Lazy;
-import org.springframework.core.convert.ConversionService;
-import org.springframework.core.convert.TypeDescriptor;
-import org.springframework.stereotype.Component;
-import test.Car;
-import test.CarDto;
-
-@Generated(
- value = "org.mapstruct.extensions.spring.converter.ConversionServiceAdapterGenerator",
- date = "2020-03-29T15:21:34.236Z")
-@Component
-public class ConversionServiceAdapter {
- private static final TypeDescriptor TYPE_DESCRIPTOR_TEST_CAR = TypeDescriptor.valueOf(Car.class);
-
- private static final TypeDescriptor TYPE_DESCRIPTOR_TEST_CARDTO = TypeDescriptor.valueOf(CarDto.class);
-
- private static final TypeDescriptor TYPE_DESCRIPTOR_JAVA_UTIL_LIST_TEST_CAR = TypeDescriptor.collection(List.class, TypeDescriptor.valueOf(Car.class));
-
- private static final TypeDescriptor TYPE_DESCRIPTOR_JAVA_UTIL_LIST_TEST_CARDTO = TypeDescriptor.collection(List.class, TypeDescriptor.valueOf(CarDto.class));
-
- private final ConversionService conversionService;
-
- public ConversionServiceAdapter(
- @Qualifier("myConversionService") @Lazy final ConversionService conversionService) {
- this.conversionService = conversionService;
- }
-
- public CarDto toDto(final Car source) {
- return (CarDto) conversionService.convert(source, TYPE_DESCRIPTOR_TEST_CAR, TYPE_DESCRIPTOR_TEST_CARDTO);
- }
-
- public List mapListOfCarToListOfCarDto(final List source) {
- return (List) conversionService.convert(source, TYPE_DESCRIPTOR_JAVA_UTIL_LIST_TEST_CAR, TYPE_DESCRIPTOR_JAVA_UTIL_LIST_TEST_CARDTO);
- }
-}
diff --git a/extensions/src/test/resources/ConversionServiceAdapterJava8Generated.java b/extensions/src/test/resources/ConversionServiceAdapterJava8Generated.java
deleted file mode 100644
index 81a1475..0000000
--- a/extensions/src/test/resources/ConversionServiceAdapterJava8Generated.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package org.mapstruct.extensions.spring.converter;
-
-import java.util.List;
-import javax.annotation.Generated;
-import org.springframework.context.annotation.Lazy;
-import org.springframework.core.convert.ConversionService;
-import org.springframework.core.convert.TypeDescriptor;
-import org.springframework.stereotype.Component;
-import test.Car;
-import test.CarDto;
-
-@Generated(
- value = "org.mapstruct.extensions.spring.converter.ConversionServiceAdapterGenerator",
- date = "2020-03-29T15:21:34.236Z")
-@Component
-public class ConversionServiceAdapter {
- private static final TypeDescriptor TYPE_DESCRIPTOR_TEST_CAR = TypeDescriptor.valueOf(Car.class);
-
- private static final TypeDescriptor TYPE_DESCRIPTOR_TEST_CARDTO = TypeDescriptor.valueOf(CarDto.class);
-
- private static final TypeDescriptor TYPE_DESCRIPTOR_JAVA_UTIL_LIST_TEST_CAR = TypeDescriptor.collection(List.class, TypeDescriptor.valueOf(Car.class));
-
- private static final TypeDescriptor TYPE_DESCRIPTOR_JAVA_UTIL_LIST_TEST_CARDTO = TypeDescriptor.collection(List.class, TypeDescriptor.valueOf(CarDto.class));
-
- private final ConversionService conversionService;
-
- public ConversionServiceAdapter(@Lazy final ConversionService conversionService) {
- this.conversionService = conversionService;
- }
-
- public CarDto toDto(final Car source) {
- return (CarDto) conversionService.convert(source, TYPE_DESCRIPTOR_TEST_CAR, TYPE_DESCRIPTOR_TEST_CARDTO);
- }
-
- public List mapListOfCarToListOfCarDto(final List source) {
- return (List) conversionService.convert(source, TYPE_DESCRIPTOR_JAVA_UTIL_LIST_TEST_CAR, TYPE_DESCRIPTOR_JAVA_UTIL_LIST_TEST_CARDTO);
- }
-}
diff --git a/extensions/src/test/resources/ConversionServiceAdapterJava8GeneratedNoDate.java b/extensions/src/test/resources/ConversionServiceAdapterJava8GeneratedNoDate.java
deleted file mode 100644
index 3f6c3b6..0000000
--- a/extensions/src/test/resources/ConversionServiceAdapterJava8GeneratedNoDate.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.mapstruct.extensions.spring.converter;
-
-import java.util.List;
-import javax.annotation.Generated;
-import org.springframework.context.annotation.Lazy;
-import org.springframework.core.convert.ConversionService;
-import org.springframework.core.convert.TypeDescriptor;
-import org.springframework.stereotype.Component;
-import test.Car;
-import test.CarDto;
-
-@Generated("org.mapstruct.extensions.spring.converter.ConversionServiceAdapterGenerator")
-@Component
-public class ConversionServiceAdapter {
- private static final TypeDescriptor TYPE_DESCRIPTOR_TEST_CAR = TypeDescriptor.valueOf(Car.class);
-
- private static final TypeDescriptor TYPE_DESCRIPTOR_TEST_CARDTO = TypeDescriptor.valueOf(CarDto.class);
-
- private static final TypeDescriptor TYPE_DESCRIPTOR_JAVA_UTIL_LIST_TEST_CAR = TypeDescriptor.collection(List.class, TypeDescriptor.valueOf(Car.class));
-
- private static final TypeDescriptor TYPE_DESCRIPTOR_JAVA_UTIL_LIST_TEST_CARDTO = TypeDescriptor.collection(List.class, TypeDescriptor.valueOf(CarDto.class));
-
- private final ConversionService conversionService;
-
- public ConversionServiceAdapter(
- @Lazy final ConversionService conversionService) {
- this.conversionService = conversionService;
- }
-
- public CarDto toDto(final Car source) {
- return (CarDto) conversionService.convert(source, TYPE_DESCRIPTOR_TEST_CAR, TYPE_DESCRIPTOR_TEST_CARDTO);
- }
-
- public List mapListOfCarToListOfCarDto(final List source) {
- return (List) conversionService.convert(source, TYPE_DESCRIPTOR_JAVA_UTIL_LIST_TEST_CAR, TYPE_DESCRIPTOR_JAVA_UTIL_LIST_TEST_CARDTO);
- }
-}
diff --git a/extensions/src/test/resources/ConverterRegistrationConfigurationJava8Generated.java b/extensions/src/test/resources/ConverterRegistrationConfigurationJava8Generated.java
deleted file mode 100644
index ef0cabe..0000000
--- a/extensions/src/test/resources/ConverterRegistrationConfigurationJava8Generated.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package org.mapstruct.extensions.spring.converter;
-
-import java.util.List;
-import javax.annotation.Generated;
-import javax.annotation.PostConstruct;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.core.convert.converter.Converter;
-import org.springframework.core.convert.support.ConfigurableConversionService;
-
-@Generated(
- value = "org.mapstruct.extensions.spring.converter.ConverterRegistrationConfigurationGenerator",
- date = "2020-03-29T15:21:34.236Z")
-@Configuration
-class ConverterRegistrationConfiguration {
- private final ConfigurableConversionService myConversionService;
- private final List> converters;
-
- ConverterRegistrationConfiguration(
- @Qualifier("myConversionService") final ConfigurableConversionService myConversionService,
- final List> converters) {
- this.myConversionService = myConversionService;
- this.converters = converters;
- }
-
- @PostConstruct
- void registerConverters() {
- converters.forEach(myConversionService::addConverter);
- }
-}
diff --git a/extensions/src/test/resources/ConverterRegistrationConfigurationJava8GeneratedNoDate.java b/extensions/src/test/resources/ConverterRegistrationConfigurationJava8GeneratedNoDate.java
deleted file mode 100644
index 3012724..0000000
--- a/extensions/src/test/resources/ConverterRegistrationConfigurationJava8GeneratedNoDate.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.mapstruct.extensions.spring.converter;
-
-import java.util.List;
-import javax.annotation.Generated;
-import javax.annotation.PostConstruct;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.core.convert.converter.Converter;
-import org.springframework.core.convert.support.ConfigurableConversionService;
-
-@Generated("org.mapstruct.extensions.spring.converter.ConverterRegistrationConfigurationGenerator")
-@Configuration
-class ConverterRegistrationConfiguration {
- private final ConfigurableConversionService myConversionService;
- private final List> converters;
-
- ConverterRegistrationConfiguration(
- @Qualifier("myConversionService") final ConfigurableConversionService myConversionService,
- final List> converters) {
- this.myConversionService = myConversionService;
- this.converters = converters;
- }
-
- @PostConstruct
- void registerConverters() {
- converters.forEach(myConversionService::addConverter);
- }
-}
diff --git a/extensions/src/test/resources/ConverterRegistrationConfigurationJava9PlusGenerated.java b/extensions/src/test/resources/ConverterRegistrationConfigurationJava9PlusGenerated.java
index 183f412..846c955 100644
--- a/extensions/src/test/resources/ConverterRegistrationConfigurationJava9PlusGenerated.java
+++ b/extensions/src/test/resources/ConverterRegistrationConfigurationJava9PlusGenerated.java
@@ -1,7 +1,7 @@
package org.mapstruct.extensions.spring.converter;
+import jakarta.annotation.PostConstruct;
import java.util.List;
-import javax.annotation.PostConstruct;
import javax.annotation.processing.Generated;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Configuration;
@@ -22,7 +22,7 @@ class ConverterRegistrationConfiguration {
this.myConversionService = myConversionService;
this.converters = converters;
}
-
+
@PostConstruct
void registerConverters() {
converters.forEach(myConversionService::addConverter);
diff --git a/extensions/src/test/resources/ConverterRegistrationConfigurationJava9PlusGeneratedNoDate.java b/extensions/src/test/resources/ConverterRegistrationConfigurationJava9PlusGeneratedNoDate.java
index 03dec33..fafc6f9 100644
--- a/extensions/src/test/resources/ConverterRegistrationConfigurationJava9PlusGeneratedNoDate.java
+++ b/extensions/src/test/resources/ConverterRegistrationConfigurationJava9PlusGeneratedNoDate.java
@@ -1,7 +1,7 @@
package org.mapstruct.extensions.spring.converter;
+import jakarta.annotation.PostConstruct;
import java.util.List;
-import javax.annotation.PostConstruct;
import javax.annotation.processing.Generated;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Configuration;
@@ -20,7 +20,7 @@ class ConverterRegistrationConfiguration {
this.myConversionService = myConversionService;
this.converters = converters;
}
-
+
@PostConstruct
void registerConverters() {
converters.forEach(myConversionService::addConverter);
diff --git a/extensions/src/test/resources/ConverterRegistrationConfigurationNoGenerated.java b/extensions/src/test/resources/ConverterRegistrationConfigurationNoGenerated.java
index dd33c33..7f10db0 100644
--- a/extensions/src/test/resources/ConverterRegistrationConfigurationNoGenerated.java
+++ b/extensions/src/test/resources/ConverterRegistrationConfigurationNoGenerated.java
@@ -1,7 +1,7 @@
package org.mapstruct.extensions.spring.converter;
+import jakarta.annotation.PostConstruct;
import java.util.List;
-import javax.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.convert.converter.Converter;
@@ -18,7 +18,7 @@ class ConverterRegistrationConfiguration {
this.myConversionService = myConversionService;
this.converters = converters;
}
-
+
@PostConstruct
void registerConverters() {
converters.forEach(myConversionService::addConverter);
diff --git a/extensions/src/test/resources/ConverterScanJava8Generated.java b/extensions/src/test/resources/ConverterScanJava8Generated.java
deleted file mode 100644
index c4e33ee..0000000
--- a/extensions/src/test/resources/ConverterScanJava8Generated.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package org.mapstruct.extensions.spring.converter;
-
-import static java.lang.annotation.ElementType.TYPE;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-import static org.springframework.context.annotation.ScopedProxyMode.DEFAULT;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.Repeatable;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-import javax.annotation.Generated;
-import org.springframework.beans.factory.support.BeanNameGenerator;
-import org.springframework.context.annotation.AnnotationScopeMetadataResolver;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.ScopeMetadataResolver;
-import org.springframework.context.annotation.ScopedProxyMode;
-import org.springframework.core.annotation.AliasFor;
-
-@Generated(
- value = "org.mapstruct.extensions.spring.converter.ConverterScanGenerator",
- date = "2020-03-29T15:21:34.236Z")
-@ComponentScan
-@Target(TYPE)
-@Import(ConverterRegistrationConfiguration.class)
-@Documented
-@Retention(RUNTIME)
-@Repeatable(ConverterScans.class)
-public @interface ConverterScan {
- @AliasFor(annotation = ComponentScan.class, attribute = "value")
- String[] value() default {};
-
- @AliasFor(annotation = ComponentScan.class, attribute = "basePackages")
- String[] basePackages() default {};
-
- @AliasFor(annotation = ComponentScan.class, attribute = "basePackageClasses")
- Class>[] basePackageClasses() default {};
-
- @AliasFor(annotation = ComponentScan.class, attribute = "nameGenerator")
- Class extends BeanNameGenerator> nameGenerator() default BeanNameGenerator.class;
-
- @AliasFor(annotation = ComponentScan.class, attribute = "scopeResolver")
- Class extends ScopeMetadataResolver> scopeResolver() default
- AnnotationScopeMetadataResolver.class;
-
- @AliasFor(annotation = ComponentScan.class, attribute = "scopedProxy")
- ScopedProxyMode scopedProxy() default DEFAULT;
-
- @AliasFor(annotation = ComponentScan.class, attribute = "useDefaultFilters")
- boolean useDefaultFilters() default true;
-
- @AliasFor(annotation = ComponentScan.class, attribute = "includeFilters")
- ComponentScan.Filter[] includeFilters() default {};
-
- @AliasFor(annotation = ComponentScan.class, attribute = "excludeFilters")
- ComponentScan.Filter[] excludeFilters() default {};
-
- @AliasFor(annotation = ComponentScan.class, attribute = "lazyInit")
- boolean lazyInit() default false;
-}
diff --git a/extensions/src/test/resources/ConverterScanJava8GeneratedNoDate.java b/extensions/src/test/resources/ConverterScanJava8GeneratedNoDate.java
deleted file mode 100644
index c3b6aef..0000000
--- a/extensions/src/test/resources/ConverterScanJava8GeneratedNoDate.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package org.mapstruct.extensions.spring.converter;
-
-import static java.lang.annotation.ElementType.TYPE;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-import static org.springframework.context.annotation.ScopedProxyMode.DEFAULT;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.Repeatable;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-import javax.annotation.Generated;
-import org.springframework.beans.factory.support.BeanNameGenerator;
-import org.springframework.context.annotation.AnnotationScopeMetadataResolver;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.ScopeMetadataResolver;
-import org.springframework.context.annotation.ScopedProxyMode;
-import org.springframework.core.annotation.AliasFor;
-
-@Generated("org.mapstruct.extensions.spring.converter.ConverterScanGenerator")
-@ComponentScan
-@Target(TYPE)
-@Import(ConverterRegistrationConfiguration.class)
-@Documented
-@Retention(RUNTIME)
-@Repeatable(ConverterScans.class)
-public @interface ConverterScan {
- @AliasFor(annotation = ComponentScan.class, attribute = "value")
- String[] value() default {};
-
- @AliasFor(annotation = ComponentScan.class, attribute = "basePackages")
- String[] basePackages() default {};
-
- @AliasFor(annotation = ComponentScan.class, attribute = "basePackageClasses")
- Class>[] basePackageClasses() default {};
-
- @AliasFor(annotation = ComponentScan.class, attribute = "nameGenerator")
- Class extends BeanNameGenerator> nameGenerator() default BeanNameGenerator.class;
-
- @AliasFor(annotation = ComponentScan.class, attribute = "scopeResolver")
- Class extends ScopeMetadataResolver> scopeResolver() default
- AnnotationScopeMetadataResolver.class;
-
- @AliasFor(annotation = ComponentScan.class, attribute = "scopedProxy")
- ScopedProxyMode scopedProxy() default DEFAULT;
-
- @AliasFor(annotation = ComponentScan.class, attribute = "useDefaultFilters")
- boolean useDefaultFilters() default true;
-
- @AliasFor(annotation = ComponentScan.class, attribute = "includeFilters")
- ComponentScan.Filter[] includeFilters() default {};
-
- @AliasFor(annotation = ComponentScan.class, attribute = "excludeFilters")
- ComponentScan.Filter[] excludeFilters() default {};
-
- @AliasFor(annotation = ComponentScan.class, attribute = "lazyInit")
- boolean lazyInit() default false;
-}
diff --git a/extensions/src/test/resources/ConverterScansJava8Generated.java b/extensions/src/test/resources/ConverterScansJava8Generated.java
deleted file mode 100644
index bd76381..0000000
--- a/extensions/src/test/resources/ConverterScansJava8Generated.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package org.mapstruct.extensions.spring.converter;
-
-import static java.lang.annotation.ElementType.TYPE;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-import javax.annotation.Generated;
-
-@Generated(
- value = "org.mapstruct.extensions.spring.converter.ConverterScansGenerator",
- date = "2020-03-29T15:21:34.236Z")
-@Retention(RUNTIME)
-@Target(TYPE)
-@Documented
-public @interface ConverterScans {
- ConverterScan[] value();
-}
diff --git a/extensions/src/test/resources/ConverterScansJava8GeneratedNoDate.java b/extensions/src/test/resources/ConverterScansJava8GeneratedNoDate.java
deleted file mode 100644
index 2e8a717..0000000
--- a/extensions/src/test/resources/ConverterScansJava8GeneratedNoDate.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.mapstruct.extensions.spring.converter;
-
-import static java.lang.annotation.ElementType.TYPE;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-import javax.annotation.Generated;
-
-@Generated("org.mapstruct.extensions.spring.converter.ConverterScansGenerator")
-@Retention(RUNTIME)
-@Target(TYPE)
-@Documented
-public @interface ConverterScans {
- ConverterScan[] value();
-}
diff --git a/extensions/src/test/resources/DelegatingConverterJava8Generated.java b/extensions/src/test/resources/DelegatingConverterJava8Generated.java
deleted file mode 100644
index 296dcdc..0000000
--- a/extensions/src/test/resources/DelegatingConverterJava8Generated.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.mapstruct.extensions.spring.converter;
-
-import javax.annotation.Generated;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.convert.converter.Converter;
-import org.springframework.stereotype.Component;
-
-@Generated(
- value = "org.mapstruct.extensions.spring.converter.DelegatingConverterGenerator",
- date = "2020-03-29T15:21:34.236Z")
-@Component
-public class CarDtoToCarConverter implements Converter {
-
- private CarMapper delegateMapper;
-
- public CarDtoToCarConverter(@Autowired final CarMapper delegateMapper) {
- this.delegateMapper = delegateMapper;
- }
-
- @Override
- public Car convert(final CarDto source) {
- return delegateMapper.convertInverse(source);
- }
-}
\ No newline at end of file
diff --git a/extensions/src/test/resources/DelegatingConverterJava8GeneratedNoDate.java b/extensions/src/test/resources/DelegatingConverterJava8GeneratedNoDate.java
deleted file mode 100644
index f161bfb..0000000
--- a/extensions/src/test/resources/DelegatingConverterJava8GeneratedNoDate.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.mapstruct.extensions.spring.converter;
-
-import javax.annotation.Generated;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.convert.converter.Converter;
-import org.springframework.stereotype.Component;
-@Generated("org.mapstruct.extensions.spring.converter.DelegatingConverterGenerator")
-@Component
-public class CarDtoToCarConverter implements Converter {
-
- private CarMapper delegateMapper;
-
- public CarDtoToCarConverter(@Autowired final CarMapper delegateMapper) {
- this.delegateMapper = delegateMapper;
- }
-
- @Override
- public Car convert(final CarDto source) {
- return delegateMapper.convertInverse(source);
- }
-}
\ No newline at end of file
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 68a8341..ce3c6b5 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -1,22 +1,21 @@
[versions]
-asciidoctorPlugin = "4.0.4"
-assertj = "3.27.3"
-commons-io = "2.18.0"
-commons-lang3 = "3.17.0"
-compile-testing = "0.21.0"
-dependencyCheck = "12.1.0"
+asciidoctorPlugin = "4.0.5"
+assertj = "3.27.6"
+commons-io = "2.21.0"
+commons-lang3 = "3.19.0"
+compile-testing = "0.23.0"
+dependencyCheck = "12.1.9"
dummymaker = "4.0.0"
-guava = "33.4.0-jre"
-jakarta-annotation-api = "1.3.5"
+guava = "33.5.0-jre"
+jakarta-annotation-api = "2.1.1"
javapoet = "1.13.0"
-jsr250 = "1.0"
-jupiter = "5.12.0"
+jupiter = "6.0.1"
mapstruct = "1.4.0.Final"
-mockito = "5.16.0"
-spring = "5.0.0.RELEASE"
-springBoot = "2.7.18"
+mockito = "5.20.0"
+spring = "6.0.0"
+springBoot = "3.5.7"
springDependencyManagement = "1.1.7"
-versionsPlugin = "0.52.0"
+versionsPlugin = "0.53.0"
[libraries]
assertj = { group = "org.assertj", name = "assertj-core", version.ref = "assertj"}
@@ -27,7 +26,6 @@ dummymaker = { group = "com.github.goodforgod", name = "dummymaker", version.ref
guava = { group = "com.google.guava", name = "guava", version.ref = "guava" }
jakarta-annotation = { group = "jakarta.annotation", name = "jakarta.annotation-api", version.ref = "jakarta-annotation-api" }
javapoet = { group = "com.squareup", name = "javapoet", version.ref = "javapoet"}
-jsr250 = { group = "javax.annotation", name = "jsr250-api", version.ref = "jsr250" }
junit-jupiter-api = { group = "org.junit.jupiter", name = "junit-jupiter-api", version.ref = "jupiter" }
junit-jupiter-engine = { group = "org.junit.jupiter", name = "junit-jupiter-engine", version.ref = "jupiter" }
junit-jupiter-params = { group = "org.junit.jupiter", name = "junit-jupiter-params", version.ref = "jupiter" }
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 9bbc975..f8e1ee3 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 37f853b..bad7c24 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
diff --git a/gradlew b/gradlew
index faf9300..adff685 100755
--- a/gradlew
+++ b/gradlew
@@ -1,7 +1,7 @@
#!/bin/sh
#
-# Copyright © 2015-2021 the original authors.
+# Copyright © 2015 the original authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -114,7 +114,6 @@ case "$( uname )" in #(
NONSTOP* ) nonstop=true ;;
esac
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
@@ -172,7 +171,6 @@ fi
# For Cygwin or MSYS, switch paths to Windows format before running java
if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
- CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
JAVACMD=$( cygpath --unix "$JAVACMD" )
@@ -212,8 +210,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
- -classpath "$CLASSPATH" \
- org.gradle.wrapper.GradleWrapperMain \
+ -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
"$@"
# Stop when "xargs" is not available.
diff --git a/gradlew.bat b/gradlew.bat
index 9b42019..e509b2d 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -70,11 +70,10 @@ goto fail
:execute
@rem Setup the command line
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
:end
@rem End local scope for the variables with windows NT shell
diff --git a/test-extensions/build.gradle b/test-extensions/build.gradle
index 9b747b1..6f47ab2 100644
--- a/test-extensions/build.gradle
+++ b/test-extensions/build.gradle
@@ -53,8 +53,8 @@ publishing {
}
repositories {
maven {
- def releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
- def snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots/"
+ def releasesRepoUrl = "https://ossrh-staging-api.central.sonatype.com/service/local/staging/deploy/maven2/"
+ def snapshotsRepoUrl = "https://ossrh-staging-api.central.sonatype.com/content/repositories/snapshots/"
url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
credentials {