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 me...@apache.org on 2012/07/03 11:47:25 UTC

svn commit: r1356646 [8/12] - in /xmlgraphics/fop/trunk: ./ examples/embedding/java/embedding/ examples/embedding/java/embedding/atxml/ examples/embedding/java/embedding/events/ examples/embedding/java/embedding/intermediate/ src/java/org/apache/fop/af...

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/PSRendererConfigurator.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/PSRendererConfigurator.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/PSRendererConfigurator.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/PSRendererConfigurator.java Tue Jul  3 09:46:41 2012
@@ -19,75 +19,56 @@
 
 package org.apache.fop.render.ps;
 
-import java.util.Locale;
-
-import org.apache.avalon.framework.configuration.Configuration;
-
-import org.apache.xmlgraphics.ps.PSGenerator;
-
 import org.apache.fop.apps.FOPException;
 import org.apache.fop.apps.FOUserAgent;
-import org.apache.fop.render.PrintRendererConfigurator;
-import org.apache.fop.render.Renderer;
+import org.apache.fop.render.DefaultRendererConfigurator;
+import org.apache.fop.render.RendererConfig.RendererConfigParser;
 import org.apache.fop.render.intermediate.IFDocumentHandler;
 import org.apache.fop.render.intermediate.IFDocumentHandlerConfigurator;
 
+
 /**
  * Postscript renderer config
  */
-public class PSRendererConfigurator extends PrintRendererConfigurator
-            implements IFDocumentHandlerConfigurator {
+public class PSRendererConfigurator extends DefaultRendererConfigurator
+        implements IFDocumentHandlerConfigurator {
 
     /**
      * Default constructor
      * @param userAgent user agent
      */
-    public PSRendererConfigurator(FOUserAgent userAgent) {
-        super(userAgent);
-    }
-
-    /**
-     * Throws an UnsupportedOperationException.
-     *
-     * @param renderer not used
-     */
-    public void configure(Renderer renderer) {
-        throw new UnsupportedOperationException();
+    public PSRendererConfigurator(FOUserAgent userAgent, RendererConfigParser rendererConfigParser) {
+        super(userAgent, rendererConfigParser);
     }
 
-    private void configure(PSRenderingUtil psUtil, Configuration cfg) {
-        psUtil.setAutoRotateLandscape(
-            cfg.getChild("auto-rotate-landscape").getValueAsBoolean(false));
-        Configuration child;
-        child = cfg.getChild("language-level");
-        if (child != null) {
-            psUtil.setLanguageLevel(child.getValueAsInteger(
-                    PSGenerator.DEFAULT_LANGUAGE_LEVEL));
-        }
-        child = cfg.getChild("optimize-resources");
-        if (child != null) {
-            psUtil.setOptimizeResources(child.getValueAsBoolean(false));
-        }
-        child = cfg.getChild("rendering");
-        if (child != null) {
-            psUtil.setRenderingMode(PSRenderingMode.valueOf(
-                    child.getValue(psUtil.getRenderingMode().toString())
-                    .toUpperCase(Locale.ENGLISH)));
-        }
-        psUtil.setSafeSetPageDevice(
-            cfg.getChild("safe-set-page-device").getValueAsBoolean(false));
-        psUtil.setDSCComplianceEnabled(
-            cfg.getChild("dsc-compliant").getValueAsBoolean(true));
+    private void configure(PSRenderingUtil psUtil, PSRendererConfig psConfig) {
+        if (psConfig.isAutoRotateLandscape() != null) {
+            psUtil.setAutoRotateLandscape(psConfig.isAutoRotateLandscape());
+        }
+        if (psConfig.getLanguageLevel() != null) {
+            psUtil.setLanguageLevel(psConfig.getLanguageLevel());
+        }
+        if (psConfig.isOptimizeResources() != null) {
+            psUtil.setOptimizeResources(psConfig.isOptimizeResources());
+        }
+        if (psConfig.isSafeSetPageDevice() != null) {
+            psUtil.setSafeSetPageDevice(psConfig.isSafeSetPageDevice());
+        }
+        if (psConfig.isDscComplianceEnabled() != null) {
+            psUtil.setDSCComplianceEnabled(psConfig.isDscComplianceEnabled());
+        }
+        if (psConfig.getRenderingMode() != null) {
+            psUtil.setRenderingMode(psConfig.getRenderingMode());
+        }
     }
 
-    /** {@inheritDoc} */
+    @Override
     public void configure(IFDocumentHandler documentHandler) throws FOPException {
-        Configuration cfg = super.getRendererConfig(documentHandler.getMimeType());
-        if (cfg != null) {
-            PSDocumentHandler psDocumentHandler = (PSDocumentHandler)documentHandler;
-            configure(psDocumentHandler.getPSUtil(), cfg);
+        PSRendererConfig psConfig = (PSRendererConfig) getRendererConfig(documentHandler);
+        if (psConfig != null) {
+            PSDocumentHandler psDocumentHandler = (PSDocumentHandler) documentHandler;
+            PSRenderingUtil psUtil = psDocumentHandler.getPSUtil();
+            configure(psUtil, psConfig);
         }
-
     }
-
 }

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/PSRenderingUtil.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/PSRenderingUtil.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/PSRenderingUtil.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/PSRenderingUtil.java Tue Jul  3 09:46:41 2012
@@ -33,11 +33,15 @@ import org.apache.fop.render.ps.extensio
 import org.apache.fop.render.ps.extensions.PSExtensionAttachment;
 import org.apache.fop.render.ps.extensions.PSSetupCode;
 
+import static org.apache.fop.render.ps.PSRendererOption.AUTO_ROTATE_LANDSCAPE;
+import static org.apache.fop.render.ps.PSRendererOption.LANGUAGE_LEVEL;
+import static org.apache.fop.render.ps.PSRendererOption.OPTIMIZE_RESOURCES;
+
 /**
  * Utility class which enables all sorts of features that are not directly connected to the
  * normal rendering process.
  */
-public class PSRenderingUtil implements PSConfigurationConstants {
+public class PSRenderingUtil {
 
     private FOUserAgent userAgent;
 
@@ -64,20 +68,21 @@ public class PSRenderingUtil implements 
 
     PSRenderingUtil(FOUserAgent userAgent) {
         this.userAgent = userAgent;
+        //PSRendererConfig confi = userAgent.getRendererConfig(rendererConfiguration, configCreator)
         initialize();
     }
 
     private void initialize() {
         Object obj;
-        obj = userAgent.getRendererOptions().get(AUTO_ROTATE_LANDSCAPE);
+        obj = userAgent.getRendererOptions().get(AUTO_ROTATE_LANDSCAPE.getName());
         if (obj != null) {
             setAutoRotateLandscape(booleanValueOf(obj));
         }
-        obj = userAgent.getRendererOptions().get(LANGUAGE_LEVEL);
+        obj = userAgent.getRendererOptions().get(LANGUAGE_LEVEL.getName());
         if (obj != null) {
             setLanguageLevel(intValueOf(obj));
         }
-        obj = userAgent.getRendererOptions().get(OPTIMIZE_RESOURCES);
+        obj = userAgent.getRendererOptions().get(OPTIMIZE_RESOURCES.getName());
         if (obj != null) {
             setOptimizeResources(booleanValueOf(obj));
         }

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/PSSVGHandler.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/PSSVGHandler.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/PSSVGHandler.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/PSSVGHandler.java Tue Jul  3 09:46:41 2012
@@ -257,7 +257,7 @@ public class PSSVGHandler extends Abstra
 
         BridgeContext ctx = new PSBridgeContext(ua,
                 (strokeText ? null : psInfo.fontInfo),
-                context.getUserAgent().getFactory().getImageManager(),
+                context.getUserAgent().getImageManager(),
                 context.getUserAgent().getImageSessionContext());
 
         //Cloning SVG DOM as Batik attaches non-thread-safe facilities (like the CSS engine)

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/PSTextPainter.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/PSTextPainter.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/PSTextPainter.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/PSTextPainter.java Tue Jul  3 09:46:41 2012
@@ -52,7 +52,7 @@ import org.apache.fop.util.CharUtilities
 import org.apache.fop.util.HexEncoder;
 
 /**
- * Renders the attributed character iterator of a text node.
+ * Renders the attributed character iterator of a {@link org.apache.batik.gvt.TextNode TextNode}.
  * This class draws the text directly using PostScript text operators so
  * the text is not drawn using shapes which makes the PS files larger.
  * <p>

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/ResourceHandler.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/ResourceHandler.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/ResourceHandler.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/ResourceHandler.java Tue Jul  3 09:46:41 2012
@@ -287,7 +287,7 @@ public class ResourceHandler implements 
                 throws IOException {
         final String uri = form.getImageURI();
 
-        ImageManager manager = userAgent.getFactory().getImageManager();
+        ImageManager manager = userAgent.getImageManager();
         ImageInfo info = null;
         try {
             ImageSessionContext sessionContext = userAgent.getImageSessionContext();
@@ -299,7 +299,7 @@ public class ResourceHandler implements 
 
             ImageFlavor[] flavors;
             ImageHandlerRegistry imageHandlerRegistry
-                = userAgent.getFactory().getImageHandlerRegistry();
+                = userAgent.getImageHandlerRegistry();
             flavors = imageHandlerRegistry.getSupportedFlavors(formContext);
 
             Map hints = ImageUtil.getDefaultHints(sessionContext);

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/RTFHandler.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/RTFHandler.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/RTFHandler.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/RTFHandler.java Tue Jul  3 09:46:41 2012
@@ -97,7 +97,6 @@ import org.apache.fop.fo.properties.Enum
 import org.apache.fop.fonts.FontSetup;
 import org.apache.fop.layoutmgr.inline.ImageLayout;
 import org.apache.fop.layoutmgr.table.ColumnSetup;
-import org.apache.fop.render.DefaultFontResolver;
 import org.apache.fop.render.RendererEventProducer;
 import org.apache.fop.render.rtf.rtflib.exceptions.RtfException;
 import org.apache.fop.render.rtf.rtflib.rtfdoc.IRtfAfterContainer;
@@ -169,7 +168,7 @@ public class RTFHandler extends FOEventH
         bDefer = true;
 
         boolean base14Kerning = false;
-        FontSetup.setup(fontInfo, null, new DefaultFontResolver(userAgent), base14Kerning);
+        FontSetup.setup(fontInfo, null, userAgent.getResourceResolver(), base14Kerning);
     }
 
     /**
@@ -1086,7 +1085,7 @@ public class RTFHandler extends FOEventH
 
             //set image data
             FOUserAgent userAgent = eg.getUserAgent();
-            ImageManager manager = userAgent.getFactory().getImageManager();
+            ImageManager manager = userAgent.getImageManager();
             info = manager.getImageInfo(uri, userAgent.getImageSessionContext());
 
             putGraphic(eg, info);
@@ -1140,7 +1139,7 @@ public class RTFHandler extends FOEventH
             ImageXMLDOM image = new ImageXMLDOM(info, doc, ns);
 
             FOUserAgent userAgent = ifo.getUserAgent();
-            ImageManager manager = userAgent.getFactory().getImageManager();
+            ImageManager manager = userAgent.getImageManager();
             Map hints = ImageUtil.getDefaultHints(ua.getImageSessionContext());
             Image converted = manager.convertImage(image, FLAVORS, hints);
             putGraphic(ifo, converted);
@@ -1170,7 +1169,7 @@ public class RTFHandler extends FOEventH
             throws IOException {
         try {
             FOUserAgent userAgent = abstractGraphic.getUserAgent();
-            ImageManager manager = userAgent.getFactory().getImageManager();
+            ImageManager manager = userAgent.getImageManager();
             ImageSessionContext sessionContext = userAgent.getImageSessionContext();
             Map hints = ImageUtil.getDefaultHints(sessionContext);
             Image image = manager.getImage(info, FLAVORS, hints, sessionContext);
@@ -1701,7 +1700,7 @@ public class RTFHandler extends FOEventH
 
             Region regionBefore = pagemaster.getRegion(Constants.FO_REGION_BEFORE);
             if (regionBefore != null) {
-                FONode staticBefore = (FONode) pageSequence.getFlowMap().get(
+                FONode staticBefore = pageSequence.getFlowMap().get(
                         regionBefore.getRegionName());
                 if (staticBefore != null) {
                     recurseFONode(staticBefore);
@@ -1709,7 +1708,7 @@ public class RTFHandler extends FOEventH
             }
             Region regionAfter = pagemaster.getRegion(Constants.FO_REGION_AFTER);
             if (regionAfter != null) {
-                FONode staticAfter = (FONode) pageSequence.getFlowMap().get(
+                FONode staticAfter = pageSequence.getFlowMap().get(
                         regionAfter.getRegionName());
                 if (staticAfter != null) {
                     recurseFONode(staticAfter);

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/txt/TXTRendererConfigurator.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/txt/TXTRendererConfigurator.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/txt/TXTRendererConfigurator.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/txt/TXTRendererConfigurator.java Tue Jul  3 09:46:41 2012
@@ -19,24 +19,23 @@
 
 package org.apache.fop.render.txt;
 
-import org.apache.avalon.framework.configuration.Configuration;
-
 import org.apache.fop.apps.FOPException;
 import org.apache.fop.apps.FOUserAgent;
-import org.apache.fop.render.PrintRendererConfigurator;
+import org.apache.fop.render.DefaultRendererConfigurator;
 import org.apache.fop.render.Renderer;
+import org.apache.fop.render.RendererConfig.RendererConfigParser;
 
 /**
  * TXT Renderer configurator
  */
-public class TXTRendererConfigurator extends PrintRendererConfigurator {
+public class TXTRendererConfigurator extends DefaultRendererConfigurator {
 
     /**
      * Default constructor
      * @param userAgent user agent
      */
-    public TXTRendererConfigurator(FOUserAgent userAgent) {
-        super(userAgent);
+    public TXTRendererConfigurator(FOUserAgent userAgent, RendererConfigParser rendererConfigParser) {
+        super(userAgent, rendererConfigParser);
     }
 
     /**
@@ -45,10 +44,11 @@ public class TXTRendererConfigurator ext
      * @throws FOPException fop exception
      */
     public void configure(Renderer renderer) throws FOPException {
-        Configuration cfg = super.getRendererConfig(renderer);
-        if (cfg != null) {
-            TXTRenderer txtRenderer = (TXTRenderer)renderer;
-            txtRenderer.setEncoding(cfg.getChild("encoding", true).getValue(null));
+        TxtRendererConfig config = (TxtRendererConfig) getRendererConfig(renderer);
+        if (config != null) {
+            TXTRenderer txtRenderer = (TXTRenderer) renderer;
+            txtRenderer.setEncoding(config.getEncoding());
         }
     }
+
 }

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/txt/TXTRendererMaker.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/txt/TXTRendererMaker.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/txt/TXTRendererMaker.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/txt/TXTRendererMaker.java Tue Jul  3 09:46:41 2012
@@ -19,11 +19,12 @@
 
 package org.apache.fop.render.txt;
 
+import org.apache.fop.apps.FOPException;
 import org.apache.fop.apps.FOUserAgent;
 import org.apache.fop.apps.MimeConstants;
 import org.apache.fop.render.AbstractRendererMaker;
 import org.apache.fop.render.Renderer;
-import org.apache.fop.render.RendererConfigurator;
+import org.apache.fop.render.txt.TxtRendererConfig.TxtRendererConfigParser;
 
 /**
  * RendererMaker for the Plain Text Renderer.
@@ -32,22 +33,22 @@ public class TXTRendererMaker extends Ab
 
     private static final String[] MIMES = new String[] {MimeConstants.MIME_PLAIN_TEXT};
 
-    /**{@inheritDoc} */
+    @Override
     public Renderer makeRenderer(FOUserAgent userAgent) {
         return new TXTRenderer(userAgent);
     }
 
-    /**{@inheritDoc} */
-    public RendererConfigurator getConfigurator(FOUserAgent userAgent) {
-        return new TXTRendererConfigurator(userAgent);
+    @Override
+    public void configureRenderer(FOUserAgent userAgent, Renderer renderer) throws FOPException {
+        new TXTRendererConfigurator(userAgent, new TxtRendererConfigParser()).configure(renderer);
     }
 
-    /** {@inheritDoc} */
+    @Override
     public boolean needsOutputStream() {
         return true;
     }
 
-    /** {@inheritDoc} */
+    @Override
     public String[] getSupportedMimeTypes() {
         return MIMES;
     }

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/xml/XMLRendererMaker.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/xml/XMLRendererMaker.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/xml/XMLRendererMaker.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/xml/XMLRendererMaker.java Tue Jul  3 09:46:41 2012
@@ -19,12 +19,15 @@
 
 package org.apache.fop.render.xml;
 
+import java.util.List;
+
+import org.apache.fop.apps.FOPException;
 import org.apache.fop.apps.FOUserAgent;
 import org.apache.fop.apps.MimeConstants;
+import org.apache.fop.fonts.FontCollection;
 import org.apache.fop.render.AbstractRendererMaker;
 import org.apache.fop.render.PrintRendererConfigurator;
 import org.apache.fop.render.Renderer;
-import org.apache.fop.render.RendererConfigurator;
 
 /**
  * RendererMaker for the Area Tree XML Renderer.
@@ -33,22 +36,28 @@ public class XMLRendererMaker extends Ab
 
     private static final String[] MIMES = new String[] {MimeConstants.MIME_FOP_AREA_TREE};
 
-    /**{@inheritDoc} */
+    @Override
     public Renderer makeRenderer(FOUserAgent userAgent) {
         return new XMLRenderer(userAgent);
     }
 
-    /**{@inheritDoc} */
-    public RendererConfigurator getConfigurator(FOUserAgent userAgent) {
-        return new PrintRendererConfigurator(userAgent);
+    @Override
+    public void configureRenderer(FOUserAgent userAgent, Renderer renderer) throws FOPException {
+        // TODO what constructor params?
+        new PrintRendererConfigurator(userAgent, null) {
+            @Override
+            protected List<FontCollection> getDefaultFontCollection() {
+                throw new UnsupportedOperationException();
+            }
+        } .configure(renderer);
     }
 
-    /** {@inheritDoc} */
+    @Override
     public boolean needsOutputStream() {
         return true;
     }
 
-    /** {@inheritDoc} */
+    @Override
     public String[] getSupportedMimeTypes() {
         return MIMES;
     }

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/servlet/FopServlet.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/servlet/FopServlet.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/servlet/FopServlet.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/servlet/FopServlet.java Tue Jul  3 09:46:41 2012
@@ -21,7 +21,11 @@ package org.apache.fop.servlet;
 
 import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
 import java.io.PrintWriter;
+import java.net.URI;
+import java.net.URL;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
@@ -42,7 +46,10 @@ import org.apache.fop.apps.FOPException;
 import org.apache.fop.apps.FOUserAgent;
 import org.apache.fop.apps.Fop;
 import org.apache.fop.apps.FopFactory;
+import org.apache.fop.apps.FopFactoryBuilder;
 import org.apache.fop.apps.MimeConstants;
+import org.apache.fop.apps.io.Resource;
+import org.apache.fop.apps.io.ResourceResolver;
 
 /**
  * Example servlet to generate a PDF from a servlet.
@@ -91,16 +98,27 @@ public class FopServlet extends HttpServ
         this.transFactory = TransformerFactory.newInstance();
         this.transFactory.setURIResolver(this.uriResolver);
         //Configure FopFactory as desired
-        this.fopFactory = FopFactory.newInstance();
-        this.fopFactory.setURIResolver(this.uriResolver);
-        configureFopFactory();
+        // TODO: Double check this behaves properly!!
+        ResourceResolver resolver = new ResourceResolver() {
+            public OutputStream getOutputStream(URI uri) throws IOException {
+                URL url = getServletContext().getResource(uri.toASCIIString());
+                return url.openConnection().getOutputStream();
+            }
+
+            public Resource getResource(URI uri) throws IOException {
+                return new Resource(getServletContext().getResourceAsStream(uri.toASCIIString()));
+            }
+        };
+        FopFactoryBuilder builder = new FopFactoryBuilder(new File(".").toURI(), resolver);
+        configureFopFactory(builder);
+        fopFactory = builder.build();
     }
 
     /**
      * This method is called right after the FopFactory is instantiated and can be overridden
      * by subclasses to perform additional configuration.
      */
-    protected void configureFopFactory() {
+    protected void configureFopFactory(FopFactoryBuilder builder) {
         //Subclass and override this method to perform additional configuration
     }
 

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/PDFDocumentGraphics2DConfigurator.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/PDFDocumentGraphics2DConfigurator.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/PDFDocumentGraphics2DConfigurator.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/PDFDocumentGraphics2DConfigurator.java Tue Jul  3 09:46:41 2012
@@ -19,23 +19,28 @@
 
 package org.apache.fop.svg;
 
+import java.io.File;
+import java.net.URI;
 import java.util.List;
 
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
 
 import org.apache.fop.apps.FOPException;
-import org.apache.fop.fonts.CustomFontCollection;
-import org.apache.fop.fonts.FontCollection;
+import org.apache.fop.apps.io.InternalResourceResolver;
+import org.apache.fop.apps.io.ResourceResolverFactory;
+import org.apache.fop.fonts.DefaultFontConfig;
+import org.apache.fop.fonts.DefaultFontConfigurator;
+import org.apache.fop.fonts.EmbedFontInfo;
+import org.apache.fop.fonts.FontCacheManagerFactory;
+import org.apache.fop.fonts.FontDetectorFactory;
 import org.apache.fop.fonts.FontEventListener;
 import org.apache.fop.fonts.FontInfo;
-import org.apache.fop.fonts.FontInfoConfigurator;
 import org.apache.fop.fonts.FontManager;
-import org.apache.fop.fonts.FontManagerConfigurator;
-import org.apache.fop.fonts.FontResolver;
-import org.apache.fop.fonts.base14.Base14FontCollection;
+import org.apache.fop.fonts.FontSetup;
 import org.apache.fop.pdf.PDFDocument;
-import org.apache.fop.render.pdf.PDFRendererConfigurator;
+import org.apache.fop.render.pdf.PDFRendererConfig;
+import org.apache.fop.render.pdf.PDFRendererConfig.PDFRendererConfigParser;
 
 /**
  * Configurator class for PDFDocumentGraphics2D.
@@ -53,10 +58,13 @@ public class PDFDocumentGraphics2DConfig
                           boolean useComplexScriptFeatures )
             throws ConfigurationException {
         PDFDocument pdfDoc = graphics.getPDFDocument();
-
-        //Filter map
-        pdfDoc.setFilterMap(
-                PDFRendererConfigurator.buildFilterMapFromConfiguration(cfg));
+        try {
+            //Filter map
+            PDFRendererConfig pdfConfig = new PDFRendererConfigParser().build(null, cfg);
+            pdfDoc.setFilterMap(pdfConfig.getConfigOptions().getFilterMap());
+        } catch (FOPException e) {
+            throw new RuntimeException(e);
+        }
 
         //Fonts
         try {
@@ -78,30 +86,28 @@ public class PDFDocumentGraphics2DConfig
         throws FOPException {
         FontInfo fontInfo = new FontInfo();
         final boolean strict = false;
-        FontResolver fontResolver = FontManager.createMinimalFontResolver(useComplexScriptFeatures);
-        //TODO The following could be optimized by retaining the FontManager somewhere
-        FontManager fontManager = new FontManager();
-        if (cfg != null) {
-            FontManagerConfigurator fmConfigurator = new FontManagerConfigurator(cfg);
-            fmConfigurator.configure(fontManager, strict);
-        }
-
-        List fontCollections = new java.util.ArrayList();
-        fontCollections.add(new Base14FontCollection(fontManager.isBase14KerningEnabled()));
-
         if (cfg != null) {
-            //TODO Wire in the FontEventListener
-            FontEventListener listener = null; //new FontEventAdapter(eventBroadcaster);
-            FontInfoConfigurator fontInfoConfigurator
-                = new FontInfoConfigurator(cfg, fontManager, fontResolver, listener, strict);
-            List/*<EmbedFontInfo>*/ fontInfoList = new java.util.ArrayList/*<EmbedFontInfo>*/();
-            fontInfoConfigurator.configure(fontInfoList);
-            fontCollections.add(new CustomFontCollection(fontResolver, fontInfoList,
-                                fontResolver.isComplexScriptFeaturesEnabled()));
+            URI thisUri = new File(".").getAbsoluteFile().toURI();
+            InternalResourceResolver resourceResolver = ResourceResolverFactory.createDefaultInternalResourceResolver(thisUri);
+            //TODO The following could be optimized by retaining the FontManager somewhere
+            FontManager fontManager = new FontManager(resourceResolver, FontDetectorFactory.createDefault(),
+                    FontCacheManagerFactory.createDefault());
+
+            //TODO Make use of fontBaseURL, font substitution and referencing configuration
+            //Requires a change to the expected configuration layout
+
+            final FontEventListener listener = null;
+            DefaultFontConfig.DefaultFontConfigParser parser
+                    = new DefaultFontConfig.DefaultFontConfigParser();
+            DefaultFontConfig fontInfoConfig = parser.parse(cfg, strict);
+            DefaultFontConfigurator fontInfoConfigurator
+                    = new DefaultFontConfigurator(fontManager, listener, strict);
+            List<EmbedFontInfo> fontInfoList = fontInfoConfigurator.configure(fontInfoConfig);
+            fontManager.saveCache();
+            FontSetup.setup(fontInfo, fontInfoList, resourceResolver, useComplexScriptFeatures);
+        } else {
+            FontSetup.setup(fontInfo, useComplexScriptFeatures);
         }
-        fontManager.setup(fontInfo,
-                (FontCollection[])fontCollections.toArray(
-                        new FontCollection[fontCollections.size()]));
         return fontInfo;
     }
 

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/PDFTranscoder.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/PDFTranscoder.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/PDFTranscoder.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/PDFTranscoder.java Tue Jul  3 09:46:41 2012
@@ -133,7 +133,7 @@ public class PDFTranscoder extends Abstr
             }
         } catch (Exception e) {
             throw new TranscoderException(
-                "Error while setting up PDFDocumentGraphics2D", e);
+                    "Error while setting up PDFDocumentGraphics2D", e);
         }
 
         super.transcode(document, uri, output);

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/TestConverter.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/TestConverter.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/TestConverter.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/TestConverter.java Tue Jul  3 09:46:41 2012
@@ -21,6 +21,7 @@ package org.apache.fop.tools;
 
 import java.io.File;
 import java.io.OutputStream;
+import java.net.URI;
 import java.util.Map;
 
 import javax.xml.parsers.DocumentBuilder;
@@ -50,9 +51,6 @@ import org.apache.fop.tools.anttasks.Fil
  */
 public class TestConverter {
 
-    // configure fopFactory as desired
-    private FopFactory fopFactory = FopFactory.newInstance();
-
     private boolean failOnly = false;
     private String outputFormat = MimeConstants.MIME_FOP_AREA_TREE;
     private File destdir;
@@ -273,24 +271,17 @@ public class TestConverter {
         }
         try {
             File xmlFile = new File(baseDir + "/" + xml);
-            String baseURL = null;
-            try {
-                baseURL = xmlFile.getParentFile().toURI().toURL().toExternalForm();
-            } catch (Exception e) {
-                logger.error("Error setting base directory");
-            }
+            URI baseUri = xmlFile.getParentFile().toURI();
 
             InputHandler inputHandler = null;
             if (xsl == null) {
                 inputHandler = new InputHandler(xmlFile);
             } else {
-                inputHandler = new InputHandler(xmlFile,
-                                                new File(baseDir + "/"
-                                                         + xsl), null);
+                inputHandler = new InputHandler(xmlFile, new File(baseDir + "/" + xsl), null);
             }
 
+            FopFactory fopFactory = FopFactory.newInstance(baseUri);
             FOUserAgent userAgent = fopFactory.newFOUserAgent();
-            userAgent.setBaseURL(baseURL);
 
             userAgent.getRendererOptions().put("fineDetail", new Boolean(false));
             userAgent.getRendererOptions().put("consistentOutput", new Boolean(true));

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/anttasks/Fop.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/anttasks/Fop.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/anttasks/Fop.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/anttasks/Fop.java Tue Jul  3 09:46:41 2012
@@ -24,7 +24,7 @@ import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.IOException;
 import java.io.OutputStream;
-import java.net.MalformedURLException;
+import java.net.URI;
 import java.util.List;
 import java.util.Vector;
 
@@ -41,7 +41,9 @@ import org.apache.tools.ant.util.GlobPat
 
 import org.apache.fop.apps.FOPException;
 import org.apache.fop.apps.FOUserAgent;
+import org.apache.fop.apps.FopConfParser;
 import org.apache.fop.apps.FopFactory;
+import org.apache.fop.apps.FopFactoryBuilder;
 import org.apache.fop.apps.MimeConstants;
 import org.apache.fop.cli.InputHandler;
 
@@ -379,10 +381,10 @@ public class Fop extends Task {
 class FOPTaskStarter {
 
     // configure fopFactory as desired
-    private FopFactory fopFactory = FopFactory.newInstance();
+    private final FopFactory fopFactory;
 
     private Fop task;
-    private String baseURL = null;
+    private URI baseUri;
 
     /**
      * logging instance
@@ -408,8 +410,21 @@ class FOPTaskStarter {
 
     FOPTaskStarter(Fop task) throws SAXException, IOException {
         this.task = task;
+        //Set base directory
+        if (task.getBasedir() != null) {
+            this.baseUri = task.getBasedir().toURI();
+        } else {
+            if (task.getFofile() != null) {
+                this.baseUri = task.getFofile().getParentFile().toURI();
+            }
+        }
         if (task.getUserconfig() != null) {
-            fopFactory.setUserConfig(task.getUserconfig());
+            FopFactoryBuilder confBuilder = new FopConfParser(
+                    task.getUserconfig()).getFopFactoryBuilder();
+            confBuilder.setBaseURI(baseUri);
+            fopFactory = confBuilder.build();
+        } else {
+            fopFactory = FopFactory.newInstance(baseUri);
         }
     }
 
@@ -488,25 +503,7 @@ class FOPTaskStarter {
     }
 
     public void run() throws FOPException {
-        //Set base directory
-        if (task.getBasedir() != null) {
-            try {
-                this.baseURL = task.getBasedir().toURI().toURL().toExternalForm();
-            } catch (MalformedURLException mfue) {
-                logger.error("Error creating base URL from base directory", mfue);
-            }
-        } else {
-            try {
-                if (task.getFofile() != null) {
-                    this.baseURL =  task.getFofile().getParentFile().toURI().toURL()
-                                      .toExternalForm();
-                }
-            } catch (MalformedURLException mfue) {
-                logger.error("Error creating base URL from XSL-FO input file", mfue);
-            }
-        }
-
-        task.log("Using base URL: " + baseURL, Project.MSG_DEBUG);
+        task.log("Using base URI: " + baseUri, Project.MSG_DEBUG);
 
         String outputFormat = normalizeOutputFormat(task.getFormat());
         String newExtension = determineExtension(outputFormat);
@@ -598,12 +595,10 @@ class FOPTaskStarter {
                 }
                 try {
                     if (task.getRelativebase()) {
-                        this.baseURL = f.getParentFile().toURI().toURL()
-                                         .toExternalForm();
+                        this.baseUri = f.getParentFile().toURI();
                     }
-                    if (this.baseURL == null) {
-                        this.baseURL = fs.getDir(task.getProject()).toURI().toURL()
-                                          .toExternalForm();
+                    if (this.baseUri == null) {
+                        this.baseUri = fs.getDir(task.getProject()).toURI();
                     }
 
                 } catch (Exception e) {
@@ -649,7 +644,6 @@ class FOPTaskStarter {
         boolean success = false;
         try {
             FOUserAgent userAgent = fopFactory.newFOUserAgent();
-            userAgent.setBaseURL(this.baseURL);
             inputHandler.renderTo(userAgent, outputFormat, out);
             success = true;
         } catch (Exception ex) {

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/fontlist/FontListGenerator.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/fontlist/FontListGenerator.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/fontlist/FontListGenerator.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/fontlist/FontListGenerator.java Tue Jul  3 09:46:41 2012
@@ -68,7 +68,8 @@ public class FontListGenerator {
         IFDocumentHandlerConfigurator configurator = documentHandler.getConfigurator();
 
         FontInfo fontInfo = new FontInfo();
-        configurator.setupFontInfo(documentHandler, fontInfo);
+        configurator.setupFontInfo(documentHandler.getMimeType(), fontInfo);
+        documentHandler.setFontInfo(fontInfo);
         return fontInfo;
     }
 

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/fontlist/FontListMain.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/fontlist/FontListMain.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/fontlist/FontListMain.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/fontlist/FontListMain.java Tue Jul  3 09:46:41 2012
@@ -64,7 +64,7 @@ public final class FontListMain {
     private static final int GENERATE_FO = 2;
     private static final int GENERATE_RENDERED = 3;
 
-    private FopFactory fopFactory = FopFactory.newInstance();
+    private FopFactory fopFactory;
 
     private File configFile;
     private File outputFile;
@@ -78,7 +78,9 @@ public final class FontListMain {
 
     private void prepare() throws SAXException, IOException {
         if (this.configFile != null) {
-            fopFactory.setUserConfig(this.configFile);
+            fopFactory = FopFactory.newInstance(configFile);
+        } else {
+            fopFactory = FopFactory.newInstance(new File(".").toURI());
         }
     }
 

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/util/ColorSpaceCache.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/util/ColorSpaceCache.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/util/ColorSpaceCache.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/util/ColorSpaceCache.java Tue Jul  3 09:46:41 2012
@@ -21,19 +21,18 @@ package org.apache.fop.util;
 
 import java.awt.color.ColorSpace;
 import java.awt.color.ICC_Profile;
+import java.io.InputStream;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.Map;
 
-import javax.xml.transform.Source;
-import javax.xml.transform.URIResolver;
-import javax.xml.transform.stream.StreamSource;
-
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
 import org.apache.xmlgraphics.java2d.color.ICCColorSpaceWithIntent;
 import org.apache.xmlgraphics.java2d.color.RenderingIntent;
-import org.apache.xmlgraphics.java2d.color.profile.ColorProfileUtil;
+
+import org.apache.fop.apps.io.InternalResourceResolver;
 
 /**
  * Map with cached ICC based ColorSpace objects.
@@ -42,16 +41,15 @@ public class ColorSpaceCache {
     /** logger instance */
     private static Log log = LogFactory.getLog(ColorSpaceCache.class);
 
-    private URIResolver resolver;
-    private Map<String, ColorSpace> colorSpaceMap
-            = Collections.synchronizedMap(new java.util.HashMap<String, ColorSpace>());
+    private InternalResourceResolver resourceResolver;
+    private Map<String, ColorSpace> colorSpaceMap = Collections.synchronizedMap(new HashMap<String, ColorSpace>());
 
     /**
      * Default constructor
-     * @param resolver uri resolver
+     * @param resourceResolver uri resolver
      */
-    public ColorSpaceCache(URIResolver resolver) {
-        this.resolver = resolver;
+    public ColorSpaceCache(InternalResourceResolver resourceResolver) {
+        this.resourceResolver = resourceResolver;
     }
 
     /**
@@ -69,21 +67,21 @@ public class ColorSpaceCache {
      * @param renderingIntent overriding rendering intent
      * @return ICC ColorSpace object or null if ColorSpace could not be created
      */
-    public ColorSpace get(String profileName, String base, String iccProfileSrc,
+    public ColorSpace get(String profileName, String iccProfileSrc,
             RenderingIntent renderingIntent) {
-        String key = profileName + ":" + base + iccProfileSrc;
+        String key = profileName + ":" + iccProfileSrc;
+        // TODO: This stuff needs some TLC, fix it!!
         ColorSpace colorSpace = null;
         if (!colorSpaceMap.containsKey(key)) {
             try {
                 ICC_Profile iccProfile = null;
                 // First attempt to use the FOP URI resolver to locate the ICC
                 // profile
-                Source src = resolver.resolve(iccProfileSrc, base);
-                if (src != null && src instanceof StreamSource) {
+                InputStream stream = resourceResolver.getResource(iccProfileSrc);
+                if (stream != null) {
                     // FOP URI resolver found ICC profile - create ICC profile
                     // from the Source
-                    iccProfile = ColorProfileUtil.getICC_Profile(((StreamSource) src)
-                            .getInputStream());
+                    iccProfile = ICC_Profile.getInstance(stream);
                 } else {
                     // TODO - Would it make sense to fall back on VM ICC
                     // resolution

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/util/ColorUtil.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/util/ColorUtil.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/util/ColorUtil.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/util/ColorUtil.java Tue Jul  3 09:46:41 2012
@@ -404,10 +404,8 @@ public final class ColorUtil {
                 if (foUserAgent != null && iccProfileSrc != null) {
                     RenderingIntent renderingIntent = RenderingIntent.AUTO;
                     //TODO connect to fo:color-profile/@rendering-intent
-                    colorSpace = foUserAgent.getFactory().getColorSpaceCache().get(
-                            iccProfileName,
-                            foUserAgent.getBaseURL(), iccProfileSrc,
-                            renderingIntent);
+                    colorSpace = foUserAgent.getColorSpaceCache().get(
+                            iccProfileName, iccProfileSrc, renderingIntent);
                 }
                 if (colorSpace != null) {
                     // ColorSpace is available
@@ -488,10 +486,8 @@ public final class ColorUtil {
                 if (foUserAgent != null && iccProfileSrc != null) {
                     RenderingIntent renderingIntent = RenderingIntent.AUTO;
                     //TODO connect to fo:color-profile/@rendering-intent
-                    colorSpace = (ICC_ColorSpace)foUserAgent.getFactory().getColorSpaceCache().get(
-                            iccProfileName,
-                            foUserAgent.getBaseURL(), iccProfileSrc,
-                            renderingIntent);
+                    colorSpace = (ICC_ColorSpace)foUserAgent.getColorSpaceCache().get(
+                            iccProfileName, iccProfileSrc, renderingIntent);
                 }
                 if (colorSpace != null) {
                     ICC_Profile profile = colorSpace.getProfile();

Modified: xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/mif/MIFHandler.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/mif/MIFHandler.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/mif/MIFHandler.java (original)
+++ xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/mif/MIFHandler.java Tue Jul  3 09:46:41 2012
@@ -57,7 +57,6 @@ import org.apache.fop.fo.pagination.Page
 import org.apache.fop.fo.pagination.SimplePageMaster;
 import org.apache.fop.fo.pagination.StaticContent;
 import org.apache.fop.fonts.FontSetup;
-import org.apache.fop.render.DefaultFontResolver;
 
 // TODO: do we really want every method throwing a SAXException
 
@@ -91,7 +90,7 @@ public class MIFHandler extends FOEventH
         super(ua);
         outStream = os;
         boolean base14Kerning = false; //TODO - FIXME
-        FontSetup.setup(fontInfo, null, new DefaultFontResolver(ua), base14Kerning);
+        FontSetup.setup(fontInfo, null, ua.getResourceResolver(), base14Kerning);
     }
 
     /** {@inheritDoc} */

Modified: xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/AbstractSVGDocumentHandler.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/AbstractSVGDocumentHandler.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/AbstractSVGDocumentHandler.java (original)
+++ xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/AbstractSVGDocumentHandler.java Tue Jul  3 09:46:41 2012
@@ -28,6 +28,7 @@ import org.apache.xmlgraphics.xmp.Metada
 
 import org.apache.fop.fonts.FontInfo;
 import org.apache.fop.render.intermediate.AbstractXMLWritingIFDocumentHandler;
+import org.apache.fop.render.intermediate.IFContext;
 import org.apache.fop.render.intermediate.IFDocumentHandlerConfigurator;
 import org.apache.fop.render.intermediate.IFException;
 import org.apache.fop.render.intermediate.IFState;
@@ -53,6 +54,10 @@ public abstract class AbstractSVGDocumen
 
     private int mode = MODE_NORMAL;
 
+    public AbstractSVGDocumentHandler(IFContext context) {
+        super(context);
+    }
+
     /** {@inheritDoc} */
     protected String getMainNamespace() {
         return NAMESPACE;

Modified: xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGDocumentHandler.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGDocumentHandler.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGDocumentHandler.java (original)
+++ xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGDocumentHandler.java Tue Jul  3 09:46:41 2012
@@ -38,7 +38,6 @@ import javax.xml.transform.sax.Transform
 import javax.xml.transform.stream.StreamResult;
 
 import org.w3c.dom.Document;
-
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
 import org.xml.sax.helpers.AttributesImpl;
@@ -48,6 +47,8 @@ import org.apache.commons.io.IOUtils;
 import org.apache.fop.render.bitmap.BitmapRendererEventProducer;
 import org.apache.fop.render.bitmap.MultiFileRenderingUtil;
 import org.apache.fop.render.intermediate.DelegatingFragmentContentHandler;
+import org.apache.fop.render.intermediate.IFContext;
+import org.apache.fop.render.intermediate.IFDocumentHandler;
 import org.apache.fop.render.intermediate.IFException;
 import org.apache.fop.render.intermediate.IFPainter;
 import org.apache.fop.util.GenerationHelperContentHandler;
@@ -73,8 +74,8 @@ public class SVGDocumentHandler extends 
     /**
      * Default constructor.
      */
-    public SVGDocumentHandler() {
-        //nop
+    public SVGDocumentHandler(IFContext context) {
+        super(context);
     }
 
     /** {@inheritDoc} */

Modified: xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGDocumentHandlerMaker.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGDocumentHandlerMaker.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGDocumentHandlerMaker.java (original)
+++ xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGDocumentHandlerMaker.java Tue Jul  3 09:46:41 2012
@@ -19,7 +19,6 @@
 
 package org.apache.fop.render.svg;
 
-import org.apache.fop.apps.FOUserAgent;
 import org.apache.fop.render.intermediate.AbstractIFDocumentHandlerMaker;
 import org.apache.fop.render.intermediate.IFContext;
 import org.apache.fop.render.intermediate.IFDocumentHandler;
@@ -32,10 +31,8 @@ public class SVGDocumentHandlerMaker ext
     private static final String[] MIMES = new String[] {SVGConstants.MIME_TYPE};
 
     /** {@inheritDoc} */
-    public IFDocumentHandler makeIFDocumentHandler(FOUserAgent ua) {
-        SVGDocumentHandler handler = new SVGDocumentHandler();
-        handler.setContext(new IFContext(ua));
-        return handler;
+    public IFDocumentHandler makeIFDocumentHandler(IFContext ifContext) {
+        return new SVGDocumentHandler(ifContext);
     }
 
     /** {@inheritDoc} */

Modified: xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGPainter.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGPainter.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGPainter.java (original)
+++ xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGPainter.java Tue Jul  3 09:46:41 2012
@@ -182,7 +182,7 @@ public class SVGPainter extends Abstract
         try {
             establish(MODE_NORMAL);
 
-            ImageManager manager = getUserAgent().getFactory().getImageManager();
+            ImageManager manager = getUserAgent().getImageManager();
             ImageInfo info = null;
             try {
                 ImageSessionContext sessionContext = getUserAgent().getImageSessionContext();

Modified: xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGPrintDocumentHandler.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGPrintDocumentHandler.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGPrintDocumentHandler.java (original)
+++ xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGPrintDocumentHandler.java Tue Jul  3 09:46:41 2012
@@ -21,12 +21,12 @@ package org.apache.fop.render.svg;
 
 import java.awt.Dimension;
 
-import javax.xml.transform.Result;
-
 import org.xml.sax.SAXException;
 import org.xml.sax.helpers.AttributesImpl;
 
 import org.apache.fop.render.intermediate.IFConstants;
+import org.apache.fop.render.intermediate.IFContext;
+import org.apache.fop.render.intermediate.IFDocumentHandler;
 import org.apache.fop.render.intermediate.IFException;
 import org.apache.fop.render.intermediate.IFPainter;
 import org.apache.fop.util.XMLUtil;
@@ -40,18 +40,8 @@ public class SVGPrintDocumentHandler ext
     /**
      * Default constructor.
      */
-    public SVGPrintDocumentHandler() {
-        //nop
-    }
-
-    /**
-     * Creates a new SVGPrintPainter that sends the XML content it generates to the given
-     * SAX ContentHandler.
-     * @param result the JAXP Result object to receive the generated content
-     * @throws IFException if an error occurs setting up the output
-     */
-    public SVGPrintDocumentHandler(Result result) throws IFException {
-        setResult(result);
+    public SVGPrintDocumentHandler(IFContext context) {
+        super(context);
     }
 
     /** {@inheritDoc} */

Modified: xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGPrintDocumentHandlerMaker.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGPrintDocumentHandlerMaker.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGPrintDocumentHandlerMaker.java (original)
+++ xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGPrintDocumentHandlerMaker.java Tue Jul  3 09:46:41 2012
@@ -19,7 +19,6 @@
 
 package org.apache.fop.render.svg;
 
-import org.apache.fop.apps.FOUserAgent;
 import org.apache.fop.render.intermediate.AbstractIFDocumentHandlerMaker;
 import org.apache.fop.render.intermediate.IFContext;
 import org.apache.fop.render.intermediate.IFDocumentHandler;
@@ -32,10 +31,8 @@ public class SVGPrintDocumentHandlerMake
     private static final String[] MIMES = new String[] {SVGConstants.MIME_SVG_PRINT};
 
     /** {@inheritDoc} */
-    public IFDocumentHandler makeIFDocumentHandler(FOUserAgent ua) {
-        SVGPrintDocumentHandler handler = new SVGPrintDocumentHandler();
-        handler.setContext(new IFContext(ua));
-        return handler;
+    public IFDocumentHandler makeIFDocumentHandler(IFContext ifContext) {
+        return new SVGPrintDocumentHandler(ifContext);
     }
 
     /** {@inheritDoc} */

Modified: xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGRendererMaker.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGRendererMaker.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGRendererMaker.java (original)
+++ xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGRendererMaker.java Tue Jul  3 09:46:41 2012
@@ -19,6 +19,7 @@
 
 package org.apache.fop.render.svg;
 
+import org.apache.fop.apps.FOPException;
 import org.apache.fop.apps.FOUserAgent;
 import org.apache.fop.apps.MimeConstants;
 import org.apache.fop.render.AbstractRendererMaker;
@@ -31,20 +32,23 @@ public class SVGRendererMaker extends Ab
 
     private static final String[] MIMES = new String[] {MimeConstants.MIME_SVG};
 
-
-    /** {@inheritDoc} */
+    @Override
     public Renderer makeRenderer(FOUserAgent ua) {
         return new SVGRenderer(ua);
     }
 
-    /** {@inheritDoc} */
+    @Override
     public boolean needsOutputStream() {
         return true;
     }
 
-    /** {@inheritDoc} */
+    @Override
     public String[] getSupportedMimeTypes() {
         return MIMES;
     }
 
+    @Override
+    public void configureRenderer(FOUserAgent userAgent, Renderer renderer) throws FOPException {
+        // No-Op
+    }
 }

Modified: xmlgraphics/fop/trunk/test/config/afp-invalid-characterset.xconf
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/config/afp-invalid-characterset.xconf?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/config/afp-invalid-characterset.xconf (original)
+++ xmlgraphics/fop/trunk/test/config/afp-invalid-characterset.xconf Tue Jul  3 09:46:41 2012
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <fop version="1.0">
   <base>.</base>
+  <strict-validation>false</strict-validation>
   <renderers>
    <renderer mime="application/x-afp">
       <fonts>

Modified: xmlgraphics/fop/trunk/test/config/afp-invalid-config.xconf
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/config/afp-invalid-config.xconf?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/config/afp-invalid-config.xconf (original)
+++ xmlgraphics/fop/trunk/test/config/afp-invalid-config.xconf Tue Jul  3 09:46:41 2012
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <fop version="1.0">
   <base>.</base>
+  <strict-validation>false</strict-validation>
   <renderers>
    <renderer mime="application/x-afp">
       <fonts>

Modified: xmlgraphics/fop/trunk/test/config/afp-raster-font-missing.xconf
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/config/afp-raster-font-missing.xconf?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/config/afp-raster-font-missing.xconf (original)
+++ xmlgraphics/fop/trunk/test/config/afp-raster-font-missing.xconf Tue Jul  3 09:46:41 2012
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <fop version="1.0">
   <base>.</base>
+  <strict-validation>false</strict-validation>
   <renderers>
    <renderer mime="application/x-afp">
       <fonts>

Modified: xmlgraphics/fop/trunk/test/fotree/testcases/background-position-shorthand-test.fo
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/fotree/testcases/background-position-shorthand-test.fo?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/fotree/testcases/background-position-shorthand-test.fo (original)
+++ xmlgraphics/fop/trunk/test/fotree/testcases/background-position-shorthand-test.fo Tue Jul  3 09:46:41 2012
@@ -24,56 +24,56 @@
   </fo:layout-master-set>
   <fo:page-sequence master-reference="simpleA4">
     <fo:flow flow-name="xsl-region-body">
-      <fo:block background-image="../../resources/images/bgimg72dpi.jpg">
+      <fo:block background-image="test/resources/images/bgimg72dpi.jpg">
         <test:assert property="background-position-horizontal" expected="0mpt"/>
         <test:assert property="background-position-vertical" expected="0mpt"/>
         Test background-position shorthand: initial values
       </fo:block>
-      <fo:block background-image="../../resources/images/bgimg72dpi.jpg"
+      <fo:block background-image="test/resources/images/bgimg72dpi.jpg"
                 background-position="50% 50%">
         <test:assert property="background-position-horizontal" expected="50.0%"/>
         <test:assert property="background-position-vertical" expected="50.0%"/>
         Test background-position shorthand: "50% 50%"
       </fo:block>
-      <fo:block background-image="../../resources/images/bgimg72dpi.jpg"
+      <fo:block background-image="test/resources/images/bgimg72dpi.jpg"
                 background-position="2in 50%">
         <test:assert property="background-position-horizontal" expected="144000mpt"/>
         <test:assert property="background-position-vertical" expected="50.0%"/>
         Test background-position shorthand: "2in 50%"
       </fo:block>
-      <fo:block background-image="../../resources/images/bgimg72dpi.jpg"
+      <fo:block background-image="test/resources/images/bgimg72dpi.jpg"
                 background-position="100%">
         <test:assert property="background-position-horizontal" expected="100.0%"/>
         <test:assert property="background-position-vertical" expected="50.0%"/>
         Test background-position shorthand: "100%"
       </fo:block>
-      <fo:block background-image="../../resources/images/bgimg72dpi.jpg"
+      <fo:block background-image="test/resources/images/bgimg72dpi.jpg"
                 background-position="top center">
         <test:assert property="background-position-horizontal" expected="50.0%"/>
         <test:assert property="background-position-vertical" expected="0mpt"/>
         Test background-position shorthand: "top center"
       </fo:block>
-      <fo:block background-image="../../resources/images/bgimg72dpi.jpg"
+      <fo:block background-image="test/resources/images/bgimg72dpi.jpg"
                 background-position="right bottom">
         <test:assert property="background-position-horizontal" expected="100.0%"/>
         <test:assert property="background-position-vertical" expected="100.0%"/>
         Test background-position shorthand: "right bottom"
       </fo:block>
       <fo:block background-position="right bottom">
-        <fo:block background-image="../../resources/images/bgimg72dpi.jpg"
+        <fo:block background-image="test/resources/images/bgimg72dpi.jpg"
                   background-position="inherit">
           <test:assert property="background-position-horizontal" expected="100.0%"/>
           <test:assert property="background-position-vertical" expected="100.0%"/>
           Test background-position shorthand: "inherit"
         </fo:block>
       </fo:block>
-      <fo:block background-image="../../resources/images/bgimg72dpi.jpg"
+      <fo:block background-image="test/resources/images/bgimg72dpi.jpg"
                 background-position="top right">
         <test:assert property="background-position-horizontal" expected="100.0%"/>
         <test:assert property="background-position-vertical" expected="0mpt"/>
         Test background-position shorthand: "top right"
       </fo:block>
-      <fo:block background-image="../../resources/images/bgimg72dpi.jpg"
+      <fo:block background-image="test/resources/images/bgimg72dpi.jpg"
                 background-position="center">
         <test:assert property="background-position-horizontal" expected="50.0%"/>
         <test:assert property="background-position-vertical" expected="50.0%"/>

Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/AbstractBasicTranscoderTest.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/AbstractBasicTranscoderTest.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/AbstractBasicTranscoderTest.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/AbstractBasicTranscoderTest.java Tue Jul  3 09:46:41 2012
@@ -19,22 +19,24 @@
 
 package org.apache.fop;
 
-import static org.junit.Assert.assertTrue;
-
 import java.io.File;
 import java.io.InputStream;
 
+import org.junit.Test;
+
 import org.apache.batik.transcoder.Transcoder;
 import org.apache.batik.transcoder.TranscoderInput;
 import org.apache.batik.transcoder.TranscoderOutput;
 import org.apache.commons.io.output.ByteArrayOutputStream;
-import org.junit.Test;
+
+import static org.apache.fop.FOPTestUtils.getBaseDir;
+import static org.junit.Assert.assertTrue;
 
 /**
  * Basic runtime test for FOP's transcoders. It is used to verify that
  * nothing obvious is broken after compiling.
  */
-public abstract class AbstractBasicTranscoderTest extends AbstractFOPTest {
+public abstract class AbstractBasicTranscoderTest {
 
     /**
      * Creates the transcoder to test.

Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/BasicDriverTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/BasicDriverTestCase.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/BasicDriverTestCase.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/BasicDriverTestCase.java Tue Jul  3 09:46:41 2012
@@ -19,8 +19,6 @@
 
 package org.apache.fop;
 
-import static org.junit.Assert.assertTrue;
-
 import java.io.File;
 
 import javax.xml.transform.Result;
@@ -30,21 +28,26 @@ import javax.xml.transform.TransformerFa
 import javax.xml.transform.sax.SAXResult;
 import javax.xml.transform.stream.StreamSource;
 
+import org.junit.Test;
+
 import org.apache.commons.io.output.ByteArrayOutputStream;
+
 import org.apache.fop.apps.FOUserAgent;
 import org.apache.fop.apps.Fop;
 import org.apache.fop.apps.FopFactory;
 import org.apache.fop.apps.MimeConstants;
 import org.apache.fop.cli.InputHandler;
-import org.junit.Test;
+
+import static org.apache.fop.FOPTestUtils.getBaseDir;
+import static org.junit.Assert.assertTrue;
 
 /**
  * Basic runtime test for the old Fop class. It is used to verify that
  * nothing obvious is broken after compiling.
  */
-public class BasicDriverTestCase extends AbstractFOPTest {
+public class BasicDriverTestCase {
 
-    private FopFactory fopFactory = FopFactory.newInstance();
+    private FopFactory fopFactory = FopFactory.newInstance(new File(".").toURI());
 
     /**
      * Tests Fop with JAXP and OutputStream generating PDF.

Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/BasicPDFTranscoderTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/BasicPDFTranscoderTestCase.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/BasicPDFTranscoderTestCase.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/BasicPDFTranscoderTestCase.java Tue Jul  3 09:46:41 2012
@@ -20,6 +20,7 @@
 package org.apache.fop;
 
 import org.apache.batik.transcoder.Transcoder;
+
 import org.apache.fop.svg.PDFTranscoder;
 
 /**

Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/StandardTestSuite.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/StandardTestSuite.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/StandardTestSuite.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/StandardTestSuite.java Tue Jul  3 09:46:41 2012
@@ -26,8 +26,6 @@ import org.junit.runners.Suite.SuiteClas
 import org.apache.fop.afp.fonts.CharactersetEncoderTestCase;
 import org.apache.fop.afp.parser.MODCAParserTestCase;
 import org.apache.fop.area.ViewportTestSuite;
-import org.apache.fop.fonts.DejaVuLGCSerifTestCase;
-import org.apache.fop.fonts.FontEventProcessingTestCase;
 import org.apache.fop.fonts.truetype.GlyfTableTestCase;
 import org.apache.fop.fonts.type1.AFMParserTestCase;
 import org.apache.fop.fonts.type1.AdobeStandardEncodingTestCase;
@@ -58,7 +56,6 @@ import org.apache.fop.traits.MinOptMaxTe
         PDFEncodingTestCase.class,
         PDFCMapTestCase.class,
         PDFsRGBSettingsTestCase.class,
-        DejaVuLGCSerifTestCase.class,
         RichTextFormatTestSuite.class,
         ImageLoaderTestCase.class,
         ImagePreloaderTestCase.class,
@@ -78,8 +75,8 @@ import org.apache.fop.traits.MinOptMaxTe
         MinOptMaxTestCase.class,
         AdobeStandardEncodingTestCase.class,
         AFMParserTestCase.class,
-        FontEventProcessingTestCase.class,
-        org.apache.fop.render.intermediate.IFStructureTreeBuilderTestCase.class
+        org.apache.fop.render.intermediate.IFStructureTreeBuilderTestCase.class,
+        org.apache.fop.fonts.FontsTestSuite.class
 })
 public class StandardTestSuite {
 }

Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/URIResolutionTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/URIResolutionTestCase.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/URIResolutionTestCase.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/URIResolutionTestCase.java Tue Jul  3 09:46:41 2012
@@ -19,18 +19,16 @@
 
 package org.apache.fop;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
 import java.io.File;
-import java.io.FileNotFoundException;
+import java.io.FileInputStream;
+import java.io.IOException;
 import java.io.OutputStream;
+import java.net.URI;
 
 import javax.xml.transform.Result;
 import javax.xml.transform.Source;
 import javax.xml.transform.Transformer;
 import javax.xml.transform.TransformerException;
-import javax.xml.transform.URIResolver;
 import javax.xml.transform.dom.DOMResult;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.sax.SAXResult;
@@ -52,62 +50,48 @@ import org.apache.fop.apps.FOPException;
 import org.apache.fop.apps.FOUserAgent;
 import org.apache.fop.apps.Fop;
 import org.apache.fop.apps.FopFactory;
+import org.apache.fop.apps.FopFactoryBuilder;
 import org.apache.fop.apps.MimeConstants;
+import org.apache.fop.apps.io.Resource;
+import org.apache.fop.apps.io.ResourceResolver;
+import org.apache.fop.apps.io.ResourceResolverFactory;
 import org.apache.fop.render.xml.XMLRenderer;
 
+import static org.apache.fop.FOPTestUtils.getBaseDir;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
 /**
  * Tests URI resolution facilities.
  */
-public class URIResolutionTestCase extends AbstractFOPTest {
+public class URIResolutionTestCase {
 
-    // configure fopFactory as desired
-    private FopFactory fopFactory = FopFactory.newInstance();
+    private SAXTransformerFactory tfactory = (SAXTransformerFactory) SAXTransformerFactory.newInstance();
 
-    private SAXTransformerFactory tfactory
-            = (SAXTransformerFactory)SAXTransformerFactory.newInstance();
+    private static final File BACKUP_DIR = new File(getBaseDir(), "build/test-results");
 
-    private final static File backupDir = new File(getBaseDir(), "build/test-results");
+    private static FopFactory fopFactory;
 
     @BeforeClass
     public static void makeDirs() {
-        backupDir.mkdirs();
+        BACKUP_DIR.mkdirs();
+        fopFactory = new FopFactoryBuilder(new File(".").getAbsoluteFile().toURI(),
+                new CustomURIResolver()).build();
     }
 
-    /**
-     * Test custom URI resolution with a hand-written URIResolver.
-     * @throws Exception if anything fails
-     */
-    @Test
-    public void testFO1a() throws Exception {
-        innerTestFO1(false);
+    private static File getTestDir() {
+        return new File(getBaseDir(), "test/xml/uri-testing/");
     }
 
-    /**
-     * Test custom URI resolution with a hand-written URIResolver.
-     * @throws Exception if anything fails
-     */
     @Test
-    public void testFO1b() throws Exception {
-        innerTestFO1(true);
-    }
+    public void innerTestFO1() throws Exception {
+        File foFile = new File(getTestDir(), "custom-scheme/only-scheme-specific-part.fo");
 
-    private void innerTestFO1(boolean withStream) throws Exception {
         FOUserAgent ua = fopFactory.newFOUserAgent();
 
-        File foFile = new File(getBaseDir(), "test/xml/uri-resolution1.fo");
-
-        MyURIResolver resolver = new MyURIResolver(withStream);
-        ua.setURIResolver(resolver);
-        ua.setBaseURL(foFile.getParentFile().toURI().toURL().toString());
-
         Document doc = createAreaTree(foFile, ua);
 
-        //Check how many times the resolver was consulted
-        assertEquals("Expected resolver to do 1 successful URI resolution",
-                1, resolver.successCount);
-        assertEquals("Expected resolver to do 0 failed URI resolution",
-                0, resolver.failureCount);
-        //Additional XPath checking on the area tree
+        // XPath checking on the area tree
         assertEquals("viewport for external-graphic is missing",
                 "true", evalXPath(doc, "boolean(//flow/block[1]/lineArea/viewport)"));
         assertEquals("46080", evalXPath(doc, "//flow/block[1]/lineArea/viewport/@ipd"));
@@ -120,13 +104,9 @@ public class URIResolutionTestCase exten
      */
     @Test
     public void testFO2() throws Exception {
-        //TODO This will only work when we can do URI resolution inside Batik!
-        File foFile = new File(getBaseDir(), "test/xml/uri-resolution2.fo");
+        File foFile = new File(getTestDir(), "custom-scheme/only-scheme-specific-part-svg.fo");
 
         FOUserAgent ua = fopFactory.newFOUserAgent();
-        MyURIResolver resolver = new MyURIResolver(false);
-        ua.setURIResolver(resolver);
-        ua.setBaseURL(foFile.getParentFile().toURI().toURL().toString());
 
         ByteArrayOutputStream baout = new ByteArrayOutputStream();
 
@@ -138,25 +118,20 @@ public class URIResolutionTestCase exten
         transformer.transform(src, res);
 
         OutputStream out = new java.io.FileOutputStream(
-                new File(backupDir, foFile.getName() + ".pdf"));
+                new File(BACKUP_DIR, foFile.getName() + ".pdf"));
         try {
             baout.writeTo(out);
         } finally {
             IOUtils.closeQuietly(out);
         }
 
-        //Check how many times the resolver was consulted
-        assertEquals("Expected resolver to do 1 successful URI resolution",
-                1, resolver.successCount);
-        assertEquals("Expected resolver to do 0 failed URI resolutions",
-                0, resolver.failureCount);
         //Test using PDF as the area tree doesn't invoke Batik so we could check
         //if the resolver is actually passed to Batik by FOP
         assertTrue("Generated PDF has zero length", baout.size() > 0);
     }
 
     private Document createAreaTree(File fo, FOUserAgent ua)
-                throws TransformerException, FOPException {
+            throws TransformerException, FOPException {
         DOMResult domres = new DOMResult();
         //Setup Transformer to convert the area tree to a DOM
         TransformerHandler athandler = tfactory.newTransformerHandler();
@@ -173,8 +148,8 @@ public class URIResolutionTestCase exten
         Result res = new SAXResult(fop.getDefaultHandler());
         transformer.transform(src, res);
 
-        Document doc = (Document)domres.getNode();
-        saveAreaTreeXML(doc, new File(backupDir, fo.getName() + ".at.xml"));
+        Document doc = (Document) domres.getNode();
+        saveAreaTreeXML(doc, new File(BACKUP_DIR, fo.getName() + ".at.xml"));
         return doc;
     }
 
@@ -201,48 +176,20 @@ public class URIResolutionTestCase exten
         transformer.transform(src, res);
     }
 
-    private class MyURIResolver implements URIResolver {
-
-        private static final String PREFIX = "funky:";
+    private static final class CustomURIResolver implements ResourceResolver {
+        private final ResourceResolver defaultImpl =  ResourceResolverFactory.createDefaultResourceResolver();
 
-        private boolean withStream;
-        private int successCount = 0;
-        private int failureCount = 0;
+        public Resource getResource(URI uri) throws IOException {
+            if (uri.getScheme().equals("funky") && uri.getSchemeSpecificPart().equals("myimage123")) {
+                return new Resource("", new FileInputStream("test/resources/images/bgimg300dpi.jpg"));
+            }
 
-        public MyURIResolver(boolean withStream) {
-            this.withStream = withStream;
+            return defaultImpl.getResource(uri);
         }
 
-        /**
-         * @see javax.xml.transform.URIResolver#resolve(java.lang.String, java.lang.String)
-         */
-        public Source resolve(String href, String base) throws TransformerException {
-            if (href.startsWith(PREFIX)) {
-                String name = href.substring(PREFIX.length());
-                if ("myimage123".equals(name)) {
-                    File image = new File(getBaseDir(), "test/resources/images/bgimg300dpi.jpg");
-                    Source src;
-                    if (withStream) {
-                        try {
-                            src = new StreamSource(new java.io.FileInputStream(image));
-                        } catch (FileNotFoundException e) {
-                            throw new TransformerException(e.getMessage(), e);
-                        }
-                    } else {
-                        src = new StreamSource(image);
-                    }
-                    successCount++;
-                    return src;
-                } else {
-                    failureCount++;
-                    throw new TransformerException("funky image not found");
-                }
-            } else {
-                failureCount++;
-                return null;
-            }
+        public OutputStream getOutputStream(URI uri) throws IOException {
+            return defaultImpl.getOutputStream(uri);
         }
 
     }
-
 }

Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/afp/AFPEventProcessingTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/afp/AFPEventProcessingTestCase.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/afp/AFPEventProcessingTestCase.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/afp/AFPEventProcessingTestCase.java Tue Jul  3 09:46:41 2012
@@ -19,61 +19,53 @@
 
 package org.apache.fop.afp;
 
-import java.io.IOException;
 import java.io.InputStream;
-
-import javax.xml.transform.TransformerException;
+import java.net.URI;
 
 import org.junit.Test;
-import org.xml.sax.SAXException;
 
 import org.apache.xmlgraphics.util.MimeConstants;
 
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.events.EventProcessingTestCase;
 
+
 /**
  * A test class for testing AFP events.
  */
 public class AFPEventProcessingTestCase {
 
     private EventProcessingTestCase eventsTests = new EventProcessingTestCase();
-    private static final String CONFIG_BASE_DIR = EventProcessingTestCase.CONFIG_BASE_DIR;
+    private static final URI CONFIG_BASE_DIR = EventProcessingTestCase.CONFIG_BASE_DIR;
 
     private void testInvalidConfigEvent(String xconf, String eventId)
-            throws FOPException, TransformerException, IOException, SAXException {
+            throws Exception {
         InputStream inStream = getClass().getResourceAsStream("simple.fo");
-        eventsTests.doTest(inStream, CONFIG_BASE_DIR + xconf,
+        eventsTests.doTest(inStream, CONFIG_BASE_DIR.resolve(xconf),
                 AFPEventProducer.class.getName() + eventId, MimeConstants.MIME_AFP);
     }
 
     @Test
-    public void testMissingFontConfigurationElement() throws FOPException, TransformerException,
-            IOException, SAXException {
+    public void testMissingFontConfigurationElement() throws Exception {
         testInvalidConfigEvent("afp-font-missing.xconf", ".fontConfigMissing");
     }
 
     @Test
-    public void testInvalidCharactersetName() throws FOPException, TransformerException,
-            IOException, SAXException {
+    public void testInvalidCharactersetName() throws Exception {
         testInvalidConfigEvent("afp-invalid-characterset.xconf", ".characterSetNameInvalid");
     }
 
     @Test
-    public void testinvalidConfig() throws FOPException, TransformerException, IOException,
-            SAXException {
+    public void testinvalidConfig() throws Exception {
         testInvalidConfigEvent("afp-invalid-config.xconf", ".invalidConfiguration");
     }
 
     @Test
-    public void testRasterFontElementMissing() throws FOPException, TransformerException,
-            IOException, SAXException {
+    public void testRasterFontElementMissing() throws Exception {
         testInvalidConfigEvent("afp-raster-font-missing.xconf", ".fontConfigMissing");
     }
 
     @Test
-    public void testTripletElementMissing() throws FOPException, TransformerException,
-            IOException, SAXException {
+    public void testTripletElementMissing() throws Exception {
         testInvalidConfigEvent("afp-triplet-missing.xconf", ".fontConfigMissing");
     }
 }

Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/afp/AFPResourceManagerTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/afp/AFPResourceManagerTestCase.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/afp/AFPResourceManagerTestCase.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/afp/AFPResourceManagerTestCase.java Tue Jul  3 09:46:41 2012
@@ -19,10 +19,8 @@
 
 package org.apache.fop.afp;
 
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
 import java.io.ByteArrayOutputStream;
+import java.io.File;
 import java.io.IOException;
 
 import org.junit.Before;
@@ -30,6 +28,11 @@ import org.junit.Test;
 
 import org.apache.xmlgraphics.util.MimeConstants;
 
+import org.apache.fop.apps.io.ResourceResolverFactory;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
 /**
  * Test case for {@link AFPResourceManager}.
  */
@@ -39,7 +42,8 @@ public class AFPResourceManagerTestCase 
 
     @Before
     public void setUp() throws IOException {
-        sut = new AFPResourceManager();
+        sut = new AFPResourceManager(ResourceResolverFactory.createDefaultInternalResourceResolver(
+                                                            new File(".").toURI()));
         AFPPaintingState paintingState = new AFPPaintingState();
         ByteArrayOutputStream outStream = new ByteArrayOutputStream();
         DataStream stream = sut.createDataStream(paintingState, outStream);

Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/afp/AFPTestSuite.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/afp/AFPTestSuite.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/afp/AFPTestSuite.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/afp/AFPTestSuite.java Tue Jul  3 09:46:41 2012
@@ -31,7 +31,6 @@ import org.apache.fop.afp.modca.IncludeO
 @RunWith(Suite.class)
 @SuiteClasses({
         IncludeObjectTestCase.class,
-        AFPResourceUtilTestCase.class,
         AFPObjectAreaInfoTestCase.class,
         AFPPaintingStateTestCase.class
 })

Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/afp/fonts/CharactersetEncoderTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/afp/fonts/CharactersetEncoderTestCase.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/afp/fonts/CharactersetEncoderTestCase.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/afp/fonts/CharactersetEncoderTestCase.java Tue Jul  3 09:46:41 2012
@@ -39,9 +39,8 @@ public class CharactersetEncoderTestCase
 
     @Before
     public void setUp() {
-        singlebyteEncoder = CharactersetEncoder.newInstance("cp500", CharacterSetType.SINGLE_BYTE);
-        doublebyteEncoder = CharactersetEncoder.newInstance("cp937",
-                CharacterSetType.DOUBLE_BYTE_LINE_DATA);
+        singlebyteEncoder = CharacterSetType.SINGLE_BYTE.getEncoder("cp500");
+        doublebyteEncoder = CharacterSetType.DOUBLE_BYTE_LINE_DATA.getEncoder("cp937");
     }
 
     // This is just an arbitrary CJK string

Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/config/BaseConstructiveUserConfigTest.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/config/BaseConstructiveUserConfigTest.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/config/BaseConstructiveUserConfigTest.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/config/BaseConstructiveUserConfigTest.java Tue Jul  3 09:46:41 2012
@@ -19,15 +19,23 @@
 
 package org.apache.fop.config;
 
-import static org.junit.Assert.fail;
+import java.io.IOException;
+import java.io.InputStream;
 
 import org.junit.Test;
+import org.xml.sax.SAXException;
+
+import static org.junit.Assert.fail;
 
 /**
  * Super class of several user config cases.
  */
 public abstract class BaseConstructiveUserConfigTest extends BaseUserConfigTest {
 
+    public BaseConstructiveUserConfigTest(InputStream confStream) throws SAXException, IOException {
+        super(confStream);
+    }
+
     /**
      * Test using a standard FOP font
      * @throws Exception checkstyle wants a comment here, even a silly one
@@ -35,7 +43,6 @@ public abstract class BaseConstructiveUs
     @Test
     public void testUserConfig() throws Exception {
         try {
-            initConfig();
             convertFO();
         } catch (Exception e) {
             // this should *not* happen!

Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/config/BaseDestructiveUserConfigTest.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/config/BaseDestructiveUserConfigTest.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/config/BaseDestructiveUserConfigTest.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/config/BaseDestructiveUserConfigTest.java Tue Jul  3 09:46:41 2012
@@ -19,30 +19,28 @@
 
 package org.apache.fop.config;
 
-import static org.junit.Assert.fail;
+import java.io.IOException;
+import java.io.InputStream;
 
-import org.apache.fop.apps.FOPException;
 import org.junit.Test;
+import org.xml.sax.SAXException;
+
+import org.apache.fop.apps.FOPException;
 
 /**
  * Super class for several user configuration failure cases.
  */
 public abstract class BaseDestructiveUserConfigTest extends BaseUserConfigTest {
 
+    public BaseDestructiveUserConfigTest(InputStream confStream) throws SAXException, IOException {
+        super(confStream);
+    }
+
     /**
      * Test the user configuration failure.
      */
-    @Test
-    public void testUserConfig() {
-        try {
-            initConfig();
-            convertFO();
-            fail( getName() + ": Expected Configuration Exception" );
-        } catch (FOPException e) {
-            // this *should* happen!
-        } catch (Exception e) {
-            e.printStackTrace();
-            fail( getName() + ": Expected FOPException but got: " + e.getMessage() );
-        }
+    @Test(expected = FOPException.class)
+    public void testUserConfig() throws Exception {
+        convertFO();
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org