Author: dkuleshov
Date: 2010-12-20 07:54:25 -0500 (Mon, 20 Dec 2010)
New Revision: 3684
Modified:
jcr/branches/1.12.x/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/command/GetCommand.java
Log:
JCR-1540: The Last-modified property in the HTTP header is now passed correctly
Modified:
jcr/branches/1.12.x/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/command/GetCommand.java
===================================================================
---
jcr/branches/1.12.x/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/command/GetCommand.java 2010-12-20
12:41:58 UTC (rev 3683)
+++
jcr/branches/1.12.x/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/command/GetCommand.java 2010-12-20
12:54:25 UTC (rev 3684)
@@ -18,6 +18,27 @@
*/
package org.exoplatform.services.jcr.webdav.command;
+import org.exoplatform.common.http.HTTPStatus;
+import org.exoplatform.common.util.HierarchicalProperty;
+import org.exoplatform.services.jcr.webdav.Range;
+import org.exoplatform.services.jcr.webdav.WebDavConst;
+import org.exoplatform.services.jcr.webdav.resource.CollectionResource;
+import org.exoplatform.services.jcr.webdav.resource.FileResource;
+import org.exoplatform.services.jcr.webdav.resource.Resource;
+import org.exoplatform.services.jcr.webdav.resource.ResourceUtil;
+import org.exoplatform.services.jcr.webdav.resource.VersionResource;
+import org.exoplatform.services.jcr.webdav.resource.VersionedFileResource;
+import org.exoplatform.services.jcr.webdav.resource.VersionedResource;
+import org.exoplatform.services.jcr.webdav.util.MultipartByterangesEntity;
+import org.exoplatform.services.jcr.webdav.util.RangedInputStream;
+import org.exoplatform.services.jcr.webdav.util.TextUtil;
+import org.exoplatform.services.jcr.webdav.xml.WebDavNamespaceContext;
+import org.exoplatform.services.log.ExoLogger;
+import org.exoplatform.services.log.Log;
+import org.exoplatform.services.rest.ExtHttpHeaders;
+import org.exoplatform.services.rest.ext.provider.XSLTStreamingOutput;
+import org.exoplatform.services.rest.impl.header.MediaTypeHelper;
+
import java.io.InputStream;
import java.net.URI;
import java.text.DateFormat;
@@ -39,27 +60,6 @@
import javax.ws.rs.core.Response;
import javax.xml.transform.stream.StreamSource;
-import org.exoplatform.common.http.HTTPStatus;
-import org.exoplatform.common.util.HierarchicalProperty;
-import org.exoplatform.services.jcr.webdav.Range;
-import org.exoplatform.services.jcr.webdav.WebDavConst;
-import org.exoplatform.services.jcr.webdav.resource.CollectionResource;
-import org.exoplatform.services.jcr.webdav.resource.FileResource;
-import org.exoplatform.services.jcr.webdav.resource.Resource;
-import org.exoplatform.services.jcr.webdav.resource.ResourceUtil;
-import org.exoplatform.services.jcr.webdav.resource.VersionResource;
-import org.exoplatform.services.jcr.webdav.resource.VersionedFileResource;
-import org.exoplatform.services.jcr.webdav.resource.VersionedResource;
-import org.exoplatform.services.jcr.webdav.util.MultipartByterangesEntity;
-import org.exoplatform.services.jcr.webdav.util.RangedInputStream;
-import org.exoplatform.services.jcr.webdav.util.TextUtil;
-import org.exoplatform.services.jcr.webdav.xml.WebDavNamespaceContext;
-import org.exoplatform.services.log.ExoLogger;
-import org.exoplatform.services.log.Log;
-import org.exoplatform.services.rest.ExtHttpHeaders;
-import org.exoplatform.services.rest.ext.provider.XSLTStreamingOutput;
-import org.exoplatform.services.rest.impl.header.MediaTypeHelper;
-
/**
* Created by The eXo Platform SAS Author : <a
* href="gavrikvetal(a)gmail.com">Vitaly Guly</a>.
@@ -190,10 +190,12 @@
RangedInputStream rangedInputStream = new RangedInputStream(istream,
start, end);
- return
Response.status(HTTPStatus.PARTIAL).header(HttpHeaders.CONTENT_LENGTH,
-
Long.toString(returnedContentLength)).header(ExtHttpHeaders.ACCEPT_RANGES,
"bytes").header(
- ExtHttpHeaders.CONTENTRANGE, "bytes " + start + "-"
+ end + "/" + contentLength).entity(
- rangedInputStream).type(contentType).build();
+ return Response.status(HTTPStatus.PARTIAL)
+ .header(HttpHeaders.CONTENT_LENGTH,
Long.toString(returnedContentLength))
+ .header(ExtHttpHeaders.ACCEPT_RANGES, "bytes")
+ .header(ExtHttpHeaders.LAST_MODIFIED, lastModifiedProperty.getValue())
+ .header(ExtHttpHeaders.CONTENTRANGE, "bytes " + start +
"-" + end + "/" + contentLength)
+ .entity(rangedInputStream).type(contentType).build();
}
// multipart byte ranges as byte:0-100,80-150,210-300
@@ -209,8 +211,9 @@
MultipartByterangesEntity mByterangesEntity =
new MultipartByterangesEntity(resource, ranges, contentType,
contentLength);
- return
Response.status(HTTPStatus.PARTIAL).header(ExtHttpHeaders.ACCEPT_RANGES,
"bytes").entity(
- mByterangesEntity).type(ExtHttpHeaders.MULTIPART_BYTERANGES +
WebDavConst.BOUNDARY).build();
+ return
Response.status(HTTPStatus.PARTIAL).header(ExtHttpHeaders.ACCEPT_RANGES,
"bytes")
+ .header(ExtHttpHeaders.LAST_MODIFIED,
lastModifiedProperty.getValue()).entity(mByterangesEntity)
+ .type(ExtHttpHeaders.MULTIPART_BYTERANGES +
WebDavConst.BOUNDARY).build();
}
else
{
Show replies by date