From deae3b8b5463a4f634be94ed1922bfde52bb981b Mon Sep 17 00:00:00 2001 From: LSmyrnaios Date: Wed, 7 Dec 2022 13:37:55 +0200 Subject: [PATCH 1/4] - Add error-checking and improve exceptions handling. - Code polishing. --- ...ndLinkURIAuthenticationSuccessHandler.java | 3 +- .../manager/controllers/PiWikController.java | 3 +- .../manager/controllers/StatsController.java | 3 +- .../service/RepositoryServiceImpl.java | 48 ++++++++++++------- .../repo/manager/service/UserServiceImpl.java | 16 ++++--- .../manager/service/ValidatorServiceImpl.java | 3 +- .../dnetlib/repo/manager/utils/Converter.java | 9 ++-- .../dnetlib/repo/manager/utils/HttpUtils.java | 5 +- .../dnetlib/repo/manager/utils/OaiTools.java | 3 +- 9 files changed, 51 insertions(+), 42 deletions(-) diff --git a/src/main/java/eu/dnetlib/repo/manager/config/FrontEndLinkURIAuthenticationSuccessHandler.java b/src/main/java/eu/dnetlib/repo/manager/config/FrontEndLinkURIAuthenticationSuccessHandler.java index 99fbf7e..33cc51f 100644 --- a/src/main/java/eu/dnetlib/repo/manager/config/FrontEndLinkURIAuthenticationSuccessHandler.java +++ b/src/main/java/eu/dnetlib/repo/manager/config/FrontEndLinkURIAuthenticationSuccessHandler.java @@ -22,8 +22,7 @@ public class FrontEndLinkURIAuthenticationSuccessHandler implements Authenticati private String frontEndURI; - private static final Logger LOGGER = Logger - .getLogger(FrontEndLinkURIAuthenticationSuccessHandler.class); + private static final Logger LOGGER = Logger.getLogger(FrontEndLinkURIAuthenticationSuccessHandler.class); public void init() { LOGGER.debug("Front end uri : " + frontEndURI); diff --git a/src/main/java/eu/dnetlib/repo/manager/controllers/PiWikController.java b/src/main/java/eu/dnetlib/repo/manager/controllers/PiWikController.java index d8a38d0..118c319 100644 --- a/src/main/java/eu/dnetlib/repo/manager/controllers/PiWikController.java +++ b/src/main/java/eu/dnetlib/repo/manager/controllers/PiWikController.java @@ -33,8 +33,7 @@ import java.util.List; @Api(description = "Piwik API", tags = {"piwik"}) public class PiWikController { - private static final Logger LOGGER = Logger - .getLogger(PiWikController.class); + private static final Logger LOGGER = Logger.getLogger(PiWikController.class); @Autowired private PiWikServiceImpl piWikService; diff --git a/src/main/java/eu/dnetlib/repo/manager/controllers/StatsController.java b/src/main/java/eu/dnetlib/repo/manager/controllers/StatsController.java index b48ebab..1cfd6a2 100644 --- a/src/main/java/eu/dnetlib/repo/manager/controllers/StatsController.java +++ b/src/main/java/eu/dnetlib/repo/manager/controllers/StatsController.java @@ -19,8 +19,7 @@ public class StatsController { @Autowired private StatsServiceImpl statsService; - @RequestMapping(value = "/getStatistics" , method = RequestMethod.GET, - produces = MediaType.APPLICATION_JSON_VALUE) + @RequestMapping(value = "/getStatistics" , method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public Map getStatistics(){ return statsService.getStatistics(); 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 df7daa8..c4be36e 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/RepositoryServiceImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/RepositoryServiceImpl.java @@ -426,8 +426,7 @@ public class RepositoryServiceImpl implements RepositoryService { public List getRepositoryAggregations(String id, int from, int size) { List res = getRepositoryAggregations(id); - - return res.subList(from, Math.min(from + size, res.size())); + return (res != null) ? res.subList(from, Math.min(from + size, res.size())) : null; } @Override @@ -435,9 +434,11 @@ public class RepositoryServiceImpl implements RepositoryService { LOGGER.debug("Retrieving aggregations (by year) for repository with id : " + id); List aggregationHistory = getRepositoryAggregations(id); - Map> aggregationByYear = new HashMap<>(); - - return aggregationHistory.size() == 0 ? aggregationByYear : createYearMap(aggregationHistory); + if ( aggregationHistory != null ) { + Map> aggregationByYear = new HashMap<>(); + return aggregationHistory.size() == 0 ? aggregationByYear : createYearMap(aggregationHistory); + } else + return null; } private Map> createYearMap(List aggregationHistory) { @@ -479,15 +480,19 @@ public class RepositoryServiceImpl implements RepositoryService { // String rs = restTemplate.getForObject(uriComponents.toUri(), String.class); ApiDetailsResponse rs = restTemplate.getForObject(uriComponents.toUri(), ApiDetailsResponse.class); - + if ( rs == null ) { + LOGGER.error("The ApiDetailsResponse was null!"); + return null; + } // TODO STOP FILTERING OUT "sword", "rest" AND FIX UI! List res = new ArrayList<>(); for (ApiDetails det: rs.getApi()) { - if (!det.getProtocol().equals("sword") && - !det.getProtocol().equals("rest") && - !det.getProtocol().equals("ftp")) { + String protocol = det.getProtocol(); + if ( !protocol.equals("sword") && + !protocol.equals("rest") && + !protocol.equals("ftp")) { res.add(det); } } @@ -560,7 +565,6 @@ public class RepositoryServiceImpl implements RepositoryService { } - return repository; } @@ -585,8 +589,11 @@ public class RepositoryServiceImpl implements RepositoryService { } catch (Exception e) { LOGGER.error("Error sending email", e); } - } else - LOGGER.error("Error storing repository: " + responseEntity.getBody().toString()); + } else { + Object responseBody = responseEntity.getBody(); + if ( responseBody != null ) + LOGGER.error("Error updating repository: " + responseBody); + } return repository; } @@ -603,8 +610,7 @@ public class RepositoryServiceImpl implements RepositoryService { // LOGGER.debug("JSON to update -> " + json_repository); HttpEntity httpEntity = new HttpEntity<>(repository, httpHeaders); - ResponseEntity responseEntity = restTemplate.exchange(uriComponents.toUri(), HttpMethod.POST, httpEntity - , ResponseEntity.class); + ResponseEntity responseEntity = restTemplate.exchange(uriComponents.toUri(), HttpMethod.POST, httpEntity, ResponseEntity.class); if (responseEntity.getStatusCode().equals(HttpStatus.OK)) { try { @@ -613,8 +619,11 @@ public class RepositoryServiceImpl implements RepositoryService { } catch (Exception e) { LOGGER.error("Error sending emails: " + e); } - } else - LOGGER.debug(responseEntity.getBody().toString()); + } else { + Object responseBody = responseEntity.getBody(); + if ( responseBody != null ) + LOGGER.error("Error updating repository: " + responseBody); + } return repository; } @@ -643,7 +652,9 @@ public class RepositoryServiceImpl implements RepositoryService { LOGGER.error("Error sending emails: " + e); } } else { - LOGGER.debug(responseEntity.getBody().toString()); + Object responseBody = responseEntity.getBody(); + if ( responseBody != null ) + LOGGER.error("Error storing repository: " + responseBody); } } @@ -804,7 +815,8 @@ public class RepositoryServiceImpl implements RepositoryService { RequestFilter requestFilter = new RequestFilter(); requestFilter.setRegisteredby(userEmail); - return Arrays.asList(restTemplate.postForObject(uriComponents.toUri(), requestFilter, String[].class)); + Object result = restTemplate.postForObject(uriComponents.toUri(), requestFilter, String[].class); + return (result != null) ? Collections.singletonList(result.toString()) : null; } private Vocabulary getVocabulary(String vocName) { diff --git a/src/main/java/eu/dnetlib/repo/manager/service/UserServiceImpl.java b/src/main/java/eu/dnetlib/repo/manager/service/UserServiceImpl.java index 0d3a6fd..32a5753 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/UserServiceImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/UserServiceImpl.java @@ -1,7 +1,7 @@ package eu.dnetlib.repo.manager.service; import org.mitre.openid.connect.model.OIDCAuthenticationToken; -import org.springframework.beans.factory.annotation.Value; +import org.mitre.openid.connect.model.UserInfo; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.core.GrantedAuthority; @@ -25,12 +25,16 @@ public class UserServiceImpl implements UserService { LOGGER.debug("User authentication : " + authentication); Map body = new HashMap<>(); body.put("sub",authentication.getSub()); - if(authentication.getUserInfo().getName() == null || authentication.getUserInfo().getName().equals("")) - body.put("name",authentication.getUserInfo().getGivenName() + " " + authentication.getUserInfo().getFamilyName()); - else - body.put("name",authentication.getUserInfo().getName()); - body.put("email",authentication.getUserInfo().getEmail()); + UserInfo userInfo = authentication.getUserInfo(); + String userName = userInfo.getName(); + + if ( userName == null || userName.isEmpty() ) + body.put("name", userInfo.getGivenName() + " " + userInfo.getFamilyName()); + else + body.put("name", userName); + + body.put("email",userInfo.getEmail()); List roles = authentication.getAuthorities().stream().map(GrantedAuthority::getAuthority).collect(Collectors.toList()); body.put("role",roles); 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 08e1bdf..e66d901 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/ValidatorServiceImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/ValidatorServiceImpl.java @@ -57,8 +57,7 @@ public class ValidatorServiceImpl implements ValidatorService { private Map> rulesetMap = new ConcurrentHashMap>(); - private static final Logger LOGGER = Logger - .getLogger(ValidatorServiceImpl.class); + private static final Logger LOGGER = Logger.getLogger(ValidatorServiceImpl.class); @Autowired private EmailUtils emailUtils; diff --git a/src/main/java/eu/dnetlib/repo/manager/utils/Converter.java b/src/main/java/eu/dnetlib/repo/manager/utils/Converter.java index 98066ec..43a0569 100644 --- a/src/main/java/eu/dnetlib/repo/manager/utils/Converter.java +++ b/src/main/java/eu/dnetlib/repo/manager/utils/Converter.java @@ -12,7 +12,6 @@ import org.json.JSONObject; import org.springframework.stereotype.Component; import java.io.BufferedReader; -import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; @@ -87,17 +86,17 @@ public class Converter { List list = new ArrayList<>(); try { //InputStream in = Converter.class.getResourceAsStream("resources/eu/dnetlib/repo/manager/service/utils/"+filename); - InputStream in = Converter.class.getClass().getResourceAsStream("/eu/**/" + filename); - BufferedReader br = new BufferedReader(new InputStreamReader(in)); + InputStream in = Converter.class.getResourceAsStream("/eu/**/" + filename); + BufferedReader br = new BufferedReader(new InputStreamReader(in)); // It may throw an NPE. while ((line = br.readLine()) != null) { list.add(line.trim()); } br.close(); - } catch (IOException e) { + } catch (Exception e) { LOGGER.debug("Error opening file!"); LOGGER.error(e); } - return list; + return list; // It may be empty. } public List toAggregationHistory(String aggregationHistoryResponse) throws JSONException { diff --git a/src/main/java/eu/dnetlib/repo/manager/utils/HttpUtils.java b/src/main/java/eu/dnetlib/repo/manager/utils/HttpUtils.java index bb2c7be..9a0de9e 100644 --- a/src/main/java/eu/dnetlib/repo/manager/utils/HttpUtils.java +++ b/src/main/java/eu/dnetlib/repo/manager/utils/HttpUtils.java @@ -10,7 +10,7 @@ import org.springframework.http.*; import org.springframework.stereotype.Component; import org.springframework.web.client.RestTemplate; -import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.util.Map; @Component @@ -78,8 +78,7 @@ public class HttpUtils { private HttpHeaders createHeaders(String username, String password) { return new HttpHeaders() {{ String auth = username + ":" + password; - byte[] encodedAuth = Base64.encodeBase64( - auth.getBytes(Charset.forName("US-ASCII"))); + byte[] encodedAuth = Base64.encodeBase64(auth.getBytes(StandardCharsets.US_ASCII)); String authHeader = "Basic " + new String(encodedAuth); set("Authorization", authHeader); }}; diff --git a/src/main/java/eu/dnetlib/repo/manager/utils/OaiTools.java b/src/main/java/eu/dnetlib/repo/manager/utils/OaiTools.java index 93c0d5f..33b8231 100644 --- a/src/main/java/eu/dnetlib/repo/manager/utils/OaiTools.java +++ b/src/main/java/eu/dnetlib/repo/manager/utils/OaiTools.java @@ -32,8 +32,7 @@ public class OaiTools { OaiPmhServer harvester = new OaiPmhServer(baseUrl); SetsList setList = harvester.listSets(); ResumptionToken token = setList.getResumptionToken(); - List sets = new ArrayList(); - sets.addAll(setList.asList()); + List sets = new ArrayList<>(setList.asList()); while (token != null) { setList = harvester.listSets(token); token = setList.getResumptionToken(); From 1a4df2b8521a5ac1c3f56d3887894668b9c9c5bb Mon Sep 17 00:00:00 2001 From: LSmyrnaios Date: Wed, 14 Dec 2022 16:33:12 +0200 Subject: [PATCH 2/4] - Add "README.md" - Code polishing. --- README.md | 10 +++ .../config/DatasourceConfiguration.java | 2 +- ...ndLinkURIAuthenticationSuccessHandler.java | 4 +- .../manager/config/RedisConfiguration.java | 8 +- .../controllers/MonitorController.java | 3 +- .../manager/controllers/PiWikController.java | 4 +- .../controllers/PrometheusController.java | 4 +- .../RestTemplateResponseErrorHandler.java | 14 ++-- .../manager/service/BrokerServiceImpl.java | 11 ++- .../manager/service/DashboardServiceImpl.java | 7 -- .../repo/manager/service/EmailUtilsImpl.java | 54 ++++++------- .../manager/service/MonitorServiceImpl.java | 17 ++--- .../manager/service/PiWikServiceImpl.java | 15 ++-- .../service/RepositoryServiceImpl.java | 76 +++++++++---------- .../manager/service/StatsServiceImpl.java | 52 ++++++------- .../manager/service/SushiliteServiceImpl.java | 7 +- .../repo/manager/service/UserServiceImpl.java | 4 +- .../manager/service/ValidatorServiceImpl.java | 32 ++++---- .../dnetlib/repo/manager/utils/Converter.java | 5 +- .../dnetlib/repo/manager/utils/OaiTools.java | 16 ++-- 20 files changed, 169 insertions(+), 176 deletions(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..6fcdc3c --- /dev/null +++ b/README.md @@ -0,0 +1,10 @@ +# Provide + +[...] + +## Install and run: +- Run **git clone** and then **cd uoa-repository-manager-service**. +- Provide all not-set or redacted configurations, inside the **src/main/resources/application.properties** file. +- Execute the **installAndRun.sh** script which installs and runs the app. + - If you want to just run the app, then run the script with the argument "1": **./installAndRun.sh 1** + - If you want to just install the app, then run the script with the argument "2": **./installAndRun.sh 2** diff --git a/src/main/java/eu/dnetlib/repo/manager/config/DatasourceConfiguration.java b/src/main/java/eu/dnetlib/repo/manager/config/DatasourceConfiguration.java index 192606f..14b5d23 100644 --- a/src/main/java/eu/dnetlib/repo/manager/config/DatasourceConfiguration.java +++ b/src/main/java/eu/dnetlib/repo/manager/config/DatasourceConfiguration.java @@ -12,7 +12,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; @EnableTransactionManagement public class DatasourceConfiguration { - private static Logger LOGGER = Logger.getLogger(DatasourceConfiguration.class); + private static Logger logger = Logger.getLogger(DatasourceConfiguration.class); @Value("${services.provide.db.driverClassName}") private String driverClassname; diff --git a/src/main/java/eu/dnetlib/repo/manager/config/FrontEndLinkURIAuthenticationSuccessHandler.java b/src/main/java/eu/dnetlib/repo/manager/config/FrontEndLinkURIAuthenticationSuccessHandler.java index 33cc51f..e942444 100644 --- a/src/main/java/eu/dnetlib/repo/manager/config/FrontEndLinkURIAuthenticationSuccessHandler.java +++ b/src/main/java/eu/dnetlib/repo/manager/config/FrontEndLinkURIAuthenticationSuccessHandler.java @@ -22,10 +22,10 @@ public class FrontEndLinkURIAuthenticationSuccessHandler implements Authenticati private String frontEndURI; - private static final Logger LOGGER = Logger.getLogger(FrontEndLinkURIAuthenticationSuccessHandler.class); + private static final Logger logger = Logger.getLogger(FrontEndLinkURIAuthenticationSuccessHandler.class); public void init() { - LOGGER.debug("Front end uri : " + frontEndURI); + logger.debug("Front end uri : " + frontEndURI); } diff --git a/src/main/java/eu/dnetlib/repo/manager/config/RedisConfiguration.java b/src/main/java/eu/dnetlib/repo/manager/config/RedisConfiguration.java index 74a4aa7..530cb0c 100644 --- a/src/main/java/eu/dnetlib/repo/manager/config/RedisConfiguration.java +++ b/src/main/java/eu/dnetlib/repo/manager/config/RedisConfiguration.java @@ -18,7 +18,7 @@ import javax.annotation.PostConstruct; @EnableRedisHttpSession public class RedisConfiguration { - private static Logger LOGGER = Logger.getLogger(RedisConfiguration.class); + private static Logger logger = Logger.getLogger(RedisConfiguration.class); @Value("${services.provide.redis.host}") private String host; @@ -34,12 +34,12 @@ public class RedisConfiguration { @PostConstruct private void init() { - LOGGER.info(String.format("Redis : %s Port : %s Password : %s", host, port, password)); + logger.info(String.format("Redis : %s Port : %s Password : %s", host, port, password)); } @Bean public JedisConnectionFactory connectionFactory() { - LOGGER.info(String.format("Redis : %s Port : %s Password : %s", host, port, password)); + logger.info(String.format("Redis : %s Port : %s Password : %s", host, port, password)); JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory(); jedisConnectionFactory.setHostName(host); jedisConnectionFactory.setPort(Integer.parseInt(port)); @@ -54,7 +54,7 @@ public class RedisConfiguration { serializer.setCookieName("openAIRESession"); serializer.setCookiePath("/"); serializer.setDomainName(domain); - LOGGER.info("Serializer : " + serializer); + logger.info("Serializer : " + serializer); return serializer; } diff --git a/src/main/java/eu/dnetlib/repo/manager/controllers/MonitorController.java b/src/main/java/eu/dnetlib/repo/manager/controllers/MonitorController.java index f1c7b2d..11df575 100644 --- a/src/main/java/eu/dnetlib/repo/manager/controllers/MonitorController.java +++ b/src/main/java/eu/dnetlib/repo/manager/controllers/MonitorController.java @@ -20,8 +20,7 @@ import org.springframework.web.bind.annotation.*; @Api(description = "Monitor API", tags = {"monitor"}) public class MonitorController { - private static final Logger LOGGER = Logger - .getLogger(MonitorController.class); + private static final Logger logger = Logger.getLogger(MonitorController.class); @Autowired private MonitorServiceImpl monitorService; diff --git a/src/main/java/eu/dnetlib/repo/manager/controllers/PiWikController.java b/src/main/java/eu/dnetlib/repo/manager/controllers/PiWikController.java index 118c319..3727b27 100644 --- a/src/main/java/eu/dnetlib/repo/manager/controllers/PiWikController.java +++ b/src/main/java/eu/dnetlib/repo/manager/controllers/PiWikController.java @@ -33,7 +33,7 @@ import java.util.List; @Api(description = "Piwik API", tags = {"piwik"}) public class PiWikController { - private static final Logger LOGGER = Logger.getLogger(PiWikController.class); + private static final Logger logger = Logger.getLogger(PiWikController.class); @Autowired private PiWikServiceImpl piWikService; @@ -120,7 +120,7 @@ public class PiWikController { writer.write(sb.toString()); } catch (FileNotFoundException e) { - LOGGER.error(e.getMessage()); + logger.error(e.getMessage()); } diff --git a/src/main/java/eu/dnetlib/repo/manager/controllers/PrometheusController.java b/src/main/java/eu/dnetlib/repo/manager/controllers/PrometheusController.java index 7f8a7e6..3c147f8 100644 --- a/src/main/java/eu/dnetlib/repo/manager/controllers/PrometheusController.java +++ b/src/main/java/eu/dnetlib/repo/manager/controllers/PrometheusController.java @@ -24,7 +24,7 @@ import java.io.File; @RestController @RequestMapping("/actuator/prometheus") public class PrometheusController { // TODO: remove this with migration to Spring Boot 2 - private static final Logger LOGGER = Logger.getLogger(PrometheusController.class); + private static final Logger logger = Logger.getLogger(PrometheusController.class); private final PiWikService piWikService; private final RepositoryService repositoryService; @@ -52,7 +52,7 @@ public class PrometheusController { // TODO: remove this with migration to Sprin try (JvmGcMetrics jvmGcMetrics = new JvmGcMetrics() ) { jvmGcMetrics.bindTo(registry); } catch (Exception e) { - LOGGER.error("", e); + logger.error("", e); } new JvmMemoryMetrics().bindTo(registry); new DiskSpaceMetrics(new File("/")).bindTo(registry); diff --git a/src/main/java/eu/dnetlib/repo/manager/controllers/RestTemplateResponseErrorHandler.java b/src/main/java/eu/dnetlib/repo/manager/controllers/RestTemplateResponseErrorHandler.java index 488b557..cbcfaa0 100644 --- a/src/main/java/eu/dnetlib/repo/manager/controllers/RestTemplateResponseErrorHandler.java +++ b/src/main/java/eu/dnetlib/repo/manager/controllers/RestTemplateResponseErrorHandler.java @@ -16,19 +16,17 @@ public class RestTemplateResponseErrorHandler implements ResponseErrorHandler { @Override public boolean hasError(ClientHttpResponse httpResponse) throws IOException { - return (httpResponse.getStatusCode().series() == CLIENT_ERROR - || httpResponse.getStatusCode().series() == SERVER_ERROR); + HttpStatus.Series seriesError = httpResponse.getStatusCode().series(); + return ( (seriesError == CLIENT_ERROR) || (seriesError == SERVER_ERROR) ); } @Override public void handleError(ClientHttpResponse httpResponse) throws IOException { - if (httpResponse.getStatusCode().series() == HttpStatus.Series.SERVER_ERROR) { + HttpStatus statusCode = httpResponse.getStatusCode(); + if ( statusCode == HttpStatus.NOT_FOUND ) + throw new IOException(); + else if (statusCode.series() == SERVER_ERROR) throw new EndPointException(); - } else if (httpResponse.getStatusCode().series() == HttpStatus.Series.CLIENT_ERROR) { - if (httpResponse.getStatusCode() == HttpStatus.NOT_FOUND) { - throw new IOException(); - } - } } } diff --git a/src/main/java/eu/dnetlib/repo/manager/service/BrokerServiceImpl.java b/src/main/java/eu/dnetlib/repo/manager/service/BrokerServiceImpl.java index e540830..fcbf4a5 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/BrokerServiceImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/BrokerServiceImpl.java @@ -40,8 +40,7 @@ public class BrokerServiceImpl implements BrokerService { @Value("${services.provide.topic_types.url}") private String topicsURL; - private static final org.apache.log4j.Logger LOGGER = org.apache.log4j.Logger - .getLogger(BrokerServiceImpl.class); + private static final org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(BrokerServiceImpl.class); @Autowired RestTemplate restTemplate; @@ -56,14 +55,14 @@ public class BrokerServiceImpl implements BrokerService { httpHeaders = new HttpHeaders(); httpHeaders.set("Content-Type", "application/json"); - LOGGER.debug("Init dnet topics!"); + logger.debug("Init dnet topics!"); try (InputStream is = new URL(topicsURL).openStream()) { ObjectMapper mapper = new ObjectMapper(); JsonNode root = mapper.readTree(is); for (JsonNode term : root.path("terms")) topics.put(term.path("code").textValue(), parseTerm(term)); } catch (IOException e) { - LOGGER.error("Exception on initDnetTopicsMap", e); + logger.error("Exception on initDnetTopicsMap", e); } } @@ -89,7 +88,7 @@ public class BrokerServiceImpl implements BrokerService { // ret.setDatasourcesOfOthers(getDatasourcesOfUserType(getRepositoriesOfUser(user))); // } } catch (Exception e) { - LOGGER.error("Exception on getDatasourcesOfUser", e); + logger.error("Exception on getDatasourcesOfUser", e); } long end = System.currentTimeMillis(); System.out.println("Getting datasources of user in " + (end - start) + "ms"); @@ -213,7 +212,7 @@ public class BrokerServiceImpl implements BrokerService { UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(openairePath + service) .queryParam("email", userEmail); - LOGGER.debug(builder.build().encode().toUri()); + logger.debug(builder.build().encode().toUri()); ResponseEntity>> resp; try { resp = restTemplate.exchange( diff --git a/src/main/java/eu/dnetlib/repo/manager/service/DashboardServiceImpl.java b/src/main/java/eu/dnetlib/repo/manager/service/DashboardServiceImpl.java index 8ff9595..996310b 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/DashboardServiceImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/DashboardServiceImpl.java @@ -34,7 +34,6 @@ public class DashboardServiceImpl implements DashboardService { List repositorySummaryInfoList = new ArrayList<>(); try { - List repositoriesOfUser = repositoryService.getRepositoriesSnippetsOfUser(userEmail, page, size); for (RepositorySnippet repository : repositoriesOfUser) { RepositorySummaryInfo repositorySummaryInfo = new RepositorySummaryInfo(); @@ -53,35 +52,29 @@ public class DashboardServiceImpl implements DashboardService { } } long end = System.currentTimeMillis(); - System.out.println("Got repo aggregations in " + (end - start) + "ms"); try { - MetricsInfo metricsInfo = repositoryService.getMetricsInfoForRepository(repository.getId()); repositorySummaryInfo.setTotalDownloads(metricsInfo.getMetricsNumbers().getTotalDownloads()); repositorySummaryInfo.setTotalViews(metricsInfo.getMetricsNumbers().getTotalViews()); - } catch (RepositoryServiceException e) { logger.error("Exception getting metrics info for repository: " + repository.getId(), e); } try { - List events = brokerService.getTopicsForDatasource(repository.getOfficialname()); Long totalEvents = 0L; for (BrowseEntry browseEntry : events) totalEvents += browseEntry.getSize(); repositorySummaryInfo.setEnrichmentEvents(totalEvents); - } catch (BrokerException e) { logger.error("Exception getting broker events for repository: " + repository.getId(), e); } repositorySummaryInfoList.add(repositorySummaryInfo); } - } catch (Exception e) { logger.error("Something baad happened!", e); } 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 31ce0da..97e8064 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/EmailUtilsImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/EmailUtilsImpl.java @@ -21,7 +21,7 @@ import java.util.stream.Collectors; @Component("emailUtils") public class EmailUtilsImpl implements EmailUtils { - private final static Logger LOGGER = Logger.getLogger(EmailUtilsImpl.class); + private final static Logger logger = Logger.getLogger(EmailUtilsImpl.class); private final MailLibrary mailLibrary; private final RepositoryService repositoryService; @@ -65,7 +65,7 @@ public class EmailUtilsImpl implements EmailUtils { this.sendMail(this.usageStatsAdminEmail, subject, message); } catch (Exception e) { - LOGGER.error("Error while sending request to enable metrics email to administrator: " + this.usageStatsAdminEmail, e); + logger.error("Error while sending request to enable metrics email to administrator: " + this.usageStatsAdminEmail, e); throw e; } } @@ -102,7 +102,7 @@ public class EmailUtilsImpl implements EmailUtils { this.sendMail(piwikInfo.getRequestorEmail(), subject, message); } catch (Exception e) { - LOGGER.error("Error while sending request to enable metrics email to user: " + piwikInfo.getRequestorEmail(), e); + logger.error("Error while sending request to enable metrics email to user: " + piwikInfo.getRequestorEmail(), e); throw e; } } @@ -126,7 +126,7 @@ public class EmailUtilsImpl implements EmailUtils { this.sendMail(this.usageStatsAdminEmail, subject, message); } catch (Exception e) { - LOGGER.error("Error while sending metrics enabled notification email to administator: " + this.usageStatsAdminEmail, e); + logger.error("Error while sending metrics enabled notification email to administator: " + this.usageStatsAdminEmail, e); throw e; } } @@ -154,7 +154,7 @@ public class EmailUtilsImpl implements EmailUtils { this.sendMail(piwikInfo.getRequestorEmail(), subject, message); } catch (Exception e) { - LOGGER.error("Error while sending metrics enabled notification email to user: " + piwikInfo.getRequestorEmail(), e); + logger.error("Error while sending metrics enabled notification email to user: " + piwikInfo.getRequestorEmail(), e); throw e; } } @@ -178,7 +178,7 @@ public class EmailUtilsImpl implements EmailUtils { this.sendMail(this.provideAdminEmail, subject, message); } catch (Exception e) { - LOGGER.error("Error while sending registration notification email to the administrator", e); + logger.error("Error while sending registration notification email to the administrator", e); throw e; } } @@ -201,7 +201,7 @@ public class EmailUtilsImpl implements EmailUtils { this.sendMail(repository.getRegisteredby(), subject, message); } catch (Exception e) { - LOGGER.error("Error while sending registration notification email to user: " + repository.getRegisteredby(), e); + logger.error("Error while sending registration notification email to user: " + repository.getRegisteredby(), e); throw e; } } @@ -234,7 +234,7 @@ public class EmailUtilsImpl implements EmailUtils { this.sendMail(this.provideAdminEmail, subject, message); } catch (Exception e) { - LOGGER.error("Error while sending registration of interface notification email to the administrator", e); + logger.error("Error while sending registration of interface notification email to the administrator", e); throw e; } } @@ -265,7 +265,7 @@ public class EmailUtilsImpl implements EmailUtils { this.sendMail(repository.getRegisteredby(), subject, message); } catch (Exception e) { - LOGGER.error("Error while sending registration of interface notification email to user: " + repository.getRegisteredby(), e); + logger.error("Error while sending registration of interface notification email to user: " + repository.getRegisteredby(), e); throw e; } } @@ -295,7 +295,7 @@ public class EmailUtilsImpl implements EmailUtils { this.sendMail(repository.getRegisteredby(), subject, message); } catch (Exception e) { - LOGGER.error("Error while sending registration notification email to user: " + repository.getRegisteredby(), e); + logger.error("Error while sending registration notification email to user: " + repository.getRegisteredby(), e); throw e; } } @@ -326,7 +326,7 @@ public class EmailUtilsImpl implements EmailUtils { this.sendMail(this.provideAdminEmail, subject, message); } catch (Exception e) { - LOGGER.error("Error while sending registration notification email to user: " + repository.getRegisteredby(), e); + logger.error("Error while sending registration notification email to user: " + repository.getRegisteredby(), e); throw e; } } @@ -355,7 +355,7 @@ public class EmailUtilsImpl implements EmailUtils { this.sendMail(repository.getRegisteredby(), subject, message); } catch (Exception e) { - LOGGER.error("Error while sending registration notification email to user: " + repository.getRegisteredby(), e); + logger.error("Error while sending registration notification email to user: " + repository.getRegisteredby(), e); throw e; } } @@ -386,7 +386,7 @@ public class EmailUtilsImpl implements EmailUtils { this.sendMail(this.provideAdminEmail, subject, message); } catch (Exception e) { - LOGGER.error("Error while sending registration notification email to user: " + repository.getRegisteredby(), e); + logger.error("Error while sending registration notification email to user: " + repository.getRegisteredby(), e); throw e; } } @@ -414,7 +414,7 @@ public class EmailUtilsImpl implements EmailUtils { this.sendMail(issuer, subject, message); } catch (Exception e) { - LOGGER.error("Error while sending registration notification email to the administrator", e); + logger.error("Error while sending registration notification email to the administrator", e); throw e; } } @@ -443,7 +443,7 @@ public class EmailUtilsImpl implements EmailUtils { this.sendMail(this.provideAdminEmail, subject, message); } catch (Exception e) { - LOGGER.error("Error while sending registration notification email to the administrator", e); + logger.error("Error while sending registration notification email to the administrator", e); throw e; } } @@ -473,7 +473,7 @@ public class EmailUtilsImpl implements EmailUtils { this.sendMail(issuer, subject, message); } catch (Exception e) { - LOGGER.error("Error while sending registration notification email to user: " + repository.getRegisteredby(), e); + logger.error("Error while sending registration notification email to user: " + repository.getRegisteredby(), e); throw e; } } @@ -504,7 +504,7 @@ public class EmailUtilsImpl implements EmailUtils { this.sendMail(this.provideAdminEmail, subject, message); } catch (Exception e) { - LOGGER.error("Error while sending registration notification email to user: " + repository.getRegisteredby(), e); + logger.error("Error while sending registration notification email to user: " + repository.getRegisteredby(), e); throw e; } } @@ -524,7 +524,7 @@ public class EmailUtilsImpl implements EmailUtils { this.sendMail(issuer, subject, message); } catch (Exception e) { - LOGGER.error("Error while sending validation submission notification email to user: " + issuer, e); + logger.error("Error while sending validation submission notification email to user: " + issuer, e); throw e; } } @@ -545,7 +545,7 @@ public class EmailUtilsImpl implements EmailUtils { this.sendMail(this.provideAdminEmail, subject, message); } catch (Exception e) { - LOGGER.error("Error while sending validation submission notification email to user: " + issuer, e); + logger.error("Error while sending validation submission notification email to user: " + issuer, e); throw e; } } @@ -563,7 +563,7 @@ public class EmailUtilsImpl implements EmailUtils { this.sendMail(this.provideAdminEmail, subject, message); } catch (Exception e) { - LOGGER.error("Error while sending validation submission notification email to user: " + issuer, e); + logger.error("Error while sending validation submission notification email to user: " + issuer, e); throw e; } } @@ -583,7 +583,7 @@ public class EmailUtilsImpl implements EmailUtils { this.sendMail(this.provideAdminEmail, subject, message); } catch (Exception e) { - LOGGER.error("Error while sending registration notification email to the administrator", e); + logger.error("Error while sending registration notification email to the administrator", e); throw e; } } @@ -604,7 +604,7 @@ public class EmailUtilsImpl implements EmailUtils { this.sendMail(repository.getRegisteredby(), subject, message); } catch (Exception e) { - LOGGER.error("Error while sending registration notification email to user: " + repository.getRegisteredby(), e); + logger.error("Error while sending registration notification email to user: " + repository.getRegisteredby(), e); throw e; } } @@ -635,7 +635,7 @@ public class EmailUtilsImpl implements EmailUtils { this.sendMail(this.provideAdminEmail, subject, message); } catch (Exception e) { - LOGGER.error("Error while sending registration notification email to the administrator", e); + logger.error("Error while sending registration notification email to the administrator", e); throw e; } } @@ -666,7 +666,7 @@ public class EmailUtilsImpl implements EmailUtils { this.sendMail(repository.getRegisteredby(), subject, message); } catch (Exception e) { - LOGGER.error("Error while sending registration notification email to user: " + repository.getRegisteredby(), e); + logger.error("Error while sending registration notification email to user: " + repository.getRegisteredby(), e); throw e; } } @@ -686,7 +686,7 @@ public class EmailUtilsImpl implements EmailUtils { this.sendMail(jobForValidation.getUserEmail(), subject, message); } catch (Exception e) { - LOGGER.error("Error while sending validation submission notification email to user: " + jobForValidation.getUserEmail(), e); + logger.error("Error while sending validation submission notification email to user: " + jobForValidation.getUserEmail(), e); throw e; } } @@ -742,10 +742,10 @@ public class EmailUtilsImpl implements EmailUtils { public void sendMail(List recipients, String subject, String message) throws Exception { try { - LOGGER.debug("Sending e-mail\nRecipients: " + recipients + "\nSubject: " + subject + "\nMessage: " + message); + logger.debug("Sending e-mail\nRecipients: " + recipients + "\nSubject: " + subject + "\nMessage: " + message); mailLibrary.sendEmail(recipients.toArray(new String[]{}), subject, message); } catch (Exception e) { - LOGGER.error("Error sending e-mail\nRecipients: " + recipients + "\nSubject: " + subject + "\nMessage: " + message, e); + logger.error("Error sending e-mail\nRecipients: " + recipients + "\nSubject: " + subject + "\nMessage: " + message, e); throw e; } } diff --git a/src/main/java/eu/dnetlib/repo/manager/service/MonitorServiceImpl.java b/src/main/java/eu/dnetlib/repo/manager/service/MonitorServiceImpl.java index 0670eea..804585a 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/MonitorServiceImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/MonitorServiceImpl.java @@ -22,6 +22,8 @@ import java.util.stream.Collectors; @Service("monitorService") public class MonitorServiceImpl implements MonitorService { + private static final Logger logger = Logger.getLogger(MonitorServiceImpl.class); + @Autowired private MapJobDao crisJobs; @@ -41,9 +43,6 @@ public class MonitorServiceImpl implements MonitorService { } - private static final Logger LOGGER = Logger - .getLogger(MonitorServiceImpl.class); - @Override public JobsOfUser getJobsOfUser(String user, String jobType, @@ -54,8 +53,8 @@ public class MonitorServiceImpl implements MonitorService { String validationStatus, String includeJobsTotal) throws JSONException, ValidatorServiceException { - LOGGER.debug("Getting jobs of user : " + user); - LOGGER.debug(user + "/" + jobType + "/" + offset + "/" + dateFrom + "/" + dateTo + "/" + validationStatus + "/" + includeJobsTotal); + logger.debug("Getting jobs of user : " + user + + "\n" + user + "/" + jobType + "/" + offset + "/" + dateFrom + "/" + dateTo + "/" + validationStatus + "/" + includeJobsTotal); ///////////////////////////////////////////////////////////////////////////////////////// // FIXME: this is a hack for CRIS Jan Dvorak Validator, should be implemented properly // @@ -154,7 +153,7 @@ public class MonitorServiceImpl implements MonitorService { public int getJobsOfUserPerValidationStatus(String user, String jobType, String validationStatus) throws JSONException { - LOGGER.debug("Getting job with validation status : " + validationStatus); + logger.debug("Getting job with validation status : " + validationStatus); if (jobType.equalsIgnoreCase("cris")) { return crisJobs.getJobs(user, validationStatus).size(); @@ -163,7 +162,7 @@ public class MonitorServiceImpl implements MonitorService { try { return getValidationService().getStoredJobsTotalNumberNew(user, jobType, validationStatus); } catch (ValidatorServiceException e) { - LOGGER.error(e); + logger.error(e); } return 0; } @@ -171,12 +170,12 @@ public class MonitorServiceImpl implements MonitorService { @Override public StoredJob getJobSummary(String jobId, String groupBy) throws JSONException { - LOGGER.debug("Getting job summary with id : " + jobId); + logger.debug("Getting job summary with id : " + jobId); StoredJob job = null; try { job = getValidationService().getStoredJob(Integer.parseInt(jobId), groupBy); } catch (ValidatorServiceException e) { - LOGGER.error(e); + logger.error(e); } ///////////////////////////////////////////////////////////////////////////////////////// // FIXME: this is a hack for CRIS Jan Dvorak Validator, should be implemented properly // diff --git a/src/main/java/eu/dnetlib/repo/manager/service/PiWikServiceImpl.java b/src/main/java/eu/dnetlib/repo/manager/service/PiWikServiceImpl.java index 360dd5d..061c1f8 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/PiWikServiceImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/PiWikServiceImpl.java @@ -32,6 +32,9 @@ import java.util.Map; @Service("piwikService") public class PiWikServiceImpl implements PiWikService { + private static final Logger logger = Logger.getLogger(PiWikServiceImpl.class); + + @Autowired private DataSource dataSource; @@ -47,8 +50,6 @@ public class PiWikServiceImpl implements PiWikService { @Qualifier("emailUtils") private EmailUtils emailUtils; - private static final Logger LOGGER = Logger - .getLogger(PiWikServiceImpl.class); private final static String GET_PIWIK_SITE = "select repositoryid, siteid, authenticationtoken, creationdate, requestorname, requestoremail, validated, validationdate, comment, repositoryname, country from piwik_site where repositoryid = ?;"; @@ -168,10 +169,10 @@ public class PiWikServiceImpl implements PiWikService { emailUtils.sendUserMetricsEnabled(piwikInfo); } catch (EmptyResultDataAccessException e) { - LOGGER.error("Error while approving piwik site: ", e); + logger.error("Error while approving piwik site: ", e); throw new RepositoryServiceException("General error", RepositoryServiceException.ErrorCode.GENERAL_ERROR); } catch (Exception e) { - LOGGER.error("Error while sending email to administrator or user about the enabling of metrics", e); + logger.error("Error while sending email to administrator or user about the enabling of metrics", e); throw new RepositoryServiceException(e, RepositoryServiceException.ErrorCode.GENERAL_ERROR); } return new ResponseEntity<>("OK", HttpStatus.OK); @@ -202,13 +203,13 @@ public class PiWikServiceImpl implements PiWikService { emailUtils.sendAdministratorRequestToEnableMetrics(piwikInfo); emailUtils.sendUserRequestToEnableMetrics(piwikInfo); } catch (UnsupportedEncodingException uee) { - LOGGER.error("Error while creating piwikScript URL", uee); + logger.error("Error while creating piwikScript URL", uee); throw new RepositoryServiceException("login.generalError", RepositoryServiceException.ErrorCode.GENERAL_ERROR); } catch (IOException ioe) { - LOGGER.error("Error while creating piwik site", ioe); + logger.error("Error while creating piwik site", ioe); throw new RepositoryServiceException("login.generalError", RepositoryServiceException.ErrorCode.GENERAL_ERROR); } catch (Exception e) { - LOGGER.error("Error while sending email to administrator or user about the request to enable metrics", e); + logger.error("Error while sending email to administrator or user about the request to enable metrics", e); throw new RepositoryServiceException(e, RepositoryServiceException.ErrorCode.GENERAL_ERROR); } return piwikInfo; 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 c4be36e..ee5097e 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/RepositoryServiceImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/RepositoryServiceImpl.java @@ -53,7 +53,7 @@ import static eu.dnetlib.repo.manager.utils.DateUtils.getYear; @Service("repositoryService") public class RepositoryServiceImpl implements RepositoryService { - private static final Logger LOGGER = Logger.getLogger(RepositoryServiceImpl.class); + private static final Logger logger = Logger.getLogger(RepositoryServiceImpl.class); private final AuthorizationService authorizationService; private final RoleMappingService roleMappingService; @@ -114,8 +114,7 @@ public class RepositoryServiceImpl implements RepositoryService { @PostConstruct private void init() { - LOGGER.debug("Initialization method of repository api!"); - LOGGER.debug("Updated version!"); + logger.debug("Initialization method of repository api! Updated version!"); for (String key : this.getVocabulary("dnet:datasource_typologies").getAsMap().keySet()) { if (key.contains("aggregator")) { @@ -176,7 +175,7 @@ public class RepositoryServiceImpl implements RepositoryService { @Override public List getRepositories(List ids, int page, int size) throws JSONException { List repos = new ArrayList<>(); - LOGGER.debug("Retrieving repositories with ids : " + String.join(", ", ids)); + logger.debug("Retrieving repositories with ids : " + String.join(", ", ids)); UriComponents uriComponents = searchDatasource(Integer.toString(Math.abs(page)), Integer.toString(Math.abs(size))); RequestFilter requestFilter = new RequestFilter(); @@ -222,11 +221,11 @@ public class RepositoryServiceImpl implements RepositoryService { mapper.getTypeFactory().constructCollectionType(List.class, RepositorySnippet.class))); } } catch (Exception e) { - LOGGER.debug("Exception on getRepositoriesSnippetOfUser", e); + logger.debug("Exception on getRepositoriesSnippetOfUser", e); throw e; } - LOGGER.debug("resultSet:" + resultSet); + logger.debug("resultSet:" + resultSet); resultSet.parallelStream().forEach(repositorySnippet -> { repositorySnippet.setPiwikInfo(piWikService.getPiwikSiteForRepo(repositorySnippet.getId())); }); @@ -239,7 +238,7 @@ public class RepositoryServiceImpl implements RepositoryService { String mode, Boolean managed) throws JSONException, IOException { - LOGGER.debug("Getting repositories by country!"); + logger.debug("Getting repositories by country!"); int page = 0; int size = 100; List resultSet = new ArrayList<>(); @@ -252,8 +251,7 @@ public class RepositoryServiceImpl implements RepositoryService { filterKey = "CRIS system"; - LOGGER.debug("Country code equals : " + country); - LOGGER.debug("Filter mode equals : " + filterKey); + logger.debug("Country code equals : " + country + " | Filter mode equals : " + filterKey); UriComponents uriComponents = searchSnipperDatasource(String.valueOf(page), String.valueOf(size)); RequestFilter requestFilter = new RequestFilter(); @@ -277,7 +275,7 @@ public class RepositoryServiceImpl implements RepositoryService { public List searchRegisteredRepositories(String country, String typology, String englishName, String officialName, String requestSortBy, String order, int page, int pageSize) throws Exception { - LOGGER.debug("Searching registered repositories"); + logger.debug("Searching registered repositories"); Paging snippets = null; ObjectMapper mapper = new ObjectMapper(); @@ -293,7 +291,7 @@ public class RepositoryServiceImpl implements RepositoryService { try { String rs = restTemplate.postForObject(uriComponents.toUri(), requestFilter, String.class); if (rs == null) { - LOGGER.error(String.format("DSM response is null : [url=%s]", uriComponents.toUri())); + logger.error(String.format("DSM response is null : [url=%s]", uriComponents.toUri())); } else { JSONObject response = new JSONObject(rs); JSONArray jsonArray = (JSONArray) response.get("datasourceInfo"); @@ -305,7 +303,7 @@ public class RepositoryServiceImpl implements RepositoryService { } } catch (Exception e) { - LOGGER.error("Error searching registered datasources", e); + logger.error("Error searching registered datasources", e); throw e; } return snippets != null ? snippets.getResults() : null; // TODO: return paging when ui is compatible @@ -330,14 +328,14 @@ public class RepositoryServiceImpl implements RepositoryService { @Override public List getRepositoriesOfUser(String page, String size) throws JSONException { String userEmail = ((OIDCAuthenticationToken) SecurityContextHolder.getContext().getAuthentication()).getUserInfo().getEmail(); - LOGGER.debug("Retrieving repositories of authenticated user : " + userEmail); + logger.debug("Retrieving repositories of authenticated user : " + userEmail); Collection repoIds = roleMappingService.getRepoIdsByRoleIds(authorizationService.getUserRoles()); return getRepositories(new ArrayList<>(repoIds)); } @Override public List getRepositoriesOfUser(String userEmail, String page, String size) throws JSONException { - LOGGER.debug("Retrieving repositories of authenticated user : " + userEmail); + logger.debug("Retrieving repositories of authenticated user : " + userEmail); Collection repoIds = roleMappingService.getRepoIdsByRoleIds(authorizationService.getUserRoles(userEmail)); return getRepositories(new ArrayList<>(repoIds)); } @@ -369,7 +367,7 @@ public class RepositoryServiceImpl implements RepositoryService { @Override public RepositorySnippet getRepositorySnippetById(String id) throws JSONException, ResourceNotFoundException { - LOGGER.debug("Retrieving repositories with id : " + id); + logger.debug("Retrieving repositories with id : " + id); RepositorySnippet repo; UriComponents uriComponents = searchSnipperDatasource("0", "100"); RequestFilter requestFilter = new RequestFilter(); @@ -388,7 +386,7 @@ public class RepositoryServiceImpl implements RepositoryService { @Override public Repository getRepositoryById(String id) throws JSONException, ResourceNotFoundException { - LOGGER.debug("Retrieving repositories with id : " + id); + logger.debug("Retrieving repositories with id : " + id); Repository repo; UriComponents uriComponents = searchDatasource("0", "100"); RequestFilter requestFilter = new RequestFilter(); @@ -457,7 +455,7 @@ public class RepositoryServiceImpl implements RepositoryService { String page, String size) throws JSONException { - LOGGER.debug("Retrieving repositories with official name : " + name); + logger.debug("Retrieving repositories with official name : " + name); UriComponents uriComponents = searchDatasource("0", "100"); RequestFilter requestFilter = new RequestFilter(); requestFilter.setOfficialname(name); @@ -481,7 +479,7 @@ public class RepositoryServiceImpl implements RepositoryService { // String rs = restTemplate.getForObject(uriComponents.toUri(), String.class); ApiDetailsResponse rs = restTemplate.getForObject(uriComponents.toUri(), ApiDetailsResponse.class); if ( rs == null ) { - LOGGER.error("The ApiDetailsResponse was null!"); + logger.error("The ApiDetailsResponse was null!"); return null; } @@ -503,7 +501,7 @@ public class RepositoryServiceImpl implements RepositoryService { @Override public Repository addRepository(String datatype, Repository repository) throws Exception { - LOGGER.debug("storing " + datatype + " repository with id: " + repository.getId()); + logger.debug("storing " + datatype + " repository with id: " + repository.getId()); repository.setActivationId(UUID.randomUUID().toString()); repository.setCollectedfrom("infrastruct_::openaire"); @@ -542,10 +540,10 @@ public class RepositoryServiceImpl implements RepositoryService { } catch (HttpClientErrorException e) { couId = registryCalls.getCouId(newRoleName); if (couId == null) { - LOGGER.error(String.format("Could not create role '%s'", newRoleName), e); + logger.error(String.format("Could not create role '%s'", newRoleName), e); } } catch (Exception e) { - LOGGER.error(String.format("Could not create role '%s'", newRoleName), e); + logger.error(String.format("Could not create role '%s'", newRoleName), e); throw e; } @@ -559,7 +557,7 @@ public class RepositoryServiceImpl implements RepositoryService { // Add role to current user authorities authoritiesUpdater.addRole(roleMappingService.convertRepoIdToAuthority(repository.getId())); } catch (Exception e) { - LOGGER.debug("Exception on assign role to user during add repository", e); + logger.debug("Exception on assign role to user during add repository", e); throw e; } @@ -577,7 +575,7 @@ public class RepositoryServiceImpl implements RepositoryService { // FIXME: problematic // String json_repository = converter.toJson(repository); -// LOGGER.debug("JSON to add(update) -> " + json_repository); +// logger.debug("JSON to add(update) -> " + json_repository); HttpEntity httpEntity = new HttpEntity<>(repository, httpHeaders); // TODO: check if it works (Repository contains extra fields) ResponseEntity responseEntity = restTemplate.exchange(uriComponents.toUri(), HttpMethod.POST, httpEntity, ResponseEntity.class); @@ -587,12 +585,12 @@ public class RepositoryServiceImpl implements RepositoryService { emailUtils.sendUserRegistrationEmail(repository, authentication); emailUtils.sendAdminRegistrationEmail(repository, authentication); } catch (Exception e) { - LOGGER.error("Error sending email", e); + logger.error("Error sending email", e); } } else { Object responseBody = responseEntity.getBody(); if ( responseBody != null ) - LOGGER.error("Error updating repository: " + responseBody); + logger.error("Error updating repository: " + responseBody); } return repository; @@ -607,7 +605,7 @@ public class RepositoryServiceImpl implements RepositoryService { // FIXME: problematic // String json_repository = converter.toJson(repository); -// LOGGER.debug("JSON to update -> " + json_repository); +// logger.debug("JSON to update -> " + json_repository); HttpEntity httpEntity = new HttpEntity<>(repository, httpHeaders); ResponseEntity responseEntity = restTemplate.exchange(uriComponents.toUri(), HttpMethod.POST, httpEntity, ResponseEntity.class); @@ -617,12 +615,12 @@ public class RepositoryServiceImpl implements RepositoryService { emailUtils.sendUserUpdateRepositoryInfoEmail(repository, authentication); emailUtils.sendAdminUpdateRepositoryInfoEmail(repository, authentication); } catch (Exception e) { - LOGGER.error("Error sending emails: " + e); + logger.error("Error sending emails: " + e); } } else { Object responseBody = responseEntity.getBody(); if ( responseBody != null ) - LOGGER.error("Error updating repository: " + responseBody); + logger.error("Error updating repository: " + responseBody); } return repository; @@ -649,12 +647,12 @@ public class RepositoryServiceImpl implements RepositoryService { emailUtils.sendUserRegistrationEmail(repository, authentication); emailUtils.sendAdminRegistrationEmail(repository, authentication); } catch (Exception e) { - LOGGER.error("Error sending emails: " + e); + logger.error("Error sending emails: " + e); } } else { Object responseBody = responseEntity.getBody(); if ( responseBody != null ) - LOGGER.error("Error storing repository: " + responseBody); + logger.error("Error storing repository: " + responseBody); } } @@ -665,7 +663,7 @@ public class RepositoryServiceImpl implements RepositoryService { .fromHttpUrl(baseAddress + "/ds/api/") .path("/{id}") .build().expand(id).encode(); - LOGGER.debug(uriComponents.toUri()); + logger.debug(uriComponents.toUri()); restTemplate.delete(uriComponents.toUri()); } @@ -691,7 +689,7 @@ public class RepositoryServiceImpl implements RepositoryService { emailUtils.sendAdminRegisterInterfaceEmail(e, comment, repositoryInterface, authentication); emailUtils.sendUserRegisterInterfaceEmail(e, comment, repositoryInterface, authentication); } catch (Exception ex) { - LOGGER.error("Error sending emails: " + ex); + logger.error("Error sending emails: " + ex); } submitInterfaceValidation(e, getAuthenticatedUser().getEmail(), repositoryInterface, false); @@ -714,10 +712,10 @@ public class RepositoryServiceImpl implements RepositoryService { emailUtils.sendAdminUpdateInterfaceEmail(repository, comment, repositoryInterface, authentication); emailUtils.sendUserUpdateInterfaceEmail(repository, comment, repositoryInterface, authentication); } catch (Exception e) { - LOGGER.error("Error sending emails: " + e); + logger.error("Error sending emails: " + e); } } catch (Exception e) { - LOGGER.warn("Could not send emails", e); + logger.warn("Could not send emails", e); } submitInterfaceValidation(getRepositoryById(repoId), getAuthenticatedUser().getEmail(), repositoryInterface, true); @@ -780,7 +778,7 @@ public class RepositoryServiceImpl implements RepositoryService { iFace.setMetadataIdentifierPath("//*[local-name()='header']/*[local-name()='identifier']"); iFace.setId("api_________::" + repo.getId() + "::" + UUID.randomUUID().toString().substring(0, 8)); if (iFace.getAccessSet() == null || iFace.getAccessSet().isEmpty()) { - LOGGER.debug("set is empty: " + iFace.getAccessSet()); + logger.debug("set is empty: " + iFace.getAccessSet()); // iFace.removeAccessSet(); iFace.setAccessSet("none"); } @@ -789,7 +787,7 @@ public class RepositoryServiceImpl implements RepositoryService { @Override public List getDnetCountries() { - LOGGER.debug("Getting dnet-countries!"); + logger.debug("Getting dnet-countries!"); return converter.readFile("countries.txt"); } @@ -831,7 +829,7 @@ public class RepositoryServiceImpl implements RepositoryService { @Override public Map getCompatibilityClasses(String mode) { - LOGGER.debug("Getting compatibility classes for mode: " + mode); + logger.debug("Getting compatibility classes for mode: " + mode); Map retMap = new HashMap(); Map compatibilityClasses = this.getVocabulary("dnet:compatibilityLevel").getAsMap(); @@ -866,7 +864,7 @@ public class RepositoryServiceImpl implements RepositoryService { @Override public Map getDatasourceClasses(String mode) { - LOGGER.debug("Getting datasource classes for mode: " + mode); + logger.debug("Getting datasource classes for mode: " + mode); Map retMap = new HashMap(); @@ -927,7 +925,7 @@ public class RepositoryServiceImpl implements RepositoryService { return metricsInfo; } catch (Exception e) { - LOGGER.error("Error while getting metrics info for repository: ", e); + logger.error("Error while getting metrics info for repository: ", e); throw new RepositoryServiceException("General error", RepositoryServiceException.ErrorCode.GENERAL_ERROR); } } diff --git a/src/main/java/eu/dnetlib/repo/manager/service/StatsServiceImpl.java b/src/main/java/eu/dnetlib/repo/manager/service/StatsServiceImpl.java index dc7ee95..ecb9b4f 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/StatsServiceImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/StatsServiceImpl.java @@ -19,7 +19,7 @@ import java.util.Objects; @Service("statsService") public class StatsServiceImpl implements StatsService { - private static final Logger LOGGER = Logger.getLogger(StatsServiceImpl.class); + private static final Logger logger = Logger.getLogger(StatsServiceImpl.class); @Autowired RestTemplate restTemplate; @@ -67,10 +67,10 @@ public class StatsServiceImpl implements StatsService { Map metadata = (Map) ((Map) Objects.requireNonNull(rs.getBody())).get("meta"); return String.valueOf(metadata.get("total")); } catch ( RestClientException rce ) { - LOGGER.error(rce.getMessage()); + logger.error(rce.getMessage()); return null; } catch ( Exception e ) { - LOGGER.error("", e); + logger.error("", e); return null; } } @@ -94,15 +94,15 @@ public class StatsServiceImpl implements StatsService { ResponseEntity rs = restTemplate.exchange(uriComponents.toUri(), HttpMethod.GET, null, Map.class); Map metadata = (Map) ((Map) Objects.requireNonNull(rs.getBody())).get("meta"); if ( metadata == null ) { - LOGGER.error("The metadata was null!"); + logger.error("The metadata was null!"); return null; } return String.valueOf(metadata.get("total")); } catch ( RestClientException rce ) { - LOGGER.error(rce.getMessage()); + logger.error(rce.getMessage()); return null; } catch ( Exception e ) { - LOGGER.error("", e); + logger.error("", e); return null; } } @@ -127,15 +127,15 @@ public class StatsServiceImpl implements StatsService { ResponseEntity rs = restTemplate.exchange(uriComponents.toUri(), HttpMethod.GET, null, Map.class); Map metadata = (Map) ((Map) Objects.requireNonNull(rs.getBody())).get("meta"); if ( metadata == null ) { - LOGGER.error("The metadata was null!"); + logger.error("The metadata was null!"); return null; } return String.valueOf(metadata.get("total")); } catch ( RestClientException rce ) { - LOGGER.error(rce.getMessage()); + logger.error(rce.getMessage()); return null; } catch ( Exception e ) { - LOGGER.error("", e); + logger.error("", e); return null; } } @@ -159,15 +159,15 @@ public class StatsServiceImpl implements StatsService { ResponseEntity rs = restTemplate.exchange(uriComponents.toUri(), HttpMethod.GET, null, Map.class); Map metadata = (Map) ((Map) Objects.requireNonNull(rs.getBody())).get("meta"); if ( metadata == null ) { - LOGGER.error("The metadata was null!"); + logger.error("The metadata was null!"); return null; } return String.valueOf(metadata.get("total")); } catch ( RestClientException rce ) { - LOGGER.error(rce.getMessage()); + logger.error(rce.getMessage()); return null; } catch ( Exception e ) { - LOGGER.error("", e); + logger.error("", e); return null; } } @@ -188,15 +188,15 @@ public class StatsServiceImpl implements StatsService { ResponseEntity rs = restTemplate.exchange(uriComponents.toUri(), HttpMethod.GET, null, Map.class); Map metadata = (Map) rs.getBody(); if ( metadata == null ) { - LOGGER.error("The metadata was null!"); + logger.error("The metadata was null!"); return null; } return String.valueOf(metadata.get("total")); } catch ( RestClientException rce ) { - LOGGER.error(rce.getMessage()); + logger.error(rce.getMessage()); return null; } catch ( Exception e ) { - LOGGER.error("", e); + logger.error("", e); return null; } } @@ -217,15 +217,15 @@ public class StatsServiceImpl implements StatsService { ResponseEntity rs = restTemplate.exchange(uriComponents.toUri(), HttpMethod.GET, null, Map.class); Map metadata = (Map) rs.getBody(); if ( metadata == null ) { - LOGGER.error("The metadata was null!"); + logger.error("The metadata was null!"); return null; } return String.valueOf(metadata.get("total")); } catch ( RestClientException rce ) { - LOGGER.error(rce.getMessage()); + logger.error(rce.getMessage()); return null; } catch ( Exception e ) { - LOGGER.error("", e); + logger.error("", e); return null; } } @@ -246,15 +246,15 @@ public class StatsServiceImpl implements StatsService { ResponseEntity rs = restTemplate.exchange(uriComponents.toUri(), HttpMethod.GET, null, Map.class); Map metadata = (Map) rs.getBody(); if ( metadata == null ) { - LOGGER.error("The metadata was null!"); + logger.error("The metadata was null!"); return null; } return String.valueOf(metadata.get("total")); } catch ( RestClientException rce ) { - LOGGER.error(rce.getMessage()); + logger.error(rce.getMessage()); return null; } catch ( Exception e ) { - LOGGER.error("", e); + logger.error("", e); return null; } } @@ -280,10 +280,10 @@ public class StatsServiceImpl implements StatsService { usagestats.put("year", year); return usagestats; } catch ( RestClientException rce ) { - LOGGER.error(rce.getMessage()); + logger.error(rce.getMessage()); return null; } catch ( Exception e ) { - LOGGER.error("", e); + logger.error("", e); return null; } } @@ -299,7 +299,7 @@ public class StatsServiceImpl implements StatsService { ResponseEntity rs = restTemplate.exchange(uriComponents.toUri(), HttpMethod.GET, null, Map.class); Map metadata = (Map) ((Map) Objects.requireNonNull(rs.getBody())).get("totals"); if ( metadata == null ) { - LOGGER.error("The metadata was null!"); + logger.error("The metadata was null!"); return null; } @@ -309,10 +309,10 @@ public class StatsServiceImpl implements StatsService { return (Integer) metadata.get("events"); } catch ( RestClientException rce ) { - LOGGER.error(rce.getMessage()); + logger.error(rce.getMessage()); return null; } catch ( Exception e ) { - LOGGER.error("", e); + logger.error("", e); return null; } } diff --git a/src/main/java/eu/dnetlib/repo/manager/service/SushiliteServiceImpl.java b/src/main/java/eu/dnetlib/repo/manager/service/SushiliteServiceImpl.java index 90bb074..b4745af 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/SushiliteServiceImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/SushiliteServiceImpl.java @@ -22,7 +22,7 @@ public class SushiliteServiceImpl implements SushiliteService { @Value("${services.provide.usagestats.sushiliteEndpoint}") private String usagestatsSushiliteEndpoint; - private static final org.apache.log4j.Logger LOGGER = org.apache.log4j.Logger.getLogger(SushiliteServiceImpl.class); + private static final org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(SushiliteServiceImpl.class); @Override @@ -85,19 +85,16 @@ public class SushiliteServiceImpl implements SushiliteService { } requestedItemList = resp.getBody().getReportResponse().getReportWrapper().getReport().getCustomer().getReportItems().subList(offset,upperIndex); } - } catch (NumberFormatException e) { - LOGGER.debug("Exception on getReportResults - trying to cast strings to integers", e); + logger.debug("Exception on getReportResults - trying to cast strings to integers", e); //emailUtils.reportException(e); throw e; } - } ReportResponseWrapper newReportResponse = resp.getBody(); newReportResponse.getReportResponse().getReportWrapper().getReport().getCustomer().setReportItems(requestedItemList); - return newReportResponse; } diff --git a/src/main/java/eu/dnetlib/repo/manager/service/UserServiceImpl.java b/src/main/java/eu/dnetlib/repo/manager/service/UserServiceImpl.java index 32a5753..949fa8f 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/UserServiceImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/UserServiceImpl.java @@ -16,13 +16,13 @@ import java.util.stream.Collectors; @Service("userService") public class UserServiceImpl implements UserService { - private static final org.apache.log4j.Logger LOGGER = org.apache.log4j.Logger + private static final org.apache.log4j.Logger logger = org.apache.log4j.Logger .getLogger(UserServiceImpl.class); @Override public ResponseEntity login() { OIDCAuthenticationToken authentication = (OIDCAuthenticationToken) SecurityContextHolder.getContext().getAuthentication(); - LOGGER.debug("User authentication : " + authentication); + logger.debug("User authentication : " + authentication); Map body = new HashMap<>(); body.put("sub",authentication.getSub()); 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 e66d901..4d6ba1c 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/ValidatorServiceImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/ValidatorServiceImpl.java @@ -57,7 +57,7 @@ public class ValidatorServiceImpl implements ValidatorService { private Map> rulesetMap = new ConcurrentHashMap>(); - private static final Logger LOGGER = Logger.getLogger(ValidatorServiceImpl.class); + private static final Logger logger = Logger.getLogger(ValidatorServiceImpl.class); @Autowired private EmailUtils emailUtils; @@ -70,7 +70,7 @@ public class ValidatorServiceImpl implements ValidatorService { @PostConstruct private void loadRules(){ - LOGGER.debug("PostConstruct method! Load rules!"); + logger.debug("PostConstruct method! Load rules!"); try { for (RuleSet ruleSet : getValidationService().getRuleSets()) { if (ruleSet.getVisibility() != null && ruleSet.getVisibility().contains("development")) { @@ -123,7 +123,7 @@ public class ValidatorServiceImpl implements ValidatorService { ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////// } catch (ValidatorServiceException e) { - LOGGER.error(e); + logger.error(e); } } @@ -131,12 +131,12 @@ public class ValidatorServiceImpl implements ValidatorService { @Override @PreAuthorize("hasAuthority('REGISTERED_USER')") public JobForValidation submitJobForValidation(JobForValidation jobForValidation) throws ValidatorServiceException { - LOGGER.debug("Submit job for validation with id : " + jobForValidation.getDatasourceId()); + logger.debug("Submit job for validation with id : " + jobForValidation.getDatasourceId()); try { try { emailUtils.sendSubmitJobForValidationEmail(SecurityContextHolder.getContext().getAuthentication(), jobForValidation); } catch (Exception e) { - LOGGER.error("Error sending email ", e); + logger.error("Error sending email ", e); } ///////////////////////////////////////////////////////////////////////////////////////// // FIXME: this is a hack for CRIS Jan Dvorak Validator, should be implemented properly // @@ -153,7 +153,7 @@ public class ValidatorServiceImpl implements ValidatorService { // this.getValidationService().submitValidationJob(jobForValidation); } catch (Exception e) { // FIXME: replaced exception with log // throw new ValidatorServiceException(e); - LOGGER.error(e); + logger.error(e); } return jobForValidation; @@ -162,7 +162,7 @@ public class ValidatorServiceImpl implements ValidatorService { @Override public ResponseEntity reSubmitJobForValidation(String email, String jobId) throws JSONException, ValidatorServiceException { - LOGGER.debug("Resubmit validation job with id : " + jobId); + logger.debug("Resubmit validation job with id : " + jobId); StoredJob job = monitorApi.getJobSummary(jobId, "all"); Set contentRules = new HashSet(); Set usageRules = new HashSet(); @@ -197,20 +197,20 @@ public class ValidatorServiceImpl implements ValidatorService { @Override public List getRuleSets(String mode) { - LOGGER.info("Getting rulesets for mode: " + mode); + logger.info("Getting rulesets for mode: " + mode); return rulesetMap.get(mode); } @Override public List getSetsOfRepository(String url) { - LOGGER.debug("Getting sets of repository with url : " + url); + logger.debug("Getting sets of repository with url : " + url); List sets = null; try { sets = OaiTools.getSetsOfRepo(url); } catch (Exception e) { - LOGGER.error("Exception on getSetsOfRepository" , e); + logger.error("Exception on getSetsOfRepository" , e); } return sets; @@ -218,18 +218,18 @@ public class ValidatorServiceImpl implements ValidatorService { @Override public boolean identifyRepo(String url) { - LOGGER.debug("Identify repository with url : " + url); + logger.debug("Identify repository with url : " + url); try { return OaiTools.identifyRepository(url); } catch (Exception e) { - LOGGER.error("Error while identifying repository with url: " + url, e); + logger.error("Error while identifying repository with url: " + url, e); return false; } } @Override public RuleSet getRuleSet(String acronym) { - LOGGER.debug("Getting ruleset with acronym : " + acronym); + logger.debug("Getting ruleset with acronym : " + acronym); RuleSet ruleSet = null; try { for (List ruleSets : this.rulesetMap.values()) { @@ -241,7 +241,7 @@ public class ValidatorServiceImpl implements ValidatorService { } return ruleSet; } catch (Exception e) { - LOGGER.error("Error getting ruleset", e); + logger.error("Error getting ruleset", e); return null; } } @@ -280,7 +280,7 @@ public class ValidatorServiceImpl implements ValidatorService { @Override public InterfaceInformation getInterfaceInformation(String baseUrl) throws ValidationServiceException { try { - LOGGER.debug("Getting interface information with url: " + baseUrl); + logger.debug("Getting interface information with url: " + baseUrl); InterfaceInformation interfaceInformation = new InterfaceInformation(); interfaceInformation.setIdentified(this.identifyRepo(baseUrl)); if (interfaceInformation.isIdentified()) @@ -288,7 +288,7 @@ public class ValidatorServiceImpl implements ValidatorService { return interfaceInformation; } catch (Exception e) { - LOGGER.error("Error getting interface information with url: " + baseUrl, e); + logger.error("Error getting interface information with url: " + baseUrl, e); throw new ValidationServiceException("login.generalError", ValidationServiceException.ErrorCode.GENERAL_ERROR); } } diff --git a/src/main/java/eu/dnetlib/repo/manager/utils/Converter.java b/src/main/java/eu/dnetlib/repo/manager/utils/Converter.java index 43a0569..89d6338 100644 --- a/src/main/java/eu/dnetlib/repo/manager/utils/Converter.java +++ b/src/main/java/eu/dnetlib/repo/manager/utils/Converter.java @@ -21,7 +21,7 @@ import java.util.Objects; @Component public class Converter { - private static final Logger LOGGER = Logger.getLogger(Converter.class); + private static final Logger logger = Logger.getLogger(Converter.class); private final ObjectMapper objectMapper; @@ -93,8 +93,7 @@ public class Converter { } br.close(); } catch (Exception e) { - LOGGER.debug("Error opening file!"); - LOGGER.error(e); + logger.error("Error opening file!", e); } return list; // It may be empty. } diff --git a/src/main/java/eu/dnetlib/repo/manager/utils/OaiTools.java b/src/main/java/eu/dnetlib/repo/manager/utils/OaiTools.java index 33b8231..774cc71 100644 --- a/src/main/java/eu/dnetlib/repo/manager/utils/OaiTools.java +++ b/src/main/java/eu/dnetlib/repo/manager/utils/OaiTools.java @@ -24,11 +24,11 @@ public class OaiTools { disableSslVerification(); } - private static Logger LOGGER = Logger.getLogger(OaiTools.class); + private static Logger logger = Logger.getLogger(OaiTools.class); public static List getSetsOfRepo(String baseUrl) throws Exception { try { - LOGGER.debug("Getting sets of repository " + baseUrl); + logger.debug("Getting sets of repository " + baseUrl); OaiPmhServer harvester = new OaiPmhServer(baseUrl); SetsList setList = harvester.listSets(); ResumptionToken token = setList.getResumptionToken(); @@ -48,14 +48,14 @@ public class OaiTools { return ret; } catch (Exception e) { - LOGGER.error("Error getting sets of repository " + baseUrl, e); + logger.error("Error getting sets of repository " + baseUrl, e); return new ArrayList(); //throw e; } } public static boolean identifyRepository(String baseUrl) throws Exception { - LOGGER.debug("sending identify request to repo " + baseUrl); + logger.debug("sending identify request to repo " + baseUrl); OaiPmhServer harvester = new OaiPmhServer(baseUrl); @@ -70,7 +70,7 @@ public class OaiTools { return verifyIdentify(d); } catch (Exception e) { - LOGGER.debug("Error verifying identify response", e); + logger.debug("Error verifying identify response", e); throw e; } } @@ -111,7 +111,7 @@ public class OaiTools { private static void disableSslVerification() { try { - LOGGER.debug("disabling ssl verification"); + logger.debug("disabling ssl verification"); // Create a trust manager that does not validate certificate chains TrustManager[] trustAllCerts = new TrustManager[] {new X509TrustManager() { public X509Certificate[] getAcceptedIssuers() { @@ -139,9 +139,9 @@ public class OaiTools { // Install the all-trusting host verifier HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid); } catch (NoSuchAlgorithmException e) { - LOGGER.error("disabling ssl verification", e); + logger.error("disabling ssl verification", e); } catch (KeyManagementException e) { - LOGGER.error("error while disabling ssl verification", e); + logger.error("error while disabling ssl verification", e); } } } From a40c1b3e44aeaa86c8fb2a41412ca01e343292b4 Mon Sep 17 00:00:00 2001 From: LSmyrnaios Date: Wed, 14 Dec 2022 17:08:11 +0200 Subject: [PATCH 3/4] - Move all the Aggregation-related code from "RepositoryService" into the new "AggregationService". - Add info about the thrown exceptions. --- installAndRun.sh | 2 +- .../controllers/DashboardController.java | 12 +-- .../controllers/RepositoryController.java | 11 ++- .../manager/service/AggregationService.java | 16 ++++ .../service/AggregationServiceImpl.java | 92 +++++++++++++++++++ .../manager/service/DashboardServiceImpl.java | 6 +- .../manager/service/RepositoryService.java | 7 -- .../service/RepositoryServiceImpl.java | 51 ---------- 8 files changed, 127 insertions(+), 70 deletions(-) create mode 100644 src/main/java/eu/dnetlib/repo/manager/service/AggregationService.java create mode 100644 src/main/java/eu/dnetlib/repo/manager/service/AggregationServiceImpl.java diff --git a/installAndRun.sh b/installAndRun.sh index f45fc0a..5054ef9 100755 --- a/installAndRun.sh +++ b/installAndRun.sh @@ -1,7 +1,7 @@ # This script can create the local "dnet-repository" and copy the "settings-dnet.xml" file there. # It also builds the project, using the aforementioned settings file. # Then it can run the project locally. -# By giving different options, the user can either install and run locally, just install or just run the project. +# By giving different options, the user can either install and run locally, just install (arg: 2) or just run (arg: 1) the project. # For error-handling, we cannot use the "set -e" since: it has problems https://mywiki.wooledge.org/BashFAQ/105 diff --git a/src/main/java/eu/dnetlib/repo/manager/controllers/DashboardController.java b/src/main/java/eu/dnetlib/repo/manager/controllers/DashboardController.java index 368ba14..6db457d 100644 --- a/src/main/java/eu/dnetlib/repo/manager/controllers/DashboardController.java +++ b/src/main/java/eu/dnetlib/repo/manager/controllers/DashboardController.java @@ -7,10 +7,7 @@ import eu.dnetlib.repo.manager.domain.RepositorySummaryInfo; import eu.dnetlib.repo.manager.domain.UsageSummary; import eu.dnetlib.repo.manager.exception.BrokerException; import eu.dnetlib.repo.manager.exception.RepositoryServiceException; -import eu.dnetlib.repo.manager.service.BrokerService; -import eu.dnetlib.repo.manager.service.DashboardService; -import eu.dnetlib.repo.manager.service.PiWikService; -import eu.dnetlib.repo.manager.service.RepositoryService; +import eu.dnetlib.repo.manager.service.*; import io.swagger.annotations.Api; import org.json.JSONException; import org.mitre.openid.connect.model.OIDCAuthenticationToken; @@ -33,6 +30,9 @@ public class DashboardController { @Autowired private RepositoryService repositoryService; + @Autowired + private AggregationService aggregationService; + @Autowired private BrokerService brokerService; @@ -57,12 +57,12 @@ public class DashboardController { @PathVariable("repoId") String repoId, @RequestParam(name = "size", required = false, defaultValue = "20") int size) throws JSONException { - List aggregationInfo = repositoryService.getRepositoryAggregations(repoId, 0, size); + List aggregationInfo = aggregationService.getRepositoryAggregations(repoId, 0, size); CollectionMonitorSummary collectionMonitorSummary = new CollectionMonitorSummary(); collectionMonitorSummary.setAggregationInfo(aggregationInfo); size = 0; do { - aggregationInfo = repositoryService.getRepositoryAggregations(repoId, size, size + 50); + aggregationInfo = aggregationService.getRepositoryAggregations(repoId, size, size + 50); for (AggregationInfo aggregationDetail : aggregationInfo) { if (aggregationDetail.isIndexedVersion()) { collectionMonitorSummary.setLastIndexedVersion(aggregationDetail); diff --git a/src/main/java/eu/dnetlib/repo/manager/controllers/RepositoryController.java b/src/main/java/eu/dnetlib/repo/manager/controllers/RepositoryController.java index 9e4690e..1a26f4c 100644 --- a/src/main/java/eu/dnetlib/repo/manager/controllers/RepositoryController.java +++ b/src/main/java/eu/dnetlib/repo/manager/controllers/RepositoryController.java @@ -6,6 +6,7 @@ import eu.dnetlib.repo.manager.domain.dto.RepositoryTerms; import eu.dnetlib.repo.manager.domain.dto.User; import eu.dnetlib.repo.manager.exception.RepositoryServiceException; import eu.dnetlib.repo.manager.exception.ResourceNotFoundException; +import eu.dnetlib.repo.manager.service.AggregationService; import eu.dnetlib.repo.manager.service.RepositoryService; import eu.dnetlib.repo.manager.service.security.AuthorizationService; import eu.dnetlib.repo.manager.utils.JsonUtils; @@ -37,12 +38,16 @@ public class RepositoryController { private static final Logger logger = Logger.getLogger(RepositoryController.class); private final RepositoryService repositoryService; + + private final AggregationService aggregationService; + private final AuthorizationService authorizationService; @Autowired RepositoryController(RepositoryService repositoryService, - AuthorizationService authorizationService) { + AggregationService aggregationService, AuthorizationService authorizationService) { this.repositoryService = repositoryService; + this.aggregationService = aggregationService; this.authorizationService = authorizationService; } @@ -121,14 +126,14 @@ public class RepositoryController { produces = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public List getRepositoryAggregations(@PathVariable("id") String id) throws JSONException { - return repositoryService.getRepositoryAggregations(id, 0, 20); + return aggregationService.getRepositoryAggregations(id, 0, 20); } @RequestMapping(value = "/getRepositoryAggregationsByYear/{id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public Map> getRepositoryAggregationsByYear(@PathVariable("id") String id) throws JSONException { - return repositoryService.getRepositoryAggregationsByYear(id); + return aggregationService.getRepositoryAggregationsByYear(id); } @RequestMapping(value = "/getRepositoriesByName/{name:.+}/{page}/{size}/", method = RequestMethod.GET, diff --git a/src/main/java/eu/dnetlib/repo/manager/service/AggregationService.java b/src/main/java/eu/dnetlib/repo/manager/service/AggregationService.java new file mode 100644 index 0000000..b91b972 --- /dev/null +++ b/src/main/java/eu/dnetlib/repo/manager/service/AggregationService.java @@ -0,0 +1,16 @@ +package eu.dnetlib.repo.manager.service; + +import eu.dnetlib.enabling.datasources.common.AggregationInfo; + +import java.util.List; +import java.util.Map; + +public interface AggregationService { + + List getRepositoryAggregations(String id); + + List getRepositoryAggregations(String id, int from, int size); + + Map> getRepositoryAggregationsByYear(String id); + +} diff --git a/src/main/java/eu/dnetlib/repo/manager/service/AggregationServiceImpl.java b/src/main/java/eu/dnetlib/repo/manager/service/AggregationServiceImpl.java new file mode 100644 index 0000000..d79e758 --- /dev/null +++ b/src/main/java/eu/dnetlib/repo/manager/service/AggregationServiceImpl.java @@ -0,0 +1,92 @@ +package eu.dnetlib.repo.manager.service; + +import com.fasterxml.jackson.databind.ObjectMapper; +import eu.dnetlib.enabling.datasources.common.AggregationInfo; +import eu.dnetlib.repo.manager.domain.AggregationHistoryResponse; +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestClientException; +import org.springframework.web.client.RestTemplate; +import org.springframework.web.util.UriComponents; +import org.springframework.web.util.UriComponentsBuilder; + +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import static eu.dnetlib.repo.manager.utils.DateUtils.getYear; + +@Service("aggregationService") +public class AggregationServiceImpl implements AggregationService { + + private static final Logger logger = Logger.getLogger(AggregationServiceImpl.class); + + + @Value("${services.provide.clients.dsm}") + private String baseAddress; + + private final RestTemplate restTemplate; + + private final ObjectMapper objectMapper; + + + public AggregationServiceImpl(RestTemplate restTemplate, ObjectMapper objectMapper) { + this.restTemplate = restTemplate; + this.objectMapper = objectMapper; + } + + + @Override + public List getRepositoryAggregations(String id) throws RestClientException { + + logger.debug("Retrieving aggregations for repository with id : " + id); + UriComponents uriComponents = getAggregationHistory(id); + + AggregationHistoryResponse rs = restTemplate.getForObject(uriComponents.toUri(), AggregationHistoryResponse.class); + + return rs != null ? rs.getAggregationInfo() : null; + } + + + @Override + public List getRepositoryAggregations(String id, int from, int size) throws RestClientException { + + List res = getRepositoryAggregations(id); + return (res != null) ? res.subList(from, Math.min(from + size, res.size())) : null; + } + + + @Override + public Map> getRepositoryAggregationsByYear(String id) throws RestClientException { + logger.debug("Retrieving aggregations (by year) for repository with id : " + id); + List aggregationHistory = getRepositoryAggregations(id); + if ( aggregationHistory != null ) { + Map> aggregationByYear = new HashMap<>(); + return aggregationHistory.size() == 0 ? aggregationByYear : createYearMap(aggregationHistory); + } else + return null; + } + + + private UriComponents getAggregationHistory(String repoId) { + return UriComponentsBuilder + .fromHttpUrl(baseAddress + "/ds/aggregationhistory/") + .path(repoId) + .build().expand(repoId).encode(); + } + + + private Map> createYearMap(List aggregationHistory) { + + aggregationHistory = aggregationHistory.stream() + .sorted(Comparator.comparing(AggregationInfo::getDate).reversed()) + .collect(Collectors.toList()); + + return aggregationHistory.stream() + .collect(Collectors.groupingBy(item -> getYear(item.getDate()))); + } + +} diff --git a/src/main/java/eu/dnetlib/repo/manager/service/DashboardServiceImpl.java b/src/main/java/eu/dnetlib/repo/manager/service/DashboardServiceImpl.java index 996310b..cda2516 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/DashboardServiceImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/DashboardServiceImpl.java @@ -23,6 +23,9 @@ public class DashboardServiceImpl implements DashboardService { @Autowired private RepositoryService repositoryService; + @Autowired + private AggregationService aggregationService; + @Autowired private BrokerService brokerService; @@ -43,7 +46,7 @@ public class DashboardServiceImpl implements DashboardService { //TODO getRepositoryAggregations returns only the 20 more recent items. Is it positive that we will find an indexed version there? long start = System.currentTimeMillis(); - List aggregationInfoList = repositoryService.getRepositoryAggregations(repository.getId(), 0, 20); + List aggregationInfoList = aggregationService.getRepositoryAggregations(repository.getId(), 0, 20); for (AggregationInfo aggregationInfo : aggregationInfoList) { if (aggregationInfo.isIndexedVersion()) { repositorySummaryInfo.setRecordsCollected(aggregationInfo.getNumberOfRecords()); @@ -68,7 +71,6 @@ public class DashboardServiceImpl implements DashboardService { for (BrowseEntry browseEntry : events) totalEvents += browseEntry.getSize(); repositorySummaryInfo.setEnrichmentEvents(totalEvents); - } catch (BrokerException e) { logger.error("Exception getting broker events for repository: " + repository.getId(), e); } diff --git a/src/main/java/eu/dnetlib/repo/manager/service/RepositoryService.java b/src/main/java/eu/dnetlib/repo/manager/service/RepositoryService.java index cdefd89..519f885 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/RepositoryService.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/RepositoryService.java @@ -1,6 +1,5 @@ package eu.dnetlib.repo.manager.service; -import eu.dnetlib.enabling.datasources.common.AggregationInfo; import eu.dnetlib.repo.manager.domain.*; import eu.dnetlib.repo.manager.exception.RepositoryServiceException; import eu.dnetlib.repo.manager.exception.ResourceNotFoundException; @@ -43,12 +42,6 @@ public interface RepositoryService { Repository getRepositoryById(String id) throws JSONException, ResourceNotFoundException; - List getRepositoryAggregations(String id) throws JSONException; - - List getRepositoryAggregations(String id, int from, int size) throws JSONException; - - Map> getRepositoryAggregationsByYear(String id) throws JSONException; - List getRepositoriesByName(String name, String page, String size) throws JSONException; 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 ee5097e..0fd592f 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/RepositoryServiceImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/RepositoryServiceImpl.java @@ -7,7 +7,6 @@ import com.google.gson.JsonObject; import eu.dnetlib.api.functionality.ValidatorServiceException; import eu.dnetlib.domain.enabling.Vocabulary; import eu.dnetlib.domain.functionality.validator.JobForValidation; -import eu.dnetlib.enabling.datasources.common.AggregationInfo; import eu.dnetlib.repo.manager.domain.*; import eu.dnetlib.repo.manager.domain.dto.Role; import eu.dnetlib.repo.manager.domain.dto.User; @@ -46,9 +45,6 @@ import java.io.IOException; import java.sql.Timestamp; import java.util.*; import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; - -import static eu.dnetlib.repo.manager.utils.DateUtils.getYear; @Service("repositoryService") public class RepositoryServiceImpl implements RepositoryService { @@ -409,47 +405,6 @@ public class RepositoryServiceImpl implements RepositoryService { } - @Override - public List getRepositoryAggregations(String id) { - - LOGGER.debug("Retrieving aggregations for repository with id : " + id); - UriComponents uriComponents = getAggregationHistory(id); - - AggregationHistoryResponse rs = restTemplate.getForObject(uriComponents.toUri(), AggregationHistoryResponse.class); - - return rs != null ? rs.getAggregationInfo() : null; - } - - @Override - public List getRepositoryAggregations(String id, int from, int size) { - - List res = getRepositoryAggregations(id); - return (res != null) ? res.subList(from, Math.min(from + size, res.size())) : null; - } - - @Override - public Map> getRepositoryAggregationsByYear(String id) { - LOGGER.debug("Retrieving aggregations (by year) for repository with id : " + id); - - List aggregationHistory = getRepositoryAggregations(id); - if ( aggregationHistory != null ) { - Map> aggregationByYear = new HashMap<>(); - return aggregationHistory.size() == 0 ? aggregationByYear : createYearMap(aggregationHistory); - } else - return null; - } - - private Map> createYearMap(List aggregationHistory) { - - aggregationHistory = aggregationHistory.stream() - .sorted(Comparator.comparing(AggregationInfo::getDate).reversed()) - .collect(Collectors.toList()); - - return aggregationHistory.stream() - .collect(Collectors.groupingBy(item -> getYear(item.getDate()))); - } - - @Override public List getRepositoriesByName(String name, String page, @@ -1023,12 +978,6 @@ public class RepositoryServiceImpl implements RepositoryService { return null; } - private UriComponents getAggregationHistory(String repoId) { - return UriComponentsBuilder - .fromHttpUrl(baseAddress + "/ds/aggregationhistory/") - .path(repoId) - .build().expand(repoId).encode(); - } private UriComponents searchDatasource(String page, String size) { From 63c9caaf96560a6952d37686c345de1d3ba143b2 Mon Sep 17 00:00:00 2001 From: LSmyrnaios Date: Wed, 14 Dec 2022 17:12:27 +0200 Subject: [PATCH 4/4] Improve performance of "AggregationServiceImpl.createYearMap()". --- .../dnetlib/repo/manager/service/AggregationServiceImpl.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main/java/eu/dnetlib/repo/manager/service/AggregationServiceImpl.java b/src/main/java/eu/dnetlib/repo/manager/service/AggregationServiceImpl.java index d79e758..2325738 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/AggregationServiceImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/AggregationServiceImpl.java @@ -81,11 +81,8 @@ public class AggregationServiceImpl implements AggregationService { private Map> createYearMap(List aggregationHistory) { - aggregationHistory = aggregationHistory.stream() - .sorted(Comparator.comparing(AggregationInfo::getDate).reversed()) - .collect(Collectors.toList()); - return aggregationHistory.stream() + .sorted(Comparator.comparing(AggregationInfo::getDate).reversed()) .collect(Collectors.groupingBy(item -> getYear(item.getDate()))); }