Issue Details (XML | Word | Printable)

Key: CMIS-134
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Al Brown
Reporter: Ryan McVeigh
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
OASIS Content Management Interoperability Services (CMIS) TC

getContentStream and content-range support

Created: 19/Mar/09 05:49 PM   Updated: 11/Jan/10 07:31 PM
Component/s: REST/AtomPub Binding
Affects Version/s: Draft 0.50, Draft 0.60
Fix Version/s: Draft 0.62

Proposal: Change the spec from SHALL to MAY
Resolution: Ryan to confirm that this is already fixed.


 Description  « Hide
The getContentStream (REST) service description includes query params for offset and length (to indicate a sub-range of the return stream). And will "return the current content stream using HTTP mechanisms, including respecting the HTTP Content-Range parameters". I assume that this means that Content-Range should be part of the return header (with a status of 206) when offset/length params are supplied. However, the choice of the verb "respecting" leads to to assume that possibly the spec intends to also support the Range request header field? If so, it should be called out. Also, if this is the case, why have the query parameters when there is already a standard HTTP mechanism for supporting this feature?

   1. If we supported the Range request header, would we also have to therefore support multiple ranges (in a multi-part reply)?
   2. Would it be feasible to allow Range/Content-Range support be optional?

The v0.6 Part 1 now says each protocol binding SHALL support ranging in a protocol-appropriate manner. This implies that it is recommended/encouraged/expected but not strictly manditory. It also (hopefully) means that the query parameters are gone and the v0.6 REST will rely on Range headers (but this is not clear).

I think this should be truely optional (MAY), as it is unlikely to really be necessary. Else provide a compelling use-case for its need.

In v0.6 part I it says SHALL, but we propose it say MAY. Also, part II doesn't even specify any request params for GET, so not sure if they were left out accidentally, of it was deferring to part I (which is what we'd prefer). Part II REST section should also state that if you do implement range, you should use the standard HTTP headers (Range/ContentRange).

 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
Al Brown added a comment - 17/Apr/09 05:03 PM
Clarified specification for .61 to follow HTTP as was the intent.

Ryan McVeigh added a comment - 08/May/09 03:29 PM
Part I and II should be made to agree.

Part II was loosened up so that:
> This returns the content stream. All HTTP options for content ranges
> MAY be supported. Please see RFC2616 for more information on HTTP
> Range requests.

Yet Part I says:
> Each CMIS protocol binding SHALL provide a way for fetching a sub-
> range within a content stream, in a manner appropriate to that
> protocol.

It appears that Part II was fixed, but now Part II appears to be in violation of Part I.

Al Brown added a comment - 08/May/09 05:34 PM
Ryan, how so? difference between p1 saying SHALL and p2 saying MAY?

my interp - p1 says bindings must provide a way to do this appropriate to its context. p2 says this is how it is done in this binding (meets the must provide a way) and the functionality may be provided by the impl.

I could be misinterpretating p1.

Ryan McVeigh added a comment - 09/Jun/09 01:47 PM
I read part I as saying that a binding must support this, not that a binding will describe how an implementation may support this. If the intent is your interpretation, should part 1 read MAY?

Al Brown added a comment - 09/Jun/09 02:15 PM
I am okay with p1 saying MAY

Al Brown added a comment - 05/Jan/10 12:51 AM
JIRA Cleanup