Bertrand Delacretaz wrote:

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/)



Reply via email to