Author: jeremias
Date: Thu Mar 18 15:24:25 2010
New Revision: 924860

URL: http://svn.apache.org/viewvc?rev=924860&view=rev
Log:
Bumped xmlgraphics-commons.jar.
Added configuration option to tweak the image loader framework.
See also: http://svn.apache.org/viewvc?rev=924666&view=rev

Modified:
    xmlgraphics/fop/trunk/lib/xmlgraphics-commons-1.4svn.jar
    
xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/configuration.xml
    
xmlgraphics/fop/trunk/src/java/org/apache/fop/apps/FopFactoryConfigurator.java
    
xmlgraphics/fop/trunk/src/java/org/apache/fop/image/loader/batik/ImageLoaderFactorySVG.java
    
xmlgraphics/fop/trunk/src/java/org/apache/fop/image/loader/batik/ImageLoaderFactoryWMF.java
    xmlgraphics/fop/trunk/status.xml

Modified: xmlgraphics/fop/trunk/lib/xmlgraphics-commons-1.4svn.jar
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/lib/xmlgraphics-commons-1.4svn.jar?rev=924860&r1=924859&r2=924860&view=diff
==============================================================================
Binary files - no diff available.

Modified: 
xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/configuration.xml
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/configuration.xml?rev=924860&r1=924859&r2=924860&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/configuration.xml 
(original)
+++ 
xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/configuration.xml 
Thu Mar 18 15:24:25 2010
@@ -218,6 +218,42 @@
   <!-- etc. etc..... -->
 </fop>]]></source>
   </section>
+  <section id="image-loading">
+    <title>Image Loading Customization</title>
+    <p>
+      Apache FOP uses the image loading framework from
+      <a href="http://xmlgraphics.apache.org/commons/";>Apache XML Graphics 
Commons</a> to load
+      images using various plug-ins. Every image loader plug-in has a 
hard-coded usage penalty
+      that influences which solution is chosen if there are multiple 
possibilities to load an image.
+      Sometimes, though, these penalties need to be tweaked and this can be 
done in the FOP
+      configuration. An example:
+    </p>
+    <source><![CDATA[<fop version="1.0">
+  [..]
+  <image-loading>
+    <penalty value="10000"
+      class="org.apache.xmlgraphics.image.loader.impl.ImageLoaderRawCCITTFax"/>
+    <penalty value="INFINITE"
+      
class="org.apache.xmlgraphics.image.loader.impl.ImageLoaderInternalTIFF"/>
+  </image-loading>
+  <renderers....
+</fop>]]></source>
+    <p>
+      The first penalty element increases the penalty for the raw CCITT 
loader. This practically
+      forces the decoding of CCITT compressed TIFF images except if there are 
no TIFF codecs
+      available. 
+    </p>
+    <p>
+      The second penalty element sets an "infinite" penalty for the TIFF 
loader using the internal
+      TIFF codec. This practically disables that plug-in as it will never be 
chosen as a possible
+      solution.
+    </p>
+    <p>
+      Negative penalties are possible to promote a plug-in but a negative 
penalty sum will be
+      treated as zero penalty in most cases. For more details on the image 
loading framework,
+      please consult the documentation there.
+    </p>
+  </section>
   <section id="renderers">
     <title>Renderer configuration</title>
     <p>

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/apps/FopFactoryConfigurator.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/apps/FopFactoryConfigurator.java?rev=924860&r1=924859&r2=924860&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/src/java/org/apache/fop/apps/FopFactoryConfigurator.java 
(original)
+++ 
xmlgraphics/fop/trunk/src/java/org/apache/fop/apps/FopFactoryConfigurator.java 
Thu Mar 18 15:24:25 2010
@@ -31,6 +31,9 @@ import org.apache.avalon.framework.confi
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
+import org.apache.xmlgraphics.image.loader.spi.ImageImplRegistry;
+import org.apache.xmlgraphics.image.loader.util.Penalty;
+
 import org.apache.fop.fonts.FontManager;
 import org.apache.fop.fonts.FontManagerConfigurator;
 import org.apache.fop.util.LogUtil;
@@ -198,6 +201,39 @@ public class FopFactoryConfigurator {
         FontManager fontManager = factory.getFontManager();
         FontManagerConfigurator fontManagerConfigurator = new 
FontManagerConfigurator(cfg);
         fontManagerConfigurator.configure(fontManager, strict);
+
+        // configure image loader framework
+        configureImageLoading(cfg.getChild("image-loading", false), strict);
+    }
+
+    private void configureImageLoading(Configuration parent, boolean strict) 
throws FOPException {
+        if (parent == null) {
+            return;
+        }
+        ImageImplRegistry registry = factory.getImageManager().getRegistry();
+        Configuration[] penalties = parent.getChildren("penalty");
+        try {
+            for (int i = 0, c = penalties.length; i < c; i++) {
+                Configuration penaltyCfg = penalties[i];
+                String className = penaltyCfg.getAttribute("class");
+                String value = penaltyCfg.getAttribute("value");
+                Penalty p = null;
+                if (value.toUpperCase().startsWith("INF")) {
+                    p = Penalty.INFINITE_PENALTY;
+                } else {
+                    try {
+                        p = Penalty.toPenalty(Integer.parseInt(value));
+                    } catch (NumberFormatException nfe) {
+                        LogUtil.handleException(log, nfe, strict);
+                    }
+                }
+                if (p != null) {
+                    registry.setAdditionalPenalty(className, p);
+                }
+            }
+        } catch (ConfigurationException e) {
+            LogUtil.handleException(log, e, strict);
+        }
     }
 
     /**

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/image/loader/batik/ImageLoaderFactorySVG.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/image/loader/batik/ImageLoaderFactorySVG.java?rev=924860&r1=924859&r2=924860&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/src/java/org/apache/fop/image/loader/batik/ImageLoaderFactorySVG.java
 (original)
+++ 
xmlgraphics/fop/trunk/src/java/org/apache/fop/image/loader/batik/ImageLoaderFactorySVG.java
 Thu Mar 18 15:24:25 2010
@@ -52,11 +52,6 @@ public class ImageLoaderFactorySVG exten
     }
 
     /** {...@inheritdoc} */
-    public int getUsagePenalty(String mime, ImageFlavor flavor) {
-        return 0;
-    }
-
-    /** {...@inheritdoc} */
     public boolean isAvailable() {
         return BatikUtil.isBatikAvailable();
     }

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/image/loader/batik/ImageLoaderFactoryWMF.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/image/loader/batik/ImageLoaderFactoryWMF.java?rev=924860&r1=924859&r2=924860&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/src/java/org/apache/fop/image/loader/batik/ImageLoaderFactoryWMF.java
 (original)
+++ 
xmlgraphics/fop/trunk/src/java/org/apache/fop/image/loader/batik/ImageLoaderFactoryWMF.java
 Thu Mar 18 15:24:25 2010
@@ -50,11 +50,6 @@ public class ImageLoaderFactoryWMF exten
     }
 
     /** {...@inheritdoc} */
-    public int getUsagePenalty(String mime, ImageFlavor flavor) {
-        return 0;
-    }
-
-    /** {...@inheritdoc} */
     public boolean isAvailable() {
         return BatikUtil.isBatikAvailable();
     }

Modified: xmlgraphics/fop/trunk/status.xml
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/status.xml?rev=924860&r1=924859&r2=924860&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/status.xml (original)
+++ xmlgraphics/fop/trunk/status.xml Thu Mar 18 15:24:25 2010
@@ -58,6 +58,9 @@
       documents. Example: the fix of marks layering will be such a case when 
it's done.
     -->
     <release version="FOP Trunk" date="TBD">
+      <action context="Images" dev="JM" type="add">
+        Added customization ability for the image loading framework from FOP's 
configuration file.
+      </action>
       <action context="Renderers" dev="JM" type="fix" fixes-bug="48696" 
due-to="Peter Hancock">
         Bugfix for color model in IOCA IDE structure parameter for 4- and 
8-bit grayscale images.
       </action>



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to