Anyone willing to tackle DASL searches now? :-)
I will have a look.
IIUC the next step would be to implement a ProxyWithHooks that would allow requests to be pre- or post-processed, to be able to manipulate requests to the webdav backend and their results, right?
The hooks IMO should be in the pipeline actually. What we actually need is a ProxyHttpTransformer or even just some actions (waiting for the upcoming object model dav adapter), so that:
<match pattern="dav/**">
<match type="request-method" pattern="SEARCH">
<generate type="request"/>
<transform src="dasl2sql.xsl"/>
<transform type="sql"/>
<transform type="sql2propfind.xsl"/>
<serialize/>
</match>
<match type="request-method" pattern="PUT">
<act type="syncmetadatadb">
<generate type="webdavproxy">
<parameter name="url" value="http://whatever/dav/{../1}"/
</generate>
<serialize/>
</act>
</match>
<match type="request-method" pattern="DELETE">
<act type="syncmetadatadb">
<generate type="webdavproxy">
<parameter name="url" value="http://whatever/dav/{../1}"/
</generate>
<serialize/>
</act>
</match>
<match type="request-method" pattern="PROPFIND">
<generate type="webdavproxy">
<parameter name="url" value="http://whatever/dav/{../1}"/
</generate>
<serialize/>
</match>
[...repeat...]
</match>The only implementation issue left is using a transformer, an action or flow to process data that have to go both to the origin server and to a custom processing component. Sounds reasonable?
Ciao,
-- Gianugo Rabellino Pro-netics s.r.l. - http://www.pro-netics.com Orixo, the XML business alliance - http://www.orixo.com (Now blogging at: http://blogs.cocoondev.org/gianugo/)
