1212 Commits

Author SHA1 Message Date
Filip Hrisafov
51e67ebca4 #2925 Fix IllegalArgumentException when resolving generic parameters
When resolving the parameter for a method like:

```
<T> Optional<T> from(T value)
```

There was an exception in javac because getting a DeclaredType from an Optional
with a primitive type argument throws an exception.
Therefore, when assigning the type arguments we get the boxed equivalent.
This problem does not happen in the Eclipse compiler
2022-09-26 18:50:39 +02:00
Filip Hrisafov
1c3c46f1ef #2907 Add test case for nested import of array 2022-09-26 18:50:07 +02:00
Filip Hrisafov
383ed23ed2 #2945 Stabilise top level imports
Make sure that GeneratedType always gets the imported types
from a Type before adding them
2022-09-26 18:49:43 +02:00
Filip Hrisafov
d0e9d69be1 #2937 Fix conditional check for collections with adders 2022-09-26 18:48:54 +02:00
Filip Hrisafov
082b36a50a #2897 Always import types defined in Mapper#imports 2022-09-26 18:46:46 +02:00
Filip Hrisafov
3a94eb80b0 #2949 Do not inverse inherit BeanMapping#ignoreUnmappedSourceProperties 2022-09-26 18:45:54 +02:00
Hakan
e5c7fdb2f6 #2839 Keep thrown types when creating a new ForgedMethod with the same arguments
This fixes a compilation error when mapping fields with the same type due to not wrapping in a `try-catch` block
2022-09-26 18:45:03 +02:00
Prasanth Omanakuttan
e3f9a1ccd5 Update Typos in javadoc (#2958) 2022-09-26 18:43:53 +02:00
Filip Hrisafov
de8c0c7070 Use UTF-8 when compiling the tests
The test infrastructure that we are using should use UTF-8 for generating the StandardJavaFileManager
2022-06-29 08:37:50 +02:00
Ben Zegveld
88745d151e #2882: target type is now correctly passed on through the MethodReferencePresenceCheck to the MethodReference. 2022-06-18 23:32:26 +02:00
Filip Hrisafov
1459aabfc3 [maven-release-plugin] prepare for next development iteration 2022-06-18 19:01:18 +02:00
Filip Hrisafov
19973ff818 [maven-release-plugin] prepare release 1.5.2.Final 2022-06-18 19:01:16 +02:00
Sergei Portnov
406ae3fc13
#2891 Fix subclass mapping while superclass has non-empty constructor
Co-authored-by: Filip Hrisafov <filip.hrisafov@gmail.com>
2022-06-18 18:47:07 +02:00
Filip Hrisafov
98eb46aee9
#2880 Fix missing import for array mapping methods
Co-authored-by: Martin Kamp Jensen <martin.kamp.jensen@se.com>
2022-06-18 13:59:03 +02:00
Filip Hrisafov
fa800926e7 #2837 Add support for text blocks in expressions 2022-06-18 12:32:05 +02:00
Filip Hrisafov
22ad9f636d
#2806 Try to stabilise some date conversion tests by locking them on reading the default timezone 2022-06-14 22:03:32 +02:00
Filip Hrisafov
20e97714d4 [maven-release-plugin] prepare for next development iteration 2022-06-05 08:42:56 +02:00
Filip Hrisafov
ec9288ce66 [maven-release-plugin] prepare release 1.5.1.Final 2022-06-05 08:42:55 +02:00
Filip Hrisafov
46b78bfe59 #2867 Fix NPE when reporting message on parent mappers 2022-06-05 08:35:31 +02:00
Filip Hrisafov
5efe5e291c [maven-release-plugin] prepare for next development iteration 2022-06-02 23:11:41 +02:00
Filip Hrisafov
efa11ba312 [maven-release-plugin] prepare release 1.5.0.Final 2022-06-02 23:11:41 +02:00
Filip Hrisafov
a1a0786cf2
#2846 Add test case showing that everything works as expected 2022-06-02 22:14:42 +02:00
Zegveld
437a70d6df
#2807: Include LifeCycleMethod importTypes in the list of importTypes. (#2808)
Co-authored-by: Ben Zegveld <Ben.Zegveld@gmail.com>
2022-04-08 20:57:40 +02:00
Filip Hrisafov
6604617730 #2794 Compile error when condition expression used with constant or expression 2022-04-03 15:20:00 +02:00
Zegveld
03d44b5a87
#2795: use 'includeModel' for the 'sourcePresenceCheckerReference' in the 'UpdateWrapper'. (#2796)
* #2795: use 'includeModel' for the 'sourcePresenceCheckerReference' in the 'UpdateWrapper'.
* Simplify the tests

Co-authored-by: Ben Zegveld <Ben.Zegveld@gmail.com>
Co-authored-by: Filip Hrisafov <filip.hrisafov@gmail.com>
2022-04-02 18:55:06 +02:00
Zegveld
2473c3eaaa
#2797: Add the nested type import types in the NestedPropertyMappingMethod
* #2797: Reproduction scenario
* Add the nested type import types in the NestedPropertyMappingMethod

Co-authored-by: Ben Zegveld <Ben.Zegveld@gmail.com>
Co-authored-by: Filip Hrisafov <filip.hrisafov@gmail.com>
2022-04-02 11:59:25 +02:00
Filip Hrisafov
08a0313840 [maven-release-plugin] prepare for next development iteration 2022-03-21 08:14:09 +01:00
Filip Hrisafov
7e00af6ff4 [maven-release-plugin] prepare release 1.5.0.RC1 2022-03-21 08:14:08 +01:00
Chris DeLashmutt
ab52867831
#2748 Support mapping map keys with invalid chars for methods 2022-03-19 11:51:19 +01:00
Filip Hrisafov
ad00adfa86
#2538 Allow using 2 step mappings with only one of the 2 methods being qualified 2022-03-12 23:57:17 +01:00
Zegveld
0a69492983
#2755: use raw Type when calling a static method. (#2762) 2022-03-12 18:02:01 +01:00
Zegveld
b6a3aa1512
#2758: fallback to param.variableName if ext.targetBeanName is not present in MethodReference handling. (#2759) 2022-03-12 18:01:15 +01:00
Zegveld
7bb85d05c0
2696: Invert @SubclassMappings with @InheritInverseConfiguration. (#2708)
* #2696: Added support for '@InheritInverseConfiguration' with '@SubclassMappings'.
* #2696: Overriding of inverse inheritence implemented. New order has preference over inherited order.
2022-02-06 20:03:23 +01:00
Filip Hrisafov
2a2c11e871
#2629 Use ModuleElement when getting type element
Prior to this MapStruct would only use `Elements#getTypeElement`.
With this PR if the mapper being generated is within a module MapStruct will use that module
for the methods that are needed (getTypeElement and getPackageElement).

Adapt the build to require a minimum Java 11 for building the processor module.
Adapt the GitHub actions to properly run integration tests with Java 8
Ignore Java 9 usages for the animal-sniffer-plugin
2022-01-30 20:52:22 +01:00
Filip Hrisafov
37835a5607
#2677 Use type without bounds when looking for read / presence accessor in a SourceReference 2022-01-30 20:49:05 +01:00
Filip Hrisafov
12070186a4 #2567 Add support for Jakarta Injection
Support for Jakarta is done in 2 ways:

* current jsr330 component model - In this case Jakarta Inject will be used if javax.inject is not available
* new jakarta component model - In this case Jakarta Inject will always be used
2022-01-30 13:31:50 +01:00
Filip Hrisafov
aed3ff5295 #1997 Use builders to construct empty objects in update wrapper 2022-01-30 12:38:42 +01:00
Filip Hrisafov
5f4d355838
#1661 Add support for globally disabling builders 2022-01-29 11:46:34 +01:00
Filip Hrisafov
20ff51ebb8
#2728 Add new WithTestDependency annotation for our processor testing
Adding this dependency allows us to dynamically pick the dependencies that we want to have on the test compilation classpath.
It would allow us to more granularly test things with different dependencies, such as javax inject and jakarta inject
2022-01-29 11:13:16 +01:00
Zegveld
9105041522
#2668: Added support for collections and maps with a no-args constructor (#2671)
#2668: Added support for collections and maps with a no-args constructor. Added a compiler error in case of a collection or map without either a no-arg constructor or a copy constructor.
2022-01-29 00:37:24 +01:00
Justyna
b22efd9ad7
#2674: Add check if method without implementation doesn’t have @AfterMapping / @BeforeMapping annotation 2022-01-24 14:17:24 +01:00
Valentin Kulesh
42cfa05c40
#2704 Fix broken reference to constants within nested enums 2021-12-26 11:22:05 +01:00
Filip Hrisafov
930b07aab8 [maven-release-plugin] prepare for next development iteration 2021-12-12 12:48:56 +01:00
Filip Hrisafov
0de10ca83c [maven-release-plugin] prepare release 1.5.0.Beta2 2021-12-12 12:48:55 +01:00
Zegveld
ea45666d66
#2673: Fix optional wrapping pattern throwing exception when primitive types are present
MethodMatcher incorrectly reported that a primitive type matches a candidate for a type var
2021-12-11 14:16:19 +01:00
Filip Hrisafov
5de813c16f #2666 Presence Check should be applied to source parameters when used in @Mapping 2021-12-04 12:37:15 +01:00
Filip Hrisafov
00df0bc3d0
#2680 Refactor accessors
Split the `PresenceCheck`s accessor from the current `Accessor`.
Introduce a `ReadAccessor` that would allow us to more easily implement certain things.
Remove `MAP_GET` and `MAP_CONTAINS` from the AccessorType and use the new refactored mechanism
2021-12-03 19:13:41 +01:00
Filip Hrisafov
13bc0c023c
#2553 Support source property paths for maps 2021-11-20 08:48:08 +01:00
Filip Hrisafov
29008e12bf #2005 Parameter type should only be checked if we are mapping from a single argument source 2021-11-20 08:00:32 +01:00
Zegveld
72e6b1feb5
#2636: defaultValue combined with qualified should not convert if not needed (#2637) 2021-11-14 20:11:05 +01:00