You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by je...@apache.org on 2007/12/04 11:27:55 UTC
svn commit: r600870 [3/3] - in
/xmlgraphics/fop/branches/Temp_ImagePackageRedesign:
src/java/org/apache/fop/apps/ src/java/org/apache/fop/area/
src/java/org/apache/fop/fo/flow/ src/java/org/apache/fop/image2/
src/java/org/apache/fop/image2/cache/ src/j...
Modified: xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/java2d/Java2DRenderer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/java2d/Java2DRenderer.java?rev=600870&r1=600869&r2=600870&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/java2d/Java2DRenderer.java (original)
+++ xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/java2d/Java2DRenderer.java Tue Dec 4 02:27:51 2007
@@ -63,6 +63,7 @@
import org.apache.fop.image2.ImageFlavor;
import org.apache.fop.image2.ImageInfo;
import org.apache.fop.image2.ImageManager;
+import org.apache.fop.image2.ImageSessionContext;
import org.apache.fop.image2.impl.ImageGraphics2D;
import org.apache.fop.image2.impl.ImageRendered;
import org.apache.fop.image2.impl.ImageXMLDOM;
@@ -890,14 +891,16 @@
ImageManager manager = getUserAgent().getFactory().getImageManager();
ImageInfo info = null;
try {
- info = manager.preloadImage(uri, getUserAgent());
+ ImageSessionContext sessionContext = getUserAgent().getImageSessionContext();
+ info = manager.getImageInfo(uri, sessionContext);
final ImageFlavor[] flavors = new ImageFlavor[]
{ImageFlavor.GRAPHICS2D,
ImageFlavor.BUFFERED_IMAGE,
ImageFlavor.RENDERED_IMAGE,
ImageFlavor.XML_DOM};
- Map hints = ImageUtil.getDefaultHints(getUserAgent());
- org.apache.fop.image2.Image img = manager.getImage(info, flavors, hints);
+ Map hints = ImageUtil.getDefaultHints(sessionContext);
+ org.apache.fop.image2.Image img = manager.getImage(
+ info, flavors, hints, sessionContext);
if (img instanceof ImageGraphics2D) {
ImageGraphics2D imageG2D = (ImageGraphics2D)img;
int width = (int)pos.getWidth();
Modified: xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/ps/PSRenderer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/ps/PSRenderer.java?rev=600870&r1=600869&r2=600870&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/ps/PSRenderer.java (original)
+++ xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/ps/PSRenderer.java Tue Dec 4 02:27:51 2007
@@ -24,6 +24,7 @@
import java.awt.geom.Rectangle2D;
import java.awt.image.RenderedImage;
import java.io.File;
+import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.LineNumberReader;
@@ -76,6 +77,7 @@
import org.apache.fop.image2.ImageFlavor;
import org.apache.fop.image2.ImageInfo;
import org.apache.fop.image2.ImageManager;
+import org.apache.fop.image2.ImageSessionContext;
import org.apache.fop.image2.impl.ImageGraphics2D;
import org.apache.fop.image2.impl.ImageRawEPS;
import org.apache.fop.image2.impl.ImageRawJPEG;
@@ -406,8 +408,9 @@
ImageManager manager = getUserAgent().getFactory().getImageManager();
ImageInfo info = null;
try {
- info = manager.preloadImage(uri, getUserAgent());
- Map hints = ImageUtil.getDefaultHints(getUserAgent());
+ ImageSessionContext sessionContext = getUserAgent().getImageSessionContext();
+ info = manager.getImageInfo(uri, sessionContext);
+ Map hints = ImageUtil.getDefaultHints(sessionContext);
ImageFlavor[] flavors;
if (gen.getPSLevel() >= 3) {
flavors = level3Flavors;
@@ -416,7 +419,8 @@
}
int width = (int)pos.getWidth();
int height = (int)pos.getHeight();
- org.apache.fop.image2.Image img = manager.getImage(info, flavors, hints);
+ org.apache.fop.image2.Image img = manager.getImage(
+ info, flavors, hints, sessionContext);
if (img instanceof ImageGraphics2D) {
ImageGraphics2D imageG2D = (ImageGraphics2D)img;
RendererContext context = createRendererContext(
@@ -437,17 +441,27 @@
if (MimeConstants.MIME_EPS.equals(raw.getInfo().getMimeType())) {
ImageRawEPS eps = (ImageRawEPS)raw;
Rectangle2D bbox = eps.getBoundingBox();
- PSImageUtils.renderEPS(raw.getInputStream(), uri,
- x / 1000f, y / 1000f,
- width / 1000f, height / 1000f,
- (float)bbox.getX(), (float)bbox.getY(),
- (float)bbox.getWidth(), (float)bbox.getHeight(),
- gen);
+ InputStream in = raw.createInputStream();
+ try {
+ PSImageUtils.renderEPS(in, uri,
+ x / 1000f, y / 1000f,
+ width / 1000f, height / 1000f,
+ (float)bbox.getX(), (float)bbox.getY(),
+ (float)bbox.getWidth(), (float)bbox.getHeight(),
+ gen);
+ } finally {
+ IOUtils.closeQuietly(in);
+ }
} else if (MimeConstants.MIME_JPEG.equals(raw.getInfo().getMimeType())) {
ImageRawJPEG jpeg = (ImageRawJPEG)raw;
ImageEncoder encoder = new ImageEncoder() {
public void writeTo(OutputStream out) throws IOException {
- IOUtils.copy(raw.getInputStream(), out);
+ InputStream in = raw.createInputStream();
+ try {
+ IOUtils.copy(in, out);
+ } finally {
+ IOUtils.closeQuietly(in);
+ }
}
public String getImplicitFilter() {
return "<< >> /DCTDecode";
@@ -466,55 +480,11 @@
} catch (ImageException ie) {
log.error("Error while processing image: "
+ (info != null ? info.toString() : uri), ie);
+ } catch (FileNotFoundException fe) {
+ log.error(fe.getMessage());
} catch (IOException ioe) {
handleIOTrouble(ioe);
}
-
- /*
- if (fopimage == null) {
- return;
- }
- if (!fopimage.load(FopImage.DIMENSIONS)) {
- return;
- }
- float x = (float)pos.getX() / 1000f;
- x += currentIPPosition / 1000f;
- float y = (float)pos.getY() / 1000f;
- y += currentBPPosition / 1000f;
- float w = (float)pos.getWidth() / 1000f;
- float h = (float)pos.getHeight() / 1000f;
- try {
- String mime = fopimage.getMimeType();
- if ("text/xml".equals(mime)) {
- if (!fopimage.load(FopImage.ORIGINAL_DATA)) {
- return;
- }
- Document doc = ((XMLImage) fopimage).getDocument();
- String ns = ((XMLImage) fopimage).getNameSpace();
-
- renderDocument(doc, ns, pos, foreignAttributes);
- } else if ("image/svg+xml".equals(mime)) {
- if (!fopimage.load(FopImage.ORIGINAL_DATA)) {
- return;
- }
- Document doc = ((XMLImage) fopimage).getDocument();
- String ns = ((XMLImage) fopimage).getNameSpace();
-
- renderDocument(doc, ns, pos, foreignAttributes);
- } else if (fopimage instanceof EPSImage) {
- PSImageUtils.renderEPS((EPSImage)fopimage, x, y, w, h, gen);
- } else {
- if (isImageInlined(uri, fopimage)) {
- PSImageUtils.renderBitmapImage(fopimage, x, y, w, h, gen);
- } else {
- PSResource form = getFormForImage(uri, fopimage);
- PSImageUtils.renderForm(fopimage, form, x, y, w, h, gen);
- }
- }
- } catch (IOException ioe) {
- handleIOTrouble(ioe);
- }
- */
}
/**
Modified: xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/rtf/RTFHandler.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/rtf/RTFHandler.java?rev=600870&r1=600869&r2=600870&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/rtf/RTFHandler.java (original)
+++ xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/rtf/RTFHandler.java Tue Dec 4 02:27:51 2007
@@ -82,6 +82,7 @@
import org.apache.fop.image2.ImageFlavor;
import org.apache.fop.image2.ImageInfo;
import org.apache.fop.image2.ImageManager;
+import org.apache.fop.image2.ImageSessionContext;
import org.apache.fop.image2.impl.ImageRawStream;
import org.apache.fop.image2.util.ImageUtil;
import org.apache.fop.render.DefaultFontResolver;
@@ -1106,7 +1107,7 @@
//set image data
FOUserAgent userAgent = eg.getUserAgent();
ImageManager manager = userAgent.getFactory().getImageManager();
- ImageInfo info = manager.preloadImage(uri, userAgent);
+ ImageInfo info = manager.getImageInfo(uri, userAgent.getImageSessionContext());
if (info == null) {
log.error("Image could not be found: " + uri);
return;
@@ -1181,12 +1182,13 @@
ImageFlavor[] flavors = new ImageFlavor[] {
ImageFlavor.RAW_EMF, ImageFlavor.RAW_PNG, ImageFlavor.RAW_JPEG
};
- Map hints = ImageUtil.getDefaultHints(userAgent);
- Image image = manager.getImage(info, flavors, hints);
+ ImageSessionContext sessionContext = userAgent.getImageSessionContext();
+ Map hints = ImageUtil.getDefaultHints(sessionContext);
+ Image image = manager.getImage(info, flavors, hints, sessionContext);
if (image instanceof ImageRawStream) {
ImageRawStream rawImage = (ImageRawStream)image;
- rawData = IOUtils.toByteArray(rawImage.getInputStream());
+ rawData = IOUtils.toByteArray(rawImage.createInputStream());
}
} catch (ImageException ie) {
log.error("Error while loading/processing image: " + info.getOriginalURI(), ie);
Modified: xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/ImageLoaderTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/ImageLoaderTestCase.java?rev=600870&r1=600869&r2=600870&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/ImageLoaderTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/ImageLoaderTestCase.java Tue Dec 4 02:27:51 2007
@@ -20,11 +20,13 @@
package org.apache.fop.image2;
import java.io.File;
+import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import junit.framework.TestCase;
+import org.apache.commons.io.IOUtils;
import org.apache.xmlgraphics.image.writer.ImageWriterUtil;
import org.apache.fop.apps.FOUserAgent;
@@ -32,7 +34,6 @@
import org.apache.fop.image2.impl.ImageRawStream;
import org.apache.fop.image2.impl.ImageRendered;
import org.apache.fop.image2.impl.ImageXMLDOM;
-import org.apache.fop.image2.util.ImageUtil;
/**
* Tests for bundled ImageLoader implementations.
@@ -56,10 +57,11 @@
FOUserAgent userAgent = fopFactory.newFOUserAgent();
ImageManager manager = fopFactory.getImageManager();
- ImageInfo info = manager.preloadImage(uri, userAgent);
+ ImageInfo info = manager.preloadImage(uri, userAgent.getImageSessionContext());
assertNotNull("ImageInfo must not be null", info);
- Image img = manager.getImage(info, ImageFlavor.RENDERED_IMAGE);
+ Image img = manager.getImage(info, ImageFlavor.RENDERED_IMAGE,
+ userAgent.getImageSessionContext());
assertNotNull("Image must not be null", img);
assertEquals(ImageFlavor.RENDERED_IMAGE, img.getFlavor());
ImageRendered imgRed = (ImageRendered)img;
@@ -77,10 +79,11 @@
FOUserAgent userAgent = fopFactory.newFOUserAgent();
ImageManager manager = fopFactory.getImageManager();
- ImageInfo info = manager.preloadImage(uri, userAgent);
+ ImageInfo info = manager.preloadImage(uri, userAgent.getImageSessionContext());
assertNotNull("ImageInfo must not be null", info);
- Image img = manager.getImage(info, ImageFlavor.RENDERED_IMAGE);
+ Image img = manager.getImage(info, ImageFlavor.RENDERED_IMAGE,
+ userAgent.getImageSessionContext());
assertNotNull("Image must not be null", img);
assertEquals(ImageFlavor.RENDERED_IMAGE, img.getFlavor());
ImageRendered imgRed = (ImageRendered)img;
@@ -98,10 +101,11 @@
FOUserAgent userAgent = fopFactory.newFOUserAgent();
ImageManager manager = fopFactory.getImageManager();
- ImageInfo info = manager.preloadImage(uri, userAgent);
+ ImageInfo info = manager.preloadImage(uri, userAgent.getImageSessionContext());
assertNotNull("ImageInfo must not be null", info);
- Image img = manager.getImage(info, ImageFlavor.XML_DOM);
+ Image img = manager.getImage(info, ImageFlavor.XML_DOM,
+ userAgent.getImageSessionContext());
assertNotNull("Image must not be null", img);
assertEquals(ImageFlavor.XML_DOM, img.getFlavor());
ImageXMLDOM imgDom = (ImageXMLDOM)img;
@@ -112,7 +116,7 @@
assertEquals(16000, info.getSize().getHeightMpt());
img = manager.getImage(info, ImageFlavor.RENDERED_IMAGE,
- ImageUtil.getDefaultHints(userAgent));
+ userAgent.getImageSessionContext());
assertNotNull("Image must not be null", img);
assertEquals(ImageFlavor.RENDERED_IMAGE, img.getFlavor());
ImageRendered imgRed = (ImageRendered)img;
@@ -135,11 +139,11 @@
FOUserAgent userAgent = fopFactory.newFOUserAgent();
ImageManager manager = fopFactory.getImageManager();
- ImageInfo info = manager.preloadImage(uri, userAgent);
+ ImageInfo info = manager.preloadImage(uri, userAgent.getImageSessionContext());
assertNotNull("ImageInfo must not be null", info);
Image img = manager.getImage(info, ImageFlavor.RENDERED_IMAGE,
- ImageUtil.getDefaultHints(userAgent));
+ userAgent.getImageSessionContext());
assertNotNull("Image must not be null", img);
assertEquals(ImageFlavor.RENDERED_IMAGE, img.getFlavor());
ImageRendered imgRed = (ImageRendered)img;
@@ -162,20 +166,25 @@
FOUserAgent userAgent = fopFactory.newFOUserAgent();
ImageManager manager = fopFactory.getImageManager();
- ImageInfo info = manager.preloadImage(uri, userAgent);
+ ImageInfo info = manager.preloadImage(uri, userAgent.getImageSessionContext());
assertNotNull("ImageInfo must not be null", info);
Image img = manager.getImage(info, ImageFlavor.RAW_EPS,
- ImageUtil.getDefaultHints(userAgent));
+ userAgent.getImageSessionContext());
assertNotNull("Image must not be null", img);
assertEquals(ImageFlavor.RAW_EPS, img.getFlavor());
ImageRawStream imgEPS = (ImageRawStream)img;
- assertNotNull(imgEPS.getInputStream());
- Reader reader = new InputStreamReader(imgEPS.getInputStream(), "US-ASCII");
- char[] c = new char[4];
- reader.read(c);
- if (!("%!PS".equals(new String(c)))) {
- fail("EPS header expected");
+ InputStream in = imgEPS.createInputStream();
+ try {
+ assertNotNull(in);
+ Reader reader = new InputStreamReader(in, "US-ASCII");
+ char[] c = new char[4];
+ reader.read(c);
+ if (!("%!PS".equals(new String(c)))) {
+ fail("EPS header expected");
+ }
+ } finally {
+ IOUtils.closeQuietly(in);
}
}
@@ -185,20 +194,25 @@
FOUserAgent userAgent = fopFactory.newFOUserAgent();
ImageManager manager = fopFactory.getImageManager();
- ImageInfo info = manager.preloadImage(uri, userAgent);
+ ImageInfo info = manager.preloadImage(uri, userAgent.getImageSessionContext());
assertNotNull("ImageInfo must not be null", info);
Image img = manager.getImage(info, ImageFlavor.RAW_EPS,
- ImageUtil.getDefaultHints(userAgent));
+ userAgent.getImageSessionContext());
assertNotNull("Image must not be null", img);
assertEquals(ImageFlavor.RAW_EPS, img.getFlavor());
ImageRawStream imgEPS = (ImageRawStream)img;
- assertNotNull(imgEPS.getInputStream());
- Reader reader = new InputStreamReader(imgEPS.getInputStream(), "US-ASCII");
- char[] c = new char[4];
- reader.read(c);
- if (!("%!PS".equals(new String(c)))) {
- fail("EPS header expected");
+ InputStream in = imgEPS.createInputStream();
+ try {
+ assertNotNull(in);
+ Reader reader = new InputStreamReader(in, "US-ASCII");
+ char[] c = new char[4];
+ reader.read(c);
+ if (!("%!PS".equals(new String(c)))) {
+ fail("EPS header expected");
+ }
+ } finally {
+ IOUtils.closeQuietly(in);
}
}
Modified: xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/ImagePreloaderTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/ImagePreloaderTestCase.java?rev=600870&r1=600869&r2=600870&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/ImagePreloaderTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/ImagePreloaderTestCase.java Tue Dec 4 02:27:51 2007
@@ -19,6 +19,7 @@
package org.apache.fop.image2;
+import java.io.FileNotFoundException;
import java.io.IOException;
import junit.framework.TestCase;
@@ -50,13 +51,26 @@
assertNotNull(ilf);
}
+ public void testFileNotFound() throws Exception {
+ String uri = "doesnotexistanywhere.png";
+
+ FOUserAgent userAgent = fopFactory.newFOUserAgent();
+ ImageManager manager = fopFactory.getImageManager();
+ try {
+ ImageInfo info = manager.preloadImage(uri, userAgent.getImageSessionContext());
+ fail("Expected a FileNotFoundException!");
+ } catch (FileNotFoundException e) {
+ //expected!
+ }
+ }
+
public void testPNG() throws Exception {
String uri = "examples/fo/graphics/asf-logo.png";
FOUserAgent userAgent = fopFactory.newFOUserAgent();
ImageManager manager = fopFactory.getImageManager();
- ImageInfo info = manager.preloadImage(uri, userAgent);
+ ImageInfo info = manager.preloadImage(uri, userAgent.getImageSessionContext());
assertNotNull("ImageInfo must not be null", info);
assertEquals(MimeConstants.MIME_PNG, info.getMimeType());
assertEquals("examples/fo/graphics/asf-logo.png", info.getOriginalURI());
@@ -73,7 +87,7 @@
FOUserAgent userAgent = fopFactory.newFOUserAgent();
ImageManager manager = fopFactory.getImageManager();
- ImageInfo info = manager.preloadImage(uri, userAgent);
+ ImageInfo info = manager.preloadImage(uri, userAgent.getImageSessionContext());
assertNotNull("ImageInfo must not be null", info);
assertEquals(MimeConstants.MIME_TIFF, info.getMimeType());
assertEquals(uri, info.getOriginalURI());
@@ -90,7 +104,7 @@
FOUserAgent userAgent = fopFactory.newFOUserAgent();
ImageManager manager = fopFactory.getImageManager();
- ImageInfo info = manager.preloadImage(uri, userAgent);
+ ImageInfo info = manager.preloadImage(uri, userAgent.getImageSessionContext());
assertNotNull("ImageInfo must not be null", info);
assertEquals(MimeConstants.MIME_TIFF, info.getMimeType());
assertEquals(uri, info.getOriginalURI());
@@ -107,7 +121,7 @@
FOUserAgent userAgent = fopFactory.newFOUserAgent();
ImageManager manager = fopFactory.getImageManager();
- ImageInfo info = manager.preloadImage(uri, userAgent);
+ ImageInfo info = manager.preloadImage(uri, userAgent.getImageSessionContext());
assertNotNull("ImageInfo must not be null", info);
assertEquals(MimeConstants.MIME_GIF, info.getMimeType());
assertEquals(uri, info.getOriginalURI());
@@ -134,7 +148,7 @@
FOUserAgent userAgent = fopFactory.newFOUserAgent();
ImageManager manager = fopFactory.getImageManager();
- ImageInfo info = manager.preloadImage(uri, userAgent);
+ ImageInfo info = manager.preloadImage(uri, userAgent.getImageSessionContext());
assertNotNull("ImageInfo must not be null", info);
assertEquals(MimeConstants.MIME_SVG, info.getMimeType());
assertEquals(uri, info.getOriginalURI());
@@ -151,7 +165,7 @@
FOUserAgent userAgent = fopFactory.newFOUserAgent();
ImageManager manager = fopFactory.getImageManager();
- ImageInfo info = manager.preloadImage(uri, userAgent);
+ ImageInfo info = manager.preloadImage(uri, userAgent.getImageSessionContext());
assertNotNull("ImageInfo must not be null", info);
assertEquals(ImageWMF.MIME_WMF, info.getMimeType());
assertEquals(uri, info.getOriginalURI());
@@ -168,7 +182,7 @@
FOUserAgent userAgent = fopFactory.newFOUserAgent();
ImageManager manager = fopFactory.getImageManager();
- ImageInfo info = manager.preloadImage(uri, userAgent);
+ ImageInfo info = manager.preloadImage(uri, userAgent.getImageSessionContext());
assertNotNull("ImageInfo must not be null", info);
assertEquals("image/emf", info.getMimeType());
assertEquals(uri, info.getOriginalURI());
@@ -185,7 +199,7 @@
FOUserAgent userAgent = fopFactory.newFOUserAgent();
ImageManager manager = fopFactory.getImageManager();
- ImageInfo info = manager.preloadImage(uri, userAgent);
+ ImageInfo info = manager.preloadImage(uri, userAgent.getImageSessionContext());
assertNotNull("ImageInfo must not be null", info);
assertEquals(MimeConstants.MIME_JPEG, info.getMimeType());
assertEquals(uri, info.getOriginalURI());
@@ -202,7 +216,7 @@
FOUserAgent userAgent = fopFactory.newFOUserAgent();
ImageManager manager = fopFactory.getImageManager();
- ImageInfo info = manager.preloadImage(uri, userAgent);
+ ImageInfo info = manager.preloadImage(uri, userAgent.getImageSessionContext());
assertNotNull("ImageInfo must not be null", info);
assertEquals(MimeConstants.MIME_JPEG, info.getMimeType());
assertEquals(uri, info.getOriginalURI());
@@ -219,7 +233,7 @@
FOUserAgent userAgent = fopFactory.newFOUserAgent();
ImageManager manager = fopFactory.getImageManager();
- ImageInfo info = manager.preloadImage(uri, userAgent);
+ ImageInfo info = manager.preloadImage(uri, userAgent.getImageSessionContext());
assertNotNull("ImageInfo must not be null", info);
assertEquals("image/bmp", info.getMimeType());
assertEquals(uri, info.getOriginalURI());
@@ -236,7 +250,7 @@
FOUserAgent userAgent = fopFactory.newFOUserAgent();
ImageManager manager = fopFactory.getImageManager();
- ImageInfo info = manager.preloadImage(uri, userAgent);
+ ImageInfo info = manager.preloadImage(uri, userAgent.getImageSessionContext());
assertNotNull("ImageInfo must not be null", info);
assertEquals("image/bmp", info.getMimeType());
assertEquals(uri, info.getOriginalURI());
@@ -253,7 +267,7 @@
FOUserAgent userAgent = fopFactory.newFOUserAgent();
ImageManager manager = fopFactory.getImageManager();
- ImageInfo info = manager.preloadImage(uri, userAgent);
+ ImageInfo info = manager.preloadImage(uri, userAgent.getImageSessionContext());
assertNotNull("ImageInfo must not be null", info);
assertEquals(MimeConstants.MIME_EPS, info.getMimeType());
assertEquals(uri, info.getOriginalURI());
@@ -270,7 +284,7 @@
FOUserAgent userAgent = fopFactory.newFOUserAgent();
ImageManager manager = fopFactory.getImageManager();
- ImageInfo info = manager.preloadImage(uri, userAgent);
+ ImageInfo info = manager.preloadImage(uri, userAgent.getImageSessionContext());
assertNotNull("ImageInfo must not be null", info);
assertEquals(MimeConstants.MIME_EPS, info.getMimeType());
assertEquals(uri, info.getOriginalURI());
Added: xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/cache/ImageCacheLoggingStatistics.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/cache/ImageCacheLoggingStatistics.java?rev=600870&view=auto
==============================================================================
--- xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/cache/ImageCacheLoggingStatistics.java (added)
+++ xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/cache/ImageCacheLoggingStatistics.java Tue Dec 4 02:27:51 2007
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* $Id$ */
+
+package org.apache.fop.image2.cache;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * ImageCacheListener implementation for debugging purposes.
+ */
+public class ImageCacheLoggingStatistics extends ImageCacheStatistics {
+
+ /** logger */
+ protected static Log log = LogFactory.getLog(ImageCacheLoggingStatistics.class);
+
+ /**
+ * Main constructor.
+ * @param detailed true if statistics for each URI should be kept.
+ */
+ public ImageCacheLoggingStatistics(boolean detailed) {
+ super(detailed);
+ }
+
+ /** {@inheritDoc} */
+ public void invalidHit(String uri) {
+ super.invalidHit(uri);
+ log.info("Invalid HIT: " + uri);
+ }
+
+ /** {@inheritDoc} */
+ public void cacheHitImage(ImageKey key) {
+ super.cacheHitImage(key);
+ log.info("Image Cache HIT: " + key);
+ }
+
+ /** {@inheritDoc} */
+ public void cacheHitImageInfo(String uri) {
+ super.cacheHitImageInfo(uri);
+ log.info("ImageInfo Cache HIT: " + uri);
+ }
+
+ /** {@inheritDoc} */
+ public void cacheMissImage(ImageKey key) {
+ super.cacheMissImage(key);
+ log.info("Image Cache MISS: " + key);
+ }
+
+ /** {@inheritDoc} */
+ public void cacheMissImageInfo(String uri) {
+ super.cacheMissImageInfo(uri);
+ log.info("ImageInfo Cache MISS: " + uri);
+ }
+
+
+
+}
Propchange: xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/cache/ImageCacheLoggingStatistics.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/cache/ImageCacheLoggingStatistics.java
------------------------------------------------------------------------------
svn:keywords = Id
Added: xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/cache/ImageCacheTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/cache/ImageCacheTestCase.java?rev=600870&view=auto
==============================================================================
--- xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/cache/ImageCacheTestCase.java (added)
+++ xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/cache/ImageCacheTestCase.java Tue Dec 4 02:27:51 2007
@@ -0,0 +1,197 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* $Id$ */
+
+package org.apache.fop.image2.cache;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.net.MalformedURLException;
+
+import junit.framework.TestCase;
+
+import org.apache.fop.apps.FOUserAgent;
+import org.apache.fop.apps.FopFactory;
+import org.apache.fop.image2.ImageFlavor;
+import org.apache.fop.image2.ImageInfo;
+import org.apache.fop.image2.ImageManager;
+import org.apache.fop.image2.ImageSessionContext;
+import org.apache.fop.image2.impl.ImageBuffered;
+
+/**
+ * Tests for bundled ImageLoader implementations.
+ */
+public class ImageCacheTestCase extends TestCase {
+
+ private FopFactory createFopFactory() {
+ FopFactory fopFactory = FopFactory.newInstance();
+ fopFactory.setSourceResolution(72);
+ fopFactory.setTargetResolution(300);
+ File baseDir = new File("test/resources/images/");
+ if (!baseDir.isDirectory()) {
+ throw new IllegalStateException("Base directory for test was not found.");
+ }
+ try {
+ fopFactory.setBaseURL(baseDir.toURL().toExternalForm());
+ } catch (MalformedURLException e) {
+ throw new RuntimeException(e);
+ }
+ return fopFactory;
+ }
+
+ /**
+ * Tests the ImageInfo cache.
+ * @throws Exception if an error occurs
+ */
+ public void testImageInfoCache() throws Exception {
+ FopFactory fopFactory = createFopFactory();
+
+ FOUserAgent userAgent = fopFactory.newFOUserAgent();
+ ImageManager manager = fopFactory.getImageManager();
+
+ String invalid1 = "invalid1.jpg";
+ String invalid2 = "invalid2.jpg";
+ String valid1 = "bgimg300dpi.bmp";
+ String valid2 = "big-image.png";
+
+ ImageCacheStatistics statistics = new ImageCacheLoggingStatistics(true);
+ manager.getCache().setCacheListener(statistics);
+
+ ImageInfo info1, info2;
+ info1 = manager.getImageInfo(valid1, userAgent.getImageSessionContext());
+ assertNotNull(info1);
+ assertEquals(valid1, info1.getOriginalURI());
+
+ try {
+ manager.getImageInfo(invalid1, userAgent.getImageSessionContext());
+ fail("Expected FileNotFoundException for invalid URI");
+ } catch (FileNotFoundException e) {
+ //expected
+ }
+
+ //2 requests:
+ assertEquals(0, statistics.getImageInfoCacheHits());
+ assertEquals(2, statistics.getImageInfoCacheMisses());
+ assertEquals(0, statistics.getInvalidHits());
+ statistics.reset();
+
+ //Cache Hit
+ info1 = manager.getImageInfo(valid1, userAgent.getImageSessionContext());
+ assertNotNull(info1);
+ assertEquals(valid1, info1.getOriginalURI());
+
+ //Cache Miss
+ info2 = manager.getImageInfo(valid2, userAgent.getImageSessionContext());
+ assertNotNull(info2);
+ assertEquals(valid2, info2.getOriginalURI());
+
+ try {
+ //Invalid Hit
+ manager.getImageInfo(invalid1, userAgent.getImageSessionContext());
+ fail("Expected FileNotFoundException for invalid URI");
+ } catch (FileNotFoundException e) {
+ //expected
+ }
+ try {
+ //Invalid (Cache Miss)
+ manager.getImageInfo(invalid2, userAgent.getImageSessionContext());
+ fail("Expected FileNotFoundException for invalid URI");
+ } catch (FileNotFoundException e) {
+ //expected
+ }
+
+ //4 requests:
+ assertEquals(1, statistics.getImageInfoCacheHits());
+ assertEquals(2, statistics.getImageInfoCacheMisses());
+ assertEquals(1, statistics.getInvalidHits());
+ statistics.reset();
+
+ }
+
+ /**
+ * Tests the image cache reusing a cacheable Image created by the ImageLoader.
+ * @throws Exception if an error occurs
+ */
+ public void testImageCache1() throws Exception {
+ FopFactory fopFactory = createFopFactory();
+
+ FOUserAgent userAgent = fopFactory.newFOUserAgent();
+ ImageManager manager = fopFactory.getImageManager();
+
+ String valid1 = "bgimg300dpi.bmp";
+
+ ImageCacheStatistics statistics = new ImageCacheLoggingStatistics(true);
+ manager.getCache().setCacheListener(statistics);
+
+ ImageSessionContext session = userAgent.getImageSessionContext();
+ ImageInfo info = manager.getImageInfo(valid1, session);
+ assertNotNull(info);
+
+ ImageBuffered img1 = (ImageBuffered)manager.getImage(
+ info, ImageFlavor.BUFFERED_IMAGE, session);
+ assertNotNull(img1);
+ assertNotNull(img1.getBufferedImage());
+
+ ImageBuffered img2 = (ImageBuffered)manager.getImage(
+ info, ImageFlavor.BUFFERED_IMAGE, session);
+ //ImageBuffered does not have to be the same instance but we want at least the
+ //BufferedImage to be reused.
+ assertTrue("BufferedImage must be reused",
+ img1.getBufferedImage() == img2.getBufferedImage());
+
+ assertEquals(1, statistics.getImageCacheHits());
+ assertEquals(1, statistics.getImageCacheMisses());
+ }
+
+ /**
+ * Tests the image cache reusing a cacheable Image created by one of the ImageConverters in
+ * a converter pipeline.
+ * @throws Exception if an error occurs
+ */
+ public void testImageCache2() throws Exception {
+ FopFactory fopFactory = createFopFactory();
+
+ FOUserAgent userAgent = fopFactory.newFOUserAgent();
+ ImageManager manager = fopFactory.getImageManager();
+
+ String valid1 = "test/resources/images/img-w-size.svg";
+
+ ImageCacheStatistics statistics = new ImageCacheLoggingStatistics(true);
+ manager.getCache().setCacheListener(statistics);
+
+ ImageSessionContext session = userAgent.getImageSessionContext();
+ ImageInfo info = manager.getImageInfo(valid1, session);
+ assertNotNull(info);
+
+ ImageBuffered img1 = (ImageBuffered)manager.getImage(
+ info, ImageFlavor.BUFFERED_IMAGE, session);
+ assertNotNull(img1);
+ assertNotNull(img1.getBufferedImage());
+
+ ImageBuffered img2 = (ImageBuffered)manager.getImage(
+ info, ImageFlavor.BUFFERED_IMAGE, session);
+ //ImageBuffered does not have to be the same instance but we want at least the
+ //BufferedImage to be reused.
+ assertTrue("BufferedImage must be reused",
+ img1.getBufferedImage() == img2.getBufferedImage());
+
+ assertEquals(1, statistics.getImageCacheHits()); //1=BufferedImage
+ assertEquals(3, statistics.getImageCacheMisses()); //3=BufferedImage,Graphics2DImage,DOM
+ }
+
+}
Propchange: xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/cache/ImageCacheTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/cache/ImageCacheTestCase.java
------------------------------------------------------------------------------
svn:keywords = Id
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org