Gianugo Rabellino wrote: > Guido Casper wrote: >> Gianugo Rabellino wrote: >> >>> [EMAIL PROTECTED] wrote: >>> >>>> gcasper 2003/12/17 05:42:14 >>>> >>>> Modified: >>>> >>>> src/blocks/webdav/java/org/apache/cocoon/components/source/impl >>>> WebDAVSource.java Log: Interoperability with mod_dav >>> >>> Why so? I think that the cleanest way is to solve this issue where >>> it belongs, inside httpclient if possible, or in httpd, with a >>> BrowserMatch directive... >> >> >> How do you solve that with a BrowserMatch directive? If that is >> possible I revert the change. > > BrowserMatch "^Jakarta Commons-HttpClient" redirect-carefully
Redirect (assuming you mean rewrite) what? How to find out what is a collection and what not? > >> mod_dav sends a redirect on collections without a trailing slash. > > And it's disputable which one is the correct behaviour. I tend to > think that Apache does it right... IIUC the correct behaviour is to just send the response together with a Location header so that the WebDAV client adjusts its base URL for further requests. But since clients tend to ignore that header some server send a redirect instead. So what mod_dav does is considered well behaved and to be expected with other servers as well. Unfortunately this breaks WebDAVSource with TraversableSourceDescriptionGenerator. I just tried setting followRirects in WebDAVResource.propfindMethod without success :-( . The only other places to fix this is either WebDAVSource or WebDAVResource.setWebdavProperties/.processProperty. > >> httpclient reasonably doesn't modify the set URL in any way. If you >> prefer I could ask slide-dev to change WebDAVResource to set >> followRedirects on propfind requests (I didn't test that yet and >> somewhat fear the performance penalty). > > You think so? Why should there be a performance penalty? Because of doubling the number of roundtrips. The problem only shows with TraversableSourceDescriptionGenerator on collections containing child collections. It's the only one doing a getSourceProperties (propfind) on child collections. One propfind (and a redirect since their URL doesn't contain the trailing slash) on each child collection. And if the number of child collection is big ... Guido