From df23be95ae32b439ea18f4c94fff386147276e3d Mon Sep 17 00:00:00 2001 From: "ioannis.diplas" Date: Fri, 8 Nov 2019 12:56:47 +0000 Subject: [PATCH] String comparison for NULL equity --- pom.xml | 23 +++++++++++++++++++ .../manager/controllers/PiWikController.java | 4 ++-- .../controllers/RepositoryController.java | 15 ++++++------ .../manager/service/DashboardServiceImpl.java | 4 ++++ .../service/RepositoryServiceImpl.java | 19 ++++++++++++++- 5 files changed, 55 insertions(+), 10 deletions(-) diff --git a/pom.xml b/pom.xml index 87d08bd..4429d48 100644 --- a/pom.xml +++ b/pom.xml @@ -298,6 +298,29 @@ false + + cz.habarta.typescript-generator + typescript-generator-maven-plugin + 2.1.406 + + + java to typeScript + + generate + + + jackson2 + implementationFile + asClasses + + eu.dnetlib.domain.functionality.validator.* + + target/operation.ts + module + + + + uoa-repository-manager-service diff --git a/src/main/java/eu/dnetlib/repo/manager/controllers/PiWikController.java b/src/main/java/eu/dnetlib/repo/manager/controllers/PiWikController.java index 566631d..ef9d0ae 100644 --- a/src/main/java/eu/dnetlib/repo/manager/controllers/PiWikController.java +++ b/src/main/java/eu/dnetlib/repo/manager/controllers/PiWikController.java @@ -48,13 +48,13 @@ public class PiWikController { @RequestMapping(value = "/getPiwikSiteForRepo/{repositoryId}" , method = RequestMethod.GET,produces = MediaType.APPLICATION_JSON_VALUE) @ResponseBody - @PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_PROVIDE_ADMIN') or ((@repositoryService.getRepositoryById(#repositoryId).registeredBy==authentication.userInfo.email or @repositoryService.getRepositoryById(#repositoryId).registeredBy==null) and hasRole('ROLE_USER'))") + @PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_PROVIDE_ADMIN') or ((@repositoryService.getRepositoryById(#repositoryId).registeredBy==authentication.userInfo.email or @repositoryService.getRepositoryById(#repositoryId).registeredBy=='null') and hasRole('ROLE_USER'))") public PiwikInfo getPiwikSiteForRepo(@PathVariable("repositoryId") String repositoryId) { return piWikService.getPiwikSiteForRepo(repositoryId); } @RequestMapping(value = "/savePiwikInfo" , method = RequestMethod.POST,produces = MediaType.APPLICATION_JSON_VALUE) - @PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_PROVIDE_ADMIN') or ((@repositoryService.getRepositoryById(#piwikInfo.repositoryId).registeredBy==authentication.userInfo.email or @repositoryService.getRepositoryById(#piwikInfo.repositoryId).registeredBy==null) and hasRole('ROLE_USER'))") + @PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_PROVIDE_ADMIN') or ((@repositoryService.getRepositoryById(#piwikInfo.repositoryId).registeredBy==authentication.userInfo.email or @repositoryService.getRepositoryById(#piwikInfo.repositoryId).registeredBy=='null') and hasRole('ROLE_USER'))") public PiwikInfo savePiwikInfo(@RequestBody PiwikInfo piwikInfo) { return piWikService.savePiwikInfo(piwikInfo); } diff --git a/src/main/java/eu/dnetlib/repo/manager/controllers/RepositoryController.java b/src/main/java/eu/dnetlib/repo/manager/controllers/RepositoryController.java index 32dee1d..2f760ac 100644 --- a/src/main/java/eu/dnetlib/repo/manager/controllers/RepositoryController.java +++ b/src/main/java/eu/dnetlib/repo/manager/controllers/RepositoryController.java @@ -75,9 +75,10 @@ public class RepositoryController { @RequestMapping(value = "/getRepositoryById/{id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @ResponseBody - @PostAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_PROVIDE_ADMIN') or ((returnObject.registeredBy==authentication.userInfo.email or returnObject.registeredBy==null) and hasRole('ROLE_USER'))") + @PostAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_PROVIDE_ADMIN') or ((returnObject.registeredBy=='null' or returnObject.registeredBy==authentication.userInfo.email) and hasRole('ROLE_USER'))") public Repository getRepositoryById(@PathVariable("id") String id) throws JSONException,ResourceNotFoundException { - return repositoryService.getRepositoryById(id); + Repository repo = repositoryService.getRepositoryById(id); + return repo; } @RequestMapping(value = "/getRepositoryAggregations/{id}", method = RequestMethod.GET, @@ -106,7 +107,7 @@ public class RepositoryController { @RequestMapping(value = "/getRepositoryInterface/{id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @ResponseBody - @PostAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_PROVIDE_ADMIN') or ((@repositoryService.getRepositoryById(#id).registeredBy==authentication.userInfo.email or @repositoryService.getRepositoryById(#id).registeredBy==null ) and hasRole('ROLE_USER'))") + @PostAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_PROVIDE_ADMIN') or ((@repositoryService.getRepositoryById(#id).registeredBy==authentication.userInfo.email or @repositoryService.getRepositoryById(#id).registeredBy=='null' ) and hasRole('ROLE_USER'))") public List getRepositoryInterface(@PathVariable("id") String id) throws JSONException { return repositoryService.getRepositoryInterface(id); } @@ -114,7 +115,7 @@ public class RepositoryController { @RequestMapping(value = "/addRepository", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) @ResponseBody - @PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_PROVIDE_ADMIN') or ((#repository.registeredBy==authentication.userInfo.email or returnObject.registeredBy==null) and hasRole('ROLE_USER'))") + @PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_PROVIDE_ADMIN') or ((#repository.registeredBy==authentication.userInfo.email or returnObject.registeredBy=='null') and hasRole('ROLE_USER'))") public Repository addRepository(@RequestParam("datatype") String datatype, @RequestBody Repository repository) throws Exception { @@ -145,7 +146,7 @@ public class RepositoryController { @RequestMapping(value = "/updateRepository", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) @ResponseBody - @PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_PROVIDE_ADMIN') or ((#repository.registeredBy==authentication.userInfo.email or #repository.registeredBy==null) and hasRole('ROLE_USER'))") + @PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_PROVIDE_ADMIN') or ((#repository.registeredBy==authentication.userInfo.email or #repository.registeredBy=='null') and hasRole('ROLE_USER'))") public Repository updateRepository(@RequestBody Repository repository,Authentication authentication) throws Exception { return repositoryService.updateRepository(repository, authentication); } @@ -160,7 +161,7 @@ public class RepositoryController { @RequestMapping(value = "/addInterface", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) @ResponseBody - @PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_PROVIDE_ADMIN') or ((@repositoryService.getRepositoryById(#repoId).registeredBy==authentication.userInfo.email or @repositoryService.getRepositoryById(#repoId).registeredBy==null) and hasRole('ROLE_USER'))") + @PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_PROVIDE_ADMIN') or ((@repositoryService.getRepositoryById(#repoId).registeredBy==authentication.userInfo.email or @repositoryService.getRepositoryById(#repoId).registeredBy=='null') and hasRole('ROLE_USER'))") public RepositoryInterface addRepositoryInterface(@RequestParam("datatype") String datatype, @RequestParam("repoId") String repoId, @RequestParam("registeredBy") String registeredBy, @@ -217,7 +218,7 @@ public class RepositoryController { @RequestMapping(value = "/updateRepositoryInterface", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) @ResponseBody - @PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_PROVIDE_ADMIN') or ((@repositoryService.getRepositoryById(#repoId).registeredBy==authentication.userInfo.email or @repositoryService.getRepositoryById(#repoId).registeredBy==null) and hasRole('ROLE_USER'))") + @PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_PROVIDE_ADMIN') or ((@repositoryService.getRepositoryById(#repoId).registeredBy==authentication.userInfo.email or @repositoryService.getRepositoryById(#repoId).registeredBy=='null') and hasRole('ROLE_USER'))") public RepositoryInterface updateRepositoryInterface(@RequestParam("repoId") String repoId, @RequestParam("registeredBy") String registeredBy, @RequestBody RepositoryInterface repositoryInterface) throws Exception { diff --git a/src/main/java/eu/dnetlib/repo/manager/service/DashboardServiceImpl.java b/src/main/java/eu/dnetlib/repo/manager/service/DashboardServiceImpl.java index 4307f6f..c0379d6 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/DashboardServiceImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/DashboardServiceImpl.java @@ -49,6 +49,7 @@ public class DashboardServiceImpl implements DashboardService { repositorySummaryInfo.setLogoURL(repository.getLogoUrl()); //TODO getRepositoryAggregations returns only the 20 more recent items. Is it positive that we will find an indexed version there? + long start = System.currentTimeMillis(); List aggregationDetailsList = repositoryService.getRepositoryAggregations(repository.getId(),0,20); for(AggregationDetails aggregationDetails: aggregationDetailsList) { if(aggregationDetails.getIndexedVersion()) { @@ -57,6 +58,9 @@ public class DashboardServiceImpl implements DashboardService { break; } } + long end = System.currentTimeMillis(); + + System.out.println("Got repo aggregations in "+ (end-start)+"ms"); try { diff --git a/src/main/java/eu/dnetlib/repo/manager/service/RepositoryServiceImpl.java b/src/main/java/eu/dnetlib/repo/manager/service/RepositoryServiceImpl.java index 12544d7..525576b 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/RepositoryServiceImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/RepositoryServiceImpl.java @@ -248,12 +248,20 @@ public class RepositoryServiceImpl implements RepositoryService { requestFilter.setRegisteredby(userEmail); try{ + long start = System.currentTimeMillis(); String rs = restTemplate.postForObject(uriComponents.toUri(),requestFilter, String.class); + long end = System.currentTimeMillis(); + System.out.println("POST request finished in " + (end-start)+"ms"); + start=System.currentTimeMillis(); List repos = Converter.jsonToRepositoryList(new JSONObject(rs)); + end=System.currentTimeMillis(); + System.out.println("Converting json to repo list finished in " + (end-start)+"ms"); + start=System.currentTimeMillis(); for (Repository r : repos) this.updateRepositoryInfo(r); - + end=System.currentTimeMillis(); + System.out.println("Updating "+repos.size()+" repository infos in " + (end-start)+"ms"); return repos; }catch (Exception e){ LOGGER.debug("Exception on getRepositoriesOfUser" , e); @@ -300,12 +308,21 @@ public class RepositoryServiceImpl implements RepositoryService { List aggregationHistory = new ArrayList<>(); try { + long start = System.currentTimeMillis(); String rs = restTemplate.postForObject(uriComponents.toUri(),requestFilter, String.class); + long end = System.currentTimeMillis(); + + System.out.println("Aggregations request through rest template took " + (end-start)+"ms"); JSONObject repository = new JSONObject(rs); if(repository.getJSONArray("datasourceInfo").length() == 0) return aggregationHistory; + + start = System.currentTimeMillis(); aggregationHistory.addAll(Converter.getAggregationHistoryFromJson(repository.getJSONArray("datasourceInfo").getJSONObject(0))); + end = System.currentTimeMillis(); + + System.out.println("Getting aggregations history from json " + (end-start)+"ms"); return aggregationHistory.size() == 0? aggregationHistory : aggregationHistory.stream() .sorted(Comparator.comparing(AggregationDetails::getDate).reversed()) .limit(size)