(ResourceCatalogueCodes.codes());
-//
-// //private ApplicationProfileReaderForCatalogueResolver appPrfCatResolver = new ApplicationProfileReaderForCatalogueResolver(scope, useRootScope)
-//
-// /**
-// * Gets the config.
-// *
-// * @return the config
-// */
-// public FilterConfig getConfig() {
-//
-// return config;
-// }
-//
-// /* (non-Javadoc)
-// * @see javax.servlet.Filter#destroy()
-// */
-// @Override
-// public void destroy() {
-// logger.trace("run destroy");
-// }
-//
-//
-// /* (non-Javadoc)
-// * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
-// */
-// @Override
-// public void doFilter(ServletRequest req, ServletResponse response, FilterChain chain) throws IOException, ServletException {
-// /* wrap the request in order to read the inputstream multiple times */
-// MultiReadHttpServletRequest multiReadRequest = new MultiReadHttpServletRequest((HttpServletRequest) req);
-// String requestURI = multiReadRequest.getRequestURI();
-// String queryString = multiReadRequest.getQueryString();
-// String servletPath = multiReadRequest.getServletPath();
-// logger.debug("Request URI: " + requestURI + ", QueryString: " +queryString+ ", Servlet path: "+servletPath);
-//
-// try{
-// //IS A REQUEST FOR GEONETWORK AUTHENTICATION? (CKAN HARVESTING?)
-// if(servletPath.startsWith(SERVLET_GEONETWORK) || servletPath.startsWith(SERVLET_URI_RESOLVER+SERVLET_GEONETWORK)){
-// logger.debug("It is a request to geonetwork");
-// GeonetworkRequestDecoder grd = new GeonetworkRequestDecoder(servletPath, queryString);
-// logger.debug("forward to: "+grd.getGeonetworkResolverURIRequest());
-// multiReadRequest.getRequestDispatcher(grd.getGeonetworkResolverURIRequest()).forward(multiReadRequest, response);
-//
-// }else{
-// logger.debug("checking if it is a request to catologue...");
-// boolean isCatalogueServletReference = servletPath.startsWith(SERVLET_CATALOGUE);
-//
-// String idCodeCatalogue = null;
-// boolean isIdCodeCatalogue = false;
-// String splittedServletPath[] = servletPath.split(PATH_SEPARATOR);
-// if(!isCatalogueServletReference){
-// idCodeCatalogue = splittedServletPath[1];
-// logger.trace("checking if the code: "+idCodeCatalogue+" belongs to a catalogue code");
-// isIdCodeCatalogue = resourceCataloguesCodes.contains(idCodeCatalogue);
-// logger.debug("\tIs it a catalogue code? "+isIdCodeCatalogue);
-// }
-//
-// if(isCatalogueServletReference || isIdCodeCatalogue){
-//
-// //int startIndex = requestURI.indexOf(SERVLET_CATALOGUE))+SERVLET_CATALOGUE.length();
-// //String vreName = requestURI.substring(beginIndex)
-// HttpServletRequest request = (HttpServletRequest) req;
-// logger.trace("method is: "+request.getMethod());
-//
-// if(request.getMethod().compareToIgnoreCase("POST")==0){
-// logger.debug("Managing as Catalogue POST request..");
-// logger.debug("forward to: " + SERVLET_CATALOGUE);
-// multiReadRequest.getRequestDispatcher(SERVLET_CATALOGUE).forward(multiReadRequest, response);
-// }else{
-// logger.debug("Managing as Catalogue GET request..");
-// String newURI = SERVLET_CATALOGUE;
-// //String[] pathSplit = newServletPath.split(PATH_SEPARATOR);
-// if(isIdCodeCatalogue){
-// //TO BUILD A COMPLETE URL
-// // logger.debug("is a catalogue code, rebuilding complete url...");
-// // ResourceCatalogueCodes rcc = ResourceCatalogueCodes.valueOfId(idCodeCatalogue);
-// // newServletPath = SERVLET_CATALOGUE+splittedServletPath[2]+PATH_SEPARATOR+rcc.getValue()+PATH_SEPARATOR+splittedServletPath[3];
-// // logger.debug("rebuilded complete url: "+newServletPath);
-// logger.debug("is a catalogue code, resolving a short url in clear ...");
-// ResourceCatalogueCodes rcc = ResourceCatalogueCodes.valueOfCodeId(idCodeCatalogue);
-// logger.debug("found VRE name: "+splittedServletPath[2]);
-// String gcubeScope = CatalogueRequestParameter.GCUBE_SCOPE.getKey() +"="+splittedServletPath[2];
-// String eC = CatalogueRequestParameter.ENTITY_CONTEXT.getKey() +"="+rcc.getValue();
-// logger.debug("found id code: "+idCodeCatalogue+", resolving it with context name: "+eC);
-// String eN = CatalogueRequestParameter.ENTITY_NAME.getKey() +"="+splittedServletPath[3];
-// logger.debug("found entity name: "+eN);
-// String encodedQuery = UrlEncoderUtil.encodeQuery(gcubeScope,eC,eN);
-// newURI+= "?" + PARAMETER_DIRECT_CATALOGUE_LINK + "=" + encodedQuery;
-// }else
-// if(splittedServletPath.length==5){
-// logger.info("resolving a complete URL in clear...");
-// logger.debug("found VRE name: "+splittedServletPath[2]);
-// String gcubeScope = CatalogueRequestParameter.GCUBE_SCOPE.getKey() +"="+splittedServletPath[2];
-// String eC = CatalogueRequestParameter.ENTITY_CONTEXT.getKey() +"="+splittedServletPath[3];
-// logger.debug("found context name: "+eC);
-// String eN = CatalogueRequestParameter.ENTITY_NAME.getKey() +"="+splittedServletPath[4];
-// logger.debug("found entity name: "+eN);
-// String encodedQuery = UrlEncoderUtil.encodeQuery(gcubeScope,eC,eN);
-// newURI+= "?" + PARAMETER_DIRECT_CATALOGUE_LINK + "=" + encodedQuery;
-// }else{
-//
-// logger.info("Resolving an encrypted URL to catalogue...");
-// int lastSlash = requestURI.lastIndexOf(PATH_SEPARATOR);
-// String toCatalogueLink = requestURI.substring(lastSlash + 1, requestURI.length());
-// newURI+= "?" + PARAMETER_ENC_CATALOGUE_LINK + "=" + toCatalogueLink;
-// }
-//
-// logger.debug("forward to: " + newURI);
-// multiReadRequest.getRequestDispatcher(newURI).forward(multiReadRequest, response);
-// }
-//
-// //chain.doFilter(multiReadRequest, response);
-// }else{
-// logger.debug("It is a request to workspace/storage");
-// //LAST CASE, IS WORKSPACE REQUEST?
-// if (queryString == null) { // IS A /XXXXX
-// logger.debug("QueryString is null, is It a new SMP public uri by ID?");
-// int lastSlash = requestURI.lastIndexOf(PATH_SEPARATOR);
-// if (lastSlash + 1 == requestURI.length()) {
-// logger.debug("'/' is last index, doFilter Request");
-// // req.getRequestDispatcher("/").forward(req, res);
-// chain.doFilter(multiReadRequest, response);
-// }
-// else {
-// String toStorageID = requestURI.substring(lastSlash + 1, requestURI.length());
-// // String newURI = requestURI.replace(toReplace,
-// // SERVLET_RESOLVER_BY_ID+"?"+SMP_ID+"="+toReplace);
-// String newURI = SERVLET_STORAGE_ID + "?" + PARAMETER_SMP_ID + "=" + toStorageID;
-// logger.debug("forward to: " + newURI);
-// multiReadRequest.getRequestDispatcher(newURI).forward(multiReadRequest, response);
-// }
-// }
-// else {
-// logger.debug("It is NOT a SMP public uri by ID, doFilter Request");
-// chain.doFilter(multiReadRequest, response);
-// }
-// }
-//
-// }
-// }catch(BadRequestException bre){
-// if (response instanceof HttpServletResponse){
-// HttpServletResponse httpResponse = (HttpServletResponse) response;
-// httpResponse.sendError(HttpServletResponse.SC_BAD_REQUEST, bre.getMessage());
-// }
-// }
-// }
-//
-//
-// /**
-// * Gets the scope.
-// *
-// * @param scope the scope
-// * @return the scope
-// */
-// private static String getScope(String scope){
-// logger.debug("Read scope path: "+scope);
-//// String scope = servletPath.substring(servletPath.indexOf("/"), servletPath.length());
-// return PATH_SEPARATOR+scope.replaceAll("_", PATH_SEPARATOR);
-// }
-//
-// /* (non-Javadoc)
-// * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
-// */
-// @Override
-// public void init(FilterConfig config) throws ServletException {
-// logger.trace("run init");
-// this.config = config;
-// }
-//
-// /*public static void main(String[] args) {
-//
-// String split = "/catalogue/NextNext/dataset/sarda-sarda";
-//
-// String[] array = split.split("/");
-//
-// System.out.println(array.length);
-//
-// for (int i = 0; i < array.length; i++) {
-// System.out.println(i+" "+array[i]);
-// }
-//
-// System.out.println(array[2]);
-//
-// }*/
-//}
diff --git a/src/main/java/org/gcube/datatransfer/resolver/services/UriResolverIndex.java b/src/main/java/org/gcube/datatransfer/resolver/services/UriResolverIndex.java
index adff9be..bff0918 100644
--- a/src/main/java/org/gcube/datatransfer/resolver/services/UriResolverIndex.java
+++ b/src/main/java/org/gcube/datatransfer/resolver/services/UriResolverIndex.java
@@ -3,29 +3,49 @@
*/
package org.gcube.datatransfer.resolver.services;
-///**
-// *
-// * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
-// * Oct 22, 2018
-// */
-//@Path("/")
-//public class UriResolverIndex {
-//
-// private static Logger logger = LoggerFactory.getLogger(UriResolverIndex.class);
-//
-// @GET
-// @Produces(MediaType.TEXT_HTML)
-// @Path("index")
-// public Viewable index(@Context HttpServletRequest req, @PathParam("index") String info){
-//
-// try{
-// logger.info("UriResolverIndex called");
-// return new Viewable("/index");
-// }catch(Exception e){
-// logger.error("Error on getting index.jsp", e);
-// throw new InternalServerException(req, Status.NOT_FOUND, "Index.jsp not found", UriResolverIndex.class, null);
-// }
-//
-// }
-//}
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response.Status;
+
+import org.gcube.datatransfer.resolver.services.exceptions.InternalServerException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ * Oct 22, 2018
+ */
+@Path("")
+public class UriResolverIndex {
+
+ private static Logger logger = LoggerFactory.getLogger(UriResolverIndex.class);
+
+ @GET
+ @Produces({MediaType.TEXT_HTML})
+ @Path("{toInfo:(index|info)?")
+ public InputStream index(@Context HttpServletRequest req, @PathParam("toInfo") String info){
+
+ String indexFile = "/WEB-INF/jsp/index.jsp";
+
+ try{
+ logger.info("UriResolverIndex called");
+ String realPath = req.getServletContext().getRealPath(indexFile);
+ return new FileInputStream(new File(realPath));
+ }catch(Exception e){
+ logger.error("Error on getting "+indexFile, e);
+ throw new InternalServerException(req, Status.NOT_FOUND, "Index.jsp not found", UriResolverIndex.class, null);
+ }
+
+ }
+}
diff --git a/src/main/webapp/WEB-INF/gcube-app.xml b/src/main/webapp/WEB-INF/gcube-app.xml
index 094b2d5..6098a2a 100644
--- a/src/main/webapp/WEB-INF/gcube-app.xml
+++ b/src/main/webapp/WEB-INF/gcube-app.xml
@@ -2,6 +2,6 @@
URIResolver
DataTransfer
1.0.0-SNAPSHOT
- Storage Hub webapp
+ URIResolver RESTful
/*
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/jsp/index.jsp b/src/main/webapp/WEB-INF/jsp/index.jsp
index 945c231..afcfdb4 100644
--- a/src/main/webapp/WEB-INF/jsp/index.jsp
+++ b/src/main/webapp/WEB-INF/jsp/index.jsp
@@ -1,22 +1,43 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
- The URI resolver
-
- See wiki page: URI
- Resolver gCube Wiki
-
+
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
index e137d44..92883b1 100644
--- a/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -3,18 +3,18 @@
root-app-token
- e22a46ac-418c-49f2-ad3f-99a5b9689825-98187548
+ e22a46ac-418c-49f2-ad3f-99a5b9689825-98187548
+
root-scope
/gcube
- root-scope
-
+
org.gcube.datatransfer.resolver.UriResolver
-
+
org.gcube.datatransfer.resolver.UriResolver
/*
diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp
deleted file mode 100644
index 945c231..0000000
--- a/src/main/webapp/index.jsp
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- The URI resolver
-
- See wiki page: URI
- Resolver gCube Wiki
-
-
-
\ No newline at end of file