From ea631969875946cc66bd7e3a9cae12129d8f7e4b Mon Sep 17 00:00:00 2001 From: brinxmat <789709+brinxmat@users.noreply.github.com> Date: Tue, 24 Sep 2024 15:53:44 +0200 Subject: [PATCH 1/2] Add java 21 update fixes --- ...istin.service.core.java-conventions.gradle | 2 +- config/pmd/ruleset.xml | 12 +++---- .../biobank/model/ParameterKeyBiobank.java | 18 ++++------ .../no/unit/nva/cristin/common/Utils.java | 9 +++-- .../nva/cristin/common/client/ApiClient.java | 4 ++- .../java/no/unit/nva/utils/AccessUtils.java | 30 +++++++++------- .../main/java/no/unit/nva/utils/UriUtils.java | 8 +++-- .../java/no/unit/nva/utils/UserUtils.java | 34 +++++++++++++------ .../model/cristin/CristinFundingSource.java | 3 +- .../keyword/query/QueryKeywordsHandler.java | 2 +- .../client/CristinOrganizationApiClient.java | 8 ++--- .../QueryCristinOrganizationHandler.java | 2 +- .../person/client/CristinPersonApiClient.java | 1 + .../person/model/cristin/CristinPerson.java | 8 ++--- .../projects/common/ParameterKeyProject.java | 19 +++++------ .../create/CreateCristinProjectValidator.java | 4 +-- .../model/cristin/CristinProjectBuilder.java | 2 +- .../model/nva/ContributorRoleMapping.java | 2 +- .../projects/model/nva/NvaProjectBuilder.java | 1 + .../projects/model/nva/ProjectStatus.java | 2 +- 20 files changed, 93 insertions(+), 78 deletions(-) diff --git a/buildSrc/src/main/groovy/nva.cristin.service.core.java-conventions.gradle b/buildSrc/src/main/groovy/nva.cristin.service.core.java-conventions.gradle index 455196280..6d78f832e 100644 --- a/buildSrc/src/main/groovy/nva.cristin.service.core.java-conventions.gradle +++ b/buildSrc/src/main/groovy/nva.cristin.service.core.java-conventions.gradle @@ -103,7 +103,7 @@ tasks.register('karateTest', Test) { } pmd { - toolVersion = '6.55.0' + toolVersion = '7.5.0' ruleSetConfig = rootProject.resources.text.fromFile('config/pmd/ruleset.xml') ruleSets = [] ignoreFailures = false diff --git a/config/pmd/ruleset.xml b/config/pmd/ruleset.xml index a784791b2..cb24d6cbc 100644 --- a/config/pmd/ruleset.xml +++ b/config/pmd/ruleset.xml @@ -10,13 +10,15 @@ .*/test/.* - + + + @@ -40,12 +42,6 @@ - - - - - - + + diff --git a/cristin-biobank/src/main/java/no/unit/nva/biobank/model/ParameterKeyBiobank.java b/cristin-biobank/src/main/java/no/unit/nva/biobank/model/ParameterKeyBiobank.java index 002c7d4b7..998a55313 100644 --- a/cristin-biobank/src/main/java/no/unit/nva/biobank/model/ParameterKeyBiobank.java +++ b/cristin-biobank/src/main/java/no/unit/nva/biobank/model/ParameterKeyBiobank.java @@ -34,7 +34,7 @@ public enum ParameterKeyBiobank implements IParameterKey { public static final int IGNORE_PATH_PARAMETER_INDEX = 2; public static final Set VALID_QUERY_PARAMETERS = - Arrays.stream(ParameterKeyBiobank.values()) + Arrays.stream(values()) .filter(ParameterKeyBiobank::ignorePathKeys) .collect(Collectors.toSet()); @@ -103,16 +103,12 @@ public String toString() { } public static ParameterKeyBiobank keyFromString(String paramName, String value) { - var result = Arrays.stream(ParameterKeyBiobank.values()) - .filter(ParameterKeyBiobank::ignorePathKeys) - .filter(IParameterKey.equalTo(paramName)) - .collect(Collectors.toSet()); - return result.size() == 1 - ? result.stream().findFirst().get() - : result.stream() - .filter(IParameterKey.hasValidValue(value)) - .findFirst() - .orElse(INVALID); + return Arrays.stream(values()) + .filter(ParameterKeyBiobank::ignorePathKeys) + .filter(IParameterKey.equalTo(paramName)) + .distinct() + .reduce((first, second) -> IParameterKey.hasValidValue(value).test(second) ? second : first) + .orElse(INVALID); } diff --git a/cristin-commons/src/main/java/no/unit/nva/cristin/common/Utils.java b/cristin-commons/src/main/java/no/unit/nva/cristin/common/Utils.java index 4ced96040..f921ea3c3 100644 --- a/cristin-commons/src/main/java/no/unit/nva/cristin/common/Utils.java +++ b/cristin-commons/src/main/java/no/unit/nva/cristin/common/Utils.java @@ -29,7 +29,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class Utils { +public final class Utils { private static final Logger logger = LoggerFactory.getLogger(Utils.class); @@ -40,6 +40,9 @@ public class Utils { public static final String USER_IS_INTERNAL_BACKEND = "User is internal backend"; public static final String USER_TOP_LEVEL_CRISTIN_ORGANIZATION = "User has top level cristin organization {}"; + private Utils() { + // NO-OP + } /** * Check if a string supplied is a positive integer. @@ -130,7 +133,7 @@ public static String getValidOrgId(RequestInfo requestInfo) throws BadRequestExc private static boolean isValidIdentifier(String identifier) { - return Utils.isPositiveInteger(identifier); + return isPositiveInteger(identifier); } /** @@ -169,7 +172,7 @@ public static String extractCristinInstitutionIdentifier(RequestInfo requestInfo private static String extractInstitution(URI organization) { var organizationIdentifier = UriUtils.extractLastPathElement(organization); - return Utils.removeUnitPartFromIdentifierIfPresent(organizationIdentifier); + return removeUnitPartFromIdentifierIfPresent(organizationIdentifier); } private static BadRequestException failedToRetrieveTopLevelOrgCristinId() { diff --git a/cristin-commons/src/main/java/no/unit/nva/cristin/common/client/ApiClient.java b/cristin-commons/src/main/java/no/unit/nva/cristin/common/client/ApiClient.java index d35f49e3e..b0bbddc33 100644 --- a/cristin-commons/src/main/java/no/unit/nva/cristin/common/client/ApiClient.java +++ b/cristin-commons/src/main/java/no/unit/nva/cristin/common/client/ApiClient.java @@ -240,9 +240,11 @@ private List> collectSuccessfulResponses( .filter(Try::isSuccess) .map(Try::get) .filter(this::isSuccessfulRequest) - .collect(Collectors.toList()); + .toList(); } + // This is reported as unused, but it is… + @SuppressWarnings("PMD.UnusedPrivateMethod") private boolean isSuccessfulRequest(HttpResponse response) { try { checkHttpStatusCode(response.uri(), response.statusCode(), response.body()); diff --git a/cristin-commons/src/main/java/no/unit/nva/utils/AccessUtils.java b/cristin-commons/src/main/java/no/unit/nva/utils/AccessUtils.java index 39a182986..6760c2874 100644 --- a/cristin-commons/src/main/java/no/unit/nva/utils/AccessUtils.java +++ b/cristin-commons/src/main/java/no/unit/nva/utils/AccessUtils.java @@ -12,7 +12,6 @@ import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; -import java.net.http.HttpResponse; import java.nio.charset.StandardCharsets; import java.time.Duration; import java.util.Base64; @@ -20,6 +19,7 @@ import static com.google.common.net.HttpHeaders.AUTHORIZATION; import static com.google.common.net.HttpHeaders.CONTENT_TYPE; import static java.net.http.HttpRequest.newBuilder; +import static java.net.http.HttpResponse.*; import static nva.commons.apigateway.AccessRight.MANAGE_CUSTOMERS; import static nva.commons.apigateway.AccessRight.MANAGE_OWN_AFFILIATION; import static nva.commons.core.attempt.Try.attempt; @@ -80,23 +80,27 @@ public static boolean clientIsCustomerAdministrator(RequestInfo requestInfo) { * Fetches an internal backend token from Cognito. */ public static String getBackendAccessToken() throws IOException, InterruptedException { - var cognitoTokenUrl = getCognitoTokenUrl(); - var payload = GRANT_TYPE_PAYLOAD; - var request = newBuilder(cognitoTokenUrl) - .POST(HttpRequest.BodyPublishers.ofString(payload)) - .header(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) - .header(AUTHORIZATION, basicAuthHeader()) - .build(); - HttpClient client = HttpClient.newBuilder() + try (var client = createHttpClient()) { + var response = client.send(createTokenRequest(), BodyHandlers.ofString(StandardCharsets.UTF_8)); + var jsonTree = JsonUtils.dtoObjectMapper.readTree(response.body()); + return jsonTree.get(ACCESS_TOKEN).textValue(); + } + } + + private static HttpClient createHttpClient() { + return HttpClient.newBuilder() .followRedirects(HttpClient.Redirect.ALWAYS) .connectTimeout(Duration.ofSeconds(30)) .build(); + } - HttpResponse response = client.send(request, - HttpResponse.BodyHandlers.ofString(StandardCharsets.UTF_8)); - var jsonTree = JsonUtils.dtoObjectMapper.readTree(response.body()); - return jsonTree.get(ACCESS_TOKEN).textValue(); + private static HttpRequest createTokenRequest() { + return newBuilder(getCognitoTokenUrl()) + .POST(HttpRequest.BodyPublishers.ofString(GRANT_TYPE_PAYLOAD)) + .header(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) + .header(AUTHORIZATION, basicAuthHeader()) + .build(); } private static URI getCognitoTokenUrl() { diff --git a/cristin-commons/src/main/java/no/unit/nva/utils/UriUtils.java b/cristin-commons/src/main/java/no/unit/nva/utils/UriUtils.java index 941cf1012..6c3883530 100644 --- a/cristin-commons/src/main/java/no/unit/nva/utils/UriUtils.java +++ b/cristin-commons/src/main/java/no/unit/nva/utils/UriUtils.java @@ -15,13 +15,17 @@ import java.util.regex.Pattern; import nva.commons.core.paths.UriWrapper; -public class UriUtils { +public final class UriUtils { public static final String POSITION = "position"; public static final String PROJECT = "project"; public static final String PERSON = "person"; private static final String NATIONAL_IDENTITY_PATTERN = "national_id=(\\d+)(\\d{2})"; + private UriUtils() { + // NO-OP + } + /** * Create URI identifying NVA resource from path and identifier. * @@ -85,7 +89,7 @@ public static URI getNvaApiUri(String path) { public static URI createNvaProjectId(String identifier) { return new UriWrapper(HTTPS, DOMAIN_NAME) - .addChild(BASE_PATH).addChild(UriUtils.PROJECT).addChild(identifier).getUri(); + .addChild(BASE_PATH).addChild(PROJECT).addChild(identifier).getUri(); } public static String extractLastPathElement(URI uri) { diff --git a/cristin-commons/src/main/java/no/unit/nva/utils/UserUtils.java b/cristin-commons/src/main/java/no/unit/nva/utils/UserUtils.java index ab4741335..cf8acb616 100644 --- a/cristin-commons/src/main/java/no/unit/nva/utils/UserUtils.java +++ b/cristin-commons/src/main/java/no/unit/nva/utils/UserUtils.java @@ -1,7 +1,6 @@ package no.unit.nva.utils; import com.fasterxml.jackson.annotation.JsonProperty; -import java.net.http.HttpResponse; import no.unit.nva.cognito.CognitoUtil; import no.unit.nva.commons.json.JsonUtils; import nva.commons.core.paths.UriWrapper; @@ -19,16 +18,20 @@ import static com.google.common.net.HttpHeaders.AUTHORIZATION; import static java.net.http.HttpRequest.newBuilder; +import static java.net.http.HttpResponse.*; import static no.unit.nva.cristin.model.Constants.DOMAIN_NAME; import static no.unit.nva.cristin.model.Constants.HTTPS; import static no.unit.nva.utils.AccessUtils.BASIC; -public class UserUtils { +public final class UserUtils { private static final Logger logger = LoggerFactory.getLogger(UserUtils.class); public static final String RESPONSE_FROM_USER_CREATE = "Response from user create={}"; public static final String USER_CREATED_WITH_ROLES = "User {} created with role(s) '{}'"; + private UserUtils() { + // NO-OP + } /** * Creates user in Cognito used for Karate tests. @@ -50,20 +53,29 @@ public static void createUserWithRoles(String username, String password, String private static void createNvaUserWithRoles(String nationalIdentityNumber, URI customerId, Set roles) throws IOException, InterruptedException { + try (var client = createHttpClient()) { + final var response = client.send(createHttpRequest(nationalIdentityNumber, customerId, roles), + BodyHandlers.ofString(StandardCharsets.UTF_8)); + logger.info(RESPONSE_FROM_USER_CREATE, response); + } + } + + private static HttpClient createHttpClient() { + return HttpClient.newBuilder() + .followRedirects(HttpClient.Redirect.ALWAYS) + .connectTimeout(Duration.ofSeconds(30)) + .build(); + } + + private static HttpRequest createHttpRequest(String nationalIdentityNumber, + URI customerId, + Set roles) throws IOException, InterruptedException { final var userRoles = new UserRoles(nationalIdentityNumber, customerId, roles); final var body = JsonUtils.dtoObjectMapper.writeValueAsString(userRoles); - final var request = newBuilder(createUserServiceUri()) + return newBuilder(createUserServiceUri()) .header(AUTHORIZATION, BASIC + AccessUtils.getBackendAccessToken()) .POST(HttpRequest.BodyPublishers.ofString(body)) .build(); - final var client = HttpClient.newBuilder() - .followRedirects(HttpClient.Redirect.ALWAYS) - .connectTimeout(Duration.ofSeconds(30)) - .build(); - - final var response = - client.send(request, HttpResponse.BodyHandlers.ofString(StandardCharsets.UTF_8)); - logger.info(RESPONSE_FROM_USER_CREATE, response); } diff --git a/cristin-funding/src/main/java/no/unit/nva/cristin/funding/sources/model/cristin/CristinFundingSource.java b/cristin-funding/src/main/java/no/unit/nva/cristin/funding/sources/model/cristin/CristinFundingSource.java index 1835e61f6..da8060c50 100644 --- a/cristin-funding/src/main/java/no/unit/nva/cristin/funding/sources/model/cristin/CristinFundingSource.java +++ b/cristin-funding/src/main/java/no/unit/nva/cristin/funding/sources/model/cristin/CristinFundingSource.java @@ -4,6 +4,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Map; +// The private fields in the record are viewed as unused, this is a bug +@SuppressWarnings("PMD.UnusedPrivateField") public record CristinFundingSource(@JsonProperty(CODE_FIELD) String code, @JsonProperty(NAME_FIELD) Map name) { @@ -14,5 +16,4 @@ public record CristinFundingSource(@JsonProperty(CODE_FIELD) String code, public Map name() { return nonEmptyOrDefault(name); } - } diff --git a/cristin-keyword/src/main/java/no/unit/nva/cristin/keyword/query/QueryKeywordsHandler.java b/cristin-keyword/src/main/java/no/unit/nva/cristin/keyword/query/QueryKeywordsHandler.java index 5929d4d89..c665c690a 100644 --- a/cristin-keyword/src/main/java/no/unit/nva/cristin/keyword/query/QueryKeywordsHandler.java +++ b/cristin-keyword/src/main/java/no/unit/nva/cristin/keyword/query/QueryKeywordsHandler.java @@ -59,7 +59,7 @@ protected Integer getSuccessStatusCode(Void input, SearchResponse outpu return HTTP_OK; } - private ConcurrentHashMap parseQueryParams(RequestInfo requestInfo) throws BadRequestException { + private Map parseQueryParams(RequestInfo requestInfo) throws BadRequestException { validateQueryParameterKeys(requestInfo); var queryParams = new ConcurrentHashMap(); diff --git a/cristin-organization/src/main/java/no/unit/nva/cristin/organization/common/client/CristinOrganizationApiClient.java b/cristin-organization/src/main/java/no/unit/nva/cristin/organization/common/client/CristinOrganizationApiClient.java index 38ce4665d..d665949d7 100644 --- a/cristin-organization/src/main/java/no/unit/nva/cristin/organization/common/client/CristinOrganizationApiClient.java +++ b/cristin-organization/src/main/java/no/unit/nva/cristin/organization/common/client/CristinOrganizationApiClient.java @@ -62,7 +62,6 @@ public class CristinOrganizationApiClient public static final String NULL_HTTP_RESPONSE_ERROR_MESSAGE = "No HttpResponse found"; public static final int SINGLE_HIT = 1; public static final String UNIQUELY_IDENTIFY_ORGANIZATION = "Identifier does not uniquely identify organization"; - public static final int FIRST_AND_ONLY_UNIT = 0; private static final int NO_HITS = 0; /** @@ -120,12 +119,11 @@ public Organization executeFetch(Map params) throws ApiGatewayEx private Organization extractOrganization(String identifier, HttpResponse response) throws ApiGatewayException { - List units = attempt(() -> - OBJECT_MAPPER.readValue(response.body(), new TypeReference>() { - })) + var type = new TypeReference>() {}; + List units = attempt(() -> OBJECT_MAPPER.readValue(response.body(), type)) .orElseThrow(fail -> new FailedHttpRequestException(fail.getException())); if (SINGLE_HIT == units.size()) { - return toOrganization(identifier, units.get(FIRST_AND_ONLY_UNIT)); + return toOrganization(identifier, units.getFirst()); } else { throw new BadRequestException(UNIQUELY_IDENTIFY_ORGANIZATION); } diff --git a/cristin-organization/src/main/java/no/unit/nva/cristin/organization/query/QueryCristinOrganizationHandler.java b/cristin-organization/src/main/java/no/unit/nva/cristin/organization/query/QueryCristinOrganizationHandler.java index 37d3b8129..113f279f9 100644 --- a/cristin-organization/src/main/java/no/unit/nva/cristin/organization/query/QueryCristinOrganizationHandler.java +++ b/cristin-organization/src/main/java/no/unit/nva/cristin/organization/query/QueryCristinOrganizationHandler.java @@ -78,7 +78,7 @@ protected Integer getSuccessStatusCode(Void input, SearchResponse return HttpURLConnection.HTTP_OK; } - private ConcurrentHashMap extractQueryParameters(RequestInfo requestInfo) + private Map extractQueryParameters(RequestInfo requestInfo) throws BadRequestException { var requestQueryParams = new ConcurrentHashMap(); diff --git a/cristin-person/src/main/java/no/unit/nva/cristin/person/client/CristinPersonApiClient.java b/cristin-person/src/main/java/no/unit/nva/cristin/person/client/CristinPersonApiClient.java index 0dd6e7a50..6777b716e 100644 --- a/cristin-person/src/main/java/no/unit/nva/cristin/person/client/CristinPersonApiClient.java +++ b/cristin-person/src/main/java/no/unit/nva/cristin/person/client/CristinPersonApiClient.java @@ -41,6 +41,7 @@ import static no.unit.nva.utils.UriUtils.getNvaApiId; import static nva.commons.core.attempt.Try.attempt; +@SuppressWarnings("PMD.CouplingBetweenObjects") public class CristinPersonApiClient extends ApiClient implements ClientVersion, CristinAuthorizedQueryClient, Person> { diff --git a/cristin-person/src/main/java/no/unit/nva/cristin/person/model/cristin/CristinPerson.java b/cristin-person/src/main/java/no/unit/nva/cristin/person/model/cristin/CristinPerson.java index 9bb9401f7..36ce1cfdd 100644 --- a/cristin-person/src/main/java/no/unit/nva/cristin/person/model/cristin/CristinPerson.java +++ b/cristin-person/src/main/java/no/unit/nva/cristin/person/model/cristin/CristinPerson.java @@ -39,7 +39,8 @@ import static no.unit.nva.cristin.model.Constants.PERSON_PATH_NVA; import static no.unit.nva.cristin.person.model.nva.JsonPropertyNames.NATIONAL_IDENTITY_NUMBER; -@SuppressWarnings({"unused", "PMD.GodClass", "PMD.TooManyFields", "PMD.ExcessivePublicCount"}) +@SuppressWarnings({"unused", "PMD.GodClass", "PMD.TooManyFields", "PMD.ExcessivePublicCount", + "PMD.CouplingBetweenObjects"}) @JacocoGenerated @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) public class CristinPerson implements JsonSerializable { @@ -394,11 +395,8 @@ private Set extractEmployments() { private Boolean extractVerified() { if (nonNull(getIdentifiedCristinPerson()) && getIdentifiedCristinPerson()) { return true; - } else if (isNviVerified()) { - return true; - } else { - return getIdentifiedCristinPerson(); } + return isNviVerified() || Boolean.TRUE.equals(getIdentifiedCristinPerson()); } private boolean isNviVerified() { diff --git a/cristin-project/src/main/java/no/unit/nva/cristin/projects/common/ParameterKeyProject.java b/cristin-project/src/main/java/no/unit/nva/cristin/projects/common/ParameterKeyProject.java index e9d722180..5a515e25e 100644 --- a/cristin-project/src/main/java/no/unit/nva/cristin/projects/common/ParameterKeyProject.java +++ b/cristin-project/src/main/java/no/unit/nva/cristin/projects/common/ParameterKeyProject.java @@ -37,6 +37,7 @@ import no.unit.nva.cristin.model.KeyEncoding; import no.unit.nva.cristin.model.query.CristinFacetParamKey; +@SuppressWarnings("PMD.ExcessivePublicCount") public enum ParameterKeyProject implements IParameterKey { INVALID(null), PATH_IDENTITY(JsonPropertyNames.IDENTIFIER, null, PATTERN_IS_NON_EMPTY), @@ -111,7 +112,7 @@ public enum ParameterKeyProject implements IParameterKey { public static final int IGNORE_FACET_PARAMETER_INDEX = 31; public static final Set VALID_QUERY_PARAMETERS = - Arrays.stream(ParameterKeyProject.values()) + Arrays.stream(values()) .filter(ParameterKeyProject::ignorePathKeys) .collect(Collectors.toSet()); @@ -196,16 +197,12 @@ public String toString() { } public static ParameterKeyProject keyFromString(String paramName, String value) { - var result = Arrays.stream(ParameterKeyProject.values()) - .filter(ParameterKeyProject::ignorePathKeys) - .filter(IParameterKey.equalTo(paramName)) - .collect(Collectors.toSet()); - return result.size() == 1 - ? result.stream().findFirst().get() - : result.stream() - .filter(IParameterKey.hasValidValue(value)) - .findFirst() - .orElse(INVALID); + return Arrays.stream(values()) + .filter(ParameterKeyProject::ignorePathKeys) + .filter(IParameterKey.equalTo(paramName)) + .distinct() + .reduce((first, second) -> IParameterKey.hasValidValue(value).test(second) ? second : first) + .orElse(INVALID); } diff --git a/cristin-project/src/main/java/no/unit/nva/cristin/projects/create/CreateCristinProjectValidator.java b/cristin-project/src/main/java/no/unit/nva/cristin/projects/create/CreateCristinProjectValidator.java index 29a695c26..ce2f35040 100644 --- a/cristin-project/src/main/java/no/unit/nva/cristin/projects/create/CreateCristinProjectValidator.java +++ b/cristin-project/src/main/java/no/unit/nva/cristin/projects/create/CreateCristinProjectValidator.java @@ -4,7 +4,7 @@ import static java.util.Objects.nonNull; import static no.unit.nva.cristin.common.ErrorMessages.ERROR_MESSAGE_INVALID_PAYLOAD; import java.time.Instant; -import java.util.HashSet; +import java.util.EnumSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -55,7 +55,7 @@ private void validateRequiredInput(NvaProject project) throws BadRequestExceptio } private Set validateProjectInput(NvaProject project) { - var results = new HashSet(); + var results = EnumSet.noneOf(ValidatedResult.class); if (isNull(project)) { results.add(ValidatedResult.Empty); return results; diff --git a/cristin-project/src/main/java/no/unit/nva/cristin/projects/model/cristin/CristinProjectBuilder.java b/cristin-project/src/main/java/no/unit/nva/cristin/projects/model/cristin/CristinProjectBuilder.java index c88bd1f01..c5b1d4851 100644 --- a/cristin-project/src/main/java/no/unit/nva/cristin/projects/model/cristin/CristinProjectBuilder.java +++ b/cristin-project/src/main/java/no/unit/nva/cristin/projects/model/cristin/CristinProjectBuilder.java @@ -39,6 +39,7 @@ import static no.unit.nva.cristin.projects.util.LanguageUtil.extractTitles; import static no.unit.nva.utils.UriUtils.extractLastPathElement; +@SuppressWarnings("PMD.CouplingBetweenObjects") public class CristinProjectBuilder implements Function { private transient CristinProject cristinProject; @@ -191,5 +192,4 @@ private String extractStatus(NvaProject project) { .map(ProjectStatus::getCristinStatus) .orElse(null); } - } diff --git a/cristin-project/src/main/java/no/unit/nva/cristin/projects/model/nva/ContributorRoleMapping.java b/cristin-project/src/main/java/no/unit/nva/cristin/projects/model/nva/ContributorRoleMapping.java index dd966a402..a75b1fcfa 100644 --- a/cristin-project/src/main/java/no/unit/nva/cristin/projects/model/nva/ContributorRoleMapping.java +++ b/cristin-project/src/main/java/no/unit/nva/cristin/projects/model/nva/ContributorRoleMapping.java @@ -46,7 +46,7 @@ private String getCristinRole() { * @return role mapped to Cristin */ public static Optional getCristinRole(String role) { - return Optional.ofNullable(Arrays.stream(ContributorRoleMapping.values()) + return Optional.ofNullable(Arrays.stream(values()) .filter(contributorRoleMapping -> contributorRoleMapping.getNvaRole().equals(role)) .map(ContributorRoleMapping::getCristinRole) .collect(SingletonCollector.collectOrElse(null))); diff --git a/cristin-project/src/main/java/no/unit/nva/cristin/projects/model/nva/NvaProjectBuilder.java b/cristin-project/src/main/java/no/unit/nva/cristin/projects/model/nva/NvaProjectBuilder.java index b8ff4c9b5..8313aadb4 100644 --- a/cristin-project/src/main/java/no/unit/nva/cristin/projects/model/nva/NvaProjectBuilder.java +++ b/cristin-project/src/main/java/no/unit/nva/cristin/projects/model/nva/NvaProjectBuilder.java @@ -42,6 +42,7 @@ import static nva.commons.core.StringUtils.isNotBlank; import static nva.commons.core.attempt.Try.attempt; +@SuppressWarnings("PMD.CouplingBetweenObjects") public class NvaProjectBuilder implements Function { private transient CristinProject cristinProject; diff --git a/cristin-project/src/main/java/no/unit/nva/cristin/projects/model/nva/ProjectStatus.java b/cristin-project/src/main/java/no/unit/nva/cristin/projects/model/nva/ProjectStatus.java index 459608edd..5185e3932 100644 --- a/cristin-project/src/main/java/no/unit/nva/cristin/projects/model/nva/ProjectStatus.java +++ b/cristin-project/src/main/java/no/unit/nva/cristin/projects/model/nva/ProjectStatus.java @@ -59,7 +59,7 @@ private static boolean isValidAnyStatus(String nameCandidate, ProjectStatus enum @JacocoGenerated private static RuntimeException returnException(String name) { return new IllegalArgumentException( - format(ERROR_MESSAGE_TEMPLATE, name, stream(ProjectStatus.values()) + format(ERROR_MESSAGE_TEMPLATE, name, stream(values()) .map(ProjectStatus::toString).collect(joining(DELIMITER)))); } From c3efe2f8a3f82a300990e2d391c9d701a2510130 Mon Sep 17 00:00:00 2001 From: brinxmat <789709+brinxmat@users.noreply.github.com> Date: Tue, 24 Sep 2024 16:00:50 +0200 Subject: [PATCH 2/2] Use non-star import --- .../src/main/java/no/unit/nva/utils/AccessUtils.java | 4 ++-- .../src/main/java/no/unit/nva/utils/UserUtils.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cristin-commons/src/main/java/no/unit/nva/utils/AccessUtils.java b/cristin-commons/src/main/java/no/unit/nva/utils/AccessUtils.java index 6760c2874..fcefbd376 100644 --- a/cristin-commons/src/main/java/no/unit/nva/utils/AccessUtils.java +++ b/cristin-commons/src/main/java/no/unit/nva/utils/AccessUtils.java @@ -19,7 +19,7 @@ import static com.google.common.net.HttpHeaders.AUTHORIZATION; import static com.google.common.net.HttpHeaders.CONTENT_TYPE; import static java.net.http.HttpRequest.newBuilder; -import static java.net.http.HttpResponse.*; +import static java.net.http.HttpResponse.BodyHandlers.ofString; import static nva.commons.apigateway.AccessRight.MANAGE_CUSTOMERS; import static nva.commons.apigateway.AccessRight.MANAGE_OWN_AFFILIATION; import static nva.commons.core.attempt.Try.attempt; @@ -82,7 +82,7 @@ public static boolean clientIsCustomerAdministrator(RequestInfo requestInfo) { public static String getBackendAccessToken() throws IOException, InterruptedException { try (var client = createHttpClient()) { - var response = client.send(createTokenRequest(), BodyHandlers.ofString(StandardCharsets.UTF_8)); + var response = client.send(createTokenRequest(), ofString(StandardCharsets.UTF_8)); var jsonTree = JsonUtils.dtoObjectMapper.readTree(response.body()); return jsonTree.get(ACCESS_TOKEN).textValue(); } diff --git a/cristin-commons/src/main/java/no/unit/nva/utils/UserUtils.java b/cristin-commons/src/main/java/no/unit/nva/utils/UserUtils.java index cf8acb616..a9331b31e 100644 --- a/cristin-commons/src/main/java/no/unit/nva/utils/UserUtils.java +++ b/cristin-commons/src/main/java/no/unit/nva/utils/UserUtils.java @@ -18,7 +18,7 @@ import static com.google.common.net.HttpHeaders.AUTHORIZATION; import static java.net.http.HttpRequest.newBuilder; -import static java.net.http.HttpResponse.*; +import static java.net.http.HttpResponse.BodyHandlers.ofString; import static no.unit.nva.cristin.model.Constants.DOMAIN_NAME; import static no.unit.nva.cristin.model.Constants.HTTPS; import static no.unit.nva.utils.AccessUtils.BASIC; @@ -55,7 +55,7 @@ private static void createNvaUserWithRoles(String nationalIdentityNumber, URI cu throws IOException, InterruptedException { try (var client = createHttpClient()) { final var response = client.send(createHttpRequest(nationalIdentityNumber, customerId, roles), - BodyHandlers.ofString(StandardCharsets.UTF_8)); + ofString(StandardCharsets.UTF_8)); logger.info(RESPONSE_FROM_USER_CREATE, response); } }