From 36aa53273ec7a784d0c7e26f52f4dabed3a4c400 Mon Sep 17 00:00:00 2001 From: spyroukon Date: Wed, 3 Aug 2022 15:08:42 +0000 Subject: [PATCH] refactoring --- pom.xml | 50 +-- .../manager/config/AsyncConfiguration.java | 3 +- .../dnetlib/repo/manager/config/Config.java | 11 +- .../config/OpenAIREAuthoritiesMapper.java | 6 +- .../manager/config/RedisConfiguration.java | 14 +- .../repo/manager/config/SwaggerConfig.java | 14 +- .../manager/controllers/BrokerController.java | 2 +- .../controllers/DashboardController.java | 34 +- .../controllers/GenericControllerAdvice.java | 14 +- .../manager/controllers/PiWikController.java | 2 +- .../controllers/RepositoryController.java | 11 +- .../controllers/ValidatorController.java | 2 +- .../manager/domain/DatasourceDetails.java | 10 - .../repo/manager/domain/Repository.java | 309 +----------------- .../manager/domain/RepositorySnippet.java | 2 - .../BrokerException.java | 2 +- .../RepositoryServiceException.java | 2 +- .../UserAccessException.java | 2 +- .../ValidationServiceException.java | 2 +- .../repo/manager/service/BrokerService.java | 2 +- .../manager/service/BrokerServiceImpl.java | 2 +- .../manager/service/DashboardServiceImpl.java | 2 + .../repo/manager/service/EmailUtilsImpl.java | 136 ++++---- .../repo/manager/service/PiWikService.java | 2 +- .../manager/service/PiWikServiceImpl.java | 2 +- .../manager/service/RepositoryService.java | 2 +- .../service/RepositoryServiceImpl.java | 107 +++--- .../manager/service/ValidatorService.java | 2 +- .../manager/service/ValidatorServiceImpl.java | 2 +- 29 files changed, 229 insertions(+), 522 deletions(-) rename src/main/java/eu/dnetlib/repo/manager/{domain => exception}/BrokerException.java (77%) rename src/main/java/eu/dnetlib/repo/manager/{domain => exception}/RepositoryServiceException.java (96%) rename src/main/java/eu/dnetlib/repo/manager/{domain => exception}/UserAccessException.java (96%) rename src/main/java/eu/dnetlib/repo/manager/{domain => exception}/ValidationServiceException.java (95%) diff --git a/pom.xml b/pom.xml index 1225f8f..e30cd3e 100644 --- a/pom.xml +++ b/pom.xml @@ -137,21 +137,21 @@ - - eu.dnetlib - uoa-domain - [2.0.0-SNAPSHOT, 3.0.0) - - - cglib - cglib - - - log4j - log4j - - - + + + + + + + + + + + + + + + eu.dnetlib dnet-openaire-usage-stats-sushilite @@ -291,7 +291,7 @@ org.springframework.session spring-session-data-redis - + - - -org.apache.commons -commons-pool2 - + ${jedis.version} + + + + org.apache.commons + commons-pool2 + com.google.code.gson gson @@ -327,8 +327,8 @@ com.netflix.hystrix hystrix-core 1.5.18 - - + dataSourceClass.putIfAbsent("journal", Collections.singletonList("pubsrepository::journal")); + } else if (key.contains("pubsrepository")) { // do not change order <-- dataSourceClass.putIfAbsent("opendoar", new ArrayList<>()); dataSourceClass.get("opendoar").add(key); } else if (key.contains("datarepository")) { dataSourceClass.putIfAbsent("re3data", Collections.singletonList("datarepository::unknown")); - } else if (key.contains("crissystem")) { -// dataSourceClass.putIfAbsent("cris", new ArrayList<>()); - dataSourceClass.putIfAbsent("dris", new ArrayList<>()); - dataSourceClass.get("dris").add(key); - } - } - - for (String key : this.getVocabulary("dnet:eosc_datasource_types").getAsMap().keySet()) { - if (key.contains("Aggregator")) { - dataSourceClass.putIfAbsent("aggregator", new ArrayList<>()); - dataSourceClass.get("aggregator").add(key); - } else if (key.contains("CRIS system")) { - dataSourceClass.putIfAbsent("cris", new ArrayList<>()); - dataSourceClass.get("cris").add(key); - } else if (key.contains("Journal archive")) { - dataSourceClass.putIfAbsent("journal", new ArrayList<>()); - dataSourceClass.get("journal").add(key); - } else if (key.contains("Repository")) { - dataSourceClass.putIfAbsent("repository", new ArrayList<>()); - dataSourceClass.get("repository").add(key); } } @@ -321,15 +311,8 @@ public class RepositoryServiceImpl implements RepositoryService { } private Repository updateRepositoryInfo(Repository r) throws JSONException { - - /* - * from datasource class - * we get the datasource type form the inverted map - * */ - r.setDatasourceType(getRepositoryType(r.getEoscDatasourceType())); r.setInterfaces(this.getRepositoryInterface(r.getId())); r.setPiwikInfo(piWikService.getPiwikSiteForRepo(r.getId())); -// r.setCountryName(getCountryName(r.getCountryCode())); return r; } @@ -350,14 +333,26 @@ public class RepositoryServiceImpl implements RepositoryService { @Override public List getRepositoriesSnippetsOfUser(String page, String size) throws Exception { - Collection repoIds = roleMappingService.getRepoIdsByRoleIds(authorizationService.getUserRoles()); - return getRepositoriesSnippets(new ArrayList<>(repoIds)); + return getRepositoriesSnippetsOfUser(null, page, size); } @Override public List getRepositoriesSnippetsOfUser(String userEmail, String page, String size) throws Exception { - Collection repoIds = roleMappingService.getRepoIdsByRoleIds(authorizationService.getUserRoles(userEmail)); - return getRepositoriesSnippets(new ArrayList<>(repoIds)); + int from = Integer.parseInt(page) * Integer.parseInt(size); + int to = from + Integer.parseInt(size); + List repoIds = new ArrayList<>(); + if (userEmail != null && !"".equals(userEmail)) { + repoIds.addAll(roleMappingService.getRepoIdsByRoleIds(authorizationService.getUserRoles(userEmail))); + } else { + repoIds.addAll(roleMappingService.getRepoIdsByRoleIds(authorizationService.getUserRoles())); + } + + if (repoIds.size() < from) { + return Collections.emptyList(); + } else if (repoIds.size() < to) { + to = repoIds.size(); + } + return getRepositoriesSnippets(repoIds.subList(from, to)); // FIXME: returns less results if some repos are not found } @Override @@ -486,26 +481,37 @@ public class RepositoryServiceImpl implements RepositoryService { LOGGER.debug("storing " + datatype + " repository with id: " + repository.getId()); -// repository.setCountryCode(countriesMap.get(repository.getCountryName())); repository.setActivationId(UUID.randomUUID().toString()); - repository.setCollectedFrom("infrastruct_::openaire"); + repository.setCollectedfrom("infrastruct_::openaire"); + +// Date now = new Date(); +// repository.setRegistrationdate(now); +// repository.setConsentTermsOfUseDate(now); +// repository.setLastConsentTermsOfUseDate(now); if (datatype.equals("journal")) { + repository.setEoscDatasourceType("Journal archive"); repository.setId("openaire____::issn" + repository.getIssn()); - repository.setNamespacePrefix("issn" + repository.getIssn()); + repository.setNamespaceprefix("issn" + repository.getIssn()); this.storeRepository(repository, SecurityContextHolder.getContext().getAuthentication()); } else if (datatype.equals("aggregator")) { - repository.setId("openaire____::" + DigestUtils.md5Hex(repository.getOfficialName())); - repository.setNamespacePrefix(DigestUtils.md5Hex(repository.getOfficialName()).substring(0, 12)); + repository.setEoscDatasourceType("Aggregator"); + repository.setId("openaire____::" + DigestUtils.md5Hex(repository.getOfficialname())); + repository.setNamespaceprefix(DigestUtils.md5Hex(repository.getOfficialname()).substring(0, 12)); this.storeRepository(repository, SecurityContextHolder.getContext().getAuthentication()); } else { + if (repository.getTypology().contains("crissystem")) { + repository.setEoscDatasourceType("CRIS system"); + } else { + repository.setEoscDatasourceType("Repository"); + } this.latentUpdate(repository, SecurityContextHolder.getContext().getAuthentication()); } // TODO: move the following code elsewhere (creation and assignment of role to user) ?? // Create new role String newRoleName = roleMappingService.getRoleIdByRepoId(repository.getId()); - Role newRole = new Role(newRoleName, repository.getOfficialName()); + Role newRole = new Role(newRoleName, repository.getOfficialname()); Integer couId = null; try { couId = registryCalls.createRole(newRole); @@ -598,7 +604,7 @@ public class RepositoryServiceImpl implements RepositoryService { Date utilDate = new Date(); Timestamp date = new Timestamp(utilDate.getTime()); - repository.setDateOfCollection(date); + repository.setDateofcollection(date); repository.setAggregator("OPENAIRE"); // repository.setCountryCode(countriesMap.get(repository.getCountryName())); @@ -698,8 +704,8 @@ public class RepositoryServiceImpl implements RepositoryService { job.setDatasourceId(repo.getId()); job.setDesiredCompatibilityLevel(iFace.getCompatibilityOverride()); job.setInterfaceId(iFace.getId()); - job.setOfficialName(repo.getOfficialName()); - job.setRepoType(repo.getDatasourceType()); + job.setOfficialName(repo.getOfficialname()); + job.setRepoType(repo.getEoscDatasourceType()); job.setUserEmail(userEmail); job.setValidationSet((iFace.getAccessSet().isEmpty() ? "none" : iFace.getAccessSet())); job.setRecords(-1); @@ -845,6 +851,12 @@ public class RepositoryServiceImpl implements RepositoryService { if (entry.getKey().contains("crissystem")) retMap.put(entry.getKey(), entry.getValue()); } + if (mode.equalsIgnoreCase("fairsharing")) { + retMap.put(entry.getKey(), entry.getValue()); + } + } + if (mode.equals("fairsharing")) { + return retMap; } return filterResults(retMap, mode); @@ -853,11 +865,14 @@ public class RepositoryServiceImpl implements RepositoryService { private Map filterResults(Map map, String mode) { HashMap filteredMap = new HashMap<>(); - for (String key : map.keySet()) - if (dataSourceClass.get(mode).contains(key)) - filteredMap.put(key, map.get(key)); + if (map != null && mode != null) { + for (String key : map.keySet()) + if (dataSourceClass.get(mode).contains(key)) + filteredMap.put(key, map.get(key)); - return filteredMap; + return filteredMap; + } + return Collections.emptyMap(); } @Override diff --git a/src/main/java/eu/dnetlib/repo/manager/service/ValidatorService.java b/src/main/java/eu/dnetlib/repo/manager/service/ValidatorService.java index 5b6c93f..5541e1e 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/ValidatorService.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/ValidatorService.java @@ -5,7 +5,7 @@ import eu.dnetlib.domain.functionality.validator.JobForValidation; import eu.dnetlib.domain.functionality.validator.RuleSet; import eu.dnetlib.domain.functionality.validator.StoredJob; import eu.dnetlib.repo.manager.domain.InterfaceInformation; -import eu.dnetlib.repo.manager.domain.ValidationServiceException; +import eu.dnetlib.repo.manager.exception.ValidationServiceException; import eu.dnetlib.repo.manager.exception.ResourceNotFoundException; import org.json.JSONException; import org.springframework.http.ResponseEntity; 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 b07a7b7..b9741e9 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/ValidatorServiceImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/ValidatorServiceImpl.java @@ -5,7 +5,7 @@ import eu.dnetlib.repo.manager.domain.RepositoryInterface; import eu.dnetlib.domain.functionality.validator.*; import eu.dnetlib.repo.manager.domain.Constants; import eu.dnetlib.repo.manager.domain.InterfaceInformation; -import eu.dnetlib.repo.manager.domain.ValidationServiceException; +import eu.dnetlib.repo.manager.exception.ValidationServiceException; import eu.dnetlib.repo.manager.utils.CrisValidatorUtils; import eu.dnetlib.repo.manager.utils.OaiTools; import gr.uoa.di.driver.util.ServiceLocator;