added again ServiceEndPoint social for minor release 4.2.1
git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/widgets/ckan-metadata-publisher-widget@142039 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
2fb4db428b
commit
b97b3c9a37
|
@ -0,0 +1,106 @@
|
||||||
|
package org.gcube.portlets.widgets.ckandatapublisherwidget.server.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 com.liferay.portal.kernel.log.Log;
|
||||||
|
import com.liferay.portal.kernel.log.LogFactoryUtil;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves the base url of the social-networking service in the scope provided
|
||||||
|
* @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 static final Log logger = LogFactoryUtil.getLog(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<ServiceEndpoint> 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<AccessPoint> 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 the Service endpoint
|
||||||
|
* @return list of endpoints
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
private List<ServiceEndpoint> 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<ServiceEndpoint> client = clientFor(ServiceEndpoint.class);
|
||||||
|
List<ServiceEndpoint> toReturn = client.submit(query);
|
||||||
|
return toReturn;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the base path of the social networking service
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String getBasePath() {
|
||||||
|
return basePath;
|
||||||
|
}
|
||||||
|
}
|
|
@ -18,11 +18,6 @@ import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
|
||||||
import org.gcube.common.homelibrary.home.workspace.folder.items.GCubeItem;
|
import org.gcube.common.homelibrary.home.workspace.folder.items.GCubeItem;
|
||||||
import org.gcube.common.portal.PortalContext;
|
import org.gcube.common.portal.PortalContext;
|
||||||
import org.gcube.common.scope.api.ScopeProvider;
|
import org.gcube.common.scope.api.ScopeProvider;
|
||||||
import org.gcube.datacatalogue.ckanutillibrary.server.ApplicationProfileScopePerUrlReader;
|
|
||||||
import org.gcube.datacatalogue.ckanutillibrary.server.DataCatalogue;
|
|
||||||
import org.gcube.datacatalogue.ckanutillibrary.server.utils.SessionCatalogueAttributes;
|
|
||||||
import org.gcube.datacatalogue.ckanutillibrary.server.utils.UtilMethods;
|
|
||||||
import org.gcube.datacatalogue.ckanutillibrary.shared.RolesCkanGroupOrOrg;
|
|
||||||
import org.gcube.datacatalogue.metadatadiscovery.DataCalogueMetadataFormatReader;
|
import org.gcube.datacatalogue.metadatadiscovery.DataCalogueMetadataFormatReader;
|
||||||
import org.gcube.datacatalogue.metadatadiscovery.bean.MetadataType;
|
import org.gcube.datacatalogue.metadatadiscovery.bean.MetadataType;
|
||||||
import org.gcube.datacatalogue.metadatadiscovery.bean.jaxb.MetadataField;
|
import org.gcube.datacatalogue.metadatadiscovery.bean.jaxb.MetadataField;
|
||||||
|
@ -72,8 +67,8 @@ public class Utils {
|
||||||
private static final Log logger = LogFactoryUtil.getLog(Utils.class);
|
private static final Log logger = LogFactoryUtil.getLog(Utils.class);
|
||||||
private static final String APPLICATION_ID_CATALOGUE_MANAGER = "org.gcube.datacatalogue.ProductCatalogue";
|
private static final String APPLICATION_ID_CATALOGUE_MANAGER = "org.gcube.datacatalogue.ProductCatalogue";
|
||||||
private static final String NOTIFICATION_MESSAGE = "Dear members,<br>The product 'PRODUCT_TITLE' has been just published by USER_FULLNAME.<br>You can find it here: PRODUCT_URL <br>";
|
private static final String NOTIFICATION_MESSAGE = "Dear members,<br>The product 'PRODUCT_TITLE' has been just published by USER_FULLNAME.<br>You can find it here: PRODUCT_URL <br>";
|
||||||
private static final String SOCIAL_SERVICE_APPLICATION_TOKEN = "/2/tokens/generate-application-token";
|
private static final String SOCIAL_SERVICE_APPLICATION_TOKEN = "2/tokens/generate-application-token";
|
||||||
private static final String SOCIAL_SERVICE_WRITE_APPLICATION_POST = "/2/posts/write-post-app";
|
private static final String SOCIAL_SERVICE_WRITE_APPLICATION_POST = "2/posts/write-post-app";
|
||||||
private static final String MEDIATYPE_JSON = "application/json";
|
private static final String MEDIATYPE_JSON = "application/json";
|
||||||
public static final String GCUBE_REQUEST_URL = "gcube-request-url";
|
public static final String GCUBE_REQUEST_URL = "gcube-request-url";
|
||||||
|
|
||||||
|
@ -398,7 +393,7 @@ public class Utils {
|
||||||
String tokenUser = SecurityTokenProvider.instance.get();
|
String tokenUser = SecurityTokenProvider.instance.get();
|
||||||
|
|
||||||
logger.info("Current scope for writeProductPost is " + currentScope + " and token is " + tokenUser.substring(0, 10) + "***************");
|
logger.info("Current scope for writeProductPost is " + currentScope + " and token is " + tokenUser.substring(0, 10) + "***************");
|
||||||
String basePath = new GCoreEndPointReaderSocial(currentScope).getBasePath();
|
String basePath = new ServiceEndPointReaderSocial(currentScope).getBasePath();
|
||||||
|
|
||||||
if(basePath == null){
|
if(basePath == null){
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue