hi all

as stated in JCR-258 i made some effort to remove
the jdom dependency from the jcr-server contrib.
see also JCR-54 for the corresponding issue in the
jackrabbit core.

this led to some changes in the webdav-library regarding
the xml handling (the library interfaces and classes now
implementing a common interface with a single 'toXml'
method).
furthermore i removed the XmlUtil.java class from the util
package and added all Xml related utilities to a new xml
package. the new package mainly contains utility classes
such as a replacement for the jdom.Namespace and a DomUtil
class, that allowed to easier switch over to w3c.dom.

in addition i addressed some minor issues:

- JCR-295: usage of Cache-Control header
- JCR-297: log output while parsing xml
- DavServletRequest, OrderingDavServletRequest: allow
  the methods involved with parsing the xml to throw
  DavException if the request body is obviously wrong.
- DavPropertySet and DavPropertyNameSet are modified to
  share a common base class (PropContainer). The reason
  for this was, that RFC2518 defines a single DAV:prop
  element that may contain properties or propertynames
  only.
- MultiStatusResponse: closer to the definition of RFC2518
  where a response may either contain href + propstat
  or href + status. before this was not asserted by the
  implementation.
- MultiStatus: use map to collect the contained response
  elements instead of list in order to avoid a single
  href to occur multiple times.
- webdav.header: a common interface and some additional
  implementations
- server.io.ExportContextImpl: assert that the stream
  obtained by getOutputStream is properly closed. this
  also allows to retrieve the contentlength.
- removal of * imports

i let litmus run and there were no additional tests failing
(see attached txt file). in addition i performed a few basic
test for features not covered by litmus.

if nobody objects i will commit my changes next week.

regards
angela


-> running `basic':
 0. init.................. pass
 1. begin................. pass
 2. options............... pass
 3. put_get............... pass
 4. put_get_utf8_segment.. pass
 5. mkcol_over_plain...... pass
 6. delete................ pass
 7. delete_null........... pass
 8. delete_fragment....... pass
 9. mkcol................. pass
10. mkcol_again........... pass
11. delete_coll........... pass
12. mkcol_no_parent....... pass
13. mkcol_with_body....... pass
14. finish................ pass
<- summary for `basic': of 15 tests run: 15 passed, 0 failed. 100.0%
-> running `copymove':
 0. init.................. pass
 1. begin................. pass
 2. copy_init............. pass
 3. copy_simple........... pass
 4. copy_overwrite........ pass
 5. copy_nodestcoll....... WARNING: COPY to non-existant collection 
'/crx/repository/crx.default/litmus/nonesuch' gave '403 Forbidden' not 409
    ...................... pass (with 1 warning)

[ note: because 'shallow' copy is not possible with jcr and results in 503. 
        test would pass otherwise ]

 6. copy_cleanup.......... pass
 7. copy_coll............. pass
 8. move.................. pass
 9. move_coll............. pass
10. move_cleanup.......... pass
11. finish................ pass
<- summary for `copymove': of 12 tests run: 12 passed, 0 failed. 100.0%
-> 1 warning was issued.
-> running `props':
 0. init.................. pass
 1. begin................. pass
 2. propfind_invalid...... FAIL (PROPFIND with non-well-formed XML request body 
got 207 response not 400)
 3. propfind_invalid2..... FAIL (PROPFIND with invalid namespace declaration in 
body (see FAQ) got 207 response not 400)

[ note: some time ago, we agreed to be tolerant here ] 

 4. propfind_d0........... pass
 5. propinit.............. pass
 6. propset............... pass
 7. propget............... pass
 8. propextended.......... pass
 9. propmove.............. pass
10. propget............... pass
11. propdeletes........... pass
12. propget............... pass
13. propreplace........... pass
14. propget............... pass
15. propnullns............ pass
16. propget............... pass
17. prophighunicode....... pass
18. propget............... pass
19. propvalnspace......... pass
20. propwformed........... pass
21. propinit.............. pass
22. propmanyns............ pass
23. propget............... pass
24. propcleanup........... pass
25. finish................ pass
<- summary for `props': of 26 tests run: 24 passed, 2 failed. 92.3%
-> running `locks':
 0. init.................. pass
 1. begin................. pass
 2. options............... pass
 3. precond............... pass
 4. init_locks............ pass
 5. put................... pass
 6. lock_excl............. pass
 7. discover.............. pass
 8. refresh............... pass
 9. notowner_modify....... WARNING: PROPPATCH failed with 0 not 423
    ...................... pass (with 1 warning)

[ note: bug in litmus. passes if error is returned instead of multistatus]

10. notowner_lock......... pass
11. owner_modify.......... pass
12. notowner_modify....... WARNING: PROPPATCH failed with 0 not 423
    ...................... pass (with 1 warning)

[ note: bug in litmus. passes if error is returned instead of multistatus]

13. notowner_lock......... pass
14. copy.................. FAIL (could not COPY locked resource: 403 Forbidden)

[ note: because 'shallow' copy is not possible with jcr and results in 503. 
        test would pass otherwise ]
        
15. cond_put.............. pass
16. fail_cond_put......... pass
17. cond_put_with_not..... pass
18. cond_put_corrupt_token WARNING: PUT failed with 412 not 423
    ...................... pass (with 1 warning)

[ note: as discussed the last time, i was not sure about this issue after 
        reading the RFC. 412 made more sense to me than 423. ]

19. complex_cond_put...... pass
20. fail_complex_cond_put. pass
21. unlock................ pass
22. lock_shared........... FAIL (LOCK on 
`/crx/repository/crx.default/litmus/lockme': 412 Precondition Failed)
23. notowner_modify....... SKIPPED
24. notowner_lock......... SKIPPED
25. owner_modify.......... SKIPPED
26. double_sharedlock..... SKIPPED
27. notowner_modify....... SKIPPED
28. notowner_lock......... SKIPPED
29. unlock................ SKIPPED

[ note: shared locks not supported ]

30. prep_collection....... pass
31. lock_collection....... pass
32. owner_modify.......... pass
33. notowner_modify....... WARNING: PROPPATCH failed with 0 not 423
    ...................... pass (with 1 warning)

[ note: bug in litmus. passes if error is returned instead of multistatus]

34. refresh............... pass
35. indirect_refresh...... pass
36. unlock................ pass
37. finish................ pass
-> 7 tests were skipped.
<- summary for `locks': of 31 tests run: 29 passed, 2 failed. 93.5%
-> 4 warnings were issued.
-> running `http':
 0. init.................. pass
 1. begin................. pass
 2. expect100............. pass
 3. finish................ pass
<- summary for `http': of 4 tests run: 4 passed, 0 failed. 100.0%
[EMAIL PROTECTED]:/home/anchela/DAV/litmus-0.10.3]

Reply via email to