//package org.gcube.datatransfer.resolver.services; // //import javax.enterprise.context.RequestScoped; //import javax.servlet.http.HttpServletRequest; //import javax.ws.rs.HEAD; //import javax.ws.rs.Path; //import javax.ws.rs.PathParam; //import javax.ws.rs.WebApplicationException; //import javax.ws.rs.core.Context; //import javax.ws.rs.core.Response; //import javax.ws.rs.core.Response.ResponseBuilder; // //import org.gcube.common.storagehub.client.StreamDescriptor; //import org.gcube.common.storagehub.client.plugins.AbstractPlugin; //import org.gcube.common.storagehub.client.proxies.ItemManagerClient; //import org.gcube.datatransfer.resolver.services.error.ExceptionManager; //import org.gcube.datatransfer.resolver.util.StorageHubMetadataResponseBuilder; //import org.slf4j.Logger; //import org.slf4j.LoggerFactory; // ///** // * The Class StorageHubResolver. // * // * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it) // * Dec 14, 2018 // */ //@Path("shub/metadata/{id}") //public class StorageHubResolverGetMetadata { // // private ItemManagerClient client = AbstractPlugin.item().build(); // // public static final String STORAGE_HUB_ID = "id"; // // private static Logger logger = LoggerFactory.getLogger(StorageHubResolverGetMetadata.class); // // private String help = "https://wiki.gcube-system.org/gcube/URI_Resolver#STORAGE-HUB_Resolver"; // // @RequestScoped // @PathParam(STORAGE_HUB_ID) // String id; // // // /** // * Gets the metadata. // * // * @param req the req // * @return the metadata // */ // @HEAD // @Path("") // public Response getMetadata(@Context HttpServletRequest req) { // logger.info(this.getClass().getSimpleName()+" HEAD getMetadata called"); // // try{ // // //Checking mandatory parameter id // if(id==null || id.isEmpty()){ // logger.error("Path Parameter "+STORAGE_HUB_ID+" not found"); // throw ExceptionManager.badRequestException(req, "Missing mandatory path parameter "+STORAGE_HUB_ID, StorageHubResolverGetMetadata.class, help); // } // // try{ // StreamDescriptor descriptor = client.resolvePublicLink(id); // ResponseBuilder response = Response // .noContent(); // // response = new StorageHubMetadataResponseBuilder(req, response).fillMetadata(descriptor, id); // return response.build(); // // }catch(Exception e){ // logger.error("Error on getting file with "+id, e); // String errorMsg = "Error on getting file with hub id '"+id+"'. "+e.getMessage(); // throw ExceptionManager.internalErrorException(req, errorMsg, StorageHubResolverGetMetadata.class, help); // } // // }catch (Exception e) { // // if(!(e instanceof WebApplicationException)){ // //UNEXPECTED EXCEPTION managing it as WebApplicationException // String error = "Error occurred on resolving the StorageHub URL with id: "+id+". Please, contact the support!"; // throw ExceptionManager.internalErrorException(req, error, this.getClass(), help); // } // //ALREADY MANAGED as WebApplicationException // logger.error("Exception:", e); // throw (WebApplicationException) e; // } // } //}