DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
Hi tried this a few months ago and found that the "jar:/" protocol don't check if the source have changed. I can't say if it's problem of cocoon cache or "jar:/" specification, but what I know is I can't use it to display i, real time an oo doc that people may edit. Some more ideas here [XfolioOpenOfficeGeneration]
Here is a sitemap snippet that shows how the jar:/ protocol can be used to read data from jar files or zip files. – Con
<map:pipelines>
<!-- read content from out of a zip file -->
<map:pipeline>
<map:match pattern="*/**.xml">
<map:generate src="jar:http://localhost/jar-test/{1}!/{2}.xml"/>
<map:serialize type="xml"/>
</map:match>
</map:pipeline>
<map:pipeline>
<map:match pattern="*/**.jpg">
<map:read src="jar:http://localhost/jar-test/{1}!/{2}.jpg"/>
</map:match>
</map:pipeline>
<!--
if you don't want to "hard-code" localhost,
don't forget the {servletPath} sitemap variable
<map:read src="jar:http://{servletPath}/{1}.sxw!/meta.xml"/>
-->
<!-- read the archive file -->
<map:pipeline>
<map:match pattern="*.zip">
<map:read src="{1}.zip"/>
</map:match>
<map:match pattern="*.jar">
<map:read src="{1}.jar"/>
</map:match>
</map:pipeline>
</map:pipelines>
Note:
This sitemap is intended to be mounted as /jar-test - it uses http to access the zip file. This is because the jar: protocol is not aware of the cocoon: protocol. An alternative would be to access the jar file with the file: protocol, which would involve specifying a complete file path name. You could do this using an input module to specify the file name.
To test it, access it as:
http://localhost/jar-test/test.zip/test.jpg
Using the context protocol
Here is an example using a file relative to the context. In this case we get a file named content.xml inside an open-office zip file with a .sxw extension. The realpath module allows us to convert relative path to absolute ones.
<map:match src='**.sxw'>
<map:generate src="jar:file:///{realpath:docu}/{0}!/content.xml"/>
<map:transform src='open-office-to-docbook.xml'/>
<map:serialize type='xml'/>
</map:match>