From edd2e4aa02b6abf137304d42c59215f28372cda3 Mon Sep 17 00:00:00 2001 From: "panagiotis.kanakakis" Date: Tue, 27 Feb 2018 13:41:12 +0000 Subject: [PATCH] 1. Change hash function on piwik. 2. Bug fixes on repository / broker / validator api 3/ Add field on simple subscription domain. --- .../service/controllers/BrokerApi.java | 4 +- .../service/controllers/BrokerApiImpl.java | 4 +- .../service/controllers/PiWikApiImpl.java | 13 ++---- .../service/controllers/RepositoryApi.java | 2 +- .../controllers/RepositoryApiImpl.java | 41 ++++--------------- .../service/controllers/ValidatorApi.java | 2 +- .../shared/broker/SimpleSubscriptionDesc.java | 19 +++++++++ .../manager/shared/broker/Subscription.java | 9 ++++ 8 files changed, 44 insertions(+), 50 deletions(-) diff --git a/src/main/java/eu/dnetlib/repo/manager/service/controllers/BrokerApi.java b/src/main/java/eu/dnetlib/repo/manager/service/controllers/BrokerApi.java index 393412d..c9d4bd3 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/controllers/BrokerApi.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/controllers/BrokerApi.java @@ -72,8 +72,8 @@ public interface BrokerApi { @ResponseBody EventsPage getNotificationsBySubscriptionId(String subscriptionId,String page,String size) throws BrokerException; - @RequestMapping(value = "/getSubscriptionsOfUser/{userEmail}" , method = RequestMethod.GET + /*@RequestMapping(value = "/getSubscriptionsOfUser/{userEmail}" , method = RequestMethod.GET ,produces = MediaType.APPLICATION_JSON_VALUE) - @ResponseBody + @ResponseBody*/ Map> getSubscriptionsOfUser(String userEmail) throws BrokerException; } diff --git a/src/main/java/eu/dnetlib/repo/manager/service/controllers/BrokerApiImpl.java b/src/main/java/eu/dnetlib/repo/manager/service/controllers/BrokerApiImpl.java index b36ae62..e985b26 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/controllers/BrokerApiImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/controllers/BrokerApiImpl.java @@ -367,8 +367,8 @@ public class BrokerApiImpl implements BrokerApi { return resp.getBody(); } - @Override - public Map> getSubscriptionsOfUser(@PathVariable("userEmail") String userEmail) + //@Override + public Map> getSubscriptionsOfUser(/*@PathVariable("userEmail")*/ String userEmail) throws BrokerException { Map> simpleSubs = getSimpleSubscriptionsOfUser(userEmail); diff --git a/src/main/java/eu/dnetlib/repo/manager/service/controllers/PiWikApiImpl.java b/src/main/java/eu/dnetlib/repo/manager/service/controllers/PiWikApiImpl.java index 38621d1..a923820 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/controllers/PiWikApiImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/controllers/PiWikApiImpl.java @@ -2,6 +2,7 @@ package eu.dnetlib.repo.manager.service.controllers; import eu.dnetlib.domain.data.PiwikInfo; import eu.dnetlib.utils.md5.MD5; +import org.apache.commons.codec.digest.DigestUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.dao.EmptyResultDataAccessException; @@ -79,16 +80,8 @@ public class PiWikApiImpl implements PiWikApi{ @Override public String getOpenaireId(@PathVariable("repositoryId") String repositoryId) { - LOGGER.debug("Getting openaire id for repository: " + repositoryId); - try { - if (repositoryId != null && repositoryId.contains("::")) { - return repositoryId.split("::")[0] + "::" + MD5.encrypt2Hex(repositoryId.split("::")[1]); - } - else - return null; - } catch (NoSuchAlgorithmException e) { - LOGGER.debug(e); - } + if (repositoryId != null && repositoryId.contains("::")) + return repositoryId.split("::")[0] + "::" + DigestUtils.md5Hex(repositoryId.split("::")[1]); return null; } diff --git a/src/main/java/eu/dnetlib/repo/manager/service/controllers/RepositoryApi.java b/src/main/java/eu/dnetlib/repo/manager/service/controllers/RepositoryApi.java index b475d75..0321348 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/controllers/RepositoryApi.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/controllers/RepositoryApi.java @@ -65,7 +65,7 @@ public interface RepositoryApi { @RequestMapping(value = "/addRepository", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) @ResponseBody - void addRepository(String datatype, Repository repository) throws Exception; + Repository addRepository(String datatype, Repository repository) throws Exception; @RequestMapping(value = "/deleteInterface", method = RequestMethod.DELETE) diff --git a/src/main/java/eu/dnetlib/repo/manager/service/controllers/RepositoryApiImpl.java b/src/main/java/eu/dnetlib/repo/manager/service/controllers/RepositoryApiImpl.java index a16dfc1..a63ef55 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/controllers/RepositoryApiImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/controllers/RepositoryApiImpl.java @@ -227,12 +227,14 @@ public class RepositoryApiImpl implements RepositoryApi { public Repository getRepositoryById(@PathVariable("id") String id) throws JSONException { LOGGER.debug("Retreiving repositories with id : " + id ); + Repository repo = null; UriComponents uriComponents = searchDatasource("0","100"); RequestFilter requestFilter = new RequestFilter(); requestFilter.setId(id); String rs = restTemplate.postForObject(uriComponents.toUri(),requestFilter, String.class); JSONArray jsonArray = (JSONArray) new JSONObject(rs).get("datasourceInfo"); - Repository repo = Converter.jsonToRepositoryObject(jsonArray.getJSONObject(0)); + if(jsonArray.length() > 0) + repo = Converter.jsonToRepositoryObject(jsonArray.getJSONObject(0)); if (repo != null) getRepositoryInfo(repo); return repo; @@ -294,23 +296,9 @@ public class RepositoryApiImpl implements RepositoryApi { } @Override - public void addRepository(@RequestParam("datatype") String datatype, - @RequestBody Repository repository) throws Exception { + public Repository addRepository(@RequestParam("datatype") String datatype, + @RequestBody Repository repository) throws Exception { - /*JSONObject json_params = new JSONObject(params); - String datatype = json_params.getString("datatype"); - String json_repository = json_params.getString("repository"); - Repository repository = null;*/ - ObjectMapper mapper = new ObjectMapper(); - mapper.disable(DeserializationFeature.FAIL_ON_UNK‌​NOWN_PROPERTIES); - try { - String json_repo = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(repository); - LOGGER.debug("repository -> " + json_repo); - // repository = mapper.readValue(json_repository, Repository.class); - } catch (Exception e) { - LOGGER.debug("Error parsing repository ", e); - throw e; - } repository = this.setRepositoryFeatures(datatype,repository); LOGGER.debug("storing " + datatype + " repository with id: " + repository.getId()); @@ -346,6 +334,7 @@ public class RepositoryApiImpl implements RepositoryApi { } } } + return repository; } private void updateRepository(Repository repository) { @@ -451,7 +440,7 @@ public class RepositoryApiImpl implements RepositoryApi { iFace.setRemovable(true); iFace.setAccessProtocol("oai"); iFace.setMetadataIdentifierPath("//*[local-name()='header']/*[local-name()='identifier']"); - // iFace.setId("api_________::" + repo.getId() + "::" + UUID.randomUUID().toString().substring(0, 8)); + iFace.setId("api_________::" + repo.getId() + "::" + UUID.randomUUID().toString().substring(0, 8)); if (iFace.getAccessSet().isEmpty()) { LOGGER.debug("set is empty: " + iFace.getAccessSet()); iFace.removeAccessSet(); @@ -488,21 +477,6 @@ public class RepositoryApiImpl implements RepositoryApi { public RepositoryInterface addRepositoryInterface(@RequestParam("datatype") String datatype, @RequestParam("repoId") String repoId, @RequestBody RepositoryInterface repositoryInterface) throws JSONException { - - /* JSONObject json_params = new JSONObject(params); - // LOGGER.debug(params); - //TODO iFace parameter from gui. Object to json - String datatype = json_params.getString("datatype"); - String repoId = json_params.getString("repoId"); - String json_iFace = json_params.getString("iFace"); - RepositoryInterface iFace = null; - - ObjectMapper mapper = new ObjectMapper(); - try { - iFace = mapper.readValue(json_iFace, RepositoryInterface.class); - } catch (Exception e1) { - LOGGER.debug("Error parsing repository interface ", e1); - }*/ return registerRepositoryInterface(repoId,repositoryInterface,datatype); } @@ -511,7 +485,6 @@ public class RepositoryApiImpl implements RepositoryApi { try { e = this.getRepositoryById(repoId); iFace = createRepositoryInterface(e,iFace,datatype); - ObjectMapper mapper = new ObjectMapper(); String json_interface = Converter.repositoryInterfaceObjectToJson(e,iFace); LOGGER.debug("iFace equals -> " + json_interface); diff --git a/src/main/java/eu/dnetlib/repo/manager/service/controllers/ValidatorApi.java b/src/main/java/eu/dnetlib/repo/manager/service/controllers/ValidatorApi.java index 0c5cf90..1fbadcd 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/controllers/ValidatorApi.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/controllers/ValidatorApi.java @@ -58,7 +58,7 @@ public interface ValidatorApi { @ResponseBody int getStoredJobsTotalNumberNew(String user, String jobType, String validationStatus) throws ValidatorServiceException; - @RequestMapping(value = "/getInterfaceInformation/" , method = RequestMethod.GET,produces = MediaType.APPLICATION_JSON_VALUE) + @RequestMapping(value = "/getInterfaceInformation" , method = RequestMethod.GET,produces = MediaType.APPLICATION_JSON_VALUE) @ResponseBody InterfaceInformation getInterfaceInformation(String baseUrl) throws ValidationServiceException; } diff --git a/src/main/java/eu/dnetlib/repo/manager/shared/broker/SimpleSubscriptionDesc.java b/src/main/java/eu/dnetlib/repo/manager/shared/broker/SimpleSubscriptionDesc.java index f8ddec3..508ed08 100644 --- a/src/main/java/eu/dnetlib/repo/manager/shared/broker/SimpleSubscriptionDesc.java +++ b/src/main/java/eu/dnetlib/repo/manager/shared/broker/SimpleSubscriptionDesc.java @@ -2,6 +2,8 @@ package eu.dnetlib.repo.manager.shared.broker; import com.google.gwt.user.client.rpc.IsSerializable; +import java.util.Date; + /** * Created by stefanos on 10-Mar-17. */ @@ -11,6 +13,8 @@ public class SimpleSubscriptionDesc implements IsSerializable { private String datasource; private String topic; private long count; + private Date creationDate; + private Date lastNotificationDate; public SimpleSubscriptionDesc() { } @@ -54,4 +58,19 @@ public class SimpleSubscriptionDesc implements IsSerializable { this.count = count; } + public Date getCreationDate() { + return creationDate; + } + + public void setCreationDate(Date creationDate) { + this.creationDate = creationDate; + } + + public Date getLastNotificationDate() { + return lastNotificationDate; + } + + public void setLastNotificationDate(Date lastNotificationDate) { + this.lastNotificationDate = lastNotificationDate; + } } \ No newline at end of file diff --git a/src/main/java/eu/dnetlib/repo/manager/shared/broker/Subscription.java b/src/main/java/eu/dnetlib/repo/manager/shared/broker/Subscription.java index e5068a2..273648c 100644 --- a/src/main/java/eu/dnetlib/repo/manager/shared/broker/Subscription.java +++ b/src/main/java/eu/dnetlib/repo/manager/shared/broker/Subscription.java @@ -25,6 +25,8 @@ public class Subscription implements IsSerializable { private Date lastNotificationDate; + private Date creationDate; + private String conditions; private List conditionsAsList; @@ -96,5 +98,12 @@ public class Subscription implements IsSerializable { this.conditionsAsList = conditionsAsList; } + public Date getCreationDate() { + return creationDate; + } + + public void setCreationDate(Date creationDate) { + this.creationDate = creationDate; + } }