giacomo     00/08/15 22:08:21

  Modified:    conf     Tag: xml-cocoon2 sitemap.xmap
               samples/documents Tag: xml-cocoon2 welcome.xml
               src/org/apache/cocoon/components/language/markup/sitemap/java
                        Tag: xml-cocoon2 sitemap.xsl
               src/org/apache/cocoon/reading Tag: xml-cocoon2
                        AbstractReader.java ResourceReader.java
               src/org/apache/cocoon/serialization Tag: xml-cocoon2
                        AbstractSerializer.java FO2PDFSerializer.java
                        ImageSerializer.java SVGSerializer.java
               src/org/apache/cocoon/sitemap Tag: xml-cocoon2
                        ErrorGenerator.java ResourcePipeline.java
                        SitemapOutputComponent.java
  Added:       samples/documents Tag: xml-cocoon2 error-giving-page.xml
               samples/resources/images Tag: xml-cocoon2
                        cocoonBackTrasp.gif
               samples/stylesheets Tag: xml-cocoon2 cool-error2html.xsl
                        cool-status.xsl
  Log:
  Improved ErrorGenerator by Nicola Ken Barozzi.
  New samples in welcome page (Error page and Status).
  Added getMimeType method to SitemapOutputComponent (and to all the Components 
that depend on the SitemapOutputComponent Interface)
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.6   +8 -2      xml-cocoon/conf/Attic/sitemap.xmap
  
  Index: sitemap.xmap
  ===================================================================
  RCS file: /home/cvs/xml-cocoon/conf/Attic/sitemap.xmap,v
  retrieving revision 1.1.2.5
  retrieving revision 1.1.2.6
  diff -u -r1.1.2.5 -r1.1.2.6
  --- sitemap.xmap      2000/08/02 22:48:25     1.1.2.5
  +++ sitemap.xmap      2000/08/16 05:08:06     1.1.2.6
  @@ -111,7 +111,7 @@
    
      <map:match pattern="^status$"> 
       <map:generate type="status" src="status"/> 
  -    <map:transform src="stylesheets/simple-status.xsl"/> 
  +    <map:transform src="stylesheets/cool-status.xsl"/> 
       <map:serialize> 
        <parameter name="contentType" value="text/html"/> 
       </map:serialize> 
  @@ -125,8 +125,14 @@
       </map:serialize> 
      </map:match>
       
  +   <map:match pattern="^generror$"> 
  +    <map:generate src="documents/error-giving-page.xml"/> 
  +    <map:transform src="stylesheets/simple-welcome2html.xsl"/> 
  +    <map:serialize/> 
  +   </map:match>
  +    
      <map:handle-errors> 
  -    <map:transform src="stylesheets/simple-error2html.xsl"/> 
  +    <map:transform src="stylesheets/cool-error2html.xsl"/> 
       <map:serialize/>   
      </map:handle-errors> 
   
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.2   +8 -0      xml-cocoon/samples/documents/Attic/welcome.xml
  
  Index: welcome.xml
  ===================================================================
  RCS file: /home/cvs/xml-cocoon/samples/documents/Attic/welcome.xml,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- welcome.xml       2000/06/06 23:20:00     1.1.2.1
  +++ welcome.xml       2000/08/16 05:08:09     1.1.2.2
  @@ -23,8 +23,16 @@
      </sample>
     </group>
     <group name="Dynamic Content Examples">
  +   <sample name="Status Page" url="status">
  +    Simple status page example.
  +   </sample>
      <sample name="Simple XSP" url="simple_dynamic_page">
       Simple XSP example.
  +   </sample>
  +  </group>
  +  <group name="Error Page Example">
  +   <sample name="Error Page" url="generror">
  +    Simple error page example.
      </sample>
     </group>
    </samples>
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1   +15 -0     xml-cocoon/samples/documents/Attic/error-giving-page.xml
  
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1   +15 -0     
xml-cocoon/samples/resources/images/Attic/cocoonBackTrasp.gif
  
        <<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1   +110 -0    xml-cocoon/samples/stylesheets/Attic/cool-error2html.xsl
  
  
  
  
  1.1.2.1   +71 -0     xml-cocoon/samples/stylesheets/Attic/cool-status.xsl
  
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.20  +70 -11    
xml-cocoon/src/org/apache/cocoon/components/language/markup/sitemap/java/Attic/sitemap.xsl
  
  Index: sitemap.xsl
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/components/language/markup/sitemap/java/Attic/sitemap.xsl,v
  retrieving revision 1.1.2.19
  retrieving revision 1.1.2.20
  diff -u -r1.1.2.19 -r1.1.2.20
  --- sitemap.xsl       2000/08/04 21:11:14     1.1.2.19
  +++ sitemap.xsl       2000/08/16 05:08:14     1.1.2.20
  @@ -2,7 +2,7 @@
   <!-- Sitemap Core logicsheet for the Java language -->
   <!--
    * @author &lt;a href="mailto:[EMAIL PROTECTED]"&gt;Giacomo Pati&lt;/a&gt;
  - * @version CVS $Revision: 1.1.2.19 $ $Date: 2000/08/04 21:11:14 $
  + * @version CVS $Revision: 1.1.2.20 $ $Date: 2000/08/16 05:08:14 $
   -->
   
   <xsl:stylesheet 
  @@ -61,9 +61,9 @@
       } 
       
       private Parameters emptyParam = new Parameters(); 
  +    private Generator generator_error_handler = null;
  +    private Configuration generator_config_error_handler = null;
   
  -    private Generator generator_error_handler = new ErrorGenerator();
  -
       <!-- generate variables for all components -->
       /** The generators */
       <xsl:for-each 
select="/map:sitemap/map:components/map:generators/map:generator">
  @@ -157,6 +157,14 @@
         this.sitemapManager.setConfiguration(conf);
         try {
         <!-- configure all components -->
  +      /* Configure special ErrorGenerator */
  +      confBuilder.startDocument ();
  +      confBuilder.endDocument ();
  +      Configuration cconf2 = confBuilder.getConfiguration();
  +      generator_config_error_handler = cconf2;
  +      generator_error_handler =
  +        (Generator) load_component 
("org.apache.cocoon.sitemap.ErrorGenerator", cconf2);
  +
         /* Configure generators */
         <xsl:call-template name="config-components">
           <xsl:with-param name="name">generator</xsl:with-param>
  @@ -229,6 +237,7 @@
         List listOfLists = (List)(new ArrayList());
         List list = null;
         Parameters param = null; 
  +      Dictionary objectModel = environment.getObjectModel(); 
         <xsl:for-each select="/map:sitemap/map:pipelines/map:pipeline">
           <xsl:variable name="pipeline-position" select="position()"/>
           try {
  @@ -237,7 +246,7 @@
             <xsl:choose>
             <xsl:when test="(./map:handle-errors)">
               try {
  -              return error_process_<xsl:value-of 
select="$pipeline-position"/> (environment, e);
  +              return error_process_<xsl:value-of 
select="$pipeline-position"/> (environment, objectModel, e);
               } catch (Exception ex) {
                 System.out.println (ex.toString());
                 ex.printStackTrace(System.out);
  @@ -256,7 +265,7 @@
       <xsl:for-each select="/map:sitemap/map:pipelines/map:pipeline">
         <xsl:variable name="pipeline-position" select="position()"/>
         <xsl:if test="(./map:handle-errors)">
  -        private boolean error_process_<xsl:value-of 
select="$pipeline-position"/> (Environment environment, Exception e) 
  +        private boolean error_process_<xsl:value-of 
select="$pipeline-position"/> (Environment environment, Dictionary objectModel, 
Exception e) 
           throws Exception { 
             ResourcePipeline pipeline = new ResourcePipeline ();
             pipeline.setComponentManager (this.manager);
  @@ -310,7 +319,7 @@
           </xsl:choose>
         </xsl:for-each>
       </xsl:variable>
  -    if ((list = <xsl:value-of select="$matcher-name"/> ("<xsl:value-of 
select="$pattern-value"/>", environment.getObjectModel())) != null) {
  +    if ((list = <xsl:value-of select="$matcher-name"/> ("<xsl:value-of 
select="$pattern-value"/>", objectModel)) != null) {
         listOfLists.add (list);  
         <xsl:apply-templates/>
       }
  @@ -352,7 +361,7 @@
             </xsl:choose>
           </xsl:for-each>
         </xsl:variable>
  -      if (<xsl:value-of select="$selector-name"/> ("<xsl:value-of 
select="$test-value"/>", environment.getObjectModel())) {
  +      if (<xsl:value-of select="$selector-name"/> ("<xsl:value-of 
select="$test-value"/>", objectModel)) {
          <xsl:apply-templates/>
         }
       </xsl:for-each>
  @@ -378,24 +387,74 @@
         <xsl:with-param name="method">addTransformer</xsl:with-param>
         <xsl:with-param name="prefix">transformer</xsl:with-param>
       </xsl:call-template>
  -  </xsl:template> <!-- match="map:transormer" -->
  +  </xsl:template> <!-- match="map:transformer" -->
   
     <xsl:template match="map:serialize">
  +    <xsl:variable name="default-serializer-type">
  +      <xsl:value-of 
select="/map:sitemap/map:components/map:serializers/@default"/>
  +    </xsl:variable>
  +    <xsl:variable name="this-type">
  +      <xsl:choose>
  +        <xsl:when test="@type">
  +          <xsl:value-of select="@type"/>
  +        </xsl:when>
  +        <xsl:otherwise>
  +          <xsl:value-of select="$default-serializer-type"/>
  +        </xsl:otherwise>
  +      </xsl:choose>
  +    </xsl:variable>
  +    <xsl:variable name="default-mime-type">
  +      <xsl:value-of 
select="/map:sitemap/map:components/map:serializers/map:[EMAIL 
PROTECTED]/@mime-type"/>
  +    </xsl:variable>
       <xsl:call-template name="setup-component">
  -      <xsl:with-param name="default-component" 
select="/map:sitemap/map:components/map:serializers/@default"/>
  +      <xsl:with-param name="default-component" 
select="$default-serializer-type"/>
         <xsl:with-param name="method">setSerializer</xsl:with-param>
         <xsl:with-param name="prefix">serializer</xsl:with-param>
  -      <xsl:with-param name="mime-type" select="@mime-type"/>
  +      <xsl:with-param name="mime-type">
  +        <xsl:choose>
  +          <xsl:when test="@mime-type">
  +            <xsl:value-of select="@mime-type"/>
  +          </xsl:when>
  +          <xsl:otherwise>
  +            <xsl:value-of select="$default-mime-type"/>
  +          </xsl:otherwise>
  +        </xsl:choose>
  +      </xsl:with-param>
       </xsl:call-template> 
       return pipeline.process (environment);
     </xsl:template> <!-- match="map:serialize" --> 
   
     <xsl:template match="map:read">
  +    <xsl:variable name="default-reader-type">
  +      <xsl:value-of 
select="/map:sitemap/map:components/map:readers/@default"/>
  +    </xsl:variable>
  +    <xsl:variable name="this-type">
  +      <xsl:choose>
  +        <xsl:when test="@type">
  +          <xsl:value-of select="@type"/>
  +        </xsl:when>
  +        <xsl:otherwise>
  +          <xsl:value-of select="$default-reader-type"/>
  +        </xsl:otherwise>
  +      </xsl:choose>
  +    </xsl:variable>
  +    <xsl:variable name="default-mime-type">
  +      <xsl:value-of 
select="/map:sitemap/map:components/map:readers/map:[EMAIL 
PROTECTED]/@mime-type"/>
  +    </xsl:variable>
       <xsl:call-template name="setup-component">
         <xsl:with-param name="default-component" 
select="/map:sitemap/map:components/map:readers/@default"/>
         <xsl:with-param name="method">setReader</xsl:with-param>
         <xsl:with-param name="prefix">reader</xsl:with-param>
  -      <xsl:with-param name="mime-type" select="@mime-type"/>
  +      <xsl:with-param name="mime-type">
  +        <xsl:choose>
  +          <xsl:when test="@mime-type">
  +            <xsl:value-of select="@mime-type"/>
  +          </xsl:when>
  +          <xsl:otherwise>
  +            <xsl:value-of select="$default-mime-type"/>
  +          </xsl:otherwise>
  +        </xsl:choose>
  +      </xsl:with-param>
       </xsl:call-template> 
       return pipeline.process (environment);
     </xsl:template> <!-- match="map:read" --> 
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.3   +10 -1     
xml-cocoon/src/org/apache/cocoon/reading/Attic/AbstractReader.java
  
  Index: AbstractReader.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/reading/Attic/AbstractReader.java,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- AbstractReader.java       2000/08/04 21:11:55     1.1.2.2
  +++ AbstractReader.java       2000/08/16 05:08:15     1.1.2.3
  @@ -17,7 +17,7 @@
   /**
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
  - * @version CVS $Revision: 1.1.2.2 $ $Date: 2000/08/04 21:11:55 $
  + * @version CVS $Revision: 1.1.2.3 $ $Date: 2000/08/16 05:08:15 $
    */
   public abstract class AbstractReader implements Reader {
       /** The current <code>EntityResolver</code>. */
  @@ -47,5 +47,14 @@
        */
       public void setOutputStream(OutputStream out) {
           this.out=out;
  +    }
  +
  +    /**
  +     * Get the mime-type of the output of this <code>Serializer</code>
  +     * This default implementation returns null to indicate that the 
  +     * mime-type specified in the sitemap is to be used
  +     */
  +    public String getMimeType() {
  +        return null;
       }
   }
  
  
  
  1.1.2.3   +13 -1     
xml-cocoon/src/org/apache/cocoon/reading/Attic/ResourceReader.java
  
  Index: ResourceReader.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/reading/Attic/ResourceReader.java,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- ResourceReader.java       2000/08/04 21:11:56     1.1.2.2
  +++ ResourceReader.java       2000/08/16 05:08:16     1.1.2.3
  @@ -17,6 +17,7 @@
   import java.util.Dictionary;
   
   import javax.servlet.http.HttpServletResponse;
  +import javax.servlet.ServletContext;
   
   import org.apache.cocoon.ProcessingException;
   
  @@ -25,7 +26,7 @@
   /**
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
  - * @version CVS $Revision: 1.1.2.2 $ $Date: 2000/08/04 21:11:56 $
  + * @version CVS $Revision: 1.1.2.3 $ $Date: 2000/08/16 05:08:16 $
    */
   public class ResourceReader extends AbstractReader {
   
  @@ -59,5 +60,16 @@
           res.setDateHeader("Last-Modified", file.lastModified());
           res.setHeader("Accept-Ranges","bytes");
           out.write ( buffer );
  +    }
  +    /**
  +     * Returns the mime-type of the resource in process.
  +     */
  +    public String getMimeType () {
  +        ServletContext ctx = (ServletContext) objectModel.get("context");
  +        if (ctx != null) {
  +           return ctx.getMimeType(this.source);
  +        } else {
  +           return null;
  +        }
       }
   }
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.5   +10 -1     
xml-cocoon/src/org/apache/cocoon/serialization/Attic/AbstractSerializer.java
  
  Index: AbstractSerializer.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/serialization/Attic/AbstractSerializer.java,v
  retrieving revision 1.1.2.4
  retrieving revision 1.1.2.5
  diff -u -r1.1.2.4 -r1.1.2.5
  --- AbstractSerializer.java   2000/08/04 21:12:01     1.1.2.4
  +++ AbstractSerializer.java   2000/08/16 05:08:17     1.1.2.5
  @@ -18,7 +18,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Pierpaolo Fumagalli</a>
    *         (Apache Software Foundation, Exoffice Technologies)
  - * @version CVS $Revision: 1.1.2.4 $ $Date: 2000/08/04 21:12:01 $
  + * @version CVS $Revision: 1.1.2.5 $ $Date: 2000/08/16 05:08:17 $
    */
   public abstract class AbstractSerializer extends AbstractXMLConsumer 
   implements Serializer {
  @@ -30,5 +30,14 @@
        */
       public void setOutputStream(OutputStream out) {
           this.output=new BufferedOutputStream(out);
  +    }
  +
  +    /**
  +     * Get the mime-type of the output of this <code>Serializer</code>
  +     * This default implementation returns null to indicate that the 
  +     * mime-type specified in the sitemap is to be used
  +     */
  +    public String getMimeType() {
  +        return null;
       }
   }
  
  
  
  1.1.2.6   +10 -1     
xml-cocoon/src/org/apache/cocoon/serialization/Attic/FO2PDFSerializer.java
  
  Index: FO2PDFSerializer.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/serialization/Attic/FO2PDFSerializer.java,v
  retrieving revision 1.1.2.5
  retrieving revision 1.1.2.6
  diff -u -r1.1.2.5 -r1.1.2.6
  --- FO2PDFSerializer.java     2000/08/04 21:12:01     1.1.2.5
  +++ FO2PDFSerializer.java     2000/08/16 05:08:17     1.1.2.6
  @@ -27,7 +27,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
    *         (PWR Organisation &amp; Entwicklung)
  - * @version CVS $Revision: 1.1.2.5 $ $Date: 2000/08/04 21:12:01 $
  + * @version CVS $Revision: 1.1.2.6 $ $Date: 2000/08/16 05:08:17 $
    *
    */
   public class FO2PDFSerializer extends DocumentHandlerWrapper 
  @@ -65,4 +65,13 @@
               throw new SAXException (e); 
           } 
       } 
  +
  +    /**
  +     * Get the mime-type of the output of this <code>Serializer</code>
  +     * This default implementation returns null to indicate that the 
  +     * mime-type specified in the sitemap is to be used
  +     */
  +    public String getMimeType() {
  +        return null;
  +    }
   }
  
  
  
  1.1.2.5   +10 -1     
xml-cocoon/src/org/apache/cocoon/serialization/Attic/ImageSerializer.java
  
  Index: ImageSerializer.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/serialization/Attic/ImageSerializer.java,v
  retrieving revision 1.1.2.4
  retrieving revision 1.1.2.5
  diff -u -r1.1.2.4 -r1.1.2.5
  --- ImageSerializer.java      2000/08/04 21:12:02     1.1.2.4
  +++ ImageSerializer.java      2000/08/16 05:08:17     1.1.2.5
  @@ -50,7 +50,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]">Pierpaolo Fumagalli</a>
    * @author Copyright 1999 &copy; <a href="http://www.apache.org";>The Apache
    *         Software Foundation</a>. All rights reserved.
  - * @version CVS $Revision: 1.1.2.4 $ $Date: 2000/08/04 21:12:02 $
  + * @version CVS $Revision: 1.1.2.5 $ $Date: 2000/08/16 05:08:17 $
    */
   public class ImageSerializer extends DOMBuilder implements Serializer, 
Composer {
      
  @@ -342,5 +342,14 @@
               if(newy>=i.getHeight()) break;
           }
           return(true);
  +    }
  +
  +    /**
  +     * Get the mime-type of the output of this <code>Serializer</code>
  +     * This default implementation returns null to indicate that the 
  +     * mime-type specified in the sitemap is to be used
  +     */
  +    public String getMimeType() {
  +        return null;
       }
   }
  
  
  
  1.1.2.5   +10 -1     
xml-cocoon/src/org/apache/cocoon/serialization/Attic/SVGSerializer.java
  
  Index: SVGSerializer.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/serialization/Attic/SVGSerializer.java,v
  retrieving revision 1.1.2.4
  retrieving revision 1.1.2.5
  diff -u -r1.1.2.4 -r1.1.2.5
  --- SVGSerializer.java        2000/08/04 21:12:02     1.1.2.4
  +++ SVGSerializer.java        2000/08/16 05:08:17     1.1.2.5
  @@ -51,7 +51,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]">Pierpaolo Fumagalli</a>
    * @author Copyright 1999 &copy; <a href="http://www.apache.org";>The Apache
    *         Software Foundation</a>. All rights reserved.
  - * @version CVS $Revision: 1.1.2.4 $ $Date: 2000/08/04 21:12:02 $
  + * @version CVS $Revision: 1.1.2.5 $ $Date: 2000/08/16 05:08:17 $
    */
   public class SVGSerializer extends DOMBuilder implements Serializer, 
Composer {
      
  @@ -139,5 +139,14 @@
           } catch(IOException e) {
               throw new SAXException("IOException writing image ",e);
           }
  +    }
  +
  +    /**
  +     * Get the mime-type of the output of this <code>Serializer</code>
  +     * This default implementation returns null to indicate that the 
  +     * mime-type specified in the sitemap is to be used
  +     */
  +    public String getMimeType() {
  +        return null;
       }
   }
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.2   +34 -35    
xml-cocoon/src/org/apache/cocoon/sitemap/Attic/ErrorGenerator.java
  
  Index: ErrorGenerator.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/sitemap/Attic/ErrorGenerator.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- ErrorGenerator.java       2000/08/02 22:48:29     1.1.2.1
  +++ ErrorGenerator.java       2000/08/16 05:08:19     1.1.2.2
  @@ -19,7 +19,6 @@
   import java.io.PipedReader;
   import java.io.PipedWriter;
   import java.io.PrintWriter;
  -//import java.io.*;
   
   import org.xml.sax.SAXException;
   import org.xml.sax.helpers.AttributesImpl;
  @@ -32,8 +31,8 @@
    * Generates an XML representation of the current notification.
    *
    * @author     <a href="mailto:[EMAIL PROTECTED]">Nicola Ken Barozzi</a> Aisa
  - * @created    31 luglio 2000
  - * @version CVS $Revision: 1.1.2.1 $ $Date: 2000/08/02 22:48:29 $
  + * @created    31 July 2000
  + * @version CVS $Revision: 1.1.2.2 $ $Date: 2000/08/16 05:08:19 $
    */
   public class ErrorGenerator extends ComposerGenerator {
   
  @@ -57,10 +56,10 @@
       }
   
       /**
  -     *  Generate the status information in XML format.
  +     *  Generate the notification information in XML format.
        *
  -     [EMAIL PROTECTED]  SAXException  Description of Exception
  -     [EMAIL PROTECTED]                   SAXException when there is a 
problem creating the
  +     [EMAIL PROTECTED]  SAXException  Description of problem there is 
creating the output SAX events.
  +     [EMAIL PROTECTED]       SAXException when there is a problem creating 
the
        *      output SAX events.
        */
       public void generate() throws SAXException {
  @@ -69,10 +68,10 @@
   
   
       /**
  -      *  Generate the status information in XML format.
  +     *  Start generation of the notification information of a 
<code>Throwable</code> in XML format.
         *
  -      [EMAIL PROTECTED]  t                 Description of Parameter
  -      [EMAIL PROTECTED]  SAXException  Description of Exception
  +      [EMAIL PROTECTED]  t    The Exception to report
  +      [EMAIL PROTECTED]  SAXException   Description of problem there is 
creating the output SAX events.
         [EMAIL PROTECTED]                   SAXException when there is a 
problem creating the
         *      output SAX events.
         */
  @@ -93,11 +92,11 @@
   
   
       /**
  -      *  Generate the main status document.
  +      *  Generate the notification information of a <code>Throwable</code> 
in XML format.
         *
  -      [EMAIL PROTECTED]  ch                Description of Parameter
  -      [EMAIL PROTECTED]  t                 Description of Parameter
  -      [EMAIL PROTECTED]  SAXException  Description of Exception
  +      [EMAIL PROTECTED]  ch               The ContentHandler to use.
  +      [EMAIL PROTECTED]  t                  The Exception to report
  +      [EMAIL PROTECTED]  SAXException   Description of problem there is 
creating the output SAX events.
         */
       private void genError(ContentHandler ch,
               Throwable t) throws SAXException {
  @@ -141,16 +140,17 @@
   
   
       /**
  -      *  Description of the Method
  +      *  Generate notification information in XML format.
         *
  -      [EMAIL PROTECTED]  ch                 Description of Parameter
  -      [EMAIL PROTECTED]  type               Description of Parameter
  -      [EMAIL PROTECTED]  title              Description of Parameter
  -      [EMAIL PROTECTED]  source             Description of Parameter
  -      [EMAIL PROTECTED]  message            Description of Parameter
  -      [EMAIL PROTECTED]  description        Description of Parameter
  -      [EMAIL PROTECTED]  extraDescriptions  Description of Parameter
  -      [EMAIL PROTECTED]  SAXException   Description of Exception
  +      [EMAIL PROTECTED]  ch               The ContentHandler to use.
  +      [EMAIL PROTECTED]  type            The type of notification.
  +      [EMAIL PROTECTED]  title             The title of the notification.
  +      [EMAIL PROTECTED]  source         The source where the notification 
comes from.
  +      [EMAIL PROTECTED]  message     The notification.
  +      [EMAIL PROTECTED]  description  A more detailed description of the 
notification.  
  +      [EMAIL PROTECTED]  extraDescriptions  A Hashtable containing extra 
notifications that do not fit
  +      *   in other parameters. The keys are the parameter names, the values 
are the notifications.
  +      [EMAIL PROTECTED]  SAXException   Description of problem there is 
creating the output SAX events.
         */
       private void genNotify(ContentHandler ch, String type,
               String title, String source, String message, String description,
  @@ -173,11 +173,12 @@
           ch.endElement(URI, "source", "source");
   
           ch.startElement(URI, "message", "message", new AttributesImpl());
  -        ch.characters(message.toCharArray(), 0, message.length());
  +        if (message != null)
  +            ch.characters(message.toCharArray(), 0, message.length());
           ch.endElement(URI, "message", "message");
   
           ch.startElement(URI, "description", "description",
  -                new AttributesImpl());
  +         new AttributesImpl());
           ch.characters(description.toCharArray(), 0, description.length());
           ch.endElement(URI, "description", "description");
   
  @@ -194,11 +195,8 @@
               ch.startElement(URI, "extra", "extra", atts);
               ch.characters(extra.toCharArray(), 0, extra.length());
               ch.endElement(URI, "extra", "extra");
  -
           }
   
  -
  -
           // End root element.
           ch.endElement(URI, "notify", "notify");
       }
  @@ -206,21 +204,21 @@
   
   
       /**
  -      *  Description of the Class
  +      *  A thread that prints the stackTrace of a <code>Throwable</code> 
object
  +      *  to a PrintWriter.
         *
  -      [EMAIL PROTECTED]     nicola_ken
  -      [EMAIL PROTECTED]    31 luglio 2000
  +      * @author     <a href="mailto:[EMAIL PROTECTED]">Nicola Ken 
Barozzi</a> Aisa
  +      * @created    31 July 2000
         */
       class ReadThread extends Thread {
           PrintWriter CurrentWriter;
           Throwable t;
   
  -
           /**
            *  Constructor for the ReadThread object
            *
  -         [EMAIL PROTECTED]  CurrentWriter  Description of Parameter
  -         [EMAIL PROTECTED]  t              Description of Parameter
  +         [EMAIL PROTECTED]  CurrentWriter  The <code>PrintWriter</code> to 
print the stacktrace to.
  +         [EMAIL PROTECTED]  t  The <code>Throwable</code> object containing 
the stackTrace.
            */
           ReadThread(PrintWriter CurrentWriter, Throwable t) {
               this.CurrentWriter = CurrentWriter;
  @@ -229,7 +227,9 @@
   
   
           /**
  -          *  Main processing method for the ReadThread object
  +          *  Main processing method for the ReadThread object. 
  +          *  A thread that prints the stackTrace of a <code>t</code>
  +          *     to <code>CurrentWriter</code>.
             */
           public void run() {
               t.printStackTrace(CurrentWriter);
  @@ -238,4 +238,3 @@
       }
   
   }
  -
  
  
  
  1.1.2.13  +31 -20    
xml-cocoon/src/org/apache/cocoon/sitemap/Attic/ResourcePipeline.java
  
  Index: ResourcePipeline.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/sitemap/Attic/ResourcePipeline.java,v
  retrieving revision 1.1.2.12
  retrieving revision 1.1.2.13
  diff -u -r1.1.2.12 -r1.1.2.13
  --- ResourcePipeline.java     2000/08/04 21:12:11     1.1.2.12
  +++ ResourcePipeline.java     2000/08/16 05:08:19     1.1.2.13
  @@ -14,6 +14,7 @@
   import org.apache.avalon.Configuration;
   import org.apache.avalon.Configurable;
   import org.apache.avalon.ComponentManager;
  +import org.apache.avalon.Component;
   import org.apache.avalon.Composer;
   import org.apache.avalon.utils.Parameters;
   
  @@ -30,7 +31,7 @@
   
   /**
    * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
  - * @version CVS $Revision: 1.1.2.12 $ $Date: 2000/08/04 21:12:11 $
  + * @version CVS $Revision: 1.1.2.13 $ $Date: 2000/08/16 05:08:19 $
    */
   public class ResourcePipeline implements Composer {
       private Generator generator = null;
  @@ -62,10 +63,7 @@
                                 Configuration conf, Parameters param) 
       throws InstantiationException, IllegalAccessException {
           this.generator = (Generator)generator.getClass().newInstance();
  -        if (this.generator instanceof Composer) 
  -            ((Composer)this.generator).setComponentManager (manager);
  -        if (this.generator instanceof Configurable) 
  -            ((Configurable)this.generator).setConfiguration (conf);
  +        this.initComponent (this.generator, conf);
           this.generatorSource = source;
           this.generatorParam = param;
       }
  @@ -84,10 +82,7 @@
                              Configuration conf, Parameters param, String 
mimeType) 
       throws InstantiationException, IllegalAccessException {
           this.reader = (Reader)reader.getClass().newInstance();
  -        if (this.reader instanceof Composer) 
  -            ((Composer)this.reader).setComponentManager (manager);
  -        if (this.reader instanceof Configurable) 
  -            ((Configurable)this.reader).setConfiguration (conf);
  +        this.initComponent (this.reader, conf);
           this.readerSource = source;
           this.readerParam = param;
           this.readerMimeType = mimeType;
  @@ -103,10 +98,7 @@
                                  Configuration conf, Parameters param, String 
mimeType) 
       throws InstantiationException, IllegalAccessException {
           this.serializer = (Serializer)serializer.getClass().newInstance();
  -        if (this.serializer instanceof Composer) 
  -            ((Composer)this.serializer).setComponentManager (manager);
  -        if (this.serializer instanceof Configurable) 
  -            ((Configurable)this.serializer).setConfiguration (conf);
  +        this.initComponent (this.serializer, conf);
           this.serializerSource = source;
           this.serializerParam = param;
           this.serializerMimeType = mimeType;
  @@ -116,10 +108,7 @@
                                  Configuration conf, Parameters param) 
       throws InstantiationException, IllegalAccessException {
           Transformer transfmr = 
(Transformer)transformer.getClass().newInstance();
  -        if (transfmr instanceof Composer) 
  -            ((Composer)transfmr).setComponentManager (manager);
  -        if (transfmr instanceof Configurable) 
  -            ((Configurable)transfmr).setConfiguration (conf);
  +        this.initComponent (transfmr, conf);
           this.transformers.add (transfmr);
           this.transformerSources.add (source);
           this.transformerParams.add (param);
  @@ -127,11 +116,17 @@
   
       public boolean process (Environment environment)
                               throws ProcessingException, IOException, 
SAXException {
  +        String mime_type=null;
           if (generator == null) {
               if (reader != null) {
  -                if (readerMimeType != null)
  -                    environment.setContentType (readerMimeType);
                   reader.setup ((EntityResolver)environment, 
environment.getObjectModel(), readerSource, readerParam);
  +                mime_type = this.reader.getMimeType();
  +                if (mime_type != null) {
  +                    environment.setContentType (mime_type);
  +                } else if (readerMimeType != null) {
  +                    environment.setContentType (readerMimeType);
  +                } else {
  +                }
                   reader.setOutputStream (environment.getOutputStream());
                   reader.generate();
               } else {
  @@ -155,12 +150,28 @@
                   producer = transformer;
               }
   
  -            if (serializerMimeType != null)
  +            mime_type = this.serializer.getMimeType();
  +            if (mime_type != null)
  +                    environment.setContentType (mime_type);
  +            else if (serializerMimeType != null)
                       environment.setContentType (serializerMimeType); 
               serializer.setOutputStream (environment.getOutputStream());
               producer.setConsumer (serializer);
               generator.generate();
           }
           return true;
  +    }
  +
  +    /**
  +     * Initializes a Component (inversion of control)
  +     *
  +     * @param comp <code>Component</code> to initialize
  +     * @param conf <code>Configuration</code> of the <code>Component</code>
  +     */
  +    private void initComponent (Component comp, Configuration conf) {
  +        if (comp instanceof Composer) 
  +            ((Composer)comp).setComponentManager (manager);
  +        if (comp instanceof Configurable) 
  +            ((Configurable)comp).setConfiguration (conf);
       }
   } 
  
  
  
  1.1.2.2   +6 -1      
xml-cocoon/src/org/apache/cocoon/sitemap/Attic/SitemapOutputComponent.java
  
  Index: SitemapOutputComponent.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/sitemap/Attic/SitemapOutputComponent.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- SitemapOutputComponent.java       2000/08/04 21:12:12     1.1.2.1
  +++ SitemapOutputComponent.java       2000/08/16 05:08:19     1.1.2.2
  @@ -15,7 +15,7 @@
   /**
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
  - * @version CVS $Revision: 1.1.2.1 $ $Date: 2000/08/04 21:12:12 $
  + * @version CVS $Revision: 1.1.2.2 $ $Date: 2000/08/16 05:08:19 $
    */
   public interface SitemapOutputComponent extends Component {
   
  @@ -24,4 +24,9 @@
        * be serialized.
        */
       public void setOutputStream(OutputStream out) throws IOException;
  +
  +    /**
  +     * Get the mime-type of the output of this <code>Component</code>.
  +     */
  +    public String getMimeType();
   }
  
  
  

Reply via email to