In this wiki there are other alternatives for generating gzip compressed output, a feature of HTTP 1.1. The advantage of this implementation is that it doesn't require any specific serializer or reader implementation. Unlike implementations that use servlet filters, gzip compression can be controlled from the sitemap, and content-length calculation is determined by serializers and readers.
First declare the new components in the sitemap:
<map:actions> <map:action name="gzip" logger="pipe.gzip" src="fcc.ima.cocoon.GzipAction"/> </map:actions> <map:pipes default="gzip-no-cache"> <map:pipe name="gzip-no-cache" src="fcc.ima.cocoon.GzipNonCachingProcessingPipeline" logger="pipe.gzip"/> </map:pipes>
Create a pipe that is gzip aware:
<map:pipelines> <map:pipeline type="gzip-no-cache"> <map:match src="my-url"> <map:act type='gzip'/> <map:read src='my-file'/> </map:match> </map:pipeline> </map:pipelines>
In order to activate gzip compression use:
and for deactivating it:
<map:act type='gzip'> <map:parameter name='use' value='0'/> </map:act>
You can (de)activate compression as many times as needed in a pipeline.
- Mozilla 1.5 seems not to like compressed files.
- jpg and gif files are already compressed, so compress them twice isn't very useful.
- Make a caching implementation
Comments and improvements are welcome!.
My email address is dperezcar at fcc dot es (rename at and dot).