]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Switching from passing the FOUserAgent for several of the image
authorGlen Mazza <gmazza@apache.org>
Sun, 25 Jan 2004 14:40:14 +0000 (14:40 +0000)
committerGlen Mazza <gmazza@apache.org>
Sun, 25 Jan 2004 14:40:14 +0000 (14:40 +0000)
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

src/java/org/apache/fop/fo/flow/ExternalGraphic.java
src/java/org/apache/fop/image/AbstractFopImage.java
src/java/org/apache/fop/image/BmpImage.java
src/java/org/apache/fop/image/FopImage.java
src/java/org/apache/fop/image/GifImage.java
src/java/org/apache/fop/image/JimiImage.java
src/java/org/apache/fop/image/JpegImage.java
src/java/org/apache/fop/render/awt/AWTRenderer.java
src/java/org/apache/fop/render/pdf/PDFRenderer.java
src/java/org/apache/fop/render/ps/PSRenderer.java
src/java/org/apache/fop/svg/PDFImageElementBridge.java

index e7e6085b702a370d6e032b5e47d5b11c2ad6366e..4411257698a43ba3f22f7b51875bb4ecedd93d4f 100644 (file)
@@ -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;
index 8824c8cd0a1020cb994fe0bc426baeb527f5c21b..cd401690662651b64ed9a962cab2a5e992071dfe 100644 (file)
@@ -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;
     }
 
index 4e724af3e4fbef3b253a6755774544454d08cfbe..0e8655179be51953758fbd3fbe603e4aff13a111 100644 (file)
@@ -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;
         }
 
index 4fadd564a1236df9aef643d1c8462d73f065af95..76b509d999c91216b8d02cbc6b500c1f3991af92 100644 (file)
@@ -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.
index 8d4d4735b62d17a82be6be295066f54013ba9958..1237348a56acec522f18380ba5dc0b4ee6263a60 100644 (file)
@@ -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;
         }
 
index 417ccb40d576a94cc40014fb4ac6f5864fffbe80..7a6f657639f4adc7ffefb4f87c474c29ef56c9a5 100644 (file)
@@ -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;
index 05265baf23945b062b3ad937118277c72dbf6385..f3425980b8c87507e8b478c93a10f780b618116f 100644 (file)
@@ -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;
index a8b367ed1cd268904d8f33aeb7fa68eedd01d9a0..0018810c796e7e97a5d9a661d90b4bbf4f7310cd 100644 (file)
@@ -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 {
index 86b9b7c1e3f8e81edcddb8f24f907d066a1169f5..571f14a6e419336dba3fe6f84d49abb37c366756 100644 (file)
@@ -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);
index 6f9e5bd3b955a08739a4673fe079861d452d4e0d..bc2062b7d987c1f210527d85b63811ff6a77edd4 100644 (file)
@@ -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 {
index aab0d089df08085d7ff247e56b9760217628673e..5878e552c61843129b78dda357ff50e23cbd1bd2 100644 (file)
@@ -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);