sunlabs.brazil.filter

Class ExecFilter

public class ExecFilter extends Object implements Filter

Filter to Run all content through an external process filter. The content is provided as the standard input to a command, that is expected to return the new content.

The following server properties are used:

command
The command to exec. The content is supplied as stdin, and the filtered output is expected on stdout. ${...} substitutions Are done at each filter invocation.
types
A regular expression that matches the content types for the content we wish to filter
type
This property is set to the content type of the content just before command is evaluated.
newType
This property, if set, is used as the new content type. It is evaluated for ${...} at each conversion.
error
If the command failed, this property will contain the error message. If the command generated output on stderr, this property will contain the output.
The following configuration will halve the size of all jpeg and gif images, using the convert program from ImageMagic.
 prefix.types=image/(jpeg|gif)
 prefix.command= convert -sample 50% \ 
     ${map.${prefix.type}}:- ${map.${prefix.type}}:-
 map.image/gif=GIF
 map.image/jpeg=JPEG
 

Version: 2.2

Author: Stephen Uhler

Method Summary
byte[]filter(Request request, MimeHeaders headers, byte[] content)
Run content through filter.
booleaninit(Server server, String prefix)
booleanrespond(Request request)
This is the request object before the content was fetched
booleanshouldFilter(Request request, MimeHeaders headers)
Only filter content types that match

Method Detail

filter

public byte[] filter(Request request, MimeHeaders headers, byte[] content)
Run content through filter. Process ${...}

init

public boolean init(Server server, String prefix)

respond

public boolean respond(Request request)
This is the request object before the content was fetched

shouldFilter

public boolean shouldFilter(Request request, MimeHeaders headers)
Only filter content types that match