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;