From f14049cc367df7c0d9e1a706b7adbe3da9c77d9e Mon Sep 17 00:00:00 2001 From: Costantino Perciante Date: Mon, 30 Jan 2017 16:58:22 +0000 Subject: [PATCH] imports changed due to updated ckan-library packages declaration. Social EndPoint is now switched to a GcoreEndpoint git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/data-catalogue/grsf-publisher-ws@141920 82a268e6-3cf1-43bd-a215-b396298e98cf --- .settings/org.eclipse.wst.common.component | 3 - distro/changelog.xml | 4 + pom.xml | 2 +- .../grsf_publish_ws/json/input/Base.java | 2 +- .../services/CommonServiceUtils.java | 2 +- .../services/GrsfPublisherFisheryService.java | 6 +- .../services/GrsfPublisherStockService.java | 6 +- .../utils/GcoreEndPointReaderSocial.java | 72 ++++++++++++ .../grsf_publish_ws/utils/HelperMethods.java | 13 ++- .../utils/ServiceEndPointReaderSocial.java | 103 ------------------ .../threads/AssociationToGroupThread.java | 4 +- .../utils/threads/ManageTimeSeriesThread.java | 2 +- .../grsf_publish_ws/JTests.java | 4 +- 13 files changed, 97 insertions(+), 126 deletions(-) create mode 100644 src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/GcoreEndPointReaderSocial.java delete mode 100644 src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/ServiceEndPointReaderSocial.java diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component index 236a27c..6caf699 100644 --- a/.settings/org.eclipse.wst.common.component +++ b/.settings/org.eclipse.wst.common.component @@ -3,9 +3,6 @@ - - uses - diff --git a/distro/changelog.xml b/distro/changelog.xml index 45f01ff..7302f64 100644 --- a/distro/changelog.xml +++ b/distro/changelog.xml @@ -1,4 +1,8 @@ + + Minor fixes + First Release diff --git a/pom.xml b/pom.xml index 37f17fe..2febc97 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ org.gcube.data-catalogue grsf-publisher-ws - 1.0.0-SNAPSHOT + 1.0.1-SNAPSHOT war grsf-publisher-ws diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/Base.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/Base.java index 159250f..1f3af83 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/Base.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/Base.java @@ -10,7 +10,7 @@ import javax.validation.constraints.Size; import org.gcube.data_catalogue.grsf_publish_ws.custom_annotations.CustomField; import org.gcube.data_catalogue.grsf_publish_ws.utils.HelperMethods; -import org.gcube.datacatalogue.ckanutillibrary.models.ResourceBean; +import org.gcube.datacatalogue.ckanutillibrary.server.models.ResourceBean; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/CommonServiceUtils.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/CommonServiceUtils.java index 76a11bd..b9cd6db 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/CommonServiceUtils.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/CommonServiceUtils.java @@ -23,7 +23,7 @@ import org.gcube.data_catalogue.grsf_publish_ws.json.input.TimeSeriesBean; import org.gcube.data_catalogue.grsf_publish_ws.utils.HelperMethods; import org.gcube.data_catalogue.grsf_publish_ws.utils.groups.Sources; import org.gcube.data_catalogue.grsf_publish_ws.utils.groups.Status; -import org.gcube.datacatalogue.ckanutillibrary.models.ResourceBean; +import org.gcube.datacatalogue.ckanutillibrary.server.models.ResourceBean; import org.slf4j.LoggerFactory; /** diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/GrsfPublisherFisheryService.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/GrsfPublisherFisheryService.java index bd8640d..04888a8 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/GrsfPublisherFisheryService.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/GrsfPublisherFisheryService.java @@ -41,9 +41,9 @@ import org.gcube.data_catalogue.grsf_publish_ws.utils.groups.Sources; import org.gcube.data_catalogue.grsf_publish_ws.utils.threads.AssociationToGroupThread; import org.gcube.data_catalogue.grsf_publish_ws.utils.threads.ManageTimeSeriesThread; import org.gcube.data_catalogue.grsf_publish_ws.utils.threads.WritePostCatalogueManagerThread; -import org.gcube.datacatalogue.ckanutillibrary.DataCatalogue; -import org.gcube.datacatalogue.ckanutillibrary.models.ResourceBean; -import org.gcube.datacatalogue.ckanutillibrary.models.RolesCkanGroupOrOrg; +import org.gcube.datacatalogue.ckanutillibrary.server.DataCatalogue; +import org.gcube.datacatalogue.ckanutillibrary.server.models.ResourceBean; +import org.gcube.datacatalogue.ckanutillibrary.shared.RolesCkanGroupOrOrg; import org.slf4j.LoggerFactory; import eu.trentorise.opendata.jackan.model.CkanDataset; diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/GrsfPublisherStockService.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/GrsfPublisherStockService.java index 95856dd..45fc83f 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/GrsfPublisherStockService.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/GrsfPublisherStockService.java @@ -41,9 +41,9 @@ import org.gcube.data_catalogue.grsf_publish_ws.utils.groups.Sources; import org.gcube.data_catalogue.grsf_publish_ws.utils.threads.AssociationToGroupThread; import org.gcube.data_catalogue.grsf_publish_ws.utils.threads.ManageTimeSeriesThread; import org.gcube.data_catalogue.grsf_publish_ws.utils.threads.WritePostCatalogueManagerThread; -import org.gcube.datacatalogue.ckanutillibrary.DataCatalogue; -import org.gcube.datacatalogue.ckanutillibrary.models.ResourceBean; -import org.gcube.datacatalogue.ckanutillibrary.models.RolesCkanGroupOrOrg; +import org.gcube.datacatalogue.ckanutillibrary.server.DataCatalogue; +import org.gcube.datacatalogue.ckanutillibrary.server.models.ResourceBean; +import org.gcube.datacatalogue.ckanutillibrary.shared.RolesCkanGroupOrOrg; import org.slf4j.LoggerFactory; import eu.trentorise.opendata.jackan.model.CkanDataset; diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/GcoreEndPointReaderSocial.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/GcoreEndPointReaderSocial.java new file mode 100644 index 0000000..bf1edbe --- /dev/null +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/GcoreEndPointReaderSocial.java @@ -0,0 +1,72 @@ +package org.gcube.data_catalogue.grsf_publish_ws.utils; + +import static org.gcube.resources.discovery.icclient.ICFactory.client; +import static org.gcube.resources.discovery.icclient.ICFactory.queryFor; + +import java.util.List; + +import org.gcube.common.resources.gcore.GCoreEndpoint; +import org.gcube.common.scope.api.ScopeProvider; +import org.gcube.resources.discovery.client.api.DiscoveryClient; +import org.gcube.resources.discovery.client.queries.api.SimpleQuery; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Retrieve the endpoint for the Social Networking service running on Smartgears. + * @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it) + */ +public class GcoreEndPointReaderSocial { + + private String basePath = null; + + private static Logger logger = LoggerFactory.getLogger(GcoreEndPointReaderSocial.class); + private static final String resource = "jersey-servlet"; + private static final String serviceName = "SocialNetworking"; + private static final String serviceClass = "Portal"; + + public GcoreEndPointReaderSocial(String context){ + + if(context == null || context.isEmpty()) + throw new IllegalArgumentException("A valid context is needed to discover the service"); + + + String oldContext = ScopeProvider.instance.get(); + ScopeProvider.instance.set(context); + + try{ + + SimpleQuery query = queryFor(GCoreEndpoint.class); + query.addCondition(String.format("$resource/Profile/ServiceClass/text() eq '%s'",serviceClass)); + query.addCondition("$resource/Profile/DeploymentData/Status/text() eq 'ready'"); + query.addCondition(String.format("$resource/Profile/ServiceName/text() eq '%s'",serviceName)); + query.setResult("$resource/Profile/AccessPoint/RunningInstanceInterfaces//Endpoint[@EntryName/string() eq \""+resource+"\"]/text()"); + + DiscoveryClient client = client(); + List endpoints = client.submit(query); + if (endpoints == null || endpoints.isEmpty()) throw new Exception("Cannot retrieve the GCoreEndpoint serviceName: "+serviceName +", serviceClass: " +serviceClass +", in scope: "+context); + + + this.basePath = endpoints.get(0); + if(basePath==null) + throw new Exception("Endpoint:"+resource+", is null for serviceName: "+serviceName +", serviceClass: " +serviceClass +", in scope: "+context); + + logger.info("found entyname "+basePath+" for ckanResource: "+resource); + + }catch(Exception e){ + logger.error("Unable to retrieve such service endpoint information!", e); + }finally{ + if(oldContext != null && !oldContext.equals(context)) + ScopeProvider.instance.set(oldContext); + } + logger.info("Found base path " + basePath + " for the service"); + } + + /** + * Get the base path of the social networking service + * @return + */ + public String getBasePath() { + return basePath; + } +} diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/HelperMethods.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/HelperMethods.java index a0922df..b5013d3 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/HelperMethods.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/HelperMethods.java @@ -19,9 +19,9 @@ import org.gcube.common.homelibrary.home.workspace.folder.items.ExternalFile; import org.gcube.common.scope.api.ScopeProvider; import org.gcube.data_catalogue.grsf_publish_ws.utils.cache.CacheImpl; import org.gcube.data_catalogue.grsf_publish_ws.utils.cache.CacheInterface; -import org.gcube.datacatalogue.ckanutillibrary.DataCatalogue; -import org.gcube.datacatalogue.ckanutillibrary.DataCatalogueFactory; -import org.gcube.datacatalogue.ckanutillibrary.DataCatalogueImpl; +import org.gcube.datacatalogue.ckanutillibrary.server.DataCatalogue; +import org.gcube.datacatalogue.ckanutillibrary.server.DataCatalogueFactory; +import org.gcube.datacatalogue.ckanutillibrary.server.DataCatalogueImpl; import org.jsoup.Jsoup; import org.jsoup.safety.Whitelist; import org.slf4j.LoggerFactory; @@ -140,7 +140,7 @@ public abstract class HelperMethods { if((result = (String) userEmailCache.get(token)) != null){ return result; }else{ - String baseUrl = new ServiceEndPointReaderSocial(context).getBasePath(); + String baseUrl = new GcoreEndPointReaderSocial(context).getBasePath(); String url = baseUrl + "users/getUserEmail?gcube-token=" + token; logger.debug("Request url is " + url); result = executGETHttpRequest(url, 200); @@ -163,7 +163,7 @@ public abstract class HelperMethods { if((result = (String) userFullnameCache.get(token)) != null){ return result; }else{ - String baseUrl = new ServiceEndPointReaderSocial(context).getBasePath(); + String baseUrl = new GcoreEndPointReaderSocial(context).getBasePath(); String url = baseUrl + "users/getUserFullname?gcube-token=" + token; logger.debug("Request url is " + url); result = executGETHttpRequest(url, 200); @@ -356,7 +356,7 @@ public abstract class HelperMethods { String tokenUser = SecurityTokenProvider.instance.get(); logger.info("Current scope for writeProductPost is " + currentScope + " and token is " + tokenUser.substring(0, 10) + "***************"); - String basePath = new ServiceEndPointReaderSocial(currentScope).getBasePath(); + String basePath = new GcoreEndPointReaderSocial(currentScope).getBasePath(); if(basePath == null){ @@ -429,6 +429,7 @@ public abstract class HelperMethods { * @param response * @return */ + @SuppressWarnings("unchecked") public static Map getResponseEntityAsJSON(HttpResponse response){ Map toReturn = null; diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/ServiceEndPointReaderSocial.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/ServiceEndPointReaderSocial.java deleted file mode 100644 index a17b2f3..0000000 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/ServiceEndPointReaderSocial.java +++ /dev/null @@ -1,103 +0,0 @@ -package org.gcube.data_catalogue.grsf_publish_ws.utils; - -import static org.gcube.resources.discovery.icclient.ICFactory.clientFor; -import static org.gcube.resources.discovery.icclient.ICFactory.queryFor; - -import java.util.Iterator; -import java.util.List; - -import org.gcube.common.resources.gcore.ServiceEndpoint; -import org.gcube.common.resources.gcore.ServiceEndpoint.AccessPoint; -import org.gcube.common.scope.api.ScopeProvider; -import org.gcube.resources.discovery.client.api.DiscoveryClient; -import org.gcube.resources.discovery.client.queries.api.SimpleQuery; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Retrieve the endpoint for the Social Networking service running on Smartgears. - * @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it) - */ -public class ServiceEndPointReaderSocial { - - private String basePath = null; - - private static Logger logger = LoggerFactory.getLogger(ServiceEndPointReaderSocial.class); - private final static String RUNTIME_RESOURCE_NAME = "SocialNetworking"; - private final static String CATEGORY = "Portal"; - - public ServiceEndPointReaderSocial(String context){ - - if(context == null || context.isEmpty()) - throw new IllegalArgumentException("A valid context is needed to discover the service"); - - - String oldContext = ScopeProvider.instance.get(); - ScopeProvider.instance.set(context); - - try{ - - List resources = getConfigurationFromIS(); - if (resources.size() == 0){ - logger.error("There is no Runtime Resource having name " + RUNTIME_RESOURCE_NAME +" and Category " + CATEGORY + " in this scope."); - throw new Exception("There is no Runtime Resource having name " + RUNTIME_RESOURCE_NAME +" and Category " + CATEGORY + " in this scope."); - } - else { - - for (ServiceEndpoint res : resources) { - - Iterator accessPointIterator = res.profile().accessPoints().iterator(); - - while (accessPointIterator.hasNext()) { - ServiceEndpoint.AccessPoint accessPoint = (ServiceEndpoint.AccessPoint) accessPointIterator - .next(); - - // get base path - basePath = accessPoint.address(); - - // break - break; - } - } - - } - - }catch(Exception e){ - - logger.error("Unable to retrieve such service endpoint information!", e); - - }finally{ - - if(oldContext != null && !oldContext.equals(context)) - ScopeProvider.instance.set(oldContext); - - } - - logger.info("Found base path " + basePath + " for the service"); - - } - - /** - * Retrieve endpoints information from IS for DB - * @return list of endpoints for ckan database - * @throws Exception - */ - private List getConfigurationFromIS() throws Exception{ - - SimpleQuery query = queryFor(ServiceEndpoint.class); - query.addCondition("$resource/Profile/Name/text() eq '"+ RUNTIME_RESOURCE_NAME +"'"); - query.addCondition("$resource/Profile/Category/text() eq '"+ CATEGORY +"'"); - DiscoveryClient client = clientFor(ServiceEndpoint.class); - List toReturn = client.submit(query); - return toReturn; - - } - - /** - * Get the base path of the social networking service - * @return - */ - public String getBasePath() { - return basePath; - } -} diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/threads/AssociationToGroupThread.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/threads/AssociationToGroupThread.java index 2832f94..8d44638 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/threads/AssociationToGroupThread.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/threads/AssociationToGroupThread.java @@ -7,8 +7,8 @@ import java.util.List; import java.util.ListIterator; import java.util.Set; -import org.gcube.datacatalogue.ckanutillibrary.DataCatalogue; -import org.gcube.datacatalogue.ckanutillibrary.models.RolesCkanGroupOrOrg; +import org.gcube.datacatalogue.ckanutillibrary.server.DataCatalogue; +import org.gcube.datacatalogue.ckanutillibrary.shared.RolesCkanGroupOrOrg; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/threads/ManageTimeSeriesThread.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/threads/ManageTimeSeriesThread.java index cdf755b..0f7666a 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/threads/ManageTimeSeriesThread.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/threads/ManageTimeSeriesThread.java @@ -29,7 +29,7 @@ import org.gcube.data_catalogue.grsf_publish_ws.utils.CSVHelpers; import org.gcube.data_catalogue.grsf_publish_ws.utils.HelperMethods; import org.gcube.data_catalogue.grsf_publish_ws.utils.cache.CacheImpl; import org.gcube.data_catalogue.grsf_publish_ws.utils.cache.CacheInterface; -import org.gcube.datacatalogue.ckanutillibrary.DataCatalogue; +import org.gcube.datacatalogue.ckanutillibrary.server.DataCatalogue; import org.slf4j.LoggerFactory; import eu.trentorise.opendata.jackan.model.CkanResourceBase; diff --git a/src/test/java/org/gcube/data_catalogue/grsf_publish_ws/JTests.java b/src/test/java/org/gcube/data_catalogue/grsf_publish_ws/JTests.java index 2f0fc04..3e51dbb 100644 --- a/src/test/java/org/gcube/data_catalogue/grsf_publish_ws/JTests.java +++ b/src/test/java/org/gcube/data_catalogue/grsf_publish_ws/JTests.java @@ -40,8 +40,8 @@ import org.gcube.data_catalogue.grsf_publish_ws.utils.groups.Fishery_Type; import org.gcube.data_catalogue.grsf_publish_ws.utils.groups.Sources; import org.gcube.data_catalogue.grsf_publish_ws.utils.groups.Status; import org.gcube.data_catalogue.grsf_publish_ws.utils.threads.AssociationToGroupThread; -import org.gcube.datacatalogue.ckanutillibrary.DataCatalogue; -import org.gcube.datacatalogue.ckanutillibrary.DataCatalogueFactory; +import org.gcube.datacatalogue.ckanutillibrary.server.DataCatalogue; +import org.gcube.datacatalogue.ckanutillibrary.server.DataCatalogueFactory; import org.slf4j.LoggerFactory; import com.fasterxml.jackson.databind.ObjectMapper;