From ae3758674ab7b18663887a082b02a95aa9f7a939 Mon Sep 17 00:00:00 2001 From: Gunnar Morling Date: Thu, 3 Jan 2019 10:53:30 +0100 Subject: [PATCH] #1675 Making MapStruct compileable with OpenJDK 11 --- integrationtest/pom.xml | 17 +++++++++++++++++ processor/pom.xml | 16 ++++++++++++++++ .../StaticParseToStringConversion.java | 4 ++-- .../test/abstractclass/AbstractClassTest.java | 3 ++- .../abstractclass/AbstractReferencedMapper.java | 3 +-- .../mapstruct/ap/test/abstractclass/Holder.java | 15 +++++++++++++++ .../ap/test/abstractclass/ReferencedMapper.java | 3 +-- .../ReferencedMapperInterface.java | 3 +-- .../mapstruct/ap/test/abstractclass/Source.java | 2 -- .../mapstruct/ap/test/bugs/_1170/AdderTest.java | 12 ++++++------ .../IterableWithBoundedElementTypeTest.java | 7 +++++-- 11 files changed, 66 insertions(+), 19 deletions(-) create mode 100644 processor/src/test/java/org/mapstruct/ap/test/abstractclass/Holder.java diff --git a/integrationtest/pom.xml b/integrationtest/pom.xml index 135f7991f..257c32730 100644 --- a/integrationtest/pom.xml +++ b/integrationtest/pom.xml @@ -86,4 +86,21 @@ + + + + jdk-11-or-newer + + [11 + + + + javax.xml.bind + jaxb-api + 2.3.1 + provided + + + + diff --git a/processor/pom.xml b/processor/pom.xml index 52d8e7efb..538237e7d 100644 --- a/processor/pom.xml +++ b/processor/pom.xml @@ -304,4 +304,20 @@ + + + jdk-11-or-newer + + [11 + + + + javax.xml.bind + jaxb-api + 2.3.1 + provided + + + + diff --git a/processor/src/main/java/org/mapstruct/ap/internal/conversion/StaticParseToStringConversion.java b/processor/src/main/java/org/mapstruct/ap/internal/conversion/StaticParseToStringConversion.java index 15d7b4bcc..df3a70ac3 100644 --- a/processor/src/main/java/org/mapstruct/ap/internal/conversion/StaticParseToStringConversion.java +++ b/processor/src/main/java/org/mapstruct/ap/internal/conversion/StaticParseToStringConversion.java @@ -12,9 +12,9 @@ import org.mapstruct.ap.internal.model.common.Type; import org.mapstruct.ap.internal.util.Collections; /** - * Handles conversion between a target type T and {@link String}, + * Handles conversion between a target type {@code T} and {@link String}, * where {@code T#parse(String)} and {@code T#toString} are inverse operations. - * The {@link ConversionContext#getTargetType()} is used as the from target type T. + * The {@link ConversionContext#getTargetType()} is used as the from target type {@code T}. */ public class StaticParseToStringConversion extends SimpleConversion { diff --git a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/AbstractClassTest.java b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/AbstractClassTest.java index 42df0b4fe..f510fd32e 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/AbstractClassTest.java +++ b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/AbstractClassTest.java @@ -28,7 +28,8 @@ import org.mapstruct.ap.testutil.runner.AnnotationProcessorTestRunner; Identifiable.class, HasId.class, AlsoHasId.class, - Measurable.class + Measurable.class, + Holder.class }) @RunWith(AnnotationProcessorTestRunner.class) public class AbstractClassTest { diff --git a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/AbstractReferencedMapper.java b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/AbstractReferencedMapper.java index 1fa135af2..0bde73c97 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/AbstractReferencedMapper.java +++ b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/AbstractReferencedMapper.java @@ -5,12 +5,11 @@ */ package org.mapstruct.ap.test.abstractclass; -import javax.xml.ws.Holder; - /** * @author Andreas Gudian */ public abstract class AbstractReferencedMapper implements ReferencedMapperInterface { + @Override public int holderToInt(Holder holder) { return 41; diff --git a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/Holder.java b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/Holder.java new file mode 100644 index 000000000..e05e06246 --- /dev/null +++ b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/Holder.java @@ -0,0 +1,15 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.abstractclass; + +/** + * @author Gunnar Morling + */ +public class Holder { + + public Holder(String string) { + } +} diff --git a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/ReferencedMapper.java b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/ReferencedMapper.java index d3099f2cb..c2a01d3f8 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/ReferencedMapper.java +++ b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/ReferencedMapper.java @@ -5,12 +5,11 @@ */ package org.mapstruct.ap.test.abstractclass; -import javax.xml.ws.Holder; - /** * @author Andreas Gudian */ public class ReferencedMapper extends AbstractReferencedMapper { + @Override public int holderToInt(Holder holder) { return 42; diff --git a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/ReferencedMapperInterface.java b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/ReferencedMapperInterface.java index a257135e0..5d4e3d866 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/ReferencedMapperInterface.java +++ b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/ReferencedMapperInterface.java @@ -5,11 +5,10 @@ */ package org.mapstruct.ap.test.abstractclass; -import javax.xml.ws.Holder; - /** * @author Andreas Gudian */ public interface ReferencedMapperInterface { + int holderToInt(Holder holder); } diff --git a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/Source.java b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/Source.java index ed8df1f07..f13efc978 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/Source.java +++ b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/Source.java @@ -7,8 +7,6 @@ package org.mapstruct.ap.test.abstractclass; import java.util.Calendar; -import javax.xml.ws.Holder; - public class Source extends AbstractDto implements HasId, AlsoHasId { //CHECKSTYLE:OFF diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_1170/AdderTest.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_1170/AdderTest.java index 9e1e3ea5a..b68884e0e 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_1170/AdderTest.java +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_1170/AdderTest.java @@ -9,6 +9,7 @@ import static org.assertj.core.api.Assertions.assertThat; import java.util.Arrays; +import org.assertj.core.api.ListAssert; import org.junit.Test; import org.junit.runner.RunWith; import org.mapstruct.ap.test.bugs._1170._target.Target; @@ -44,8 +45,8 @@ public class AdderTest { assertThat( target ).isNotNull(); assertThat( target.getWithoutWildcards() ).containsExactly( 2L ); assertThat( target.getWildcardInSources() ).containsExactly( 2L ); - assertThat( target.getWildcardInTargets() ).containsExactly( 2L ); - assertThat( target.getWildcardInBoths() ).containsExactly( 2L ); + ( (ListAssert) assertThat( target.getWildcardInTargets() ) ).containsExactly( 2L ); + ( (ListAssert) assertThat( target.getWildcardInBoths() ) ).containsExactly( 2L ); assertThat( target.getWildcardAdderToSetters() ).containsExactly( 2L ); } @@ -63,10 +64,9 @@ public class AdderTest { assertThat( source ).isNotNull(); assertThat( source.getWithoutWildcards() ).containsExactly( "mouse" ); - assertThat( source.getWildcardInSources() ).containsExactly( "mouse" ); + ( (ListAssert) assertThat( source.getWildcardInSources() ) ).containsExactly( "mouse" ); assertThat( source.getWildcardInTargets() ).containsExactly( "mouse" ); - assertThat( source.getWildcardInBoths() ).containsExactly( "mouse" ); - assertThat( source.getWildcardAdderToSetters() ).containsExactly( "mouse" ); + ( (ListAssert) assertThat( source.getWildcardInBoths() ) ).containsExactly( "mouse" ); + ( (ListAssert) assertThat( source.getWildcardAdderToSetters() ) ).containsExactly( "mouse" ); } - } diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_775/IterableWithBoundedElementTypeTest.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_775/IterableWithBoundedElementTypeTest.java index 9b6c6d40f..af3d5b424 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_775/IterableWithBoundedElementTypeTest.java +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_775/IterableWithBoundedElementTypeTest.java @@ -9,6 +9,7 @@ import static org.assertj.core.api.Assertions.assertThat; import java.util.Arrays; +import org.assertj.core.api.IterableAssert; import org.junit.Test; import org.junit.runner.RunWith; import org.mapstruct.ap.testutil.IssueKey; @@ -42,7 +43,8 @@ public class IterableWithBoundedElementTypeTest { source.setValues( Arrays.asList( "42", "47" ) ); IterableContainer result = MapperWithForgedIterableMapping.INSTANCE.toContainerWithIterable( source ); - assertThat( result.getValues() ).contains( Integer.valueOf( 42 ), Integer.valueOf( 47 ) ); + ( (IterableAssert) assertThat( result.getValues() ) ) + .contains( Integer.valueOf( 42 ), Integer.valueOf( 47 ) ); } @Test @@ -52,6 +54,7 @@ public class IterableWithBoundedElementTypeTest { source.setValues( Arrays.asList( "42", "47" ) ); IterableContainer result = MapperWithCustomListMapping.INSTANCE.toContainerWithIterable( source ); - assertThat( result.getValues() ).contains( Integer.valueOf( 66 ), Integer.valueOf( 71 ) ); + ( (IterableAssert) assertThat( result.getValues() ) ) + .contains( Integer.valueOf( 66 ), Integer.valueOf( 71 ) ); } }