From df14f5eaab765a04f7ac40591fe828648d772880 Mon Sep 17 00:00:00 2001 From: LSmyrnaios Date: Tue, 17 Jan 2023 20:21:00 +0200 Subject: [PATCH] - Update a "URLEncoder.encode()" call, to reduce the ambiguity which comes with the platform's default encoding. - Update a deprecated MediaType. - Fix an ambiguous unicode character. --- .../eu/dnetlib/repo/manager/service/EmailUtilsImpl.java | 4 ++-- .../repo/manager/service/RepositoryServiceImpl.java | 2 +- .../repo/manager/service/ValidatorServiceImpl.java | 2 +- .../repo/manager/service/aai/registry/RegistryCalls.java | 9 ++++++++- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main/java/eu/dnetlib/repo/manager/service/EmailUtilsImpl.java b/src/main/java/eu/dnetlib/repo/manager/service/EmailUtilsImpl.java index 13afbf5..6fc7ce8 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/EmailUtilsImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/EmailUtilsImpl.java @@ -274,7 +274,7 @@ public class EmailUtilsImpl implements EmailUtils { "the compatibility test on " + "[" + repository.getOfficialname() + "]" + " was successful and the datasource type \"" + repository.getEoscDatasourceType() + "\" will be prepared for aggregation in OpenAIRE." + "\n\n" + - "Please note that it usually takes about 3-4 weeks until a data source is indexed and it’s metadata visible on openaire.eu.\n\n" + + "Please note that it usually takes about 3-4 weeks until a data source is indexed and it's metadata visible on openaire.eu.\n\n" + "Registration identifier in OpenAIRE: " + repository.getNamespaceprefix() + "\nOfficial Name:" + repository.getOfficialname() + "\n\nBase URL: " + repositoryInterface.getBaseurl() + @@ -303,7 +303,7 @@ public class EmailUtilsImpl implements EmailUtils { "the compatibility test on " + "[" + repository.getOfficialname() + "]" + " was successful and the datasource type \"" + repository.getEoscDatasourceType() + "\" will be prepared for aggregation in OpenAIRE." + "\n\n" + - "Please note that it usually takes about 3-4 weeks until a data source is indexed and it’s metadata visible on openaire.eu.\n\n" + + "Please note that it usually takes about 3-4 weeks until a data source is indexed and it's metadata visible on openaire.eu.\n\n" + "Registration identifier in OpenAIRE: " + repository.getNamespaceprefix() + "\nOfficial Name:" + repository.getOfficialname() + "\n\nBase URL: " + repositoryInterface.getBaseurl() + diff --git a/src/main/java/eu/dnetlib/repo/manager/service/RepositoryServiceImpl.java b/src/main/java/eu/dnetlib/repo/manager/service/RepositoryServiceImpl.java index 06e67f3..ac05762 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/RepositoryServiceImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/RepositoryServiceImpl.java @@ -141,7 +141,7 @@ public class RepositoryServiceImpl implements RepositoryService { } httpHeaders = new HttpHeaders(); - httpHeaders.setContentType(MediaType.APPLICATION_JSON_UTF8); + httpHeaders.setContentType(MediaType.valueOf(MediaType.APPLICATION_JSON_VALUE)); for (String vocName : vocabularyNames) { vocabularyMap.put(vocName, vocabularyLoader.getVocabulary(vocName, Locale.ENGLISH, Locale.ROOT)); diff --git a/src/main/java/eu/dnetlib/repo/manager/service/ValidatorServiceImpl.java b/src/main/java/eu/dnetlib/repo/manager/service/ValidatorServiceImpl.java index e268b20..908090c 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/ValidatorServiceImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/ValidatorServiceImpl.java @@ -55,7 +55,7 @@ public class ValidatorServiceImpl implements ValidatorService { this.validatorServiceLocator = validatorServiceLocator; } - private Map> rulesetMap = new ConcurrentHashMap>(); + private final Map> rulesetMap = new ConcurrentHashMap>(); private static final Logger logger = LoggerFactory.getLogger(ValidatorServiceImpl.class); diff --git a/src/main/java/eu/dnetlib/repo/manager/service/aai/registry/RegistryCalls.java b/src/main/java/eu/dnetlib/repo/manager/service/aai/registry/RegistryCalls.java index 050b20a..b8f4811 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/aai/registry/RegistryCalls.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/aai/registry/RegistryCalls.java @@ -3,6 +3,7 @@ package eu.dnetlib.repo.manager.service.aai.registry; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; +import com.nimbusds.jose.util.StandardCharset; import eu.dnetlib.repo.manager.domain.dto.Role; import eu.dnetlib.repo.manager.domain.dto.User; import eu.dnetlib.repo.manager.service.aai.registry.utils.RegistryUtils; @@ -15,6 +16,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; +import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; @@ -119,7 +121,12 @@ public class RegistryCalls implements AaiRegistryService { Map params = new HashMap<>(); params.put("coid", coid); if (name != null) { - params.put("name", URLEncoder.encode(name).toLowerCase()); + try { + params.put("name", URLEncoder.encode(name, StandardCharset.UTF_8.name()).toLowerCase()); + } catch (UnsupportedEncodingException uee) { + logger.error(uee.getMessage()); + return new JsonArray(); + } } JsonElement response = httpUtils.get("cous.json", params); return (response != null) ? response.getAsJsonObject().get("Cous").getAsJsonArray() : new JsonArray();