This website uses cookies to ensure you get the best experience. Learn More.
WebDAV Class 1 Compliance
After several months in the working, we finally got Liferay's Document Library compliant to WebDAV Class 1, per RFC2518!! It is still not Class 2 compliant, meaning locking does not work (and that also means Office and OS X still cannot edit files directly in the Document Library). But, achieving Class 1 compliance is the necessary prerequisite and we are finally there! Here are the WebDAV litmus test results:
-> running `basic': 0. init.................. pass 1. begin................. pass 2. options............... WARNING: server does not claim Class 2 compliance ...................... pass (with 1 warning) 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................. pass10. mkcol_again........... pass11. delete_coll........... pass12. mkcol_no_parent....... pass13. mkcol_with_body....... pass14. finish................ pass<- summary for `basic': of 15 tests run: 15 passed, 0 failed. 100.0%-> 1 warning was issued.-> running `copymove': 0. init.................. pass 1. begin................. pass 2. copy_init............. pass 3. copy_simple........... pass 4. copy_overwrite........ pass 5. copy_nodestcoll....... pass 6. copy_cleanup.......... pass 7. copy_coll............. pass 8. copy_shallow.......... pass 9. move.................. pass10. move_coll............. pass11. move_cleanup.......... pass12. finish................ pass<- summary for `copymove': of 13 tests run: 13 passed, 0 failed. 100.0%-> running `props': 0. init.................. pass 1. begin................. pass 2. propfind_invalid...... pass 3. propfind_invalid2..... pass 4. propfind_d0........... pass 5. propinit.............. pass 6. propset............... pass 7. propget............... pass 8. propextended.......... pass 9. propmove.............. pass10. propget............... pass11. propdeletes........... pass12. propget............... pass13. propreplace........... pass14. propget............... pass15. propnullns............ pass16. propget............... pass17. prophighunicode....... FAIL (PROPPATCH of property with high unicode value)18. propget............... FAIL (No value given for property {http://webdav.org/neon/litmus/}high-unicode)19. propremoveset......... pass20. propget............... pass21. propsetremove......... pass22. propget............... pass23. propvalnspace......... pass24. propwformed........... pass25. propinit.............. pass26. propmanyns............ pass27. propget............... pass28. propcleanup........... pass29. finish................ pass<- summary for `props': of 30 tests run: 28 passed, 2 failed. 93.3%-> running `locks': 0. init.................. pass 1. begin................. pass 2. options............... WARNING: server does not claim Class 2 compliance ...................... pass (with 1 warning) 3. precond............... SKIPPED (locking tests skipped,server does not claim Class 2 compliance)-> 1 test was skipped.<- summary for `locks': of 3 tests run: 3 passed, 0 failed. 100.0%-> 1 warning was 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%
What is the moral of the story? Standards are both (1) a pain to implement but (2) are worth the work. They are a pain to implement because they have all these little things (like custom properties for WebDAV resources) that no WebDAV client actually uses -- but exists "just in case" they are needed. But, at the same time, when you get it all there, all WebDAV clients will behave the same way. And THAT is what we like. Ok... I'm just babbling now since it is 1:30am... time to go to bed. Tomorrow, I shall start on Class 2 compliance....