From a539d8af4c422676cb89fa27bcb8d17496b6801c Mon Sep 17 00:00:00 2001 From: Glen Mazza Date: Sun, 25 Jan 2004 14:40:14 +0000 Subject: [PATCH] Switching from passing the FOUserAgent for several of the image functions to its internal Avalon logger instead. (Only object used within FOUserAgent parameter, plus this library is also used for the PDFTranscoder, plus FOUserAgent not always available from everywhere anymore.) Holding off making a complete switch in this package (FOUserAgent still used in a few more places, albeit only its logger is being requested) until others comment. git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@197259 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/fop/fo/flow/ExternalGraphic.java | 2 +- .../apache/fop/image/AbstractFopImage.java | 16 ++++++------ src/java/org/apache/fop/image/BmpImage.java | 20 +++++++------- src/java/org/apache/fop/image/FopImage.java | 6 ++--- src/java/org/apache/fop/image/GifImage.java | 16 ++++++------ src/java/org/apache/fop/image/JimiImage.java | 13 ++++------ src/java/org/apache/fop/image/JpegImage.java | 26 +++++++++---------- .../apache/fop/render/awt/AWTRenderer.java | 2 +- .../apache/fop/render/pdf/PDFRenderer.java | 14 +++++----- .../org/apache/fop/render/ps/PSRenderer.java | 2 +- .../apache/fop/svg/PDFImageElementBridge.java | 4 ++- 11 files changed, 60 insertions(+), 61 deletions(-) diff --git a/src/java/org/apache/fop/fo/flow/ExternalGraphic.java b/src/java/org/apache/fop/fo/flow/ExternalGraphic.java index e7e6085b7..441125769 100644 --- a/src/java/org/apache/fop/fo/flow/ExternalGraphic.java +++ b/src/java/org/apache/fop/fo/flow/ExternalGraphic.java @@ -158,7 +158,7 @@ public class ExternalGraphic extends FObj { return; } // load dimensions - if (!fopimage.load(FopImage.DIMENSIONS, getUserAgent())) { + if (!fopimage.load(FopImage.DIMENSIONS, getUserAgent().getLogger())) { // error url = null; return; diff --git a/src/java/org/apache/fop/image/AbstractFopImage.java b/src/java/org/apache/fop/image/AbstractFopImage.java index 8824c8cd0..cd4016906 100644 --- a/src/java/org/apache/fop/image/AbstractFopImage.java +++ b/src/java/org/apache/fop/image/AbstractFopImage.java @@ -57,7 +57,7 @@ import java.io.InputStream; import java.awt.Color; // FOP -import org.apache.fop.apps.FOUserAgent; +import org.apache.avalon.framework.logger.Logger; /** * Base class to implement the FopImage interface. @@ -157,13 +157,13 @@ public abstract class AbstractFopImage implements FopImage { * @param ua the user agent for handling logging etc. * @return true if the loading was successful */ - public synchronized boolean load(int type, FOUserAgent ua) { + public synchronized boolean load(int type, Logger logger) { if ((loaded & type) != 0) { return true; } boolean success = true; if (((type & DIMENSIONS) != 0) && ((loaded & DIMENSIONS) == 0)) { - success = success && loadDimensions(ua); + success = success && loadDimensions(logger); if (!success) { return false; @@ -171,13 +171,13 @@ public abstract class AbstractFopImage implements FopImage { loaded = loaded | DIMENSIONS; } if (((type & BITMAP) != 0) && ((loaded & BITMAP) == 0)) { - success = success && loadBitmap(ua); + success = success && loadBitmap(logger); if (success) { loaded = loaded | BITMAP; } } if (((type & ORIGINAL_DATA) != 0) && ((loaded & ORIGINAL_DATA) == 0)) { - success = success && loadOriginalData(ua); + success = success && loadOriginalData(logger); if (success) { loaded = loaded | ORIGINAL_DATA; } @@ -193,7 +193,7 @@ public abstract class AbstractFopImage implements FopImage { * @param ua the user agent * @return true if the loading was successful */ - protected boolean loadDimensions(FOUserAgent ua) { + protected boolean loadDimensions(Logger logger) { return false; } @@ -205,7 +205,7 @@ public abstract class AbstractFopImage implements FopImage { * @param ua the user agent * @return true if the loading was successful */ - protected boolean loadBitmap(FOUserAgent ua) { + protected boolean loadBitmap(Logger logger) { return false; } @@ -217,7 +217,7 @@ public abstract class AbstractFopImage implements FopImage { * @param ua the user agent * @return true if the loading was successful */ - protected boolean loadOriginalData(FOUserAgent ua) { + protected boolean loadOriginalData(Logger logger) { return false; } diff --git a/src/java/org/apache/fop/image/BmpImage.java b/src/java/org/apache/fop/image/BmpImage.java index 4e724af3e..0e8655179 100644 --- a/src/java/org/apache/fop/image/BmpImage.java +++ b/src/java/org/apache/fop/image/BmpImage.java @@ -55,7 +55,7 @@ import java.io.IOException; import java.awt.color.ColorSpace; // FOP -import org.apache.fop.apps.FOUserAgent; +import org.apache.avalon.framework.logger.Logger; /** * Bitmap image. @@ -82,7 +82,7 @@ public class BmpImage extends AbstractFopImage { * @param ua the user agent * @return true if it was loaded successfully */ - protected boolean loadBitmap(FOUserAgent ua) { + protected boolean loadBitmap(Logger logger) { int wpos = 18; int hpos = 22; // offset positioning for w and height in bmp files int[] headermap = new int[54]; @@ -120,7 +120,7 @@ public class BmpImage extends AbstractFopImage { } } } catch (IOException e) { - ua.getLogger().error("Error while loading image " + logger.error("Error while loading image " + "" + " : " + e.getClass() + " - " + e.getMessage(), e); @@ -150,9 +150,9 @@ public class BmpImage extends AbstractFopImage { } else if (this.bitsPerPixel == 4 || this.bitsPerPixel == 8) { bytes = this.width / (8 / this.bitsPerPixel); } else { - ua.getLogger().error("Image (" + "" - + ") has " + this.bitsPerPixel - + " which is not a supported BMP format."); + logger.error("Image (" + "" + + ") has " + this.bitsPerPixel + + " which is not a supported BMP format."); return false; } if ((bytes & 0x03) != 0) { @@ -175,10 +175,10 @@ public class BmpImage extends AbstractFopImage { inputStream.close(); inputStream = null; } catch (IOException e) { - ua.getLogger().error("Error while loading image " - + "" + " : " - + e.getClass() + " - " - + e.getMessage(), e); + logger.error("Error while loading image " + + "" + " : " + + e.getClass() + " - " + + e.getMessage(), e); return false; } diff --git a/src/java/org/apache/fop/image/FopImage.java b/src/java/org/apache/fop/image/FopImage.java index 4fadd564a..76b509d99 100644 --- a/src/java/org/apache/fop/image/FopImage.java +++ b/src/java/org/apache/fop/image/FopImage.java @@ -55,7 +55,7 @@ import java.awt.color.ColorSpace; import java.awt.color.ICC_Profile; import java.awt.Color; -import org.apache.fop.apps.FOUserAgent; +import org.apache.avalon.framework.logger.Logger; /** * Fop image interface for loading images. @@ -93,10 +93,10 @@ public interface FopImage { * the information. * * @param type the type of loading required - * @param ua the user agent + * @param logger the Avalon logger * @return boolean true if the information could be loaded */ - boolean load(int type, FOUserAgent ua); + boolean load(int type, Logger logger); /** * Returns the image width. diff --git a/src/java/org/apache/fop/image/GifImage.java b/src/java/org/apache/fop/image/GifImage.java index 8d4d4735b..1237348a5 100644 --- a/src/java/org/apache/fop/image/GifImage.java +++ b/src/java/org/apache/fop/image/GifImage.java @@ -61,7 +61,7 @@ import java.io.IOException; import java.net.URLConnection; // FOP -import org.apache.fop.apps.FOUserAgent; +import org.apache.avalon.framework.logger.Logger; /** * FopImage object for GIF images, using Java native classes. @@ -90,7 +90,7 @@ public class GifImage extends AbstractFopImage { * @param ua the user agent for loading * @return True if the load process succeeded */ - protected boolean loadBitmap(FOUserAgent ua) { + protected boolean loadBitmap(Logger logger) { int[] tmpMap = null; try { URLConnection con = new DummyConnection(inputStream); @@ -113,8 +113,8 @@ public class GifImage extends AbstractFopImage { try { tmpMap = consumer.getImage(); } catch (Exception ex) { - ua.getLogger().error("Image grabbing interrupted : " - + ex.getMessage(), ex); + logger.error("Image grabbing interrupted : " + + ex.getMessage(), ex); return false; } @@ -178,10 +178,10 @@ public class GifImage extends AbstractFopImage { this.isTransparent = false; } } catch (Exception ex) { - ua.getLogger().error("Error while loading image " - + "" + " : " - + ex.getClass() + " - " - + ex.getMessage(), ex); + logger.error("Error while loading image " + + "" + " : " + + ex.getClass() + " - " + + ex.getMessage(), ex); return false; } diff --git a/src/java/org/apache/fop/image/JimiImage.java b/src/java/org/apache/fop/image/JimiImage.java index 417ccb40d..7a6f65763 100644 --- a/src/java/org/apache/fop/image/JimiImage.java +++ b/src/java/org/apache/fop/image/JimiImage.java @@ -63,9 +63,6 @@ import com.sun.jimi.core.Jimi; // Avalon import org.apache.avalon.framework.logger.Logger; -// FOP -import org.apache.fop.apps.FOUserAgent; - /** * FopImage object for several images types, using Jimi. * See Jimi documentation for supported image types. @@ -84,20 +81,20 @@ public class JimiImage extends AbstractFopImage { } } - protected boolean loadDimensions(FOUserAgent ua) { + protected boolean loadDimensions(Logger logger) { if (this.bitmaps == null) { - loadImage(ua.getLogger()); + loadImage(logger); } return this.bitmaps != null; } /** - * @see org.apache.fop.image.AbstractFopImage#loadBitmap(FOUserAgent) + * @see org.apache.fop.image.AbstractFopImage#loadBitmap(Logger) */ - protected boolean loadBitmap(FOUserAgent ua) { + protected boolean loadBitmap(Logger logger) { if (this.bitmaps == null) { - loadImage(ua.getLogger()); + loadImage(logger); } return this.bitmaps != null; diff --git a/src/java/org/apache/fop/image/JpegImage.java b/src/java/org/apache/fop/image/JpegImage.java index 05265baf2..f3425980b 100644 --- a/src/java/org/apache/fop/image/JpegImage.java +++ b/src/java/org/apache/fop/image/JpegImage.java @@ -56,7 +56,7 @@ import java.awt.color.ColorSpace; import java.awt.color.ICC_Profile; // FOP -import org.apache.fop.apps.FOUserAgent; +import org.apache.avalon.framework.logger.Logger; import org.apache.fop.util.CMYKColorSpace; /** @@ -87,7 +87,7 @@ public class JpegImage extends AbstractFopImage { * @param ua the user agent * @return true if loaded false for any error */ - protected boolean loadOriginalData(FOUserAgent ua) { + protected boolean loadOriginalData(Logger logger) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); ByteArrayOutputStream iccStream = new ByteArrayOutputStream(); int index = 0; @@ -102,9 +102,9 @@ public class JpegImage extends AbstractFopImage { inputStream.close(); inputStream = null; } catch (java.io.IOException ex) { - ua.getLogger().error("Error while loading image " - + " : " + ex.getClass() - + " - " + ex.getMessage(), ex); + logger.error("Error while loading image " + + " : " + ex.getClass() + + " - " + ex.getMessage(), ex); return false; } @@ -147,7 +147,7 @@ public class JpegImage extends AbstractFopImage { */ this.colorSpace = CMYKColorSpace.getInstance(); } else { - ua.getLogger().error("Unknown ColorSpace for image: " + logger.error("Unknown ColorSpace for image: " + ""); return false; } @@ -189,8 +189,8 @@ public class JpegImage extends AbstractFopImage { } } } else { - ua.getLogger().error("Error while loading " - + "JpegImage - Invalid JPEG Header."); + logger.error("Error while loading " + + "JpegImage - Invalid JPEG Header."); return false; } if (iccStream.size() > 0) { @@ -198,19 +198,19 @@ public class JpegImage extends AbstractFopImage { try { iccStream.write(align); } catch (Exception e) { - ua.getLogger().error("Error while loading image " - + " : " - + e.getMessage(), e); + logger.error("Error while loading image " + + " : " + + e.getMessage(), e); return false; } try { iccProfile = ICC_Profile.getInstance(iccStream.toByteArray()); } catch (Exception e) { - ua.getLogger().error("Invalid ICC profile: " + e, e); + logger.error("Invalid ICC profile: " + e, e); return false; } } else if (this.colorSpace == null) { - ua.getLogger().error("ColorSpace not specified for JPEG image"); + logger.error("ColorSpace not specified for JPEG image"); return false; } return true; diff --git a/src/java/org/apache/fop/render/awt/AWTRenderer.java b/src/java/org/apache/fop/render/awt/AWTRenderer.java index a8b367ed1..0018810c7 100644 --- a/src/java/org/apache/fop/render/awt/AWTRenderer.java +++ b/src/java/org/apache/fop/render/awt/AWTRenderer.java @@ -409,7 +409,7 @@ public class AWTRenderer extends AbstractRenderer implements Printable, Pageable if (back.getURL() != null) { // TODO: implement ImageFactory fact = ImageFactory.getInstance(); FopImage fopimage = fact.getImage(back.getURL(), userAgent); - if (fopimage != null && fopimage.load(FopImage.DIMENSIONS, userAgent)) { + if (fopimage != null && fopimage.load(FopImage.DIMENSIONS, userAgent.getLogger())) { if (back.getRepeat() == BackgroundRepeat.REPEAT) { // create a pattern for the image } else { diff --git a/src/java/org/apache/fop/render/pdf/PDFRenderer.java b/src/java/org/apache/fop/render/pdf/PDFRenderer.java index 86b9b7c1e..571f14a6e 100644 --- a/src/java/org/apache/fop/render/pdf/PDFRenderer.java +++ b/src/java/org/apache/fop/render/pdf/PDFRenderer.java @@ -595,7 +595,7 @@ public class PDFRenderer extends PrintRenderer { if (back.getURL() != null) { ImageFactory fact = ImageFactory.getInstance(); FopImage fopimage = fact.getImage(back.getURL(), userAgent); - if (fopimage != null && fopimage.load(FopImage.DIMENSIONS, userAgent)) { + if (fopimage != null && fopimage.load(FopImage.DIMENSIONS, userAgent.getLogger())) { if (back.getRepeat() == BackgroundRepeat.REPEAT) { // create a pattern for the image } else { @@ -1102,12 +1102,12 @@ public class PDFRenderer extends PrintRenderer { if (fopimage == null) { return; } - if (!fopimage.load(FopImage.DIMENSIONS, userAgent)) { + if (!fopimage.load(FopImage.DIMENSIONS, userAgent.getLogger())) { return; } String mime = fopimage.getMimeType(); if ("text/xml".equals(mime)) { - if (!fopimage.load(FopImage.ORIGINAL_DATA, userAgent)) { + if (!fopimage.load(FopImage.ORIGINAL_DATA, userAgent.getLogger())) { return; } Document doc = ((XMLImage) fopimage).getDocument(); @@ -1115,7 +1115,7 @@ public class PDFRenderer extends PrintRenderer { renderDocument(doc, ns, pos); } else if ("image/svg+xml".equals(mime)) { - if (!fopimage.load(FopImage.ORIGINAL_DATA, userAgent)) { + if (!fopimage.load(FopImage.ORIGINAL_DATA, userAgent.getLogger())) { return; } Document doc = ((XMLImage) fopimage).getDocument(); @@ -1123,14 +1123,14 @@ public class PDFRenderer extends PrintRenderer { renderDocument(doc, ns, pos); } else if ("image/eps".equals(mime)) { - if (!fopimage.load(FopImage.ORIGINAL_DATA, userAgent)) { + if (!fopimage.load(FopImage.ORIGINAL_DATA, userAgent.getLogger())) { return; } FopPDFImage pdfimage = new FopPDFImage(fopimage, url); int xobj = pdfDoc.addImage(currentContext, pdfimage).getXNumber(); fact.releaseImage(url, userAgent); } else if ("image/jpeg".equals(mime)) { - if (!fopimage.load(FopImage.ORIGINAL_DATA, userAgent)) { + if (!fopimage.load(FopImage.ORIGINAL_DATA, userAgent.getLogger())) { return; } FopPDFImage pdfimage = new FopPDFImage(fopimage, url); @@ -1142,7 +1142,7 @@ public class PDFRenderer extends PrintRenderer { placeImage((int) pos.getX() / 1000, (int) pos.getY() / 1000, w, h, xobj); } else { - if (!fopimage.load(FopImage.BITMAP, userAgent)) { + if (!fopimage.load(FopImage.BITMAP, userAgent.getLogger())) { return; } FopPDFImage pdfimage = new FopPDFImage(fopimage, url); diff --git a/src/java/org/apache/fop/render/ps/PSRenderer.java b/src/java/org/apache/fop/render/ps/PSRenderer.java index 6f9e5bd3b..bc2062b7d 100644 --- a/src/java/org/apache/fop/render/ps/PSRenderer.java +++ b/src/java/org/apache/fop/render/ps/PSRenderer.java @@ -730,7 +730,7 @@ public class PSRenderer extends AbstractRenderer { if (back.getURL() != null) { ImageFactory fact = ImageFactory.getInstance(); FopImage fopimage = fact.getImage(back.getURL(), userAgent); - if (fopimage != null && fopimage.load(FopImage.DIMENSIONS, userAgent)) { + if (fopimage != null && fopimage.load(FopImage.DIMENSIONS, userAgent.getLogger())) { if (back.getRepeat() == BackgroundRepeat.REPEAT) { // create a pattern for the image } else { diff --git a/src/java/org/apache/fop/svg/PDFImageElementBridge.java b/src/java/org/apache/fop/svg/PDFImageElementBridge.java index aab0d089d..5878e552c 100644 --- a/src/java/org/apache/fop/svg/PDFImageElementBridge.java +++ b/src/java/org/apache/fop/svg/PDFImageElementBridge.java @@ -62,6 +62,7 @@ import java.awt.geom.Rectangle2D; import org.w3c.dom.Element; +import org.apache.avalon.framework.logger.ConsoleLogger; import org.apache.batik.bridge.BridgeContext; import org.apache.batik.gvt.AbstractGraphicsNode; import org.apache.batik.gvt.GraphicsNode; @@ -97,7 +98,8 @@ public class PDFImageElementBridge extends SVGImageElementBridge { (purl.toString(), purl.openStream(), null); if (ii.mimeType.toLowerCase() == "image/jpeg") { JpegImage jpeg = new JpegImage(ii); - jpeg.load(FopImage.ORIGINAL_DATA, null); + ConsoleLogger logger = new ConsoleLogger(ConsoleLogger.LEVEL_INFO); + jpeg.load(FopImage.ORIGINAL_DATA, logger); PDFJpegNode node = new PDFJpegNode(jpeg, origGN); Rectangle2D imgBounds = getImageBounds(ctx, e); -- 2.39.5