diff --git a/.github/workflows/java-ea.yml b/.github/workflows/java-ea.yml
index d9b018bfb..fce2dc06b 100644
--- a/.github/workflows/java-ea.yml
+++ b/.github/workflows/java-ea.yml
@@ -7,11 +7,7 @@ env:
jobs:
test_jdk_ea:
- strategy:
- fail-fast: false
- matrix:
- java: [19-ea]
- name: 'Linux JDK ${{ matrix.java }}'
+ name: 'Linux JDK EA'
runs-on: ubuntu-latest
steps:
- name: 'Checkout'
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index b27dfc075..9cc098161 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -24,45 +24,38 @@ jobs:
distribution: 'zulu'
java-version: ${{ matrix.java }}
- name: 'Test'
- run: ./mvnw ${MAVEN_ARGS} -Djacoco.skip=true install -DskipDistribution=true
- linux:
- name: 'Linux JDK 11'
- runs-on: ubuntu-latest
- steps:
- - name: 'Checkout'
- uses: actions/checkout@v3
- - name: 'Set up JDK 11'
- uses: actions/setup-java@v3
- with:
- distribution: 'zulu'
- java-version: 11
- - name: 'Test'
- run: ./mvnw ${MAVEN_ARGS} install
+ run: ./mvnw ${MAVEN_ARGS} -Djacoco.skip=${{ matrix.java != 17 }} install -DskipDistribution=${{ matrix.java != 17 }}
- name: 'Generate coverage report'
+ if: matrix.java == 17
run: ./mvnw jacoco:report
- name: 'Upload coverage to Codecov'
+ if: matrix.java == 17
uses: codecov/codecov-action@v2
- name: 'Publish Snapshots'
- if: github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository == 'mapstruct/mapstruct'
+ if: matrix.java == 17 && github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository == 'mapstruct/mapstruct'
run: ./mvnw -s etc/ci-settings.xml -DskipTests=true -DskipDistribution=true deploy
- linux-jdk-8:
- name: 'Linux JDK 8'
+ integration_test_jdk:
+ strategy:
+ fail-fast: false
+ matrix:
+ java: [ 8, 11 ]
+ name: 'Linux JDK ${{ matrix.java }}'
runs-on: ubuntu-latest
steps:
- name: 'Checkout'
uses: actions/checkout@v3
- - name: 'Set up JDK 11 for building everything'
+ - name: 'Set up JDK 17 for building everything'
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 11
+ java-version: 17
- name: 'Install Processor'
run: ./mvnw ${MAVEN_ARGS} -DskipTests install -pl processor -am
- - name: 'Set up JDK 8 for running integration tests'
+ - name: 'Set up JDK ${{ matrix.java }} for running integration tests'
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 8
+ java-version: ${{ matrix.java }}
- name: 'Run integration tests'
run: ./mvnw ${MAVEN_ARGS} verify -pl integrationtest
windows:
@@ -70,11 +63,11 @@ jobs:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- - name: 'Set up JDK 11'
+ - name: 'Set up JDK 17'
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 11
+ java-version: 17
- name: 'Test'
run: ./mvnw %MAVEN_ARGS% install
mac:
@@ -82,10 +75,10 @@ jobs:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- - name: 'Set up JDK 11'
+ - name: 'Set up JDK 17'
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 11
+ java-version: 17
- name: 'Test'
run: ./mvnw ${MAVEN_ARGS} install
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index f18a12b81..682fa3687 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -22,7 +22,7 @@ jobs:
- name: Setup Java
uses: actions/setup-java@v4
with:
- java-version: 11
+ java-version: 17
distribution: 'zulu'
cache: maven
diff --git a/integrationtest/src/test/java/org/mapstruct/itest/tests/FullFeatureCompilationExclusionCliEnhancer.java b/integrationtest/src/test/java/org/mapstruct/itest/tests/FullFeatureCompilationExclusionCliEnhancer.java
index 15d9e4259..77a5e2af0 100644
--- a/integrationtest/src/test/java/org/mapstruct/itest/tests/FullFeatureCompilationExclusionCliEnhancer.java
+++ b/integrationtest/src/test/java/org/mapstruct/itest/tests/FullFeatureCompilationExclusionCliEnhancer.java
@@ -30,6 +30,7 @@ public final class FullFeatureCompilationExclusionCliEnhancer implements Process
switch ( currentJreVersion ) {
case JAVA_8:
+ additionalExcludes.add( "org/mapstruct/ap/test/**/spring/**/*.java" );
additionalExcludes.add( "org/mapstruct/ap/test/injectionstrategy/cdi/**/*.java" );
additionalExcludes.add( "org/mapstruct/ap/test/injectionstrategy/jakarta_cdi/**/*.java" );
additionalExcludes.add( "org/mapstruct/ap/test/annotatewith/deprecated/jdk11/*.java" );
@@ -42,6 +43,8 @@ public final class FullFeatureCompilationExclusionCliEnhancer implements Process
// TODO find out why this fails:
additionalExcludes.add( "org/mapstruct/ap/test/collection/wildcard/BeanMapper.java" );
break;
+ case JAVA_11:
+ additionalExcludes.add( "org/mapstruct/ap/test/**/spring/**/*.java" );
default:
}
diff --git a/integrationtest/src/test/java/org/mapstruct/itest/tests/MavenIntegrationTest.java b/integrationtest/src/test/java/org/mapstruct/itest/tests/MavenIntegrationTest.java
index 0bef2994f..ab43cc4cb 100644
--- a/integrationtest/src/test/java/org/mapstruct/itest/tests/MavenIntegrationTest.java
+++ b/integrationtest/src/test/java/org/mapstruct/itest/tests/MavenIntegrationTest.java
@@ -5,6 +5,7 @@
*/
package org.mapstruct.itest.tests;
+import org.junit.jupiter.api.condition.DisabledOnJre;
import org.junit.jupiter.api.condition.EnabledForJreRange;
import org.junit.jupiter.api.condition.JRE;
import org.junit.jupiter.api.parallel.Execution;
@@ -80,12 +81,15 @@ public class MavenIntegrationTest {
}
@ProcessorTest(baseDir = "jsr330Test")
+ @EnabledForJreRange(min = JRE.JAVA_17)
+ @DisabledOnJre(JRE.OTHER)
void jsr330Test() {
}
@ProcessorTest(baseDir = "lombokBuilderTest", processorTypes = {
ProcessorTest.ProcessorType.JAVAC
})
+ @DisabledOnJre(JRE.OTHER)
void lombokBuilderTest() {
}
@@ -94,6 +98,7 @@ public class MavenIntegrationTest {
ProcessorTest.ProcessorType.JAVAC_WITH_PATHS
})
@EnabledForJreRange(min = JRE.JAVA_11)
+ @DisabledOnJre(JRE.OTHER)
void lombokModuleTest() {
}
@@ -150,6 +155,7 @@ public class MavenIntegrationTest {
}, forkJvm = true)
// We have to fork the jvm because there is an NPE in com.intellij.openapi.util.SystemInfo.getRtVersion
// and the kotlin-maven-plugin uses that. See also https://youtrack.jetbrains.com/issue/IDEA-238907
+ @DisabledOnJre(JRE.OTHER)
void kotlinDataTest() {
}
@@ -163,6 +169,8 @@ public class MavenIntegrationTest {
}
@ProcessorTest(baseDir = "springTest")
+ @EnabledForJreRange(min = JRE.JAVA_17)
+ @DisabledOnJre(JRE.OTHER)
void springTest() {
}
diff --git a/integrationtest/src/test/java/org/mapstruct/itest/testutil/extension/ProcessorInvocationInterceptor.java b/integrationtest/src/test/java/org/mapstruct/itest/testutil/extension/ProcessorInvocationInterceptor.java
index 89009aaff..85ce64952 100644
--- a/integrationtest/src/test/java/org/mapstruct/itest/testutil/extension/ProcessorInvocationInterceptor.java
+++ b/integrationtest/src/test/java/org/mapstruct/itest/testutil/extension/ProcessorInvocationInterceptor.java
@@ -134,14 +134,20 @@ public class ProcessorInvocationInterceptor implements InvocationInterceptor {
}
private void configureProcessor(Verifier verifier) {
- String compilerId = processorTestContext.getProcessor().getCompilerId();
+ ProcessorTest.ProcessorType processor = processorTestContext.getProcessor();
+ String compilerId = processor.getCompilerId();
if ( compilerId != null ) {
- String profile = processorTestContext.getProcessor().getProfile();
+ String profile = processor.getProfile();
if ( profile == null ) {
profile = "generate-via-compiler-plugin";
}
verifier.addCliOption( "-P" + profile );
verifier.addCliOption( "-Dcompiler-id=" + compilerId );
+ if ( processor == ProcessorTest.ProcessorType.JAVAC ) {
+ if ( CURRENT_VERSION.ordinal() >= JRE.JAVA_21.ordinal() ) {
+ verifier.addCliOption( "-Dmaven.compiler.proc=full" );
+ }
+ }
}
else {
verifier.addCliOption( "-Pgenerate-via-processor-plugin" );
diff --git a/integrationtest/src/test/resources/fullFeatureTest/pom.xml b/integrationtest/src/test/resources/fullFeatureTest/pom.xml
index 1a31b2822..849f7150f 100644
--- a/integrationtest/src/test/resources/fullFeatureTest/pom.xml
+++ b/integrationtest/src/test/resources/fullFeatureTest/pom.xml
@@ -27,6 +27,11 @@
x
x
x
+ x
+ x
+ x
+ x
+ x
@@ -49,6 +54,11 @@
${additionalExclude4}
${additionalExclude5}
${additionalExclude6}
+ ${additionalExclude7}
+ ${additionalExclude8}
+ ${additionalExclude9}
+ ${additionalExclude10}
+ ${additionalExclude11}
diff --git a/integrationtest/src/test/resources/superTypeGenerationTest/generator/pom.xml b/integrationtest/src/test/resources/superTypeGenerationTest/generator/pom.xml
index 1b84638ef..5ab2d0d18 100644
--- a/integrationtest/src/test/resources/superTypeGenerationTest/generator/pom.xml
+++ b/integrationtest/src/test/resources/superTypeGenerationTest/generator/pom.xml
@@ -32,7 +32,6 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.1
-proc:none
diff --git a/integrationtest/src/test/resources/superTypeGenerationTest/usage/pom.xml b/integrationtest/src/test/resources/superTypeGenerationTest/usage/pom.xml
index ee0d556b9..d1e1dd7df 100644
--- a/integrationtest/src/test/resources/superTypeGenerationTest/usage/pom.xml
+++ b/integrationtest/src/test/resources/superTypeGenerationTest/usage/pom.xml
@@ -38,7 +38,6 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.1
-XprintProcessorInfo
diff --git a/integrationtest/src/test/resources/targetTypeGenerationTest/generator/pom.xml b/integrationtest/src/test/resources/targetTypeGenerationTest/generator/pom.xml
index bf0d70485..67df383a1 100644
--- a/integrationtest/src/test/resources/targetTypeGenerationTest/generator/pom.xml
+++ b/integrationtest/src/test/resources/targetTypeGenerationTest/generator/pom.xml
@@ -32,7 +32,6 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.1
-proc:none
diff --git a/integrationtest/src/test/resources/targetTypeGenerationTest/usage/pom.xml b/integrationtest/src/test/resources/targetTypeGenerationTest/usage/pom.xml
index da72f667a..bd06b79a4 100644
--- a/integrationtest/src/test/resources/targetTypeGenerationTest/usage/pom.xml
+++ b/integrationtest/src/test/resources/targetTypeGenerationTest/usage/pom.xml
@@ -38,7 +38,6 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.1
-XprintProcessorInfo
diff --git a/parent/pom.xml b/parent/pom.xml
index 94c84fb4d..5509e783d 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -34,7 +34,7 @@
3.4.1
3.2.2
3.1.0
- 5.3.31
+ 6.2.2
1.6.0
8.36.1
5.10.1
@@ -47,7 +47,7 @@
jdt_apt
1.8
3.21.7
@@ -400,7 +400,7 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.8.1
+ 3.13.0
org.apache.maven.plugins
diff --git a/processor/pom.xml b/processor/pom.xml
index ed2df7718..13deafb41 100644
--- a/processor/pom.xml
+++ b/processor/pom.xml
@@ -24,7 +24,7 @@
- 11
+ 17
diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/Issue1395Mapper.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/spring/Issue1395Mapper.java
similarity index 91%
rename from processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/Issue1395Mapper.java
rename to processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/spring/Issue1395Mapper.java
index ebc9ae27e..4e48020c8 100644
--- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/Issue1395Mapper.java
+++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/spring/Issue1395Mapper.java
@@ -3,7 +3,7 @@
*
* Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
*/
-package org.mapstruct.ap.test.bugs._1395;
+package org.mapstruct.ap.test.bugs._1395.spring;
import org.mapstruct.InjectionStrategy;
import org.mapstruct.Mapper;
diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/Issue1395Test.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/spring/Issue1395Test.java
similarity index 92%
rename from processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/Issue1395Test.java
rename to processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/spring/Issue1395Test.java
index 042d0288c..3417fbd70 100644
--- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/Issue1395Test.java
+++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/spring/Issue1395Test.java
@@ -3,7 +3,7 @@
*
* Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
*/
-package org.mapstruct.ap.test.bugs._1395;
+package org.mapstruct.ap.test.bugs._1395.spring;
import org.mapstruct.ap.testutil.IssueKey;
import org.mapstruct.ap.testutil.ProcessorTest;
diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/NotUsedService.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/spring/NotUsedService.java
similarity index 81%
rename from processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/NotUsedService.java
rename to processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/spring/NotUsedService.java
index 765764ef2..ba47cf179 100644
--- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/NotUsedService.java
+++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/spring/NotUsedService.java
@@ -3,7 +3,7 @@
*
* Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
*/
-package org.mapstruct.ap.test.bugs._1395;
+package org.mapstruct.ap.test.bugs._1395.spring;
/**
* @author Filip Hrisafov
diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/Source.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/spring/Source.java
similarity index 88%
rename from processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/Source.java
rename to processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/spring/Source.java
index 1b676c2b6..8f2a52d46 100644
--- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/Source.java
+++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/spring/Source.java
@@ -3,7 +3,7 @@
*
* Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
*/
-package org.mapstruct.ap.test.bugs._1395;
+package org.mapstruct.ap.test.bugs._1395.spring;
/**
* @author Filip Hrisafov
diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/Target.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/spring/Target.java
similarity index 88%
rename from processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/Target.java
rename to processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/spring/Target.java
index 2c7b22fd4..1ba393dbe 100644
--- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/Target.java
+++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_1395/spring/Target.java
@@ -3,7 +3,7 @@
*
* Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
*/
-package org.mapstruct.ap.test.bugs._1395;
+package org.mapstruct.ap.test.bugs._1395.spring;
/**
* @author Filip Hrisafov
diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/Issue2807Test.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/spring/Issue2807Test.java
similarity index 69%
rename from processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/Issue2807Test.java
rename to processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/spring/Issue2807Test.java
index 2cb96ce37..102a9d26e 100644
--- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/Issue2807Test.java
+++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/spring/Issue2807Test.java
@@ -3,11 +3,11 @@
*
* Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
*/
-package org.mapstruct.ap.test.bugs._2807;
+package org.mapstruct.ap.test.bugs._2807.spring;
-import org.mapstruct.ap.test.bugs._2807.after.AfterMethod;
-import org.mapstruct.ap.test.bugs._2807.before.BeforeMethod;
-import org.mapstruct.ap.test.bugs._2807.beforewithtarget.BeforeWithTarget;
+import org.mapstruct.ap.test.bugs._2807.spring.after.AfterMethod;
+import org.mapstruct.ap.test.bugs._2807.spring.before.BeforeMethod;
+import org.mapstruct.ap.test.bugs._2807.spring.beforewithtarget.BeforeWithTarget;
import org.mapstruct.ap.testutil.IssueKey;
import org.mapstruct.ap.testutil.ProcessorTest;
import org.mapstruct.ap.testutil.WithClasses;
diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/SpringLifeCycleMapper.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/spring/SpringLifeCycleMapper.java
similarity index 70%
rename from processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/SpringLifeCycleMapper.java
rename to processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/spring/SpringLifeCycleMapper.java
index daabe7f52..408a2ca3e 100644
--- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/SpringLifeCycleMapper.java
+++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/spring/SpringLifeCycleMapper.java
@@ -3,15 +3,15 @@
*
* Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
*/
-package org.mapstruct.ap.test.bugs._2807;
+package org.mapstruct.ap.test.bugs._2807.spring;
import java.util.List;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
-import org.mapstruct.ap.test.bugs._2807.after.AfterMethod;
-import org.mapstruct.ap.test.bugs._2807.before.BeforeMethod;
-import org.mapstruct.ap.test.bugs._2807.beforewithtarget.BeforeWithTarget;
+import org.mapstruct.ap.test.bugs._2807.spring.after.AfterMethod;
+import org.mapstruct.ap.test.bugs._2807.spring.before.BeforeMethod;
+import org.mapstruct.ap.test.bugs._2807.spring.beforewithtarget.BeforeWithTarget;
import org.mapstruct.factory.Mappers;
/**
diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/after/AfterMethod.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/spring/after/AfterMethod.java
similarity index 88%
rename from processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/after/AfterMethod.java
rename to processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/spring/after/AfterMethod.java
index f7c745734..05770c660 100644
--- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/after/AfterMethod.java
+++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/spring/after/AfterMethod.java
@@ -3,7 +3,7 @@
*
* Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
*/
-package org.mapstruct.ap.test.bugs._2807.after;
+package org.mapstruct.ap.test.bugs._2807.spring.after;
import java.util.List;
diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/before/BeforeMethod.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/spring/before/BeforeMethod.java
similarity index 87%
rename from processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/before/BeforeMethod.java
rename to processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/spring/before/BeforeMethod.java
index 5252bee15..9fb9e7e88 100644
--- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/before/BeforeMethod.java
+++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/spring/before/BeforeMethod.java
@@ -3,7 +3,7 @@
*
* Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
*/
-package org.mapstruct.ap.test.bugs._2807.before;
+package org.mapstruct.ap.test.bugs._2807.spring.before;
import org.mapstruct.BeforeMapping;
diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/beforewithtarget/BeforeWithTarget.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/spring/beforewithtarget/BeforeWithTarget.java
similarity index 88%
rename from processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/beforewithtarget/BeforeWithTarget.java
rename to processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/spring/beforewithtarget/BeforeWithTarget.java
index 69e62bdea..a3ee8b57e 100644
--- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/beforewithtarget/BeforeWithTarget.java
+++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_2807/spring/beforewithtarget/BeforeWithTarget.java
@@ -3,7 +3,7 @@
*
* Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
*/
-package org.mapstruct.ap.test.bugs._2807.beforewithtarget;
+package org.mapstruct.ap.test.bugs._2807.spring.beforewithtarget;
import java.util.List;
diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_880/Config.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_880/spring/Config.java
similarity index 87%
rename from processor/src/test/java/org/mapstruct/ap/test/bugs/_880/Config.java
rename to processor/src/test/java/org/mapstruct/ap/test/bugs/_880/spring/Config.java
index 32f58384b..7aef1e9e1 100644
--- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_880/Config.java
+++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_880/spring/Config.java
@@ -3,7 +3,7 @@
*
* Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
*/
-package org.mapstruct.ap.test.bugs._880;
+package org.mapstruct.ap.test.bugs._880.spring;
import org.mapstruct.MapperConfig;
import org.mapstruct.ReportingPolicy;
diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_880/DefaultsToProcessorOptionsMapper.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_880/spring/DefaultsToProcessorOptionsMapper.java
similarity index 86%
rename from processor/src/test/java/org/mapstruct/ap/test/bugs/_880/DefaultsToProcessorOptionsMapper.java
rename to processor/src/test/java/org/mapstruct/ap/test/bugs/_880/spring/DefaultsToProcessorOptionsMapper.java
index c54da3f7c..5f67b4155 100644
--- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_880/DefaultsToProcessorOptionsMapper.java
+++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_880/spring/DefaultsToProcessorOptionsMapper.java
@@ -3,7 +3,7 @@
*
* Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
*/
-package org.mapstruct.ap.test.bugs._880;
+package org.mapstruct.ap.test.bugs._880.spring;
import org.mapstruct.Mapper;
diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_880/Issue880Test.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_880/spring/Issue880Test.java
similarity index 97%
rename from processor/src/test/java/org/mapstruct/ap/test/bugs/_880/Issue880Test.java
rename to processor/src/test/java/org/mapstruct/ap/test/bugs/_880/spring/Issue880Test.java
index 9d8540b40..d2f371abe 100644
--- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_880/Issue880Test.java
+++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_880/spring/Issue880Test.java
@@ -3,7 +3,7 @@
*
* Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
*/
-package org.mapstruct.ap.test.bugs._880;
+package org.mapstruct.ap.test.bugs._880.spring;
import javax.tools.Diagnostic.Kind;
diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_880/Poodle.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_880/spring/Poodle.java
similarity index 88%
rename from processor/src/test/java/org/mapstruct/ap/test/bugs/_880/Poodle.java
rename to processor/src/test/java/org/mapstruct/ap/test/bugs/_880/spring/Poodle.java
index e822db1cf..71166f6d4 100644
--- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_880/Poodle.java
+++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_880/spring/Poodle.java
@@ -3,7 +3,7 @@
*
* Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
*/
-package org.mapstruct.ap.test.bugs._880;
+package org.mapstruct.ap.test.bugs._880.spring;
/**
* @author Andreas Gudian
diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_880/UsesConfigFromAnnotationMapper.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_880/spring/UsesConfigFromAnnotationMapper.java
similarity index 90%
rename from processor/src/test/java/org/mapstruct/ap/test/bugs/_880/UsesConfigFromAnnotationMapper.java
rename to processor/src/test/java/org/mapstruct/ap/test/bugs/_880/spring/UsesConfigFromAnnotationMapper.java
index d9a1efe33..bb9a7def9 100644
--- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_880/UsesConfigFromAnnotationMapper.java
+++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_880/spring/UsesConfigFromAnnotationMapper.java
@@ -3,7 +3,7 @@
*
* Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
*/
-package org.mapstruct.ap.test.bugs._880;
+package org.mapstruct.ap.test.bugs._880.spring;
import org.mapstruct.Mapper;
import org.mapstruct.MappingConstants;
diff --git a/processor/src/test/java/org/mapstruct/ap/test/decorator/jsr330/Jsr330DecoratorTest.java b/processor/src/test/java/org/mapstruct/ap/test/decorator/jsr330/Jsr330DecoratorTest.java
index a3bad68b9..be1a67cf0 100644
--- a/processor/src/test/java/org/mapstruct/ap/test/decorator/jsr330/Jsr330DecoratorTest.java
+++ b/processor/src/test/java/org/mapstruct/ap/test/decorator/jsr330/Jsr330DecoratorTest.java
@@ -11,6 +11,8 @@ import javax.inject.Named;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.condition.DisabledOnJre;
+import org.junit.jupiter.api.condition.JRE;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.mapstruct.ap.test.decorator.Address;
import org.mapstruct.ap.test.decorator.AddressDto;
@@ -46,6 +48,7 @@ import static org.assertj.core.api.Assertions.assertThat;
@ComponentScan(basePackageClasses = Jsr330DecoratorTest.class)
@Configuration
@WithJavaxInject
+@DisabledOnJre(JRE.OTHER)
public class Jsr330DecoratorTest {
@RegisterExtension
diff --git a/processor/src/test/java/org/mapstruct/ap/test/injectionstrategy/jsr330/_default/Jsr330DefaultCompileOptionFieldMapperTest.java b/processor/src/test/java/org/mapstruct/ap/test/injectionstrategy/jsr330/_default/Jsr330DefaultCompileOptionFieldMapperTest.java
index 6b92d9815..192059c8a 100644
--- a/processor/src/test/java/org/mapstruct/ap/test/injectionstrategy/jsr330/_default/Jsr330DefaultCompileOptionFieldMapperTest.java
+++ b/processor/src/test/java/org/mapstruct/ap/test/injectionstrategy/jsr330/_default/Jsr330DefaultCompileOptionFieldMapperTest.java
@@ -10,6 +10,8 @@ import javax.inject.Named;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.condition.DisabledOnJre;
+import org.junit.jupiter.api.condition.JRE;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.mapstruct.ap.test.injectionstrategy.shared.CustomerDto;
import org.mapstruct.ap.test.injectionstrategy.shared.CustomerEntity;
@@ -44,6 +46,7 @@ import static org.assertj.core.api.Assertions.assertThat;
@ComponentScan(basePackageClasses = CustomerJsr330DefaultCompileOptionFieldMapper.class)
@WithJavaxInject
@Configuration
+@DisabledOnJre(JRE.OTHER)
public class Jsr330DefaultCompileOptionFieldMapperTest {
@RegisterExtension
diff --git a/processor/src/test/java/org/mapstruct/ap/test/injectionstrategy/jsr330/compileoptionconstructor/Jsr330CompileOptionConstructorMapperTest.java b/processor/src/test/java/org/mapstruct/ap/test/injectionstrategy/jsr330/compileoptionconstructor/Jsr330CompileOptionConstructorMapperTest.java
index fe9cf295f..02b634da8 100644
--- a/processor/src/test/java/org/mapstruct/ap/test/injectionstrategy/jsr330/compileoptionconstructor/Jsr330CompileOptionConstructorMapperTest.java
+++ b/processor/src/test/java/org/mapstruct/ap/test/injectionstrategy/jsr330/compileoptionconstructor/Jsr330CompileOptionConstructorMapperTest.java
@@ -7,6 +7,8 @@ package org.mapstruct.ap.test.injectionstrategy.jsr330.compileoptionconstructor;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.condition.DisabledOnJre;
+import org.junit.jupiter.api.condition.JRE;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.mapstruct.ap.test.injectionstrategy.shared.CustomerDto;
import org.mapstruct.ap.test.injectionstrategy.shared.CustomerEntity;
@@ -44,6 +46,7 @@ import static org.assertj.core.api.Assertions.assertThat;
@ComponentScan(basePackageClasses = CustomerJsr330CompileOptionConstructorMapper.class)
@Configuration
@WithJavaxInject
+@DisabledOnJre(JRE.OTHER)
public class Jsr330CompileOptionConstructorMapperTest {
@RegisterExtension
diff --git a/processor/src/test/java/org/mapstruct/ap/test/injectionstrategy/jsr330/constructor/Jsr330ConstructorMapperTest.java b/processor/src/test/java/org/mapstruct/ap/test/injectionstrategy/jsr330/constructor/Jsr330ConstructorMapperTest.java
index a5cfce5c2..d51843f00 100644
--- a/processor/src/test/java/org/mapstruct/ap/test/injectionstrategy/jsr330/constructor/Jsr330ConstructorMapperTest.java
+++ b/processor/src/test/java/org/mapstruct/ap/test/injectionstrategy/jsr330/constructor/Jsr330ConstructorMapperTest.java
@@ -7,6 +7,8 @@ package org.mapstruct.ap.test.injectionstrategy.jsr330.constructor;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.condition.DisabledOnJre;
+import org.junit.jupiter.api.condition.JRE;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.mapstruct.ap.test.injectionstrategy.shared.CustomerDto;
import org.mapstruct.ap.test.injectionstrategy.shared.CustomerEntity;
@@ -44,6 +46,7 @@ import static org.assertj.core.api.Assertions.assertThat;
@ComponentScan(basePackageClasses = CustomerJsr330ConstructorMapper.class)
@Configuration
@WithJavaxInject
+@DisabledOnJre(JRE.OTHER)
public class Jsr330ConstructorMapperTest {
@RegisterExtension
diff --git a/processor/src/test/java/org/mapstruct/ap/test/injectionstrategy/jsr330/field/Jsr330FieldMapperTest.java b/processor/src/test/java/org/mapstruct/ap/test/injectionstrategy/jsr330/field/Jsr330FieldMapperTest.java
index 84e67f63a..d713f9cc8 100644
--- a/processor/src/test/java/org/mapstruct/ap/test/injectionstrategy/jsr330/field/Jsr330FieldMapperTest.java
+++ b/processor/src/test/java/org/mapstruct/ap/test/injectionstrategy/jsr330/field/Jsr330FieldMapperTest.java
@@ -10,6 +10,8 @@ import javax.inject.Named;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.condition.DisabledOnJre;
+import org.junit.jupiter.api.condition.JRE;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.mapstruct.ap.test.injectionstrategy.shared.CustomerDto;
import org.mapstruct.ap.test.injectionstrategy.shared.CustomerEntity;
@@ -46,6 +48,7 @@ import static org.assertj.core.api.Assertions.assertThat;
@ComponentScan(basePackageClasses = CustomerJsr330FieldMapper.class)
@Configuration
@WithJavaxInject
+@DisabledOnJre(JRE.OTHER)
public class Jsr330FieldMapperTest {
@RegisterExtension
diff --git a/processor/src/test/java/org/mapstruct/ap/test/injectionstrategy/jsr330/setter/Jsr330SetterMapperTest.java b/processor/src/test/java/org/mapstruct/ap/test/injectionstrategy/jsr330/setter/Jsr330SetterMapperTest.java
index 558206e51..a6f18ed59 100644
--- a/processor/src/test/java/org/mapstruct/ap/test/injectionstrategy/jsr330/setter/Jsr330SetterMapperTest.java
+++ b/processor/src/test/java/org/mapstruct/ap/test/injectionstrategy/jsr330/setter/Jsr330SetterMapperTest.java
@@ -7,6 +7,8 @@ package org.mapstruct.ap.test.injectionstrategy.jsr330.setter;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.condition.DisabledOnJre;
+import org.junit.jupiter.api.condition.JRE;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.mapstruct.ap.test.injectionstrategy.shared.CustomerDto;
import org.mapstruct.ap.test.injectionstrategy.shared.CustomerEntity;
@@ -42,6 +44,7 @@ import static org.assertj.core.api.Assertions.assertThat;
@ComponentScan(basePackageClasses = CustomerJsr330SetterMapper.class)
@Configuration
@WithJavaxInject
+@DisabledOnJre(JRE.OTHER)
public class Jsr330SetterMapperTest {
@RegisterExtension
diff --git a/processor/src/test/java/org/mapstruct/ap/testutil/WithSpring.java b/processor/src/test/java/org/mapstruct/ap/testutil/WithSpring.java
index 40db5afd8..04e387d42 100644
--- a/processor/src/test/java/org/mapstruct/ap/testutil/WithSpring.java
+++ b/processor/src/test/java/org/mapstruct/ap/testutil/WithSpring.java
@@ -10,6 +10,8 @@ import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+import org.junit.jupiter.api.condition.DisabledOnJre;
+import org.junit.jupiter.api.condition.JRE;
/**
* Meta annotation that adds the needed Spring Dependencies
@@ -23,6 +25,7 @@ import java.lang.annotation.Target;
"spring-beans",
"spring-context"
})
+@DisabledOnJre(JRE.OTHER)
public @interface WithSpring {
}
diff --git a/readme.md b/readme.md
index adb48b2fd..907c8411c 100644
--- a/readme.md
+++ b/readme.md
@@ -130,7 +130,7 @@ To learn more about MapStruct, refer to the [project homepage](https://mapstruct
## Building from Source
-MapStruct uses Maven for its build. Java 11 is required for building MapStruct from source. To build the complete project, run
+MapStruct uses Maven for its build. Java 17 is required for building MapStruct from source. To build the complete project, run
./mvnw clean install