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]