vgritsenko 2003/01/31 18:58:03 Modified: src/documentation/xdocs/userdocs/readers image-reader.xml src/scratchpad/src/org/apache/cocoon/reading ImageReader.java src/scratchpad/webapp/samples scratchpad-samples.xml Added: src/scratchpad/webapp/samples/imagereader logo.jpg sitemap.xmap Log: Fix bug 16490: Image Reader Caching Problem. Add imagereader sample. Revision Changes Path 1.5 +1 -1 xml-cocoon2/src/documentation/xdocs/userdocs/readers/image-reader.xml Index: image-reader.xml =================================================================== RCS file: /home/cvs/xml-cocoon2/src/documentation/xdocs/userdocs/readers/image-reader.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- image-reader.xml 31 Jan 2003 23:28:12 -0000 1.4 +++ image-reader.xml 1 Feb 2003 02:58:03 -0000 1.5 @@ -100,7 +100,7 @@ setup parameters </p> <table> - <tr><th>Parametername</th><th>Type</th><th>Comment</th></tr> + <tr><th>Parameter Name</th><th>Type</th><th>Comment</th></tr> <tr><td>expires</td><td>Time in milliseconds</td> <td> This parameter is optional. When specified it determines how long 1.8 +23 -7 xml-cocoon2/src/scratchpad/src/org/apache/cocoon/reading/ImageReader.java Index: ImageReader.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/scratchpad/src/org/apache/cocoon/reading/ImageReader.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- ImageReader.java 31 Jan 2003 22:54:40 -0000 1.7 +++ ImageReader.java 1 Feb 2003 02:58:03 -0000 1.8 @@ -68,6 +68,7 @@ import java.awt.image.WritableRaster; import java.io.ByteArrayOutputStream; import java.io.IOException; +import java.io.Serializable; import java.util.Map; /** @@ -93,18 +94,18 @@ * @author <a href="mailto:[EMAIL PROTECTED]">Torsten Curdt</a> * @version CVS $Revision$ $Date$ */ - final public class ImageReader extends ResourceReader { private int width; private int height; - public void setup(SourceResolver resolver, Map objectModel, String src, Parameters par) throws ProcessingException, SAXException, IOException { + public void setup(SourceResolver resolver, Map objectModel, String src, Parameters par) + throws ProcessingException, SAXException, IOException { + super.setup(resolver, objectModel, src, par); width = par.getParameterAsInteger("width", 0); height = par.getParameterAsInteger("height", 0); - } /** @@ -142,7 +143,9 @@ protected void processStream() throws IOException, ProcessingException { if (width > 0 || height > 0) { if (getLogger().isDebugEnabled()) { - getLogger().debug("image " + ((width==0)?"?":Integer.toString(width)) + "x" + ((height==0)?"?":Integer.toString(height)) +" expires: " + expires); + getLogger().debug("image " + ((width==0)?"?":Integer.toString(width)) + + "x" + ((height==0)?"?":Integer.toString(height)) + + " expires: " + expires); } // since we create the image on the fly @@ -193,8 +196,7 @@ } inputStream.close(); - } - else { + } else { // only read the resource - no modifications requested if (getLogger().isDebugEnabled()) { getLogger().debug("passing original resource"); @@ -203,4 +205,18 @@ } } + /** + * Generate the unique key. + * This key must be unique inside the space of this component. + * + * @return The generated key consists from src and width and height + * parameters + */ + public Serializable generateKey() { + if (width > 0 || height > 0) { + return this.inputSource.getURI() + ':' + this.width + ':' + this.height; + } else { + return super.generateKey(); + } + } } 1.7 +13 -1 xml-cocoon2/src/scratchpad/webapp/samples/scratchpad-samples.xml Index: scratchpad-samples.xml =================================================================== RCS file: /home/cvs/xml-cocoon2/src/scratchpad/webapp/samples/scratchpad-samples.xml,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- scratchpad-samples.xml 1 Feb 2003 02:09:30 -0000 1.6 +++ scratchpad-samples.xml 1 Feb 2003 02:58:03 -0000 1.7 @@ -55,4 +55,16 @@ Show the usage of the Mail Action. </sample> </group> + + <group name="ImageReader"> + <sample name="Image" href="imagereader/image-0"> + Image of original size + </sample> + <sample name="Image 250x250" href="imagereader/image-250"> + Image scaled up to the size 250 x 250 + </sample> + <sample name="Image 50x50" href="imagereader/image-50"> + Image scaled down to the size 50 x 50 + </sample> + </group> </samples> 1.1 xml-cocoon2/src/scratchpad/webapp/samples/imagereader/logo.jpg <<Binary file>> 1.1 xml-cocoon2/src/scratchpad/webapp/samples/imagereader/sitemap.xmap Index: sitemap.xmap =================================================================== <?xml version="1.0"?> <!-- CVS $Id: sitemap.xmap,v 1.1 2003/02/01 02:58:03 vgritsenko Exp $ Image Reader Sample --> <map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0"> <map:components> <map:generators default="file"/> <map:transformers default="xslt"> <map:transformer name="paginate" src="org.apache.cocoon.transformation.pagination.Paginator"/> </map:transformers> <map:readers default="resource"> <map:reader name="image" src="org.apache.cocoon.reading.ImageReader" logger="sitemap.reader.image" pool-max="32" pool-min="1" pool-grow="4"/> </map:readers> <map:serializers default="html"/> <map:matchers default="wildcard"/> <map:selectors default="browser"/> </map:components> <map:pipelines> <map:pipeline> <map:match pattern=""> <map:redirect-to uri="image-100"/> </map:match> <map:match pattern="image-*"> <map:read type="image" src="logo.jpg"> <map:parameter name="width" value="{1}"/> <map:parameter name="height" value="{1}"/> </map:read> </map:match> </map:pipeline> </map:pipelines> </map:sitemap>
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]