/** * */ package org.gcube.utils; import java.io.StringWriter; import org.gcube.common.authorization.client.Constants; import org.gcube.common.authorization.library.AuthorizationEntry; import org.gcube.common.authorization.library.provider.SecurityTokenProvider; import org.gcube.common.resources.gcore.Resource; import org.gcube.common.resources.gcore.Resources; import org.gcube.common.scope.api.ScopeProvider; import org.gcube.informationsystem.publisher.RegistryPublisher; import org.gcube.informationsystem.publisher.RegistryPublisherFactory; import org.gcube.informationsystem.publisher.exception.RegistryNotFoundException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/ * */ public class TestUtility { public static final String TOKEN = ""; public static final String PARENT_TOKEN = ""; /** * Logger */ private static Logger logger = LoggerFactory.getLogger(TestUtility.class); public static String getScope(){ return ScopeProvider.instance.get(); //return getScopeFromToken(); } /* public static String getScopeFromToken(){ String token = SecurityTokenProvider.instance.get(); AuthorizationEntry authorizationEntry; try { authorizationEntry = Constants.authorizationService().get(token); } catch (Exception e) { throw new RuntimeException(e); } String scope = authorizationEntry.getContext(); return scope; } */ /** * Publish the provided resource on current scope * @param resource to be published * @throws RegistryNotFoundException if the Registry is not found so the * resource has not be published */ public static void publishResource(Resource resource) throws Exception { StringWriter stringWriter = new StringWriter(); Resources.marshal(resource, stringWriter); RegistryPublisher registryPublisher = RegistryPublisherFactory.create(); try { logger.debug("Trying to publish to {}:\n{}", getScope(), stringWriter); registryPublisher.create(resource); } catch (Exception e) { logger.error("The resource was not published", e); throw e; } } /** * Remove the resource from IS from curretn scope * @param resource to be unpublished * @throws RegistryNotFoundException if the Registry is not found so the * resource has not be published */ public static void unPublishResource(Resource resource) throws Exception { //StringWriter stringWriter = new StringWriter(); //Resources.marshal(resource, stringWriter); RegistryPublisher registryPublisher = RegistryPublisherFactory.create(); String id = resource.id(); logger.debug("Trying to remove {} with ID {} from {}", resource.getClass().getSimpleName(), id, getScope()); registryPublisher.remove(resource); logger.debug("{} with ID {} removed successfully", resource.getClass().getSimpleName(), id); } }