refactoring

This commit is contained in:
Konstantinos Spyrou 2022-08-03 15:08:42 +00:00
parent 3149357f8e
commit 36aa53273e
29 changed files with 229 additions and 522 deletions

50
pom.xml
View File

@ -137,21 +137,21 @@
<!-- <artifactId>log4j</artifactId>--> <!-- <artifactId>log4j</artifactId>-->
<!-- <version>${log4j.version}</version>--> <!-- <version>${log4j.version}</version>-->
<!-- </dependency>--> <!-- </dependency>-->
<dependency> <!-- <dependency>-->
<groupId>eu.dnetlib</groupId> <!-- <groupId>eu.dnetlib</groupId>-->
<artifactId>uoa-domain</artifactId> <!-- <artifactId>uoa-domain</artifactId>-->
<version>[2.0.0-SNAPSHOT, 3.0.0)</version> <!-- <version>[2.0.0-SNAPSHOT, 3.0.0)</version>-->
<exclusions> <!-- <exclusions>-->
<exclusion> <!-- declare the exclusion here --> <!-- <exclusion> &lt;!&ndash; declare the exclusion here &ndash;&gt;-->
<groupId>cglib</groupId> <!-- <groupId>cglib</groupId>-->
<artifactId>cglib</artifactId> <!-- <artifactId>cglib</artifactId>-->
</exclusion> <!-- </exclusion>-->
<exclusion> <!-- <exclusion>-->
<groupId>log4j</groupId> <!-- <groupId>log4j</groupId>-->
<artifactId>log4j</artifactId> <!-- <artifactId>log4j</artifactId>-->
</exclusion> <!-- </exclusion>-->
</exclusions> <!-- </exclusions>-->
</dependency> <!-- </dependency>-->
<dependency> <dependency>
<groupId>eu.dnetlib</groupId> <groupId>eu.dnetlib</groupId>
<artifactId>dnet-openaire-usage-stats-sushilite</artifactId> <artifactId>dnet-openaire-usage-stats-sushilite</artifactId>
@ -291,7 +291,7 @@
<dependency> <dependency>
<groupId>org.springframework.session</groupId> <groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId> <artifactId>spring-session-data-redis</artifactId>
</dependency> </dependency>
<!-- <!--
<dependency> <dependency>
<groupId>org.springframework.session</groupId> <groupId>org.springframework.session</groupId>
@ -305,13 +305,13 @@
<dependency> <dependency>
<groupId>redis.clients</groupId> <groupId>redis.clients</groupId>
<artifactId>jedis</artifactId> <artifactId>jedis</artifactId>
<version>${jedis.version}</version> <version>${jedis.version}</version>
<!--<version>3.7.0</version>--> <!--<version>3.7.0</version>-->
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.commons</groupId> <groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId> <artifactId>commons-pool2</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.google.code.gson</groupId> <groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId> <artifactId>gson</artifactId>
@ -327,8 +327,8 @@
<groupId>com.netflix.hystrix</groupId> <groupId>com.netflix.hystrix</groupId>
<artifactId>hystrix-core</artifactId> <artifactId>hystrix-core</artifactId>
<version>1.5.18</version> <version>1.5.18</version>
</dependency> </dependency>
<!-- <!--
<dependency> <dependency>
<groupId>com.netflix.rxjava</groupId> <groupId>com.netflix.rxjava</groupId>
<artifactId>rxjava-core</artifactId> <artifactId>rxjava-core</artifactId>

View File

@ -1,6 +1,5 @@
package eu.dnetlib.repo.manager.config; package eu.dnetlib.repo.manager.config;
import eu.dnetlib.repo.manager.service.ValidatorServiceImpl;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler; import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@ -24,4 +23,4 @@ public class AsyncConfiguration implements AsyncConfigurer {
} }
}; };
} }
} }

View File

@ -15,18 +15,21 @@ import gr.uoa.di.driver.util.StaticServiceLocator;
import gr.uoa.di.driver.xml.VocabularyXmlConverter; import gr.uoa.di.driver.xml.VocabularyXmlConverter;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.*; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration @Configuration
@ComponentScan(basePackages = {"org.eurocris.openaire.cris.validator.service"})
public class Config { public class Config {
@Value("${services.provide.iSLookUpService.url}") @Value("${services.provide.iSLookUpService.url}")
private String lookupURL; private String lookupURL;
@Value("${services.provide.validatorService.url}") @Value("${services.provide.validatorService.url}")
private String validatorUrl; private String validatorUrl;
@Bean(name="vocabularyLoader") @Bean(name = "vocabularyLoader")
public VocabularyLoader createVocabularyLoader() throws Exception { public VocabularyLoader createVocabularyLoader() throws Exception {
ISVocabularyLoader loader = new ISVocabularyLoader(); ISVocabularyLoader loader = new ISVocabularyLoader();
@ -78,4 +81,4 @@ public class Config {
return locator; return locator;
} }
} }

View File

@ -7,14 +7,14 @@ import org.apache.log4j.Logger;
import org.mitre.openid.connect.client.OIDCAuthoritiesMapper; import org.mitre.openid.connect.client.OIDCAuthoritiesMapper;
import org.mitre.openid.connect.model.UserInfo; import org.mitre.openid.connect.model.UserInfo;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.*; import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
@ComponentScan
@Component @Component
public class OpenAIREAuthoritiesMapper implements OIDCAuthoritiesMapper { public class OpenAIREAuthoritiesMapper implements OIDCAuthoritiesMapper {

View File

@ -2,7 +2,8 @@ package eu.dnetlib.repo.manager.config;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.*; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
@ -15,9 +16,6 @@ import javax.annotation.PostConstruct;
@Configuration @Configuration
@EnableRedisHttpSession @EnableRedisHttpSession
@ComponentScan(basePackages = {
"org.eurocris.openaire.cris.validator.service",
"eu.dnetlib.repo.manager.*"})
public class RedisConfiguration { public class RedisConfiguration {
private static Logger LOGGER = Logger.getLogger(RedisConfiguration.class); private static Logger LOGGER = Logger.getLogger(RedisConfiguration.class);
@ -35,18 +33,18 @@ public class RedisConfiguration {
private String domain; private String domain;
@PostConstruct @PostConstruct
private void init(){ 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 @Bean
public JedisConnectionFactory connectionFactory() { 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 jedisConnectionFactory = new JedisConnectionFactory();
jedisConnectionFactory.setHostName(host); jedisConnectionFactory.setHostName(host);
jedisConnectionFactory.setPort(Integer.parseInt(port)); jedisConnectionFactory.setPort(Integer.parseInt(port));
jedisConnectionFactory.setUsePool(true); jedisConnectionFactory.setUsePool(true);
if(password != null) jedisConnectionFactory.setPassword(password); if (password != null) jedisConnectionFactory.setPassword(password);
return jedisConnectionFactory; return jedisConnectionFactory;
} }

View File

@ -1,8 +1,6 @@
package eu.dnetlib.repo.manager.config; package eu.dnetlib.repo.manager.config;
import eu.dnetlib.repo.manager.controllers.*;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.PathSelectors;
@ -23,17 +21,7 @@ import java.util.ArrayList;
@Configuration @Configuration
@EnableSwagger2 @EnableSwagger2
@EnableWebMvc @EnableWebMvc
@ComponentScan(basePackageClasses = { public class SwaggerConfig {
RepositoryController.class,
MonitorController.class,
ValidatorController.class,
PiWikController.class,
BrokerController.class,
StatsController.class,
UserController.class,
SushiliteController.class
},basePackages = "eu.dnetlib.repo.manager.*")
public class SwaggerConfig {
@Bean @Bean
public Docket productApi() { public Docket productApi() {

View File

@ -1,6 +1,6 @@
package eu.dnetlib.repo.manager.controllers; package eu.dnetlib.repo.manager.controllers;
import eu.dnetlib.repo.manager.domain.BrokerException; import eu.dnetlib.repo.manager.exception.BrokerException;
import eu.dnetlib.repo.manager.domain.Term; import eu.dnetlib.repo.manager.domain.Term;
import eu.dnetlib.repo.manager.domain.broker.*; import eu.dnetlib.repo.manager.domain.broker.*;
import eu.dnetlib.repo.manager.service.BrokerServiceImpl; import eu.dnetlib.repo.manager.service.BrokerServiceImpl;

View File

@ -1,6 +1,8 @@
package eu.dnetlib.repo.manager.controllers; package eu.dnetlib.repo.manager.controllers;
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.RepositoryServiceException;
import eu.dnetlib.repo.manager.service.BrokerService; import eu.dnetlib.repo.manager.service.BrokerService;
import eu.dnetlib.repo.manager.service.DashboardService; import eu.dnetlib.repo.manager.service.DashboardService;
import eu.dnetlib.repo.manager.service.PiWikService; import eu.dnetlib.repo.manager.service.PiWikService;
@ -18,7 +20,7 @@ import java.util.List;
@RestController @RestController
@RequestMapping(value = "/dashboard") @RequestMapping(value = "/dashboard")
@Api(description = "Dashboard API", tags = {"dashboard"}) @Api(description = "Dashboard API", tags = {"dashboard"})
public class DashboardController { public class DashboardController {
@Autowired @Autowired
@ -33,17 +35,17 @@ public class DashboardController {
@Autowired @Autowired
private PiWikService piWikService; private PiWikService piWikService;
@RequestMapping(value = "/getRepositoriesSummary/{page}/{size}" , method = RequestMethod.GET, @RequestMapping(value = "/getRepositoriesSummary/{page}/{size}", method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE) produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody @ResponseBody
@PreAuthorize("hasAuthority('REGISTERED_USER')") @PreAuthorize("hasAuthority('REGISTERED_USER')")
public List<RepositorySummaryInfo> getRepositoriesSummaryInfo( public List<RepositorySummaryInfo> getRepositoriesSummaryInfo(
@PathVariable("page") String page, @PathVariable("page") String page,
@PathVariable("size") String size) throws JSONException { @PathVariable("size") String size) throws JSONException {
return dashboardService.getRepositoriesSummaryInfo(((OIDCAuthenticationToken) SecurityContextHolder.getContext().getAuthentication()).getUserInfo().getEmail(), page, size); return dashboardService.getRepositoriesSummaryInfo(((OIDCAuthenticationToken) SecurityContextHolder.getContext().getAuthentication()).getUserInfo().getEmail(), page, size);
} }
@RequestMapping(value = "/collectionMonitorSummary/{repoId}" , method = RequestMethod.GET, @RequestMapping(value = "/collectionMonitorSummary/{repoId}", method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE) produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody @ResponseBody
@PreAuthorize("hasAuthority('REGISTERED_USER')") @PreAuthorize("hasAuthority('REGISTERED_USER')")
@ -51,25 +53,25 @@ 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<AggregationDetails> 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 (AggregationDetails aggregationDetail : aggregationDetails) {
if(aggregationDetail.getIndexedVersion()){ if (aggregationDetail.getIndexedVersion()) {
collectionMonitorSummary.setLastIndexedVersion(aggregationDetail); collectionMonitorSummary.setLastIndexedVersion(aggregationDetail);
break; break;
} }
} }
size+=30; size += 30;
}while (aggregationDetails.size() != 0 && collectionMonitorSummary.getLastIndexedVersion()==null); } while (aggregationDetails.size() != 0 && collectionMonitorSummary.getLastIndexedVersion() == null);
return collectionMonitorSummary; return collectionMonitorSummary;
} }
@RequestMapping(value = "/usageSummary/{repoId}" , method = RequestMethod.GET, @RequestMapping(value = "/usageSummary/{repoId}", method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE) produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody @ResponseBody
@PreAuthorize("hasAuthority('REGISTERED_USER')") @PreAuthorize("hasAuthority('REGISTERED_USER')")
@ -79,16 +81,14 @@ public class DashboardController {
return new UsageSummary(repositoryService.getMetricsInfoForRepository(repoId), piWikService.getPiwikSiteForRepo(repoId)); return new UsageSummary(repositoryService.getMetricsInfoForRepository(repoId), piWikService.getPiwikSiteForRepo(repoId));
} }
@RequestMapping(value = "/brokerSummary/{ds_name}" , method = RequestMethod.GET, @RequestMapping(value = "/brokerSummary/{ds_name}", method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE) produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody @ResponseBody
@PreAuthorize("hasAuthority('REGISTERED_USER')") @PreAuthorize("hasAuthority('REGISTERED_USER')")
public BrokerSummary getBrokerSummary( public BrokerSummary getBrokerSummary(
@PathVariable("ds_name") String datasourceName) throws BrokerException { @PathVariable("ds_name") String datasourceName) throws BrokerException {
return new BrokerSummary(brokerService.getSimpleSubscriptionsOfUser( ((OIDCAuthenticationToken) SecurityContextHolder.getContext().getAuthentication()).getUserInfo().getEmail()), brokerService.getTopicsForDatasource(datasourceName)); return new BrokerSummary(brokerService.getSimpleSubscriptionsOfUser(((OIDCAuthenticationToken) SecurityContextHolder.getContext().getAuthentication()).getUserInfo().getEmail()), brokerService.getTopicsForDatasource(datasourceName));
} }
} }

View File

@ -2,7 +2,7 @@ package eu.dnetlib.repo.manager.controllers;
import eu.dnetlib.api.functionality.ValidatorServiceException; import eu.dnetlib.api.functionality.ValidatorServiceException;
import eu.dnetlib.repo.manager.domain.BrokerException; import eu.dnetlib.repo.manager.exception.BrokerException;
import eu.dnetlib.repo.manager.exception.EndPointException; import eu.dnetlib.repo.manager.exception.EndPointException;
import eu.dnetlib.repo.manager.exception.ResourceNotFoundException; import eu.dnetlib.repo.manager.exception.ResourceNotFoundException;
import eu.dnetlib.repo.manager.exception.ServerError; import eu.dnetlib.repo.manager.exception.ServerError;
@ -33,35 +33,35 @@ public class GenericControllerAdvice {
@ExceptionHandler(ResourceNotFoundException.class) @ExceptionHandler(ResourceNotFoundException.class)
@ResponseBody @ResponseBody
public ServerError securityException(HttpServletRequest req, Exception ex) { public ServerError securityException(HttpServletRequest req, Exception ex) {
return new ServerError(req.getRequestURL().toString(),ex); return new ServerError(req.getRequestURL().toString(), ex);
} }
@ResponseStatus(HttpStatus.FORBIDDEN) @ResponseStatus(HttpStatus.FORBIDDEN)
@ExceptionHandler(AccessDeniedException.class) @ExceptionHandler(AccessDeniedException.class)
@ResponseBody @ResponseBody
public ServerError accessDeniedException(HttpServletRequest req, Exception ex) { public ServerError accessDeniedException(HttpServletRequest req, Exception ex) {
return new ServerError(req.getRequestURL().toString(),ex); return new ServerError(req.getRequestURL().toString(), ex);
} }
@ResponseStatus(HttpStatus.NOT_FOUND) @ResponseStatus(HttpStatus.NOT_FOUND)
@ExceptionHandler(UnknownHostException.class) @ExceptionHandler(UnknownHostException.class)
@ResponseBody @ResponseBody
public ServerError unknownHostException(HttpServletRequest req, Exception ex) { public ServerError unknownHostException(HttpServletRequest req, Exception ex) {
return new ServerError(req.getRequestURL().toString(),ex); return new ServerError(req.getRequestURL().toString(), ex);
} }
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
@ExceptionHandler({JSONException.class,BrokerException.class,ValidatorServiceException.class}) @ExceptionHandler({JSONException.class, BrokerException.class, ValidatorServiceException.class})
@ResponseBody @ResponseBody
public ServerError internalException(HttpServletRequest req, Exception ex) { public ServerError internalException(HttpServletRequest req, Exception ex) {
return new ServerError(req.getRequestURL().toString(),ex); return new ServerError(req.getRequestURL().toString(), ex);
} }
@ResponseStatus(HttpStatus.GATEWAY_TIMEOUT) @ResponseStatus(HttpStatus.GATEWAY_TIMEOUT)
@ExceptionHandler(EndPointException.class) @ExceptionHandler(EndPointException.class)
@ResponseBody @ResponseBody
public ServerError endPointException(HttpServletRequest req, Exception ex) { public ServerError endPointException(HttpServletRequest req, Exception ex) {
return new ServerError(req.getRequestURL().toString(),ex); return new ServerError(req.getRequestURL().toString(), ex);
} }
} }

View File

@ -4,7 +4,7 @@ import eu.dnetlib.domain.data.PiwikInfo;
import eu.dnetlib.repo.manager.domain.OrderByField; import eu.dnetlib.repo.manager.domain.OrderByField;
import eu.dnetlib.repo.manager.domain.OrderByType; import eu.dnetlib.repo.manager.domain.OrderByType;
import eu.dnetlib.repo.manager.domain.Paging; import eu.dnetlib.repo.manager.domain.Paging;
import eu.dnetlib.repo.manager.domain.RepositoryServiceException; import eu.dnetlib.repo.manager.exception.RepositoryServiceException;
import eu.dnetlib.repo.manager.service.PiWikServiceImpl; import eu.dnetlib.repo.manager.service.PiWikServiceImpl;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;

View File

@ -5,6 +5,7 @@ import eu.dnetlib.repo.manager.domain.RepositoryInterface;
import eu.dnetlib.repo.manager.domain.*; import eu.dnetlib.repo.manager.domain.*;
import eu.dnetlib.repo.manager.domain.dto.RepositoryTerms; import eu.dnetlib.repo.manager.domain.dto.RepositoryTerms;
import eu.dnetlib.repo.manager.domain.dto.User; 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.exception.ResourceNotFoundException;
import eu.dnetlib.repo.manager.service.RepositoryService; import eu.dnetlib.repo.manager.service.RepositoryService;
import eu.dnetlib.repo.manager.service.security.AuthorizationService; import eu.dnetlib.repo.manager.service.security.AuthorizationService;
@ -65,8 +66,9 @@ public class RepositoryController {
produces = MediaType.APPLICATION_JSON_VALUE) produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody @ResponseBody
@PreAuthorize("hasAuthority('REGISTERED_USER')") @PreAuthorize("hasAuthority('REGISTERED_USER')")
public List<RepositorySnippet> getRepositoriesSnippetsOfUser() throws Exception { public List<RepositorySnippet> getRepositoriesSnippetsOfUser(@RequestParam(name = "page", defaultValue = "0") int page,
return repositoryService.getRepositoriesSnippetsOfUser("0", "100"); // FIXME @RequestParam(name = "size", defaultValue = "1000") int pageSize) throws Exception {
return repositoryService.getRepositoriesSnippetsOfUser(String.valueOf(page), String.valueOf(pageSize));
} }
@RequestMapping(value = "/terms", method = RequestMethod.POST, @RequestMapping(value = "/terms", method = RequestMethod.POST,
@ -110,7 +112,7 @@ public class RepositoryController {
Repository repo = repositoryService.getRepositoryById(id); Repository repo = repositoryService.getRepositoryById(id);
if (repo != null) if (repo != null)
logger.info("Returning repository " + repo.getId() + " registered by " + repo.getRegisteredBy()); logger.info("Returning repository " + repo.getId() + " registered by " + repo.getRegisteredby());
else else
logger.info("Requested repository " + id + " not found"); logger.info("Requested repository " + id + " not found");
return repo; return repo;
@ -158,6 +160,7 @@ public class RepositoryController {
return repositoryService.addRepository(datatype, repository); return repositoryService.addRepository(datatype, repository);
} }
@Deprecated
@RequestMapping(value = "/getDnetCountries", method = RequestMethod.GET, @RequestMapping(value = "/getDnetCountries", method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE) produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody @ResponseBody
@ -165,6 +168,7 @@ public class RepositoryController {
return repositoryService.getDnetCountries(); return repositoryService.getDnetCountries();
} }
@Deprecated
@RequestMapping(value = "/getTypologies", method = RequestMethod.GET, @RequestMapping(value = "/getTypologies", method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE) produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody @ResponseBody
@ -172,6 +176,7 @@ public class RepositoryController {
return repositoryService.getTypologies(); return repositoryService.getTypologies();
} }
@Deprecated
@RequestMapping(value = "/getTimezones", method = RequestMethod.GET, @RequestMapping(value = "/getTimezones", method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE) produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody @ResponseBody

View File

@ -5,7 +5,7 @@ import eu.dnetlib.domain.functionality.validator.JobForValidation;
import eu.dnetlib.domain.functionality.validator.RuleSet; import eu.dnetlib.domain.functionality.validator.RuleSet;
import eu.dnetlib.domain.functionality.validator.StoredJob; import eu.dnetlib.domain.functionality.validator.StoredJob;
import eu.dnetlib.repo.manager.domain.InterfaceInformation; 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 eu.dnetlib.repo.manager.exception.ResourceNotFoundException;
import eu.dnetlib.repo.manager.service.EmailUtils; import eu.dnetlib.repo.manager.service.EmailUtils;
import eu.dnetlib.repo.manager.service.ValidatorServiceImpl; import eu.dnetlib.repo.manager.service.ValidatorServiceImpl;

View File

@ -17,7 +17,6 @@ public class DatasourceDetails {
protected Double latitude = 0.0; protected Double latitude = 0.0;
protected Double longitude = 0.0; protected Double longitude = 0.0;
protected Double timezone = 0.0; protected Double timezone = 0.0;
// protected String timezone;
protected String namespaceprefix; protected String namespaceprefix;
protected String languages; protected String languages;
protected Date dateofvalidation; protected Date dateofvalidation;
@ -41,7 +40,6 @@ public class DatasourceDetails {
protected Set<OrganizationDetails> organizations; protected Set<OrganizationDetails> organizations;
protected Set<IdentitiesDetails> identities; protected Set<IdentitiesDetails> identities;
protected String status; protected String status;
@Deprecated
protected String typology; protected String typology;
protected Date registrationdate; protected Date registrationdate;
@ -121,14 +119,6 @@ public class DatasourceDetails {
this.longitude = longitude; this.longitude = longitude;
} }
// public String getTimezone() {
// return timezone;
// }
//
// public void setTimezone(String timezone) {
// this.timezone = timezone;
// }
public String getNamespaceprefix() { public String getNamespaceprefix() {
return namespaceprefix; return namespaceprefix;
} }

View File

@ -12,62 +12,13 @@ import java.util.*;
public class Repository extends DatasourceDetails { public class Repository extends DatasourceDetails {
private static final long serialVersionUID = -7241644234046760972L; private static final long serialVersionUID = -7241644234046760972L;
@Deprecated
private String datasourceType;
private List<RepositoryInterface> interfaces = new ArrayList<>(); private List<RepositoryInterface> interfaces = new ArrayList<>();
private static List<DataCollectionType> dataCollectionTypes = new ArrayList<>(); private static List<DataCollectionType> dataCollectionTypes = new ArrayList<>();
private PiwikInfo piwikInfo; private PiwikInfo piwikInfo;
private List<String> environments = new ArrayList<>();
public Repository() { public Repository() {
// this.setDateOfCreation(new Date()); // FIXME: remove this ???
// this.setResourceKind("RepositoryServiceResources");
// this.setResourceType("RepositoryServiceResourceType");
}
public String getRegisteredBy() {
return registeredby;
}
public void setRegisteredBy(String registeredBy) {
this.registeredby = registeredBy;
}
public String getEnglishName() {
return englishname;
}
public void setEnglishName(String englishName) {
this.englishname = englishName;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getOfficialName() {
return officialname;
}
public void setOfficialName(String officialName) {
this.officialname = officialName;
} }
public List<RepositoryInterface> getInterfaces() { public List<RepositoryInterface> getInterfaces() {
@ -78,18 +29,6 @@ public class Repository extends DatasourceDetails {
this.interfaces = interfaces; this.interfaces = interfaces;
} }
public String getTypology() {
return typology;
}
public void setTypology(String typology) {
this.typology = typology;
}
public Double getLatitude() {
return latitude;
}
public Double getTimezone() { public Double getTimezone() {
return timezone; return timezone;
} }
@ -113,164 +52,6 @@ public class Repository extends DatasourceDetails {
this.dataCollectionTypes = dataCollectionTypes; this.dataCollectionTypes = dataCollectionTypes;
} }
public void setEnvironments(List<String> environments) {
this.environments = environments;
}
public List<String> getEnvironments() {
return environments;
}
public String getPlatform() {
return platform;
}
public void setPlatform(String platform) {
this.platform = platform;
}
public String getSubjects() {
return subjects;
}
public void setSubjects(String subjects) {
this.subjects = subjects;
}
// new
public String getWebsiteUrl() {
return websiteurl;
}
public void setWebsiteUrl(String websiteUrl) {
this.websiteurl = websiteUrl;
}
public String getLogoUrl() {
return logourl;
}
public void setLogoUrl(String logoUrl) {
this.logourl = logoUrl;
}
public String getContactEmail() {
return contactemail;
}
public void setContactEmail(String contactEmail) {
this.contactemail = contactEmail;
}
public Double getLongitude() {
return longitude;
}
public void setLongitude(Double longitude) {
this.longitude = longitude;
}
public String getNamespacePrefix() {
return namespaceprefix;
}
public void setNamespacePrefix(String namespacePrefix) {
this.namespaceprefix = namespacePrefix;
}
public String getLanguages() {
return languages;
}
public void setLanguages(String languages) {
this.languages = languages;
}
public String getCollectedFrom() {
return collectedfrom;
}
public void setCollectedFrom(String collectedFrom) {
this.collectedfrom = collectedFrom;
}
public Boolean getManaged() {
return managed;
}
public void setManaged(Boolean managed) {
this.managed = managed;
}
public String getEoscDatasourceType() {
return eoscDatasourceType;
}
public void setEoscDatasourceType(String eoscDatasourceType) {
this.eoscDatasourceType = eoscDatasourceType;
}
public Date getDateOfValidation() {
return dateofvalidation;
}
public void setDateOfValidation(Date dateOfValidation) {
this.dateofvalidation = dateOfValidation;
}
public Date getDateOfCollection() {
return dateofcollection;
}
public void setDateOfCollection(Date dateOfCollection) {
this.dateofcollection = dateOfCollection;
}
public String getActivationId() {
return activationId;
}
public void setActivationId(String activationId) {
this.activationId = activationId;
}
public String getAggregator() {
return aggregator;
}
public void setAggregator(String aggregator) {
this.aggregator = aggregator;
}
public String getIssn() {
return issn;
}
public void setIssn(String issn) {
this.issn = issn;
}
public String getEissn() {
return eissn;
}
public void setEissn(String eissn) {
this.eissn = eissn;
}
public String getLissn() {
return lissn;
}
public void setLissn(String lissn) {
this.lissn = lissn;
}
public void setLatitude(Double latitude) {
this.latitude = latitude;
}
public PiwikInfo getPiwikInfo() { public PiwikInfo getPiwikInfo() {
return piwikInfo; return piwikInfo;
} }
@ -279,78 +60,6 @@ public class Repository extends DatasourceDetails {
this.piwikInfo = piwikInfo; this.piwikInfo = piwikInfo;
} }
public Boolean getConsentTermsOfUse() {
return consentTermsOfUse;
}
public void setConsentTermsOfUse(Boolean consentTermsOfUse) {
this.consentTermsOfUse = consentTermsOfUse;
}
public Boolean getFullTextDownload() {
return fullTextDownload;
}
public void setFullTextDownload(Boolean fullTextDownload) {
this.fullTextDownload = fullTextDownload;
}
public Date getConsentTermsOfUseDate() {
return consentTermsOfUseDate;
}
public void setConsentTermsOfUseDate(Date consentTermsOfUseDate) {
this.consentTermsOfUseDate = consentTermsOfUseDate;
}
public Date getLastConsentTermsOfUseDate() {
return lastConsentTermsOfUseDate;
}
public void setLastConsentTermsOfUseDate(Date lastConsentTermsOfUseDate) {
this.lastConsentTermsOfUseDate = lastConsentTermsOfUseDate;
}
public Set<OrganizationDetails> getOrganizations() {
return organizations;
}
public void setOrganizations(Set<OrganizationDetails> organizations) {
this.organizations = organizations;
}
public Set<IdentitiesDetails> getIdentities() {
return identities;
}
public void setIdentities(Set<IdentitiesDetails> identities) {
this.identities = identities;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getDatasourceType() {
return datasourceType;
}
public void setDatasourceType(String datasourceType) {
this.datasourceType = datasourceType;
}
public Date getRegistrationdate() {
return registrationdate;
}
public void setRegistrationdate(Date registrationdate) {
this.registrationdate = registrationdate;
}
@Override @Override
public int hashCode() { public int hashCode() {
return officialname.hashCode(); return officialname.hashCode();
@ -358,23 +67,23 @@ public class Repository extends DatasourceDetails {
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {
if (!(o instanceof eu.dnetlib.domain.data.Repository)) if (!(o instanceof Repository))
return false; return false;
else else
return this.equals((eu.dnetlib.domain.data.Repository) o); return this.equals((Repository) o);
} }
public boolean equals(eu.dnetlib.domain.data.Repository r) { public boolean equals(Repository r) {
// TODO: fill with required fields... // TODO: fill with required fields...
if (this.getEnglishName() != null && r.getEnglishName() == null) { if (this.getEnglishname() != null && r.getEnglishname() == null) {
return false; return false;
} else if (this.getEnglishName() == null } else if (this.getEnglishname() == null
&& r.getEnglishName() != null) { && r.getEnglishname() != null) {
return false; return false;
} else if (this.getEnglishName() != null } else if (this.getEnglishname() != null
&& r.getEnglishName() != null) { && r.getEnglishname() != null) {
return this.getEnglishName().equals(r.getEnglishName()); return this.getEnglishname().equals(r.getEnglishname());
} }
return true; return true;

View File

@ -24,8 +24,6 @@ public class RepositorySnippet {
private Date lastConsentTermsOfUseDate; private Date lastConsentTermsOfUseDate;
private Boolean fullTextDownload; private Boolean fullTextDownload;
private Set<OrganizationDetails> organizations; private Set<OrganizationDetails> organizations;
@Deprecated
private String typology; private String typology;

View File

@ -1,4 +1,4 @@
package eu.dnetlib.repo.manager.domain; package eu.dnetlib.repo.manager.exception;
/** /**

View File

@ -1,4 +1,4 @@
package eu.dnetlib.repo.manager.domain; package eu.dnetlib.repo.manager.exception;
/** /**
* Created by nikonas on 7/12/15. * Created by nikonas on 7/12/15.

View File

@ -1,4 +1,4 @@
package eu.dnetlib.repo.manager.domain; package eu.dnetlib.repo.manager.exception;

View File

@ -1,4 +1,4 @@
package eu.dnetlib.repo.manager.domain; package eu.dnetlib.repo.manager.exception;
/** /**
* Created by nikonas on 7/12/15. * Created by nikonas on 7/12/15.

View File

@ -1,6 +1,6 @@
package eu.dnetlib.repo.manager.service; package eu.dnetlib.repo.manager.service;
import eu.dnetlib.repo.manager.domain.BrokerException; import eu.dnetlib.repo.manager.exception.BrokerException;
import eu.dnetlib.repo.manager.domain.Term; import eu.dnetlib.repo.manager.domain.Term;
import eu.dnetlib.repo.manager.domain.broker.*; import eu.dnetlib.repo.manager.domain.broker.*;
import org.json.JSONException; import org.json.JSONException;

View File

@ -2,7 +2,7 @@ package eu.dnetlib.repo.manager.service;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import eu.dnetlib.repo.manager.domain.BrokerException; import eu.dnetlib.repo.manager.exception.BrokerException;
import eu.dnetlib.repo.manager.domain.RepositorySnippet; import eu.dnetlib.repo.manager.domain.RepositorySnippet;
import eu.dnetlib.repo.manager.domain.Term; import eu.dnetlib.repo.manager.domain.Term;
import eu.dnetlib.repo.manager.domain.Tuple; import eu.dnetlib.repo.manager.domain.Tuple;

View File

@ -2,6 +2,8 @@ package eu.dnetlib.repo.manager.service;
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.RepositoryServiceException;
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;

View File

@ -4,7 +4,7 @@ import eu.dnetlib.domain.data.PiwikInfo;
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.functionality.validator.JobForValidation; import eu.dnetlib.domain.functionality.validator.JobForValidation;
import eu.dnetlib.repo.manager.domain.ValidationServiceException; import eu.dnetlib.repo.manager.exception.ValidationServiceException;
import eu.dnetlib.utils.MailLibrary; import eu.dnetlib.utils.MailLibrary;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.mitre.openid.connect.model.OIDCAuthenticationToken; import org.mitre.openid.connect.model.OIDCAuthenticationToken;
@ -169,11 +169,11 @@ public class EmailUtilsImpl implements EmailUtils {
public void sendAdminRegistrationEmail(Repository repository, Authentication authentication) throws Exception { public void sendAdminRegistrationEmail(Repository repository, Authentication authentication) throws Exception {
try { try {
String subject = "OpenAIRE content provider registration for " + String subject = "OpenAIRE content provider registration for " +
repository.getDatasourceType() + "[" + repository.getOfficialName() + "]"; repository.getEoscDatasourceType() + "[" + repository.getOfficialname() + "]";
String message = "Dear administrator" + ",\n" + String message = "Dear administrator" + ",\n" +
"\n" + "\n" +
"We received a request to register the " + repository.getDatasourceType() + "[" + repository.getOfficialName() + "]" + "We received a request to register the " + repository.getEoscDatasourceType() + "[" + repository.getOfficialname() + "]" +
" to the OpenAIRE compliant list of content providers. " + " to the OpenAIRE compliant list of content providers. " +
"\n\n" + "\n\n" +
"User Contact: " + authentication.getName() + " (" + ((OIDCAuthenticationToken) authentication).getUserInfo().getEmail() + ")" + "User Contact: " + authentication.getName() + " (" + ((OIDCAuthenticationToken) authentication).getUserInfo().getEmail() + ")" +
@ -195,12 +195,12 @@ public class EmailUtilsImpl implements EmailUtils {
public void sendUserRegistrationEmail(Repository repository, Authentication authentication) throws Exception { public void sendUserRegistrationEmail(Repository repository, Authentication authentication) throws Exception {
try { try {
String subject = "OpenAIRE content provider registration for " + String subject = "OpenAIRE content provider registration for " +
repository.getDatasourceType() + "[" + repository.getOfficialName() + "]"; repository.getEoscDatasourceType() + "[" + repository.getOfficialname() + "]";
// String message = "Dear " + ((OIDCAuthenticationToken) authentication).getUserInfo().getName() + ",\n" + // String message = "Dear " + ((OIDCAuthenticationToken) authentication).getUserInfo().getName() + ",\n" +
String message = "Dear "+SecurityContextHolder.getContext().getAuthentication().getName()+",\n" + String message = "Dear "+SecurityContextHolder.getContext().getAuthentication().getName()+",\n" +
"\n" + "\n" +
"We received a request to register the " + repository.getDatasourceType() + "[" + repository.getOfficialName() + "]" + "We received a request to register the " + repository.getEoscDatasourceType() + "[" + repository.getOfficialname() + "]" +
" to the OpenAIRE compliant list of content providers. " + " to the OpenAIRE compliant list of content providers. " +
"\n\n" + "\n\n" +
"Please do not reply to this message\n" + "Please do not reply to this message\n" +
@ -209,10 +209,10 @@ public class EmailUtilsImpl implements EmailUtils {
"Regards,\n" + "Regards,\n" +
"the OpenAIRE technical team\n"; "the OpenAIRE technical team\n";
this.sendMail(repository.getRegisteredBy(), subject, message); this.sendMail(repository.getRegisteredby(), subject, message);
} catch (Exception e) { } 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; throw e;
} }
} }
@ -221,7 +221,7 @@ public class EmailUtilsImpl implements EmailUtils {
public void sendAdminRegisterInterfaceEmail(Repository repository, String comment, RepositoryInterface repositoryInterface, Authentication authentication) throws Exception { public void sendAdminRegisterInterfaceEmail(Repository repository, String comment, RepositoryInterface repositoryInterface, Authentication authentication) throws Exception {
try { try {
String subject = "OpenAIRE new interface registration request started for " + String subject = "OpenAIRE new interface registration request started for " +
repository.getDatasourceType() + "[" + repository.getOfficialName() + "]"; repository.getEoscDatasourceType() + "[" + repository.getOfficialname() + "]";
String message = "Dear administrator" + ",\n" + String message = "Dear administrator" + ",\n" +
"\n" + "\n" +
@ -229,7 +229,7 @@ public class EmailUtilsImpl implements EmailUtils {
"Base URL: " + repositoryInterface.getBaseurl() + "\n" + "Base URL: " + repositoryInterface.getBaseurl() + "\n" +
"Set: " + repositoryInterface.getAccessSet() + "\n" + "Set: " + repositoryInterface.getAccessSet() + "\n" +
"Guidelines: " + repositoryInterface.getCompatibilityOverride() + "\n\n" + "Guidelines: " + repositoryInterface.getCompatibilityOverride() + "\n\n" +
"to " + repository.getDatasourceType() + "[" + repository.getOfficialName() + "].\n"; "to " + repository.getEoscDatasourceType() + "[" + repository.getOfficialname() + "].\n";
if (comment != null) if (comment != null)
message += "\nThe users comment was '" + comment + "'\n"; message += "\nThe users comment was '" + comment + "'\n";
@ -256,7 +256,7 @@ public class EmailUtilsImpl implements EmailUtils {
public void sendUserRegisterInterfaceEmail(Repository repository, String comment, RepositoryInterface repositoryInterface, Authentication authentication) throws Exception { public void sendUserRegisterInterfaceEmail(Repository repository, String comment, RepositoryInterface repositoryInterface, Authentication authentication) throws Exception {
try { try {
String subject = "OpenAIRE new interface registration request started for " + String subject = "OpenAIRE new interface registration request started for " +
repository.getDatasourceType() + "[" + repository.getOfficialName() + "]"; repository.getEoscDatasourceType() + "[" + repository.getOfficialname() + "]";
String message = "Dear "+SecurityContextHolder.getContext().getAuthentication().getName()+",\n" + String message = "Dear "+SecurityContextHolder.getContext().getAuthentication().getName()+",\n" +
"\n" + "\n" +
@ -264,7 +264,7 @@ public class EmailUtilsImpl implements EmailUtils {
"Base URL: " + repositoryInterface.getBaseurl() + "\n" + "Base URL: " + repositoryInterface.getBaseurl() + "\n" +
"Set: " + repositoryInterface.getAccessSet() + "\n" + "Set: " + repositoryInterface.getAccessSet() + "\n" +
"Guidelines: " + repositoryInterface.getCompatibilityOverride() + "\n\n" + "Guidelines: " + repositoryInterface.getCompatibilityOverride() + "\n\n" +
"to " + repository.getDatasourceType() + "[" + repository.getOfficialName() + "].\n"; "to " + repository.getEoscDatasourceType() + "[" + repository.getOfficialname() + "].\n";
if (comment != null) { if (comment != null) {
message += "\n Your comment was '" + comment + "'\n"; message += "\n Your comment was '" + comment + "'\n";
@ -278,10 +278,10 @@ public class EmailUtilsImpl implements EmailUtils {
"Regards,\n" + "Regards,\n" +
"the OpenAIRE technical team\n"; "the OpenAIRE technical team\n";
this.sendMail(repository.getRegisteredBy(), subject, message); this.sendMail(repository.getRegisteredby(), subject, message);
} catch (Exception e) { } 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; throw e;
} }
} }
@ -290,17 +290,17 @@ public class EmailUtilsImpl implements EmailUtils {
public void sendUserRegistrationResultsSuccessEmail(String issuerEmail, String jobId, RepositoryInterface repositoryInterface, Repository repository, Authentication authentication) throws Exception { public void sendUserRegistrationResultsSuccessEmail(String issuerEmail, String jobId, RepositoryInterface repositoryInterface, Repository repository, Authentication authentication) throws Exception {
try { try {
String subject = "OpenAIRE new interface registration request - results (success) for " + String subject = "OpenAIRE new interface registration request - results (success) for " +
repository.getDatasourceType() + "[" + repository.getOfficialName() + "]"; repository.getEoscDatasourceType() + "[" + repository.getOfficialname() + "]";
// String message = "Dear " + ((OIDCAuthenticationToken) authentication).getUserInfo().getName() + ",\n" + // String message = "Dear " + ((OIDCAuthenticationToken) authentication).getUserInfo().getName() + ",\n" +
String message = "Dear user,\n" + String message = "Dear user,\n" +
"\n" + "\n" +
"the compatibility test on " + "[" + repository.getOfficialName() + "]" + "the compatibility test on " + "[" + repository.getOfficialname() + "]" +
" was successful and the datasource type \""+ repository.getDatasourceType() + "\" will be prepared for aggregation in OpenAIRE."+ " was successful and the datasource type \""+ repository.getEoscDatasourceType() + "\" will be prepared for aggregation in OpenAIRE."+
"\n\n" + "\n\n" +
"Please note that it usually takes about 3-4 weeks until a data source is indexed and its metadata visible on openaire.eu.\n\n" + "Please note that it usually takes about 3-4 weeks until a data source is indexed and its metadata visible on openaire.eu.\n\n" +
"Registration identifier in OpenAIRE: "+ repository.getNamespacePrefix()+ "Registration identifier in OpenAIRE: "+ repository.getNamespaceprefix()+
"\nOfficial Name:" + repository.getOfficialName() + "\nOfficial Name:" + repository.getOfficialname() +
"\n\nBase URL: "+ repositoryInterface.getBaseurl() + "\n\nBase URL: "+ repositoryInterface.getBaseurl() +
"\n\nValidation Set: " + repositoryInterface.getAccessSet() + "\n\nValidation Set: " + repositoryInterface.getAccessSet() +
"\n\nGuidelines: "+ repositoryInterface.getCompatibilityOverride() + "\n\nGuidelines: "+ repositoryInterface.getCompatibilityOverride() +
@ -311,10 +311,10 @@ public class EmailUtilsImpl implements EmailUtils {
"Regards,\n" + "Regards,\n" +
"the OpenAIRE technical team\n"; "the OpenAIRE technical team\n";
this.sendMail(repository.getRegisteredBy(), subject, message); this.sendMail(repository.getRegisteredby(), subject, message);
} catch (Exception e) { } 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; throw e;
} }
} }
@ -323,16 +323,16 @@ public class EmailUtilsImpl implements EmailUtils {
public void sendAdminRegistrationResultsSuccessEmail(String issuerEmail, String jobId,RepositoryInterface repositoryInterface, Repository repository, Authentication authentication) throws Exception { public void sendAdminRegistrationResultsSuccessEmail(String issuerEmail, String jobId,RepositoryInterface repositoryInterface, Repository repository, Authentication authentication) throws Exception {
try { try {
String subject = "OpenAIRE new interface registration request - results (success) for " + String subject = "OpenAIRE new interface registration request - results (success) for " +
repository.getDatasourceType() + "[" + repository.getOfficialName() + "]"; repository.getEoscDatasourceType() + "[" + repository.getOfficialname() + "]";
String message = "Dear admin ,\n" + String message = "Dear admin ,\n" +
"\n" + "\n" +
"the compatibility test on " + "[" + repository.getOfficialName() + "]" + "the compatibility test on " + "[" + repository.getOfficialname() + "]" +
" was successful and the datasource type \""+ repository.getDatasourceType() + "\" will be prepared for aggregation in OpenAIRE."+ " was successful and the datasource type \""+ repository.getEoscDatasourceType() + "\" will be prepared for aggregation in OpenAIRE."+
"\n\n" + "\n\n" +
"Please note that it usually takes about 3-4 weeks until a data source is indexed and its metadata visible on openaire.eu.\n\n" + "Please note that it usually takes about 3-4 weeks until a data source is indexed and its metadata visible on openaire.eu.\n\n" +
"Registration identifier in OpenAIRE: "+ repository.getNamespacePrefix()+ "Registration identifier in OpenAIRE: "+ repository.getNamespaceprefix()+
"\nOfficial Name:" + repository.getOfficialName() + "\nOfficial Name:" + repository.getOfficialname() +
"\n\nBase URL: "+ repositoryInterface.getBaseurl() + "\n\nBase URL: "+ repositoryInterface.getBaseurl() +
"\n\nValidation Set: " + repositoryInterface.getAccessSet() + "\n\nValidation Set: " + repositoryInterface.getAccessSet() +
"\n\nGuidelines: "+ repositoryInterface.getCompatibilityOverride() + "\n\nGuidelines: "+ repositoryInterface.getCompatibilityOverride() +
@ -347,7 +347,7 @@ public class EmailUtilsImpl implements EmailUtils {
this.sendMail(this.provideAdminEmail, subject, message); this.sendMail(this.provideAdminEmail, subject, message);
} catch (Exception e) { } 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; throw e;
} }
} }
@ -356,16 +356,16 @@ public class EmailUtilsImpl implements EmailUtils {
public void sendUserRegistrationResultsFailureEmail(String jobId, RepositoryInterface repositoryInterface, Repository repository, Authentication authentication) throws Exception { public void sendUserRegistrationResultsFailureEmail(String jobId, RepositoryInterface repositoryInterface, Repository repository, Authentication authentication) throws Exception {
try { try {
String subject = "OpenAIRE new interface registration request - results (failure) for " + String subject = "OpenAIRE new interface registration request - results (failure) for " +
repository.getDatasourceType() + "[" + repository.getOfficialName() + "]"; repository.getEoscDatasourceType() + "[" + repository.getOfficialname() + "]";
// String message = "Dear " + ((OIDCAuthenticationToken) authentication).getUserInfo().getName() + ",\n" + // String message = "Dear " + ((OIDCAuthenticationToken) authentication).getUserInfo().getName() + ",\n" +
String message = "Dear user,\n" + String message = "Dear user,\n" +
"\n" + "\n" +
"the compatibility test on " + "[" + repository.getOfficialName() + "]" + "the compatibility test on " + "[" + repository.getOfficialname() + "]" +
" was not successful and the registration process was interrupted."+ " was not successful and the registration process was interrupted."+
"\n\n" + "\n\n" +
"We will check what caused the problem and get back to you within a couple of days.\n\n" + "We will check what caused the problem and get back to you within a couple of days.\n\n" +
"Registration identifier in OpenAIRE: "+ repository.getNamespacePrefix()+ "Registration identifier in OpenAIRE: "+ repository.getNamespaceprefix()+
"\nOfficial Name:" + repository.getOfficialName() + "\nOfficial Name:" + repository.getOfficialname() +
"\n\nBase URL: "+ repositoryInterface.getBaseurl() + "\n\nBase URL: "+ repositoryInterface.getBaseurl() +
"\n\nValidation Set: " + repositoryInterface.getAccessSet() + "\n\nValidation Set: " + repositoryInterface.getAccessSet() +
"\n\nGuidelines: "+ repositoryInterface.getCompatibilityOverride() + "\n\nGuidelines: "+ repositoryInterface.getCompatibilityOverride() +
@ -376,10 +376,10 @@ public class EmailUtilsImpl implements EmailUtils {
"Regards,\n" + "Regards,\n" +
"the OpenAIRE technical team\n"; "the OpenAIRE technical team\n";
this.sendMail(repository.getRegisteredBy(), subject, message); this.sendMail(repository.getRegisteredby(), subject, message);
} catch (Exception e) { } 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; throw e;
} }
} }
@ -388,16 +388,16 @@ public class EmailUtilsImpl implements EmailUtils {
public void sendAdminRegistrationResultsFailureEmail(String issuerEmail, String jobId, RepositoryInterface repositoryInterface, Repository repository, Authentication authentication) throws Exception { public void sendAdminRegistrationResultsFailureEmail(String issuerEmail, String jobId, RepositoryInterface repositoryInterface, Repository repository, Authentication authentication) throws Exception {
try { try {
String subject = "OpenAIRE new interface registration request - results (failure) for " + String subject = "OpenAIRE new interface registration request - results (failure) for " +
repository.getDatasourceType() + "[" + repository.getOfficialName() + "]"; repository.getEoscDatasourceType() + "[" + repository.getOfficialname() + "]";
String message = "Dear admin,\n" + String message = "Dear admin,\n" +
"\n" + "\n" +
"the compatibility test on " + "[" + repository.getOfficialName() + "]" + "the compatibility test on " + "[" + repository.getOfficialname() + "]" +
" was not successful and the registration process was interrupted."+ " was not successful and the registration process was interrupted."+
"\n\n" + "\n\n" +
"We will check what caused the problem and get back to you within a couple of days.\n\n" + "We will check what caused the problem and get back to you within a couple of days.\n\n" +
"Registration identifier in OpenAIRE: "+ repository.getNamespacePrefix()+ "Registration identifier in OpenAIRE: "+ repository.getNamespaceprefix()+
"\nOfficial Name:" + repository.getOfficialName() + "\nOfficial Name:" + repository.getOfficialname() +
"\n\nBase URL: "+ repositoryInterface.getBaseurl() + "\n\nBase URL: "+ repositoryInterface.getBaseurl() +
"\n\nValidation Set: " + repositoryInterface.getAccessSet() + "\n\nValidation Set: " + repositoryInterface.getAccessSet() +
"\n\nGuidelines: "+ repositoryInterface.getCompatibilityOverride() + "\n\nGuidelines: "+ repositoryInterface.getCompatibilityOverride() +
@ -412,7 +412,7 @@ public class EmailUtilsImpl implements EmailUtils {
this.sendMail(this.provideAdminEmail, subject, message); this.sendMail(this.provideAdminEmail, subject, message);
} catch (Exception e) { } 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; throw e;
} }
} }
@ -421,15 +421,15 @@ public class EmailUtilsImpl implements EmailUtils {
public void sendUserUpdateResultsSuccessEmail(String issuer, String jobId, RepositoryInterface repositoryInterface, Repository repository, Authentication authentication) throws Exception { public void sendUserUpdateResultsSuccessEmail(String issuer, String jobId, RepositoryInterface repositoryInterface, Repository repository, Authentication authentication) throws Exception {
try { try {
String subject = "OpenAIRE interface update request - results (success) for " + String subject = "OpenAIRE interface update request - results (success) for " +
repository.getDatasourceType() + "[" + repository.getOfficialName() + "]"; repository.getEoscDatasourceType() + "[" + repository.getOfficialname() + "]";
// String message = "Dear " + ((OIDCAuthenticationToken) authentication).getUserInfo().getName() + ",\n" + // String message = "Dear " + ((OIDCAuthenticationToken) authentication).getUserInfo().getName() + ",\n" +
String message = "Dear user,\n" + String message = "Dear user,\n" +
"\n" + "\n" +
"the compatibility test on [" + repository.getOfficialName()+"] has been successful\n\n" + "the compatibility test on [" + repository.getOfficialname()+"] has been successful\n\n" +
"We will check your transmitted information and adjust the aggregation settings accordingly. Please note that it usually takes about 3-4 weeks until the changes are visible on openaire.eu."+"\n\n" + "We will check your transmitted information and adjust the aggregation settings accordingly. Please note that it usually takes about 3-4 weeks until the changes are visible on openaire.eu."+"\n\n" +
"Registration identifier in OpenAIRE: "+ repository.getNamespacePrefix()+ "Registration identifier in OpenAIRE: "+ repository.getNamespaceprefix()+
"\nOfficial Name:" + repository.getOfficialName() + "\nOfficial Name:" + repository.getOfficialname() +
"\n\nBase URL: "+ repositoryInterface.getBaseurl() + "\n\nBase URL: "+ repositoryInterface.getBaseurl() +
"\n\nValidation Set: " + repositoryInterface.getAccessSet() + "\n\nValidation Set: " + repositoryInterface.getAccessSet() +
"\n\nGuidelines: "+ repositoryInterface.getCompatibilityOverride() + "\n\nGuidelines: "+ repositoryInterface.getCompatibilityOverride() +
@ -452,14 +452,14 @@ public class EmailUtilsImpl implements EmailUtils {
public void sendAdminUpdateResultsSuccessEmail(String issuerEmail, String jobId, RepositoryInterface repositoryInterface, Repository repository, Authentication authentication) throws Exception { public void sendAdminUpdateResultsSuccessEmail(String issuerEmail, String jobId, RepositoryInterface repositoryInterface, Repository repository, Authentication authentication) throws Exception {
try { try {
String subject = "OpenAIRE interface update request - results (success) for " + String subject = "OpenAIRE interface update request - results (success) for " +
repository.getDatasourceType() + "[" + repository.getOfficialName() + "]"; repository.getEoscDatasourceType() + "[" + repository.getOfficialname() + "]";
String message = "Dear admin,\n" + String message = "Dear admin,\n" +
"\n" + "\n" +
"the compatibility test on [" + repository.getOfficialName()+"] has been successful\n\n" + "the compatibility test on [" + repository.getOfficialname()+"] has been successful\n\n" +
"We will check your transmitted information and adjust the aggregation settings accordingly. Please note that it usually takes about 3-4 weeks until the changes are visible on openaire.eu."+"\n\n" + "We will check your transmitted information and adjust the aggregation settings accordingly. Please note that it usually takes about 3-4 weeks until the changes are visible on openaire.eu."+"\n\n" +
"Registration identifier in OpenAIRE: "+ repository.getNamespacePrefix()+ "Registration identifier in OpenAIRE: "+ repository.getNamespaceprefix()+
"\nOfficial Name:" + repository.getOfficialName() + "\nOfficial Name:" + repository.getOfficialname() +
"\n\nBase URL: "+ repositoryInterface.getBaseurl() + "\n\nBase URL: "+ repositoryInterface.getBaseurl() +
"\n\nValidation Set: " + repositoryInterface.getAccessSet() + "\n\nValidation Set: " + repositoryInterface.getAccessSet() +
"\n\nGuidelines: "+ repositoryInterface.getCompatibilityOverride() + "\n\nGuidelines: "+ repositoryInterface.getCompatibilityOverride() +
@ -483,17 +483,17 @@ public class EmailUtilsImpl implements EmailUtils {
public void sendUserUpdateResultsFailureEmail(String issuer, String jobId, RepositoryInterface repositoryInterface, Repository repository, Authentication authentication) throws Exception { public void sendUserUpdateResultsFailureEmail(String issuer, String jobId, RepositoryInterface repositoryInterface, Repository repository, Authentication authentication) throws Exception {
try { try {
String subject = "OpenAIRE interface update request - results (failure) for " + String subject = "OpenAIRE interface update request - results (failure) for " +
repository.getDatasourceType() + "[" + repository.getOfficialName() + "]"; repository.getEoscDatasourceType() + "[" + repository.getOfficialname() + "]";
// String message = "Dear " + ((OIDCAuthenticationToken) authentication).getUserInfo().getName() + ",\n" + // String message = "Dear " + ((OIDCAuthenticationToken) authentication).getUserInfo().getName() + ",\n" +
String message = "Dear user,\n" + String message = "Dear user,\n" +
"\n" + "\n" +
"the compatibility test on " + "[" + repository.getOfficialName() + "]" + "the compatibility test on " + "[" + repository.getOfficialname() + "]" +
" was not successful."+ " was not successful."+
"\n\n" + "\n\n" +
"WWe will check your transmitted information to see what caused the problem and get back to you within a couple of days.\n\n" + "WWe will check your transmitted information to see what caused the problem and get back to you within a couple of days.\n\n" +
"Registration identifier in OpenAIRE: "+ repository.getNamespacePrefix()+ "Registration identifier in OpenAIRE: "+ repository.getNamespaceprefix()+
"\nOfficial Name:" + repository.getOfficialName() + "\nOfficial Name:" + repository.getOfficialname() +
"\n\nBase URL: "+ repositoryInterface.getBaseurl() + "\n\nBase URL: "+ repositoryInterface.getBaseurl() +
"\n\nValidation Set: " + repositoryInterface.getAccessSet() + "\n\nValidation Set: " + repositoryInterface.getAccessSet() +
"\n\nGuidelines: "+ repositoryInterface.getCompatibilityOverride() + "\n\nGuidelines: "+ repositoryInterface.getCompatibilityOverride() +
@ -507,7 +507,7 @@ public class EmailUtilsImpl implements EmailUtils {
this.sendMail(issuer, subject, message); this.sendMail(issuer, subject, message);
} catch (Exception e) { } 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; throw e;
} }
} }
@ -516,16 +516,16 @@ public class EmailUtilsImpl implements EmailUtils {
public void sendAdminUpdateResultsFailureEmail(String issuerEmail, String jobId, RepositoryInterface repositoryInterface, Repository repository, Authentication authentication) throws Exception { public void sendAdminUpdateResultsFailureEmail(String issuerEmail, String jobId, RepositoryInterface repositoryInterface, Repository repository, Authentication authentication) throws Exception {
try { try {
String subject = "OpenAIRE interface update request - results (failure) for " + String subject = "OpenAIRE interface update request - results (failure) for " +
repository.getDatasourceType() + "[" + repository.getOfficialName() + "]"; repository.getEoscDatasourceType() + "[" + repository.getOfficialname() + "]";
String message = "Dear admin,\n" + String message = "Dear admin,\n" +
"\n" + "\n" +
"the compatibility test on " + "[" + repository.getOfficialName() + "]" + "the compatibility test on " + "[" + repository.getOfficialname() + "]" +
" was not successful."+ " was not successful."+
"\n\n" + "\n\n" +
"WWe will check your transmitted information to see what caused the problem and get back to you within a couple of days.\n\n" + "WWe will check your transmitted information to see what caused the problem and get back to you within a couple of days.\n\n" +
"Registration identifier in OpenAIRE: "+ repository.getNamespacePrefix()+ "Registration identifier in OpenAIRE: "+ repository.getNamespaceprefix()+
"\nOfficial Name:" + repository.getOfficialName() + "\nOfficial Name:" + repository.getOfficialname() +
"\n\nBase URL: "+ repositoryInterface.getBaseurl() + "\n\nBase URL: "+ repositoryInterface.getBaseurl() +
"\n\nValidation Set: " + repositoryInterface.getAccessSet() + "\n\nValidation Set: " + repositoryInterface.getAccessSet() +
"\n\nGuidelines: "+ repositoryInterface.getCompatibilityOverride() + "\n\nGuidelines: "+ repositoryInterface.getCompatibilityOverride() +
@ -540,7 +540,7 @@ public class EmailUtilsImpl implements EmailUtils {
this.sendMail(this.provideAdminEmail, subject, message); this.sendMail(this.provideAdminEmail, subject, message);
} catch (Exception e) { } 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; throw e;
} }
} }
@ -598,7 +598,7 @@ public class EmailUtilsImpl implements EmailUtils {
String message = "Dear admin,\n" + String message = "Dear admin,\n" +
"\n" + "\n" +
"the validation job that was automatically submitted for the update/registration of the interface "+repositoryInterface.getId()+" ("+repositoryInterface.getBaseurl()+", "+repositoryInterface.getAccessSet()+") of the repository "+repository.getId()+" ("+repository.getOfficialName()+") failed to complete." + "the validation job that was automatically submitted for the update/registration of the interface "+repositoryInterface.getId()+" ("+repositoryInterface.getBaseurl()+", "+repositoryInterface.getAccessSet()+") of the repository "+repository.getId()+" ("+repository.getOfficialname()+") failed to complete." +
"This message has been generated automatically.\n\n" + "This message has been generated automatically.\n\n" +
"Regards,\n" + "Regards,\n" +
"the OpenAIRE technical team\n"; "the OpenAIRE technical team\n";
@ -615,11 +615,11 @@ public class EmailUtilsImpl implements EmailUtils {
public void sendAdminUpdateRepositoryInfoEmail(Repository repository, Authentication authentication) throws Exception { public void sendAdminUpdateRepositoryInfoEmail(Repository repository, Authentication authentication) throws Exception {
try { try {
String subject = "OpenAIRE content provider update information for " + String subject = "OpenAIRE content provider update information for " +
repository.getDatasourceType() + "[" + repository.getOfficialName() + "]"; repository.getEoscDatasourceType() + "[" + repository.getOfficialname() + "]";
String message = "Dear administrator" + ",\n" + String message = "Dear administrator" + ",\n" +
"\n" + "\n" +
"We received a request to update the basic information for " + repository.getDatasourceType() + "[" + repository.getOfficialName() + "].\n\n" + "We received a request to update the basic information for " + repository.getEoscDatasourceType() + "[" + repository.getOfficialname() + "].\n\n" +
"Please do not reply to this message\n" + "Please do not reply to this message\n" +
"This message has been generated automatically.\n\n" + "This message has been generated automatically.\n\n" +
"Regards,\n" + "Regards,\n" +
@ -637,22 +637,22 @@ public class EmailUtilsImpl implements EmailUtils {
public void sendUserUpdateRepositoryInfoEmail(Repository repository, Authentication authentication) throws Exception { public void sendUserUpdateRepositoryInfoEmail(Repository repository, Authentication authentication) throws Exception {
try { try {
String subject = "OpenAIRE content provider update information for " + String subject = "OpenAIRE content provider update information for " +
repository.getDatasourceType() + "[" + repository.getOfficialName() + "]"; repository.getEoscDatasourceType() + "[" + repository.getOfficialname() + "]";
// String message = "Dear " + ((OIDCAuthenticationToken) authentication).getUserInfo().getName() + ",\n" + // String message = "Dear " + ((OIDCAuthenticationToken) authentication).getUserInfo().getName() + ",\n" +
String message = "Dear user,\n" + String message = "Dear user,\n" +
"\n" + "\n" +
"We received a request to update the basic information for " + repository.getDatasourceType() + "[" + repository.getOfficialName() + "].\n\n" + "We received a request to update the basic information for " + repository.getEoscDatasourceType() + "[" + repository.getOfficialname() + "].\n\n" +
"Please do not reply to this message\n" + "Please do not reply to this message\n" +
"This message has been generated automatically.\n\n" + "This message has been generated automatically.\n\n" +
"If you have any questions, write to 'helpdesk@openaire.eu'. \n\n" + "If you have any questions, write to 'helpdesk@openaire.eu'. \n\n" +
"Regards,\n" + "Regards,\n" +
"the OpenAIRE technical team\n"; "the OpenAIRE technical team\n";
this.sendMail(repository.getRegisteredBy(), subject, message); this.sendMail(repository.getRegisteredby(), subject, message);
} catch (Exception e) { } 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; throw e;
} }
} }
@ -661,7 +661,7 @@ public class EmailUtilsImpl implements EmailUtils {
public void sendAdminUpdateInterfaceEmail(Repository repository, String comment, RepositoryInterface repositoryInterface, Authentication authentication) throws Exception { public void sendAdminUpdateInterfaceEmail(Repository repository, String comment, RepositoryInterface repositoryInterface, Authentication authentication) throws Exception {
try { try {
String subject = "OpenAIRE interface update request started for " + String subject = "OpenAIRE interface update request started for " +
repository.getDatasourceType() + "[" + repository.getOfficialName() + "]"; repository.getEoscDatasourceType() + "[" + repository.getOfficialname() + "]";
String message = "Dear administrator" + ",\n" + String message = "Dear administrator" + ",\n" +
"\n" + "\n" +
@ -669,7 +669,7 @@ public class EmailUtilsImpl implements EmailUtils {
"Base URL: " + repositoryInterface.getBaseurl() + "\n" + "Base URL: " + repositoryInterface.getBaseurl() + "\n" +
"Set: " + repositoryInterface.getAccessSet() + "\n" + "Set: " + repositoryInterface.getAccessSet() + "\n" +
"Guidelines: " + repositoryInterface.getCompatibilityOverride() + "\n\n" + "Guidelines: " + repositoryInterface.getCompatibilityOverride() + "\n\n" +
"for " + repository.getDatasourceType() + "[" + repository.getOfficialName() + "].\n"; "for " + repository.getEoscDatasourceType() + "[" + repository.getOfficialname() + "].\n";
if (comment != null) if (comment != null)
message += "\nThe users comment was '" + comment + "'\n"; message += "\nThe users comment was '" + comment + "'\n";
@ -694,7 +694,7 @@ public class EmailUtilsImpl implements EmailUtils {
public void sendUserUpdateInterfaceEmail(Repository repository, String comment, RepositoryInterface repositoryInterface, Authentication authentication) throws Exception { public void sendUserUpdateInterfaceEmail(Repository repository, String comment, RepositoryInterface repositoryInterface, Authentication authentication) throws Exception {
try { try {
String subject = "OpenAIRE interface update request started for " + String subject = "OpenAIRE interface update request started for " +
repository.getDatasourceType() + "[" + repository.getOfficialName() + "]"; repository.getEoscDatasourceType() + "[" + repository.getOfficialname() + "]";
// String message = "Dear " + ((OIDCAuthenticationToken) authentication).getUserInfo().getName() + ",\n" + // String message = "Dear " + ((OIDCAuthenticationToken) authentication).getUserInfo().getName() + ",\n" +
String message = "Dear user,\n" + String message = "Dear user,\n" +
@ -703,7 +703,7 @@ public class EmailUtilsImpl implements EmailUtils {
"Base URL: " + repositoryInterface.getBaseurl() + "\n" + "Base URL: " + repositoryInterface.getBaseurl() + "\n" +
"Set: " + repositoryInterface.getAccessSet() + "\n" + "Set: " + repositoryInterface.getAccessSet() + "\n" +
"Guidelines: " + repositoryInterface.getCompatibilityOverride() + "\n\n" + "Guidelines: " + repositoryInterface.getCompatibilityOverride() + "\n\n" +
"for " + repository.getDatasourceType() + "[" + repository.getOfficialName() + "].\n"; "for " + repository.getEoscDatasourceType() + "[" + repository.getOfficialname() + "].\n";
if (comment != null) { if (comment != null) {
message += "\n Your comment was '" + comment + "'\n"; message += "\n Your comment was '" + comment + "'\n";
@ -716,10 +716,10 @@ public class EmailUtilsImpl implements EmailUtils {
"Regards,\n" + "Regards,\n" +
"the OpenAIRE technical team\n"; "the OpenAIRE technical team\n";
this.sendMail(repository.getRegisteredBy(), subject, message); this.sendMail(repository.getRegisteredby(), subject, message);
} catch (Exception e) { } 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; throw e;
} }
} }

View File

@ -4,7 +4,7 @@ package eu.dnetlib.repo.manager.service;
import eu.dnetlib.domain.data.PiwikInfo; import eu.dnetlib.domain.data.PiwikInfo;
import eu.dnetlib.repo.manager.domain.OrderByField; import eu.dnetlib.repo.manager.domain.OrderByField;
import eu.dnetlib.repo.manager.domain.OrderByType; import eu.dnetlib.repo.manager.domain.OrderByType;
import eu.dnetlib.repo.manager.domain.RepositoryServiceException; import eu.dnetlib.repo.manager.exception.RepositoryServiceException;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import java.util.List; import java.util.List;

View File

@ -5,7 +5,7 @@ import eu.dnetlib.domain.data.PiwikInfo;
import eu.dnetlib.repo.manager.domain.Repository; import eu.dnetlib.repo.manager.domain.Repository;
import eu.dnetlib.repo.manager.domain.OrderByField; import eu.dnetlib.repo.manager.domain.OrderByField;
import eu.dnetlib.repo.manager.domain.OrderByType; import eu.dnetlib.repo.manager.domain.OrderByType;
import eu.dnetlib.repo.manager.domain.RepositoryServiceException; import eu.dnetlib.repo.manager.exception.RepositoryServiceException;
import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.codec.digest.DigestUtils;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;

View File

@ -3,12 +3,12 @@ package eu.dnetlib.repo.manager.service;
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.*;
import eu.dnetlib.repo.manager.exception.RepositoryServiceException;
import eu.dnetlib.repo.manager.exception.ResourceNotFoundException; import eu.dnetlib.repo.manager.exception.ResourceNotFoundException;
import org.json.JSONException; import org.json.JSONException;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import java.io.IOException; import java.io.IOException;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;

View File

@ -11,6 +11,8 @@ import eu.dnetlib.domain.enabling.Vocabulary;
import eu.dnetlib.domain.functionality.validator.JobForValidation; import eu.dnetlib.domain.functionality.validator.JobForValidation;
import eu.dnetlib.repo.manager.domain.*; import eu.dnetlib.repo.manager.domain.*;
import eu.dnetlib.repo.manager.domain.dto.Role; import eu.dnetlib.repo.manager.domain.dto.Role;
import eu.dnetlib.repo.manager.exception.BrokerException;
import eu.dnetlib.repo.manager.exception.RepositoryServiceException;
import eu.dnetlib.repo.manager.exception.ResourceNotFoundException; import eu.dnetlib.repo.manager.exception.ResourceNotFoundException;
import eu.dnetlib.repo.manager.service.aai.registry.AaiRegistryService; import eu.dnetlib.repo.manager.service.aai.registry.AaiRegistryService;
import eu.dnetlib.repo.manager.service.security.AuthoritiesUpdater; import eu.dnetlib.repo.manager.service.security.AuthoritiesUpdater;
@ -72,7 +74,7 @@ public class RepositoryServiceImpl implements RepositoryService {
@Value("${services.provide.usageStatisticsNumbersBaseURL}") @Value("${services.provide.usageStatisticsNumbersBaseURL}")
private String usageStatisticsNumbersBaseURL; private String usageStatisticsNumbersBaseURL;
private Converter converter; private final Converter converter;
private static final Map<String, List<String>> dataSourceClass = new HashMap<>(); private static final Map<String, List<String>> dataSourceClass = new HashMap<>();
private static final Map<String, String> invertedDataSourceClass = new HashMap<>(); private static final Map<String, String> invertedDataSourceClass = new HashMap<>();
@ -113,31 +115,19 @@ public class RepositoryServiceImpl implements RepositoryService {
LOGGER.debug("Updated version!"); LOGGER.debug("Updated version!");
for (String key : this.getVocabulary("dnet:datasource_typologies").getAsMap().keySet()) { for (String key : this.getVocabulary("dnet:datasource_typologies").getAsMap().keySet()) {
if (key.contains("pubsrepository")) { // do not change order <-- if (key.contains("aggregator")) {
dataSourceClass.putIfAbsent("aggregator", new ArrayList<>());
dataSourceClass.get("aggregator").add(key);
} else if (key.contains("crissystem")) {
dataSourceClass.putIfAbsent("dris", new ArrayList<>());
dataSourceClass.get("dris").add(key);
} else if (key.contains("pubsrepository::journal")) { // do not change order -->
dataSourceClass.putIfAbsent("journal", Collections.singletonList("pubsrepository::journal"));
} else if (key.contains("pubsrepository")) { // do not change order <--
dataSourceClass.putIfAbsent("opendoar", new ArrayList<>()); dataSourceClass.putIfAbsent("opendoar", new ArrayList<>());
dataSourceClass.get("opendoar").add(key); dataSourceClass.get("opendoar").add(key);
} else if (key.contains("datarepository")) { } else if (key.contains("datarepository")) {
dataSourceClass.putIfAbsent("re3data", Collections.singletonList("datarepository::unknown")); 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 { 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.setInterfaces(this.getRepositoryInterface(r.getId()));
r.setPiwikInfo(piWikService.getPiwikSiteForRepo(r.getId())); r.setPiwikInfo(piWikService.getPiwikSiteForRepo(r.getId()));
// r.setCountryName(getCountryName(r.getCountryCode()));
return r; return r;
} }
@ -350,14 +333,26 @@ public class RepositoryServiceImpl implements RepositoryService {
@Override @Override
public List<RepositorySnippet> getRepositoriesSnippetsOfUser(String page, String size) throws Exception { public List<RepositorySnippet> getRepositoriesSnippetsOfUser(String page, String size) throws Exception {
Collection<String> repoIds = roleMappingService.getRepoIdsByRoleIds(authorizationService.getUserRoles()); return getRepositoriesSnippetsOfUser(null, page, size);
return getRepositoriesSnippets(new ArrayList<>(repoIds));
} }
@Override @Override
public List<RepositorySnippet> getRepositoriesSnippetsOfUser(String userEmail, String page, String size) throws Exception { public List<RepositorySnippet> getRepositoriesSnippetsOfUser(String userEmail, String page, String size) throws Exception {
Collection<String> repoIds = roleMappingService.getRepoIdsByRoleIds(authorizationService.getUserRoles(userEmail)); int from = Integer.parseInt(page) * Integer.parseInt(size);
return getRepositoriesSnippets(new ArrayList<>(repoIds)); int to = from + Integer.parseInt(size);
List<String> 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 @Override
@ -486,26 +481,37 @@ public class RepositoryServiceImpl implements RepositoryService {
LOGGER.debug("storing " + datatype + " repository with id: " + repository.getId()); LOGGER.debug("storing " + datatype + " repository with id: " + repository.getId());
// repository.setCountryCode(countriesMap.get(repository.getCountryName()));
repository.setActivationId(UUID.randomUUID().toString()); 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")) { if (datatype.equals("journal")) {
repository.setEoscDatasourceType("Journal archive");
repository.setId("openaire____::issn" + repository.getIssn()); repository.setId("openaire____::issn" + repository.getIssn());
repository.setNamespacePrefix("issn" + repository.getIssn()); repository.setNamespaceprefix("issn" + repository.getIssn());
this.storeRepository(repository, SecurityContextHolder.getContext().getAuthentication()); this.storeRepository(repository, SecurityContextHolder.getContext().getAuthentication());
} else if (datatype.equals("aggregator")) { } else if (datatype.equals("aggregator")) {
repository.setId("openaire____::" + DigestUtils.md5Hex(repository.getOfficialName())); repository.setEoscDatasourceType("Aggregator");
repository.setNamespacePrefix(DigestUtils.md5Hex(repository.getOfficialName()).substring(0, 12)); repository.setId("openaire____::" + DigestUtils.md5Hex(repository.getOfficialname()));
repository.setNamespaceprefix(DigestUtils.md5Hex(repository.getOfficialname()).substring(0, 12));
this.storeRepository(repository, SecurityContextHolder.getContext().getAuthentication()); this.storeRepository(repository, SecurityContextHolder.getContext().getAuthentication());
} else { } else {
if (repository.getTypology().contains("crissystem")) {
repository.setEoscDatasourceType("CRIS system");
} else {
repository.setEoscDatasourceType("Repository");
}
this.latentUpdate(repository, SecurityContextHolder.getContext().getAuthentication()); this.latentUpdate(repository, SecurityContextHolder.getContext().getAuthentication());
} }
// TODO: move the following code elsewhere (creation and assignment of role to user) ?? // TODO: move the following code elsewhere (creation and assignment of role to user) ??
// Create new role // Create new role
String newRoleName = roleMappingService.getRoleIdByRepoId(repository.getId()); String newRoleName = roleMappingService.getRoleIdByRepoId(repository.getId());
Role newRole = new Role(newRoleName, repository.getOfficialName()); Role newRole = new Role(newRoleName, repository.getOfficialname());
Integer couId = null; Integer couId = null;
try { try {
couId = registryCalls.createRole(newRole); couId = registryCalls.createRole(newRole);
@ -598,7 +604,7 @@ public class RepositoryServiceImpl implements RepositoryService {
Date utilDate = new Date(); Date utilDate = new Date();
Timestamp date = new Timestamp(utilDate.getTime()); Timestamp date = new Timestamp(utilDate.getTime());
repository.setDateOfCollection(date); repository.setDateofcollection(date);
repository.setAggregator("OPENAIRE"); repository.setAggregator("OPENAIRE");
// repository.setCountryCode(countriesMap.get(repository.getCountryName())); // repository.setCountryCode(countriesMap.get(repository.getCountryName()));
@ -698,8 +704,8 @@ public class RepositoryServiceImpl implements RepositoryService {
job.setDatasourceId(repo.getId()); job.setDatasourceId(repo.getId());
job.setDesiredCompatibilityLevel(iFace.getCompatibilityOverride()); job.setDesiredCompatibilityLevel(iFace.getCompatibilityOverride());
job.setInterfaceId(iFace.getId()); job.setInterfaceId(iFace.getId());
job.setOfficialName(repo.getOfficialName()); job.setOfficialName(repo.getOfficialname());
job.setRepoType(repo.getDatasourceType()); job.setRepoType(repo.getEoscDatasourceType());
job.setUserEmail(userEmail); job.setUserEmail(userEmail);
job.setValidationSet((iFace.getAccessSet().isEmpty() ? "none" : iFace.getAccessSet())); job.setValidationSet((iFace.getAccessSet().isEmpty() ? "none" : iFace.getAccessSet()));
job.setRecords(-1); job.setRecords(-1);
@ -845,6 +851,12 @@ public class RepositoryServiceImpl implements RepositoryService {
if (entry.getKey().contains("crissystem")) if (entry.getKey().contains("crissystem"))
retMap.put(entry.getKey(), entry.getValue()); 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); return filterResults(retMap, mode);
@ -853,11 +865,14 @@ public class RepositoryServiceImpl implements RepositoryService {
private Map<String, String> filterResults(Map<String, String> map, String mode) { private Map<String, String> filterResults(Map<String, String> map, String mode) {
HashMap<String, String> filteredMap = new HashMap<>(); HashMap<String, String> filteredMap = new HashMap<>();
for (String key : map.keySet()) if (map != null && mode != null) {
if (dataSourceClass.get(mode).contains(key)) for (String key : map.keySet())
filteredMap.put(key, map.get(key)); if (dataSourceClass.get(mode).contains(key))
filteredMap.put(key, map.get(key));
return filteredMap; return filteredMap;
}
return Collections.emptyMap();
} }
@Override @Override

View File

@ -5,7 +5,7 @@ import eu.dnetlib.domain.functionality.validator.JobForValidation;
import eu.dnetlib.domain.functionality.validator.RuleSet; import eu.dnetlib.domain.functionality.validator.RuleSet;
import eu.dnetlib.domain.functionality.validator.StoredJob; import eu.dnetlib.domain.functionality.validator.StoredJob;
import eu.dnetlib.repo.manager.domain.InterfaceInformation; 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 eu.dnetlib.repo.manager.exception.ResourceNotFoundException;
import org.json.JSONException; import org.json.JSONException;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;

View File

@ -5,7 +5,7 @@ import eu.dnetlib.repo.manager.domain.RepositoryInterface;
import eu.dnetlib.domain.functionality.validator.*; import eu.dnetlib.domain.functionality.validator.*;
import eu.dnetlib.repo.manager.domain.Constants; import eu.dnetlib.repo.manager.domain.Constants;
import eu.dnetlib.repo.manager.domain.InterfaceInformation; 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.CrisValidatorUtils;
import eu.dnetlib.repo.manager.utils.OaiTools; import eu.dnetlib.repo.manager.utils.OaiTools;
import gr.uoa.di.driver.util.ServiceLocator; import gr.uoa.di.driver.util.ServiceLocator;