dims        01/08/14 07:44:33

  Modified:    .        build.xml
               xdocs    jars.xml pdf-serializer.xml uc2.xml
  Added:       src/org/apache/cocoon/components/renderer
                        ExtendableRendererFactory.java RendererFactory.java
               src/org/apache/cocoon/serialization FOPSerializer.java
  Removed:     src/org/apache/cocoon/serialization
                        AbstractFOPSerializer.java PCLSerializer.java
                        PDFSerializer.java PSSerializer.java
  Log:
  - Add RendererFactory/ExtendableRendererFactory for FOP on the same lines as SVG's 
TranscoderFactory/ExtendableTranscoderFactory
  - Get rid of PCL/PDF/PS Serializers, use the factory to instantiate the Renderer's.
  - Rename AbstractFOPSerializer back to FOPSerializer.
  - Support for adding more Renderers dynamically from Config.
  
  John, Colin,
  Please take a look.
  
  Thanks,
  dims
  
  Revision  Changes    Path
  1.50      +7 -10     xml-cocoon2/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/build.xml,v
  retrieving revision 1.49
  retrieving revision 1.50
  diff -u -r1.49 -r1.50
  --- build.xml 2001/08/14 12:45:26     1.49
  +++ build.xml 2001/08/14 14:44:33     1.50
  @@ -113,11 +113,11 @@
   Serializers
   
   - fo2pdf serializer : Requires the FOP package (included in the dist)
  -                    <map:serializer name="fo2pdf" 
src="org.apache.cocoon.serialization.PDFSerializer" mime-type="application/pdf"/>
  +                    <map:serializer name="fo2pdf" 
src="org.apache.cocoon.serialization.FOPSerializer" mime-type="application/pdf"/>
   - fo2ps serializer : Requires the FOP package (included in the dist)
  -                    <map:serializer name="fo2ps" 
src="org.apache.cocoon.serialization.PSSerializer" mime-type="application/ps"/>
  +                    <map:serializer name="fo2ps" 
src="org.apache.cocoon.serialization.FOPSerializer" 
mime-type="application/postscript"/>
   - fo2pcl serializer : Requires the FOP package (included in the dist)
  -                    <map:serializer name="fo2pdf" 
src="org.apache.cocoon.serialization.PCLSerializer" 
mime-type="application/vnd.hp-PCL"/>
  +                    <map:serializer name="fo2pcl" 
src="org.apache.cocoon.serialization.FOPSerializer" 
mime-type="application/vnd.hp-PCL"/>
   
   
                                 Happy hacking from the Apache Cocoon 2 Dev Team :)
  @@ -401,10 +401,7 @@
         <exclude name="**/Javascript*"         unless="rhino.present"/>
         <exclude name="**/Jstyle*"             unless="jstyle.present"/>
         <exclude name="**/FOP*"                unless="fop.present"/>
  -      <exclude name="**/serialization/AbstractFOP*"  unless="fop.present"/>
  -      <exclude name="**/serialization/PDF*"  unless="fop.present"/>
  -      <exclude name="**/serialization/PCL*"  unless="fop.present"/>
  -      <exclude name="**/serialization/PS*"   unless="fop.present"/>
  +      <exclude name="**/renderer/*"          unless="fop.present"/>
         <exclude name="**/Php*"                unless="php.present"/>
         <exclude name="**/HTMLGenerator.java"  unless="tidy.present"/>
         <exclude name="**/J2eeDataSource.java" unless="j2ee.present"/>
  @@ -574,19 +571,19 @@
     <!-- =================================================================== -->
     <target name="prepare-webapp-fop" depends="copy-webapp" if="fop.present">
       <java classname="st">
  -        <arg line="-i ${build.war}/sitemap.xmap -o ${build.war}/sitemap.xmap -m 
application/pdf         -a serializers fo2pdf 
org.apache.cocoon.serialization.PDFSerializer"/>
  +        <arg line="-i ${build.war}/sitemap.xmap -o ${build.war}/sitemap.xmap -m 
application/pdf         -a serializers fo2pdf 
org.apache.cocoon.serialization.FOPSerializer"/>
           <classpath>
             <pathelement location="${bin.dir}"/>
           </classpath>
       </java>
       <java classname="st">
  -        <arg line="-i ${build.war}/sitemap.xmap -o ${build.war}/sitemap.xmap -m 
application/ps          -a serializers fo2ps  
org.apache.cocoon.serialization.PSSerializer"/>
  +        <arg line="-i ${build.war}/sitemap.xmap -o ${build.war}/sitemap.xmap -m 
application/postscript          -a serializers fo2ps  
org.apache.cocoon.serialization.FOPSerializer"/>
           <classpath>
             <pathelement location="${bin.dir}"/>
           </classpath>
       </java>
       <java classname="st">
  -        <arg line="-i ${build.war}/sitemap.xmap -o ${build.war}/sitemap.xmap -m 
'application/vnd.hp-PCL' -a serializers fo2pcl 
org.apache.cocoon.serialization.PCLSerializer"/>
  +        <arg line="-i ${build.war}/sitemap.xmap -o ${build.war}/sitemap.xmap -m 
'application/vnd.hp-PCL' -a serializers fo2pcl 
org.apache.cocoon.serialization.FOPSerializer"/>
           <classpath>
             <pathelement location="${bin.dir}"/>
           </classpath>
  
  
  
  1.1                  
xml-cocoon2/src/org/apache/cocoon/components/renderer/ExtendableRendererFactory.java
  
  Index: ExtendableRendererFactory.java
  ===================================================================
  /*****************************************************************************
   * Copyright (C) The Apache Software Foundation. All rights reserved.        *
   * ------------------------------------------------------------------------- *
   * This software is published under the terms of the Apache Software License *
   * version 1.1, a copy of which has been included  with this distribution in *
   * the LICENSE file.                                                         *
   *****************************************************************************/
  package org.apache.cocoon.components.renderer;
  
  import java.util.HashMap;
  import java.util.Map;
  import org.apache.fop.render.Renderer;
  import org.apache.fop.render.ps.PSRenderer;
  import org.apache.fop.render.pdf.PDFRenderer;
  import org.apache.fop.render.pcl.PCLRenderer;
  
  /**
   * An extendable FOP Renderer factory.
   * When given a MIME type, find a Renderer which supports that MIME
   * type. This factory is extendable as new <code>Renderer</code>s can
   * be added at runtime.
   * @author Davanum Srinivas
   * @version $Revision: 1.1 $, $Date: 2001/08/14 14:44:33 $
   */
  public class ExtendableRendererFactory implements RendererFactory {
  
    protected static Map renderers = new HashMap();
  
    protected final static RendererFactory singleton = new ExtendableRendererFactory();
  
    private ExtendableRendererFactory() {
      // Add the default renderers which come with Apache FOP.
      addRenderer("application/pdf", PDFRenderer.class);
      addRenderer("application/postscript", PSRenderer.class);
      addRenderer("application/vnd.hp-PCL", PCLRenderer.class);
    }
  
    /**
     * Get a reference to this Renderer Factory.
     */
    public final static RendererFactory getRendererFactoryImplementation() {
      return singleton;
    }
  
    /**
     * Create a renderer for a specified MIME type.
     * @param mimeType The MIME type of the destination format
     * @return A suitable renderer, or <code>null</code> if one cannot be found
     */
    public Renderer createRenderer(String mimeType) {
      Class rendererClass = (Class)renderers.get(mimeType);
      if (rendererClass == null) {
        return null;
      } else {
        try {
          return (Renderer)rendererClass.newInstance();
        } catch (Exception ex) {
          return null;
        }
      }
    }
  
    /**
     * Add a mapping from the specified MIME type to a renderer.
     * Note: The renderer must have a no-argument constructor.
     * @param mimeType The MIME type of the Renderer
     * @param rendererClass The <code>Class</code> object for the Renderer.
     */
    public void addRenderer(String mimeType, Class rendererClass) {
      renderers.put(mimeType, rendererClass);
    }
  
    /**
     * Remove the mapping from a specified MIME type.
     * @param mimeType The MIME type to remove from the mapping.
     */
    public void removeRenderer(String mimeType) {
      renderers.remove(mimeType);
    }
  }
  
  
  
  1.1                  
xml-cocoon2/src/org/apache/cocoon/components/renderer/RendererFactory.java
  
  Index: RendererFactory.java
  ===================================================================
  /*****************************************************************************
   * Copyright (C) The Apache Software Foundation. All rights reserved.        *
   * ------------------------------------------------------------------------- *
   * This software is published under the terms of the Apache Software License *
   * version 1.1, a copy of which has been included  with this distribution in *
   * the LICENSE file.                                                         *
   *****************************************************************************/
  package org.apache.cocoon.components.renderer;
  
  import org.apache.fop.render.Renderer;
  
  /**
   * Apache FOP Renderer factory.
   * When given a MIME type, find a Renderer which supports that MIME type.
   * @author Davanum Srinivas
   * @version $Revision: 1.1 $, $Date: 2001/08/14 14:44:33 $
   */
  public interface RendererFactory {
  
    /**
     * Create a transcoder for a specified MIME type.
     * @param mimeType The MIME type of the destination format
     * @return A suitable renderer, or <code>null> if one cannot be found
     */
    Renderer createRenderer(String mimeType) ;
  }
  
  
  
  1.4       +106 -77   
xml-cocoon2/src/org/apache/cocoon/serialization/FOPSerializer.java
  
  
  
  
  1.11      +1 -1      xml-cocoon2/xdocs/jars.xml
  
  Index: jars.xml
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/xdocs/jars.xml,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- jars.xml  2001/08/14 12:45:26     1.10
  +++ jars.xml  2001/08/14 14:44:33     1.11
  @@ -108,7 +108,7 @@
          conforming to the XSL candidate release and then turns it into a PDF
          document or allows you to preview it directly on screen.</td>
        <td>No</td>
  -     <td>PDFSerializer serializer (&quot;fo2pdf&quot;)</td>
  +     <td>FOPSerializer serializer (&quot;fo2pdf&quot;)</td>
        <td>Hello World - PDF, Static content - formatting objects</td>
        <td/>
      </tr>
  
  
  
  1.7       +3 -3      xml-cocoon2/xdocs/pdf-serializer.xml
  
  Index: pdf-serializer.xml
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/xdocs/pdf-serializer.xml,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- pdf-serializer.xml        2001/08/14 12:45:26     1.6
  +++ pdf-serializer.xml        2001/08/14 14:44:33     1.7
  @@ -21,7 +21,7 @@
                        the distribution includes this package already.</p>
               <ul>
                   <li>Name : fo2pdf</li>
  -                <li>Class: org.apache.cocoon.serialization.PDFSerializer</li>
  +                <li>Class: org.apache.cocoon.serialization.FOPSerializer</li>
                   <li>Cacheable: yes.</li>
               </ul>
           </s1>
  @@ -130,11 +130,11 @@
                 located. Find the line in your sitemap which looks
                 like:</p>
               <source><![CDATA[
  -<map:serializer name="fo2pdf" src="org.apache.cocoon.serialization.PDFSerializer" 
mime-type="application/pdf"/>
  +<map:serializer name="fo2pdf" src="org.apache.cocoon.serialization.FOPSerializer" 
mime-type="application/pdf"/>
               ]]></source>
               <p>and replace it with...</p>
               <source><![CDATA[
  -<map:serializer name="fo2pdf" src="org.apache.cocoon.serialization.PDFSerializer" 
mime-type="application/pdf">
  +<map:serializer name="fo2pdf" src="org.apache.cocoon.serialization.FOPSerializer" 
mime-type="application/pdf">
     <user-config src="D:/fop-fonts/config.xml"/>
   </map:serializer>
               ]]></source>
  
  
  
  1.8       +1 -1      xml-cocoon2/xdocs/uc2.xml
  
  Index: uc2.xml
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/xdocs/uc2.xml,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- uc2.xml   2001/08/14 12:45:26     1.7
  +++ uc2.xml   2001/08/14 14:44:33     1.8
  @@ -414,7 +414,7 @@
                    src="org.apache.cocoon.serialization.HTMLSerializer"/>
    <map:serializer name="fo2pdf"
                    mime-type="application/pdf"
  -                 src="org.apache.cocoon.serialization.PDFSerializer"/>
  +                 src="org.apache.cocoon.serialization.FOPSerializer"/>
    <map:serializer name="vrml"
                    mime-type="model/vrml"
                    src="org.apache.cocoon.serialization.TextSerializer"/>
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to