From 716d7ab7fc13feafaab23ed108828a5d9baaa3ad Mon Sep 17 00:00:00 2001 From: Philipp Czora Date: Mon, 25 Jun 2018 15:17:53 +0200 Subject: [PATCH] Use field injection, but suppress SQ Bugs. We need this b/c of MapStruct --- .../scm/api/v2/resources/GroupToGroupDtoMapper.java | 13 +++++-------- .../api/v2/resources/UserCollectionToDtoMapper.java | 4 ++++ .../scm/api/v2/resources/UserDtoToUserMapper.java | 13 +++++-------- .../scm/api/v2/resources/UserToUserDtoMapper.java | 4 ++++ 4 files changed, 18 insertions(+), 16 deletions(-) diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/GroupToGroupDtoMapper.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/GroupToGroupDtoMapper.java index aa417561aa..f98ce7e66f 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/GroupToGroupDtoMapper.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/GroupToGroupDtoMapper.java @@ -16,18 +16,15 @@ import static de.otto.edison.hal.Links.linkingTo; import static sonia.scm.api.v2.resources.ResourceLinks.group; import static sonia.scm.api.v2.resources.ResourceLinks.user; +/** + * Mapstruct does not support parameterized (i.e. non-default) constructors. Thus, we need to use field injection. + */ +@java.lang.SuppressWarnings("squid:S3306") @Mapper public abstract class GroupToGroupDtoMapper extends BaseMapper { - private UriInfoStore uriInfoStore; - - GroupToGroupDtoMapper() { - } - @Inject - public GroupToGroupDtoMapper(UriInfoStore uriInfoStore) { - this.uriInfoStore = uriInfoStore; - } + private UriInfoStore uriInfoStore; @AfterMapping void appendLinks(Group group, @MappingTarget GroupDto target) { diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserCollectionToDtoMapper.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserCollectionToDtoMapper.java index 015ba04ae9..b609771e69 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserCollectionToDtoMapper.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserCollectionToDtoMapper.java @@ -7,6 +7,10 @@ import javax.inject.Inject; import static sonia.scm.api.v2.resources.ResourceLinks.userCollection; +/** + * Mapstruct does not support parameterized (i.e. non-default) constructors. Thus, we need to use field injection. + */ +@java.lang.SuppressWarnings("squid:S3306") public class UserCollectionToDtoMapper extends BasicCollectionToDtoMapper { private final UriInfoStore uriInfoStore; diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserDtoToUserMapper.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserDtoToUserMapper.java index 313fa0ce8b..f06e9803a4 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserDtoToUserMapper.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserDtoToUserMapper.java @@ -8,18 +8,15 @@ import javax.inject.Inject; import static sonia.scm.api.rest.resources.UserResource.DUMMY_PASSWORT; +/** + * Mapstruct does not support parameterized (i.e. non-default) constructors. Thus, we need to use field injection. + */ +@java.lang.SuppressWarnings("squid:S3306") @Mapper public abstract class UserDtoToUserMapper { - private PasswordService passwordService; - - UserDtoToUserMapper() { - } - @Inject - public UserDtoToUserMapper(PasswordService passwordService) { - this.passwordService = passwordService; - } + private PasswordService passwordService; @Mappings({ @Mapping(source = "password", target = "password", qualifiedByName = "encrypt"), diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserToUserDtoMapper.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserToUserDtoMapper.java index 80d747ece0..3c9a03d9bb 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserToUserDtoMapper.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserToUserDtoMapper.java @@ -14,6 +14,10 @@ import static de.otto.edison.hal.Link.link; import static de.otto.edison.hal.Links.linkingTo; import static sonia.scm.api.v2.resources.ResourceLinks.user; +/** + * Mapstruct does not support parameterized (i.e. non-default) constructors. Thus, we need to use field injection. + */ +@java.lang.SuppressWarnings("squid:S3306") @Mapper public abstract class UserToUserDtoMapper extends BaseMapper {