replaced AggregationDetails with AggregationInfo class
This commit is contained in:
parent
a792fd34c1
commit
b3758da868
31
pom.xml
31
pom.xml
|
@ -74,6 +74,13 @@
|
||||||
<version>3.0.0</version>
|
<version>3.0.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>eu.dnetlib.dhp</groupId>
|
||||||
|
<artifactId>dnet-exporter-api</artifactId>
|
||||||
|
<version>[3.3.3-SNAPSHOT, )</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>eu.dnetlib</groupId>
|
<groupId>eu.dnetlib</groupId>
|
||||||
<artifactId>uoa-clients</artifactId>
|
<artifactId>uoa-clients</artifactId>
|
||||||
|
@ -509,30 +516,6 @@
|
||||||
<enabled>false</enabled>
|
<enabled>false</enabled>
|
||||||
</releases>
|
</releases>
|
||||||
</repository>
|
</repository>
|
||||||
<repository>
|
|
||||||
<id>dnet45-bootstrap-snapshot</id>
|
|
||||||
<name>D-Net 45 Bootstrap Snapshot</name>
|
|
||||||
<url>https://maven.research-infrastructures.eu/nexus/content/repositories/dnet45-bootstrap-snapshot</url>
|
|
||||||
<releases>
|
|
||||||
<enabled>false</enabled>
|
|
||||||
</releases>
|
|
||||||
<snapshots>
|
|
||||||
<enabled>true</enabled>
|
|
||||||
</snapshots>
|
|
||||||
<layout>default</layout>
|
|
||||||
</repository>
|
|
||||||
<repository>
|
|
||||||
<id>dnet45-bootstrap-release</id>
|
|
||||||
<name>D-Net 45 Bootstrap Release</name>
|
|
||||||
<url>https://maven.research-infrastructures.eu/nexus/content/repositories/dnet45-bootstrap-release</url>
|
|
||||||
<releases>
|
|
||||||
<enabled>true</enabled>
|
|
||||||
</releases>
|
|
||||||
<snapshots>
|
|
||||||
<enabled>false</enabled>
|
|
||||||
</snapshots>
|
|
||||||
<layout>default</layout>
|
|
||||||
</repository>
|
|
||||||
</repositories>
|
</repositories>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package eu.dnetlib.repo.manager.controllers;
|
package eu.dnetlib.repo.manager.controllers;
|
||||||
|
|
||||||
|
import eu.dnetlib.enabling.datasources.common.AggregationInfo;
|
||||||
import eu.dnetlib.repo.manager.domain.*;
|
import eu.dnetlib.repo.manager.domain.*;
|
||||||
import eu.dnetlib.repo.manager.exception.BrokerException;
|
import eu.dnetlib.repo.manager.exception.BrokerException;
|
||||||
import eu.dnetlib.repo.manager.exception.RepositoryServiceException;
|
import eu.dnetlib.repo.manager.exception.RepositoryServiceException;
|
||||||
|
@ -53,14 +54,14 @@ public class DashboardController {
|
||||||
@PathVariable("repoId") String repoId,
|
@PathVariable("repoId") String repoId,
|
||||||
@RequestParam(name = "size", required = false, defaultValue = "20") int size) throws JSONException {
|
@RequestParam(name = "size", required = false, defaultValue = "20") int size) throws JSONException {
|
||||||
|
|
||||||
List<AggregationDetails> aggregationDetails = repositoryService.getRepositoryAggregations(repoId, 0, size);
|
List<AggregationInfo> aggregationDetails = repositoryService.getRepositoryAggregations(repoId, 0, size);
|
||||||
CollectionMonitorSummary collectionMonitorSummary = new CollectionMonitorSummary();
|
CollectionMonitorSummary collectionMonitorSummary = new CollectionMonitorSummary();
|
||||||
collectionMonitorSummary.setAggregationDetails(aggregationDetails);
|
collectionMonitorSummary.setAggregationDetails(aggregationDetails);
|
||||||
size = 0;
|
size = 0;
|
||||||
do {
|
do {
|
||||||
aggregationDetails = repositoryService.getRepositoryAggregations(repoId, size, size + 50);
|
aggregationDetails = repositoryService.getRepositoryAggregations(repoId, size, size + 50);
|
||||||
for (AggregationDetails aggregationDetail : aggregationDetails) {
|
for (AggregationInfo aggregationDetail : aggregationDetails) {
|
||||||
if (aggregationDetail.getIndexedVersion()) {
|
if (aggregationDetail.isIndexedVersion()) {
|
||||||
collectionMonitorSummary.setLastIndexedVersion(aggregationDetail);
|
collectionMonitorSummary.setLastIndexedVersion(aggregationDetail);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package eu.dnetlib.repo.manager.controllers;
|
package eu.dnetlib.repo.manager.controllers;
|
||||||
|
|
||||||
|
import eu.dnetlib.enabling.datasources.common.AggregationInfo;
|
||||||
import eu.dnetlib.repo.manager.domain.Repository;
|
import eu.dnetlib.repo.manager.domain.Repository;
|
||||||
import eu.dnetlib.repo.manager.domain.RepositoryInterface;
|
import eu.dnetlib.repo.manager.domain.RepositoryInterface;
|
||||||
import eu.dnetlib.repo.manager.domain.*;
|
import eu.dnetlib.repo.manager.domain.*;
|
||||||
|
@ -121,14 +122,14 @@ public class RepositoryController {
|
||||||
@RequestMapping(value = "/getRepositoryAggregations/{id}", method = RequestMethod.GET,
|
@RequestMapping(value = "/getRepositoryAggregations/{id}", method = RequestMethod.GET,
|
||||||
produces = MediaType.APPLICATION_JSON_VALUE)
|
produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public List<AggregationDetails> getRepositoryAggregations(@PathVariable("id") String id) throws JSONException {
|
public List<AggregationInfo> getRepositoryAggregations(@PathVariable("id") String id) throws JSONException {
|
||||||
return repositoryService.getRepositoryAggregations(id, 0, 20);
|
return repositoryService.getRepositoryAggregations(id, 0, 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping(value = "/getRepositoryAggregationsByYear/{id}", method = RequestMethod.GET,
|
@RequestMapping(value = "/getRepositoryAggregationsByYear/{id}", method = RequestMethod.GET,
|
||||||
produces = MediaType.APPLICATION_JSON_VALUE)
|
produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public Map<String, List<AggregationDetails>> getRepositoryAggregationsByYear(@PathVariable("id") String id) throws JSONException {
|
public Map<String, List<AggregationInfo>> getRepositoryAggregationsByYear(@PathVariable("id") String id) throws JSONException {
|
||||||
return repositoryService.getRepositoryAggregationsByYear(id);
|
return repositoryService.getRepositoryAggregationsByYear(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
package eu.dnetlib.repo.manager.domain;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
||||||
|
import eu.dnetlib.enabling.datasources.common.AggregationInfo;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@JsonAutoDetect
|
||||||
|
public class AggregationHistoryResponse extends Response {
|
||||||
|
|
||||||
|
private List<AggregationInfo> aggregationInfo;
|
||||||
|
|
||||||
|
public AggregationHistoryResponse() {
|
||||||
|
// no-arg constructor
|
||||||
|
}
|
||||||
|
|
||||||
|
public AggregationHistoryResponse(final List<AggregationInfo> aggregationInfo) {
|
||||||
|
super();
|
||||||
|
this.aggregationInfo = aggregationInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<AggregationInfo> getAggregationInfo() {
|
||||||
|
return aggregationInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAggregationInfo(final List<AggregationInfo> aggregationInfo) {
|
||||||
|
this.aggregationInfo = aggregationInfo;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1,32 +1,34 @@
|
||||||
package eu.dnetlib.repo.manager.domain;
|
package eu.dnetlib.repo.manager.domain;
|
||||||
|
|
||||||
|
import eu.dnetlib.enabling.datasources.common.AggregationInfo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class CollectionMonitorSummary {
|
public class CollectionMonitorSummary {
|
||||||
private List<AggregationDetails> aggregationDetails;
|
private List<AggregationInfo> aggregationDetails;
|
||||||
|
|
||||||
private AggregationDetails lastIndexedVersion;
|
private AggregationInfo lastIndexedVersion;
|
||||||
|
|
||||||
public CollectionMonitorSummary(){}
|
public CollectionMonitorSummary(){}
|
||||||
|
|
||||||
public CollectionMonitorSummary(List<AggregationDetails> aggregationDetails, AggregationDetails lastIndexedVersion) {
|
public CollectionMonitorSummary(List<AggregationInfo> aggregationDetails, AggregationInfo lastIndexedVersion) {
|
||||||
this.aggregationDetails = aggregationDetails;
|
this.aggregationDetails = aggregationDetails;
|
||||||
this.lastIndexedVersion = lastIndexedVersion;
|
this.lastIndexedVersion = lastIndexedVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<AggregationDetails> getAggregationDetails() {
|
public List<AggregationInfo> getAggregationDetails() {
|
||||||
return aggregationDetails;
|
return aggregationDetails;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAggregationDetails(List<AggregationDetails> aggregationDetails) {
|
public void setAggregationDetails(List<AggregationInfo> aggregationDetails) {
|
||||||
this.aggregationDetails = aggregationDetails;
|
this.aggregationDetails = aggregationDetails;
|
||||||
}
|
}
|
||||||
|
|
||||||
public AggregationDetails getLastIndexedVersion() {
|
public AggregationInfo getLastIndexedVersion() {
|
||||||
return lastIndexedVersion;
|
return lastIndexedVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setLastIndexedVersion(AggregationDetails lastIndexedVersion) {
|
public void setLastIndexedVersion(AggregationInfo lastIndexedVersion) {
|
||||||
this.lastIndexedVersion = lastIndexedVersion;
|
this.lastIndexedVersion = lastIndexedVersion;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
package eu.dnetlib.repo.manager.service;
|
package eu.dnetlib.repo.manager.service;
|
||||||
|
|
||||||
|
import eu.dnetlib.enabling.datasources.common.AggregationInfo;
|
||||||
import eu.dnetlib.repo.manager.domain.*;
|
import eu.dnetlib.repo.manager.domain.*;
|
||||||
import eu.dnetlib.repo.manager.domain.broker.BrowseEntry;
|
import eu.dnetlib.repo.manager.domain.broker.BrowseEntry;
|
||||||
import eu.dnetlib.repo.manager.exception.BrokerException;
|
import eu.dnetlib.repo.manager.exception.BrokerException;
|
||||||
import eu.dnetlib.repo.manager.exception.RepositoryServiceException;
|
import eu.dnetlib.repo.manager.exception.RepositoryServiceException;
|
||||||
|
import eu.dnetlib.repo.manager.utils.DateUtils;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
@ -40,11 +42,11 @@ 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?
|
//TODO getRepositoryAggregations returns only the 20 more recent items. Is it positive that we will find an indexed version there?
|
||||||
long start = System.currentTimeMillis();
|
long start = System.currentTimeMillis();
|
||||||
List<AggregationDetails> aggregationDetailsList = repositoryService.getRepositoryAggregations(repository.getId(), 0, 20);
|
List<AggregationInfo> aggregationDetailsList = repositoryService.getRepositoryAggregations(repository.getId(), 0, 20);
|
||||||
for (AggregationDetails aggregationDetails : aggregationDetailsList) {
|
for (AggregationInfo aggregationDetails : aggregationDetailsList) {
|
||||||
if (aggregationDetails.getIndexedVersion()) {
|
if (aggregationDetails.isIndexedVersion()) {
|
||||||
repositorySummaryInfo.setRecordsCollected(aggregationDetails.getNumberOfRecords());
|
repositorySummaryInfo.setRecordsCollected(aggregationDetails.getNumberOfRecords());
|
||||||
repositorySummaryInfo.setLastIndexedVersion(aggregationDetails.getDate());
|
repositorySummaryInfo.setLastIndexedVersion(DateUtils.toDate(aggregationDetails.getDate()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package eu.dnetlib.repo.manager.service;
|
package eu.dnetlib.repo.manager.service;
|
||||||
|
|
||||||
import eu.dnetlib.repo.manager.domain.Repository;
|
import eu.dnetlib.enabling.datasources.common.AggregationInfo;
|
||||||
import eu.dnetlib.repo.manager.domain.RepositoryInterface;
|
|
||||||
import eu.dnetlib.repo.manager.domain.*;
|
import eu.dnetlib.repo.manager.domain.*;
|
||||||
import eu.dnetlib.repo.manager.exception.RepositoryServiceException;
|
import eu.dnetlib.repo.manager.exception.RepositoryServiceException;
|
||||||
import eu.dnetlib.repo.manager.exception.ResourceNotFoundException;
|
import eu.dnetlib.repo.manager.exception.ResourceNotFoundException;
|
||||||
|
@ -44,11 +43,11 @@ public interface RepositoryService {
|
||||||
|
|
||||||
Repository getRepositoryById(String id) throws JSONException, ResourceNotFoundException;
|
Repository getRepositoryById(String id) throws JSONException, ResourceNotFoundException;
|
||||||
|
|
||||||
List<AggregationDetails> getRepositoryAggregations(String id) throws JSONException;
|
List<AggregationInfo> getRepositoryAggregations(String id) throws JSONException;
|
||||||
|
|
||||||
List<AggregationDetails> getRepositoryAggregations(String id, int from, int size) throws JSONException;
|
List<AggregationInfo> getRepositoryAggregations(String id, int from, int size) throws JSONException;
|
||||||
|
|
||||||
Map<String, List<AggregationDetails>> getRepositoryAggregationsByYear(String id) throws JSONException;
|
Map<String, List<AggregationInfo>> getRepositoryAggregationsByYear(String id) throws JSONException;
|
||||||
|
|
||||||
List<Repository> getRepositoriesByName(String name,
|
List<Repository> getRepositoriesByName(String name,
|
||||||
String page,
|
String page,
|
||||||
|
|
|
@ -5,6 +5,7 @@ import com.google.gson.JsonArray;
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import eu.dnetlib.api.functionality.ValidatorServiceException;
|
import eu.dnetlib.api.functionality.ValidatorServiceException;
|
||||||
|
import eu.dnetlib.enabling.datasources.common.AggregationInfo;
|
||||||
import eu.dnetlib.repo.manager.domain.Repository;
|
import eu.dnetlib.repo.manager.domain.Repository;
|
||||||
import eu.dnetlib.repo.manager.domain.RepositoryInterface;
|
import eu.dnetlib.repo.manager.domain.RepositoryInterface;
|
||||||
import eu.dnetlib.domain.enabling.Vocabulary;
|
import eu.dnetlib.domain.enabling.Vocabulary;
|
||||||
|
@ -20,6 +21,7 @@ import eu.dnetlib.repo.manager.service.security.AuthoritiesUpdater;
|
||||||
import eu.dnetlib.repo.manager.service.security.AuthorizationService;
|
import eu.dnetlib.repo.manager.service.security.AuthorizationService;
|
||||||
import eu.dnetlib.repo.manager.service.security.RoleMappingService;
|
import eu.dnetlib.repo.manager.service.security.RoleMappingService;
|
||||||
import eu.dnetlib.repo.manager.utils.Converter;
|
import eu.dnetlib.repo.manager.utils.Converter;
|
||||||
|
import eu.dnetlib.repo.manager.utils.DateUtils;
|
||||||
import gr.uoa.di.driver.enabling.vocabulary.VocabularyLoader;
|
import gr.uoa.di.driver.enabling.vocabulary.VocabularyLoader;
|
||||||
import org.apache.commons.codec.digest.DigestUtils;
|
import org.apache.commons.codec.digest.DigestUtils;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
@ -48,6 +50,8 @@ import java.util.*;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static eu.dnetlib.repo.manager.utils.DateUtils.getYear;
|
||||||
|
|
||||||
@Service("repositoryService")
|
@Service("repositoryService")
|
||||||
public class RepositoryServiceImpl implements RepositoryService {
|
public class RepositoryServiceImpl implements RepositoryService {
|
||||||
|
|
||||||
|
@ -410,45 +414,42 @@ public class RepositoryServiceImpl implements RepositoryService {
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<AggregationDetails> getRepositoryAggregations(String id) throws JSONException {
|
public List<AggregationInfo> getRepositoryAggregations(String id) {
|
||||||
|
|
||||||
LOGGER.debug("Retrieving aggregations for repository with id : " + id);
|
LOGGER.debug("Retrieving aggregations for repository with id : " + id);
|
||||||
UriComponents uriComponents = getAggregationHistory(id);
|
UriComponents uriComponents = getAggregationHistory(id);
|
||||||
|
|
||||||
String rs = restTemplate.getForObject(uriComponents.toUri(), String.class);
|
AggregationHistoryResponse rs = restTemplate.getForObject(uriComponents.toUri(), AggregationHistoryResponse.class);
|
||||||
JSONArray aggregationInfo = new JSONObject(rs).getJSONArray("aggregationInfo");
|
|
||||||
|
|
||||||
List<AggregationDetails> aggregationHistory = new ArrayList<>(converter.toAggregationHistory(aggregationInfo));
|
return rs != null ? rs.getAggregationInfo() : null;
|
||||||
|
|
||||||
return aggregationHistory;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<AggregationDetails> getRepositoryAggregations(String id, int from, int size) throws JSONException {
|
public List<AggregationInfo> getRepositoryAggregations(String id, int from, int size) {
|
||||||
|
|
||||||
List<AggregationDetails> res = getRepositoryAggregations(id);
|
List<AggregationInfo> res = getRepositoryAggregations(id);
|
||||||
|
|
||||||
return res.subList(from, Math.min(from + size, res.size()));
|
return res.subList(from, Math.min(from + size, res.size()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, List<AggregationDetails>> getRepositoryAggregationsByYear(String id) throws JSONException {
|
public Map<String, List<AggregationInfo>> getRepositoryAggregationsByYear(String id) {
|
||||||
LOGGER.debug("Retrieving aggregations (by year) for repository with id : " + id);
|
LOGGER.debug("Retrieving aggregations (by year) for repository with id : " + id);
|
||||||
|
|
||||||
List<AggregationDetails> aggregationHistory = getRepositoryAggregations(id);
|
List<AggregationInfo> aggregationHistory = getRepositoryAggregations(id);
|
||||||
Map<String, List<AggregationDetails>> aggregationByYear = new HashMap<>();
|
Map<String, List<AggregationInfo>> aggregationByYear = new HashMap<>();
|
||||||
|
|
||||||
return aggregationHistory.size() == 0 ? aggregationByYear : createYearMap(aggregationHistory);
|
return aggregationHistory.size() == 0 ? aggregationByYear : createYearMap(aggregationHistory);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, List<AggregationDetails>> createYearMap(List<AggregationDetails> aggregationHistory) {
|
private Map<String, List<AggregationInfo>> createYearMap(List<AggregationInfo> aggregationHistory) {
|
||||||
|
|
||||||
aggregationHistory = aggregationHistory.stream()
|
aggregationHistory = aggregationHistory.stream()
|
||||||
.sorted(Comparator.comparing(AggregationDetails::getDate).reversed())
|
.sorted(Comparator.comparing(AggregationInfo::getDate).reversed())
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
return aggregationHistory.stream()
|
return aggregationHistory.stream()
|
||||||
.collect(Collectors.groupingBy(AggregationDetails::getYear));
|
.collect(Collectors.groupingBy(item -> getYear(item.getDate())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -925,15 +926,15 @@ public class RepositoryServiceImpl implements RepositoryService {
|
||||||
public Map<String, String> getListLatestUpdate(String mode) throws JSONException {
|
public Map<String, String> getListLatestUpdate(String mode) throws JSONException {
|
||||||
Map<String, String> dates = new HashMap<>();
|
Map<String, String> dates = new HashMap<>();
|
||||||
if (mode.equals("repository")) {
|
if (mode.equals("repository")) {
|
||||||
dates.put("opendoar", converter.toString(getRepositoryInterface("openaire____::opendoar").get(0).getLastCollectionDate()));
|
dates.put("opendoar", DateUtils.toString(getRepositoryInterface("openaire____::opendoar").get(0).getLastCollectionDate()));
|
||||||
dates.put("fairsharing", converter.toString(getRepositoryInterface("openaire____::fairsharing").get(0).getLastCollectionDate()));
|
dates.put("fairsharing", DateUtils.toString(getRepositoryInterface("openaire____::fairsharing").get(0).getLastCollectionDate()));
|
||||||
// create re3data last collection date
|
// create re3data last collection date
|
||||||
// dates.put("re3data", converter.toString(getRepositoryInterface("openaire____::re3data").get(1).getLastCollectionDate()));
|
// dates.put("re3data", converter.toString(getRepositoryInterface("openaire____::re3data").get(1).getLastCollectionDate()));
|
||||||
List<RepositoryInterface> re3interfaces = getRepositoryInterface("openaire____::re3data");
|
List<RepositoryInterface> re3interfaces = getRepositoryInterface("openaire____::re3data");
|
||||||
String re3Date = null;
|
String re3Date = null;
|
||||||
for (RepositoryInterface interf : re3interfaces) {
|
for (RepositoryInterface interf : re3interfaces) {
|
||||||
if (interf.getLastCollectionDate() != null) {
|
if (interf.getLastCollectionDate() != null) {
|
||||||
re3Date = converter.toString(interf.getLastCollectionDate());
|
re3Date = DateUtils.toString(interf.getLastCollectionDate());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -942,14 +943,14 @@ public class RepositoryServiceImpl implements RepositoryService {
|
||||||
return dates;
|
return dates;
|
||||||
}
|
}
|
||||||
else if (mode.equals("cris"))
|
else if (mode.equals("cris"))
|
||||||
return Collections.singletonMap("lastCollectionDate", converter.toString(getRepositoryInterface("eurocrisdris::dris").get(0).getLastCollectionDate()));
|
return Collections.singletonMap("lastCollectionDate", DateUtils.toString(getRepositoryInterface("eurocrisdris::dris").get(0).getLastCollectionDate()));
|
||||||
else if (mode.equals("opendoar")) // TODO: remove this and else clause
|
else if (mode.equals("opendoar")) // TODO: remove this and else clause
|
||||||
return Collections.singletonMap("lastCollectionDate", converter.toString(getRepositoryInterface("openaire____::" + mode).get(0).getLastCollectionDate()));
|
return Collections.singletonMap("lastCollectionDate", DateUtils.toString(getRepositoryInterface("openaire____::" + mode).get(0).getLastCollectionDate()));
|
||||||
else
|
else
|
||||||
/*
|
/*
|
||||||
* first api of re3data has null value on collection date
|
* first api of re3data has null value on collection date
|
||||||
* */
|
* */
|
||||||
return Collections.singletonMap("lastCollectionDate", converter.toString(getRepositoryInterface("openaire____::" + mode).get(0).getLastCollectionDate()));
|
return Collections.singletonMap("lastCollectionDate", DateUtils.toString(getRepositoryInterface("openaire____::" + mode).get(0).getLastCollectionDate()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateValidationSet(String repositoryId, String repositoryInterfaceId, String validationSet) throws Exception {
|
private void updateValidationSet(String repositoryId, String repositoryInterfaceId, String validationSet) throws Exception {
|
||||||
|
|
|
@ -2,6 +2,7 @@ package eu.dnetlib.repo.manager.utils;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import eu.dnetlib.enabling.datasources.common.AggregationInfo;
|
||||||
import eu.dnetlib.repo.manager.domain.*;
|
import eu.dnetlib.repo.manager.domain.*;
|
||||||
import org.apache.commons.codec.digest.DigestUtils;
|
import org.apache.commons.codec.digest.DigestUtils;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
@ -99,11 +100,13 @@ public class Converter {
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<AggregationDetails> toAggregationHistory(JSONArray aggregationInfo) throws JSONException {
|
public List<AggregationInfo> toAggregationHistory(String aggregationHistoryResponse) throws JSONException {
|
||||||
List<AggregationDetails> aggregationDetailsList = new ArrayList<>();
|
List<AggregationInfo> aggregationDetailsList = new ArrayList<>();
|
||||||
|
JSONArray aggregationInfo = new JSONObject(aggregationHistoryResponse).getJSONArray("aggregationInfo");
|
||||||
|
|
||||||
for (int i = 0; i < aggregationInfo.length(); i++)
|
for (int i = 0; i < aggregationInfo.length(); i++)
|
||||||
aggregationDetailsList.add(toAggregationDetails(aggregationInfo.getJSONObject(i)));
|
// aggregationDetailsList.add(toAggregationDetails(aggregationInfo.getJSONObject(i)));
|
||||||
|
aggregationDetailsList.add(objectMapper.convertValue(aggregationInfo.getJSONObject(i), AggregationInfo.class));
|
||||||
|
|
||||||
return aggregationDetailsList;
|
return aggregationDetailsList;
|
||||||
}
|
}
|
||||||
|
@ -128,29 +131,6 @@ public class Converter {
|
||||||
return value.equals("null") ? null : Boolean.valueOf(value);
|
return value.equals("null") ? null : Boolean.valueOf(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Date toDate(String date) {
|
|
||||||
|
|
||||||
if (Objects.equals(date, "null"))
|
|
||||||
return null;
|
|
||||||
|
|
||||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
|
||||||
try {
|
|
||||||
return formatter.parse(date);
|
|
||||||
} catch (ParseException e) {
|
|
||||||
LOGGER.error(e);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String toString(Date date) {
|
|
||||||
|
|
||||||
if (Objects.equals(date, null))
|
|
||||||
return null;
|
|
||||||
|
|
||||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
|
||||||
return formatter.format(date);
|
|
||||||
}
|
|
||||||
|
|
||||||
private Double toDouble(String number) {
|
private Double toDouble(String number) {
|
||||||
if (Objects.equals(number, "null"))
|
if (Objects.equals(number, "null"))
|
||||||
return 0.0;
|
return 0.0;
|
||||||
|
@ -168,7 +148,7 @@ public class Converter {
|
||||||
aggregationDetails.setIndexedVersion(Boolean.parseBoolean(aggregationObject.get("indexedVersion").toString()));
|
aggregationDetails.setIndexedVersion(Boolean.parseBoolean(aggregationObject.get("indexedVersion").toString()));
|
||||||
|
|
||||||
aggregationDetails.setAggregationStage(aggregationObject.get("aggregationStage").toString());
|
aggregationDetails.setAggregationStage(aggregationObject.get("aggregationStage").toString());
|
||||||
aggregationDetails.setDate(toDate(aggregationObject.get("date").toString()));
|
aggregationDetails.setDate(DateUtils.toDate(aggregationObject.get("date").toString()));
|
||||||
aggregationDetails.setNumberOfRecords(Integer.parseInt(aggregationObject.get("numberOfRecords").toString()));
|
aggregationDetails.setNumberOfRecords(Integer.parseInt(aggregationObject.get("numberOfRecords").toString()));
|
||||||
|
|
||||||
return aggregationDetails;
|
return aggregationDetails;
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
package eu.dnetlib.repo.manager.utils;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
public class DateUtils {
|
||||||
|
|
||||||
|
private static final Logger logger = Logger.getLogger(DateUtils.class);
|
||||||
|
|
||||||
|
public static Date toDate(String date) {
|
||||||
|
|
||||||
|
if (Objects.equals(date, "null"))
|
||||||
|
return null;
|
||||||
|
|
||||||
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
try {
|
||||||
|
return formatter.parse(date);
|
||||||
|
} catch (ParseException e) {
|
||||||
|
logger.error(e);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String toString(Date date) {
|
||||||
|
|
||||||
|
if (Objects.equals(date, null))
|
||||||
|
return null;
|
||||||
|
|
||||||
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
return formatter.format(date);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getYear(String date) {
|
||||||
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
calendar.setTime(Objects.requireNonNull(toDate(date)));
|
||||||
|
return String.valueOf(calendar.get(Calendar.YEAR));
|
||||||
|
}
|
||||||
|
|
||||||
|
private DateUtils() {
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue