jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Angela Schreiber <anch...@day.com>
Subject Jcr-Server: API changes with rev. 368683
Date Fri, 13 Jan 2006 11:19:21 GMT
hi

as announced last week JDOM dependency has been
removed from jcr-server contribution which led
to changes in the webDAV library. in addition
a couple of minor issues has been addressed.

see below for a short description of the changes.

corresponding jira issues:
JCR-258: https://issues.apache.org/jira/browse/JCR-258
JCR-295: https://issues.apache.org/jira/browse/JCR-295
JCR-297: https://issues.apache.org/jira/browse/JCR-297

announcing mail:
http://www.mail-archive.com/jackrabbit-dev%40incubator.apache.org/msg04037.html

kind regards
angela


short discussion of changes:

JCR-258
------------------------------------------------------
- common interface XmlSerializable implemented by
   all dav-library classes that form part of a xml
   response or request body.
- the interface currently defines a single method
   toXml that takes a w3c.dom.Document in its function
   as factory as param and returns an w3c.dom Element.
- consistency of xml deserialization is not completed
   yet. generally, a static 'createFromXml' method is
   used to parse a single xml element, whereas a
   separate constructor is available if additional
   parameters such as headers are involved.
- a couple of helper classes were created in order
   make the switch from jdom to w3c.dom easier.
- methods present in util.XmlUtil were moved to
   the xml.DomUtil helper class that provides additional
   dom-specific utitilies. XmlUtil got removed.

JCR-295
-----------------------------------------------------
- the Cache-Control header is not set by default
   any more but only for those DeltaV-methods where
   the header is required by the RFC.
- the reason for the change was an issue with IE
   and http1.1 responses containing the Cache-Control
   header.

JCR-297
-----------------------------------------------------
- no attempt is made to parse the request body if the
   contentlength header is present and indicates a
   length of 0.
- note, that this will only avoid parser failure for
   this unambigous case. parsing may still fail and
   produce log-output, if in turn the contentlength
   is not available or cannot be determined in advance.

DavServletRequest, OrderingDavServletRequest
-----------------------------------------------------
- if the result of parsing a propfind/proppatch/orderpatch
   request body is obviously wrong, the methods involved
   may now throw a DavException.
- TODO: this change should be applied consistently
   to all methods involved with request parsing.

Property / PropertyNames
-----------------------------------------------------
- PropContainer as common base class for DavPropertySet
   and DavPropertyNameSet.
- new interface DavPropertyNameIterator
- new LabelSetProperty (previously used DefaultDavProperty)

MultiStatus/MultiStatusResponse
------------------------------------------------------
- avoid multiple ms-responses for the same resource href
- assert that a response either contains propstat or
   a status.
- TODO: RFC 2518 defines that multiple hrefs can be
   combined with a single status in a ms-response.

Header
------------------------------------------------------
- new common interface Header for the classes present
   in the oaj.webdav.header package.

Report
------------------------------------------------------
- fixed response status code for the Reports defined
   by RFC3253 (was 200 instead of 217)
- since MultiStatus response is not mandatory for a
   Report except if the report is applied to multiple
   resources using the depth header, the Report inter-
   face now reveales whether the xml representation should
   be treated as multistatus response.
- Report interface and implementation reworked. before
   basic errors where detected on toXml only.

misc
------------------------------------------------------
- removal of * imports
- server.io.ExportContextImpl: assert that the stream
   obtained by getOutputStream is properly closed. this
   also allows to properly retrieve (and set) the
   response contentlength.



Mime
View raw message