From a3e7b0a20a9b37a2120088287cca76866d12e070 Mon Sep 17 00:00:00 2001 From: Filip Hrisafov Date: Sun, 22 Oct 2017 23:20:03 +0200 Subject: [PATCH] #610 remove unmapped source policy processor option --- .../mapstruct-reference-guide.asciidoc | 12 ----- .../org/mapstruct/ap/MappingProcessor.java | 4 -- .../ap/internal/model/BeanMappingMethod.java | 2 +- .../mapstruct/ap/internal/option/Options.java | 7 --- .../ap/internal/util/MapperConfiguration.java | 6 +-- .../unmappedsource/UnmappedSourceTest.java | 48 ------------------- 6 files changed, 2 insertions(+), 77 deletions(-) diff --git a/documentation/src/main/asciidoc/mapstruct-reference-guide.asciidoc b/documentation/src/main/asciidoc/mapstruct-reference-guide.asciidoc index cbc257353..ca8cdf66f 100644 --- a/documentation/src/main/asciidoc/mapstruct-reference-guide.asciidoc +++ b/documentation/src/main/asciidoc/mapstruct-reference-guide.asciidoc @@ -257,18 +257,6 @@ Supported values are: If a policy is given for a specific mapper via `@Mapper#unmappedTargetPolicy()`, the value from the annotation takes precedence. |`WARN` - -|`mapstruct.unmappedSourcePolicy` -|The default reporting policy to be applied in case an attribute of the source object of a mapping method is not populating an attribute of the target object. - -Supported values are: - -* `ERROR`: any unmapped source property will cause the mapping code generation to fail -* `WARN`: any unmapped source property will cause a warning at build time -* `IGNORE`: unmapped source properties are ignored - -If a policy is given for a specific mapper via `@Mapper#unmappedSourcePolicy()`, the value from the annotation takes precedence. -|`IGNORE` |=== === Using MapStruct on Java 9 diff --git a/processor/src/main/java/org/mapstruct/ap/MappingProcessor.java b/processor/src/main/java/org/mapstruct/ap/MappingProcessor.java index 74f81b820..76c4f6a83 100644 --- a/processor/src/main/java/org/mapstruct/ap/MappingProcessor.java +++ b/processor/src/main/java/org/mapstruct/ap/MappingProcessor.java @@ -91,7 +91,6 @@ import org.mapstruct.ap.internal.util.TypeHierarchyErroneousException; MappingProcessor.SUPPRESS_GENERATOR_TIMESTAMP, MappingProcessor.SUPPRESS_GENERATOR_VERSION_INFO_COMMENT, MappingProcessor.UNMAPPED_TARGET_POLICY, - MappingProcessor.UNMAPPED_SOURCE_POLICY, MappingProcessor.DEFAULT_COMPONENT_MODEL }) public class MappingProcessor extends AbstractProcessor { @@ -105,7 +104,6 @@ public class MappingProcessor extends AbstractProcessor { protected static final String SUPPRESS_GENERATOR_VERSION_INFO_COMMENT = "mapstruct.suppressGeneratorVersionInfoComment"; protected static final String UNMAPPED_TARGET_POLICY = "mapstruct.unmappedTargetPolicy"; - protected static final String UNMAPPED_SOURCE_POLICY = "mapstruct.unmappedSourcePolicy"; protected static final String DEFAULT_COMPONENT_MODEL = "mapstruct.defaultComponentModel"; protected static final String ALWAYS_GENERATE_SERVICE_FILE = "mapstruct.alwaysGenerateServicesFile"; @@ -134,13 +132,11 @@ public class MappingProcessor extends AbstractProcessor { private Options createOptions() { String unmappedTargetPolicy = processingEnv.getOptions().get( UNMAPPED_TARGET_POLICY ); - String unmappedSourcePolicy = processingEnv.getOptions().get( UNMAPPED_SOURCE_POLICY ); return new Options( Boolean.valueOf( processingEnv.getOptions().get( SUPPRESS_GENERATOR_TIMESTAMP ) ), Boolean.valueOf( processingEnv.getOptions().get( SUPPRESS_GENERATOR_VERSION_INFO_COMMENT ) ), unmappedTargetPolicy != null ? ReportingPolicyPrism.valueOf( unmappedTargetPolicy.toUpperCase() ) : null, - unmappedSourcePolicy != null ? ReportingPolicyPrism.valueOf( unmappedSourcePolicy.toUpperCase() ) : null, processingEnv.getOptions().get( DEFAULT_COMPONENT_MODEL ), Boolean.valueOf( processingEnv.getOptions().get( ALWAYS_GENERATE_SERVICE_FILE ) ) ); diff --git a/processor/src/main/java/org/mapstruct/ap/internal/model/BeanMappingMethod.java b/processor/src/main/java/org/mapstruct/ap/internal/model/BeanMappingMethod.java index 811b7dee0..ae73e2297 100644 --- a/processor/src/main/java/org/mapstruct/ap/internal/model/BeanMappingMethod.java +++ b/processor/src/main/java/org/mapstruct/ap/internal/model/BeanMappingMethod.java @@ -752,7 +752,7 @@ public class BeanMappingMethod extends NormalTypeMappingMethod { private ReportingPolicyPrism getUnmappedSourcePolicy() { MapperConfiguration mapperSettings = MapperConfiguration.getInstanceOn( ctx.getMapperTypeElement() ); - return mapperSettings.unmappedSourcePolicy( ctx.getOptions() ); + return mapperSettings.unmappedSourcePolicy(); } private void reportErrorForUnmappedSourcePropertiesIfRequired() { diff --git a/processor/src/main/java/org/mapstruct/ap/internal/option/Options.java b/processor/src/main/java/org/mapstruct/ap/internal/option/Options.java index 66ee051c5..03adaa354 100644 --- a/processor/src/main/java/org/mapstruct/ap/internal/option/Options.java +++ b/processor/src/main/java/org/mapstruct/ap/internal/option/Options.java @@ -30,18 +30,15 @@ public class Options { private final boolean suppressGeneratorTimestamp; private final boolean suppressGeneratorVersionComment; private final ReportingPolicyPrism unmappedTargetPolicy; - private final ReportingPolicyPrism unmappedSourcePolicy; private final boolean alwaysGenerateSpi; private final String defaultComponentModel; public Options(boolean suppressGeneratorTimestamp, boolean suppressGeneratorVersionComment, ReportingPolicyPrism unmappedTargetPolicy, - ReportingPolicyPrism unmappedSourcePolicy, String defaultComponentModel, boolean alwaysGenerateSpi) { this.suppressGeneratorTimestamp = suppressGeneratorTimestamp; this.suppressGeneratorVersionComment = suppressGeneratorVersionComment; this.unmappedTargetPolicy = unmappedTargetPolicy; - this.unmappedSourcePolicy = unmappedSourcePolicy; this.defaultComponentModel = defaultComponentModel; this.alwaysGenerateSpi = alwaysGenerateSpi; } @@ -58,10 +55,6 @@ public class Options { return unmappedTargetPolicy; } - public ReportingPolicyPrism getUnmappedSourcePolicy() { - return unmappedSourcePolicy; - } - public String getDefaultComponentModel() { return defaultComponentModel; } diff --git a/processor/src/main/java/org/mapstruct/ap/internal/util/MapperConfiguration.java b/processor/src/main/java/org/mapstruct/ap/internal/util/MapperConfiguration.java index 7db9c4f1a..457601538 100644 --- a/processor/src/main/java/org/mapstruct/ap/internal/util/MapperConfiguration.java +++ b/processor/src/main/java/org/mapstruct/ap/internal/util/MapperConfiguration.java @@ -129,7 +129,7 @@ public class MapperConfiguration { return ReportingPolicyPrism.valueOf( mapperPrism.unmappedTargetPolicy() ); } - public ReportingPolicyPrism unmappedSourcePolicy(Options options) { + public ReportingPolicyPrism unmappedSourcePolicy() { if ( mapperPrism.values.unmappedSourcePolicy() != null ) { return ReportingPolicyPrism.valueOf( mapperPrism.unmappedSourcePolicy() ); } @@ -138,10 +138,6 @@ public class MapperConfiguration { return ReportingPolicyPrism.valueOf( mapperConfigPrism.unmappedSourcePolicy() ); } - if ( options.getUnmappedSourcePolicy() != null ) { - return options.getUnmappedSourcePolicy(); - } - // fall back to default defined in the annotation return ReportingPolicyPrism.valueOf( mapperPrism.unmappedSourcePolicy() ); } diff --git a/processor/src/test/java/org/mapstruct/ap/test/unmappedsource/UnmappedSourceTest.java b/processor/src/test/java/org/mapstruct/ap/test/unmappedsource/UnmappedSourceTest.java index 817a648d9..37f4c8c5f 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/unmappedsource/UnmappedSourceTest.java +++ b/processor/src/test/java/org/mapstruct/ap/test/unmappedsource/UnmappedSourceTest.java @@ -28,7 +28,6 @@ import org.mapstruct.ap.testutil.WithClasses; import org.mapstruct.ap.testutil.compilation.annotation.CompilationResult; import org.mapstruct.ap.testutil.compilation.annotation.Diagnostic; import org.mapstruct.ap.testutil.compilation.annotation.ExpectedCompilationOutcome; -import org.mapstruct.ap.testutil.compilation.annotation.ProcessorOption; import org.mapstruct.ap.testutil.runner.AnnotationProcessorTestRunner; import org.mapstruct.ap.test.unmappedtarget.Source; import org.mapstruct.ap.test.unmappedtarget.Target; @@ -84,51 +83,4 @@ public class UnmappedSourceTest { ) public void shouldRaiseErrorDueToUnsetSourceProperty() { } - - @Test - @WithClasses({ Source.class, Target.class, org.mapstruct.ap.test.unmappedtarget.SourceTargetMapper.class }) - @ProcessorOption(name = "mapstruct.unmappedSourcePolicy", value = "ERROR") - @ExpectedCompilationOutcome( - value = CompilationResult.FAILED, - diagnostics = { - @Diagnostic(type = org.mapstruct.ap.test.unmappedtarget.SourceTargetMapper.class, - kind = Kind.ERROR, - line = 29, - messageRegExp = "Unmapped source property: \"qux\""), - @Diagnostic(type = org.mapstruct.ap.test.unmappedtarget.SourceTargetMapper.class, - kind = Kind.WARNING, - line = 29, - messageRegExp = "Unmapped target property: \"bar\""), - @Diagnostic(type = org.mapstruct.ap.test.unmappedtarget.SourceTargetMapper.class, - kind = Kind.ERROR, - line = 31, - messageRegExp = "Unmapped source property: \"bar\""), - @Diagnostic(type = org.mapstruct.ap.test.unmappedtarget.SourceTargetMapper.class, - kind = Kind.WARNING, - line = 31, - messageRegExp = "Unmapped target property: \"qux\"") - } - ) - public void shouldRaiseErrorDueToUnsetSourcePropertyWithPolicySetViaProcessorOption() { - } - - @Test - @WithClasses({ Source.class, Target.class, UsesConfigFromAnnotationMapper.class, Config.class }) - @ProcessorOption(name = "mapstruct.unmappedSourcePolicy", value = "ERROR") - @ExpectedCompilationOutcome( - value = CompilationResult.SUCCEEDED, - diagnostics = { - @Diagnostic(type = UsesConfigFromAnnotationMapper.class, - kind = Kind.WARNING, - line = 33, - messageRegExp = "Unmapped source property: \"qux\""), - @Diagnostic(type = UsesConfigFromAnnotationMapper.class, - kind = Kind.WARNING, - line = 35, - messageRegExp = "Unmapped source property: \"bar\"") - } - ) - public void shouldRaiseErrorBecauseConfiguredByAnnotation() { - } - }