From 435ffea34b2af477ee391ed9faaf3c4092e78614 Mon Sep 17 00:00:00 2001 From: Andrea Manzi Date: Wed, 3 Jul 2013 11:07:24 +0000 Subject: [PATCH] added new query paramaters git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/data-transfer/uri-resolver@77508 82a268e6-3cf1-43bd-a215-b396298e98cf --- .classpath | 7 +--- .settings/org.eclipse.wst.common.component | 4 +- distro/changelog.xml | 3 ++ pom.xml | 2 +- .../resolver/http/HttpResolver.java | 37 +++++++++++++++---- 5 files changed, 36 insertions(+), 17 deletions(-) diff --git a/.classpath b/.classpath index fa936d6..0f53f3e 100644 --- a/.classpath +++ b/.classpath @@ -4,12 +4,7 @@ - - - - - - + diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component index 1d41732..cfa6374 100644 --- a/.settings/org.eclipse.wst.common.component +++ b/.settings/org.eclipse.wst.common.component @@ -1,11 +1,9 @@ - - + - diff --git a/distro/changelog.xml b/distro/changelog.xml index 825d624..bd41471 100644 --- a/distro/changelog.xml +++ b/distro/changelog.xml @@ -2,4 +2,7 @@ first release + + Added fileName and contentType parameters to SMP URI resolver + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 3356216..3804d4f 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ org.gcube.data.transfer uri-resolver - 1.0.0-SNAPSHOT + 1.1.0-SNAPSHOT war diff --git a/src/main/java/org/gcube/datatransfer/resolver/http/HttpResolver.java b/src/main/java/org/gcube/datatransfer/resolver/http/HttpResolver.java index 9558114..fc201ee 100644 --- a/src/main/java/org/gcube/datatransfer/resolver/http/HttpResolver.java +++ b/src/main/java/org/gcube/datatransfer/resolver/http/HttpResolver.java @@ -28,6 +28,10 @@ import org.slf4j.LoggerFactory; * */ public class HttpResolver extends HttpServlet { + + String uri =null; + String fileName =null; + String contentType =null; private static final long serialVersionUID = 1L; @@ -46,7 +50,7 @@ public class HttpResolver extends HttpServlet { logger.info("The http session id is: " + request.getSession().getId()); - String uri = request.getParameter("smp-uri"); + uri = request.getParameter("smp-uri"); if (uri == null || uri.equals("")) { logger.debug("URI not found"); @@ -54,6 +58,21 @@ public class HttpResolver extends HttpServlet { return; } + fileName = request.getParameter("fileName"); + + + if (fileName == null || fileName.equals("")) { + logger.debug("fileName not found"); + fileName = null; + } + + contentType = request.getParameter("contentType"); + + if (contentType == null || contentType.equals("")) { + logger.debug("contentType not found"); + contentType = null; + } + uri = uri.replace(" ","+");//the char + is removed when the servlet is doing unescaping of the query paramenters, we just put it back logger.debug("URI = "+ uri); @@ -63,12 +82,16 @@ public class HttpResolver extends HttpServlet { OutputStream out = response.getOutputStream(); - String name = "";//we don't need to put a name in the HEADER - response.addHeader("content_name", name); - response.addHeader("Content-Name", name); - - response.addHeader("content-disposition", "attachment; filename=" +name); - response.setContentType("unknown/unknown"); + if (fileName != null) + response.addHeader("content-disposition", "attachment; filename=" +fileName); + else + response.addHeader("content-disposition", "attachment; filename=fromStorageManager"); + + if (contentType!= null) + response.setContentType(contentType); + else + response.setContentType("unknown/unknown"); + URL url = new URL(null, uri, new URLStreamHandler() {