SaveFilesTransformer
A simplified SourceWritingTransformer.
Description
This transformer can be used to save portions of XML to a file or capture the stream output of a url and write that to a file.
Particularly useful to easily store generated content and copy (un)related files along with the output files in a single transform. For instance when processing all files in an input directory.
This transformer listens to the http://daidalos.nl/cocoon/save/1.0
namespace.
Original author GeertJosten.
Declaration
In order to use it you have to declare the Transformer as a sitemap component:
<map:transformers> .... <map:transformer logger='transformer.savefiles' name='savefiles' src='org.apache.cocoon.transformation.SaveFilesTransformer'/> .... </map:transformers>
Invocation
You can call it as any other Transformer:
<map:match> .... <map:transform name='savefiles' /> .... </map:match>
Usage
Insert instructions in the content stream in one of the following formats:
To write an XML fragment to a file..
<save:file target="myTargetFileName" serializer="xml" xmlns:save="http://daidalos.nl/cocoon/save/1.0"> ... some xml fragment ... </save:file>
To write the complete result of a Cocoon or external call (XML or binary)..
<save:file src="mySourceUrl" target="myTargetFileName" xmlns:save="http://daidalos.nl/cocoon/save/1.0" />
Note: src
and serializer
attributes are mutually exclusive. Specifying both attributes will cause an Exception!
Configuration
No configuration currenly.
Bugs
None known. This Cocoon component has been used in a few production level and several experimental projects.
Source code
See attached file. The source is provided as-is, no guaranties, no support.
Note: it was originally developed for Cocoon 2.1.4, but it compiled straight-away with Cocoon 2.1.6. I reccon compiling it for even newer versions should not be a problem.