sylvain     2003/01/02 02:50:08

  Modified:    .        .cvsignore build.xml project-info.xml
                        properties.xml
               
src/blocks/databases/java/org/apache/cocoon/components/language/markup/xsp
                        AbstractEsqlConnection.java
               src/blocks/databases/java/org/apache/cocoon/util
                        BlobHelper.java ClobHelper.java
               src/java/org/apache/cocoon/acting SendmailAction.java
               src/resources/orig cocoon2.svg
               tools/src blocks-build.xsl
  Added:       src/blocks/databases/mocks/com/informix/jdbc
                        IfxStatement.java
               src/blocks/databases/mocks/oracle/jdbc OracleResultSet.java
               src/blocks/databases/mocks/oracle/sql BLOB.java CLOB.java
               src/blocks/php/mocks/net/php servlet.java
               src/blocks/python python.samplesxpipe
               src/blocks/python/conf python-language.xconf
                        python-xsp.xconf
               
src/blocks/python/java/org/apache/cocoon/components/language/markup/xsp
                        PythonGenerator.java
               
src/blocks/python/java/org/apache/cocoon/components/language/markup/xsp/python
                        xsp.xsl
               
src/blocks/python/java/org/apache/cocoon/components/language/programming/python
                        PythonLanguage.java PythonProgram.java
               src/blocks/python/mocks/org/python/core Py.java PyCode.java
                        PySystemState.java
               src/blocks/python/mocks/org/python/util
                        PythonInterpreter.java
               src/mocks/javax/mail Address.java Message.java
                        MessagingException.java Part.java Session.java
                        Transport.java
               src/mocks/javax/mail/internet AddressException.java
                        InternetAddress.java MimeMessage.java
               src/mocks/org/jaxen/dom DOMXPath.java
               src/mocks/sun/tools/javac Main.java
               src/resources/dev/eclipse classpath-tmpl.xml
                        make-classpath.xsl project
               src/scratchpad/lib servlet-2_3.jar
               src/scratchpad/mocks/javax/transaction
                        HeuristicMixedException.java
                        HeuristicRollbackException.java
                        NotSupportedException.java RollbackException.java
                        SystemException.java UserTransaction.java
  Removed:     src/java/org/apache/cocoon/components/language/markup/xsp
                        PythonGenerator.java
               src/java/org/apache/cocoon/components/language/markup/xsp/python
                        python.samplesxpipe python.xconf xsp.xsl
               src/java/org/apache/cocoon/components/language/programming/python
                        PythonLanguage.java PythonProgram.java python.xconf
               src/scratchpad/src/org/apache/cocoon/transformation
                        TextFragmentParserTransformer.java
  Log:
  Changes to the build system :
  - remove conditional compilation using new mock classes
  - set JDBC code to JDBC3 (translated to JDBC2 at build time)
  - "eclipse-project" target to build an Eclipse project
  
  Revision  Changes    Path
  1.9       +2 -0      xml-cocoon2/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/.cvsignore,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- .cvsignore        28 Nov 2002 16:25:19 -0000      1.8
  +++ .cvsignore        2 Jan 2003 10:50:05 -0000       1.9
  @@ -6,3 +6,5 @@
   prj.el
   tools/anttasks
   javadoc*
  +.project
  +.classpath
  
  
  
  1.299     +137 -12   xml-cocoon2/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/build.xml,v
  retrieving revision 1.298
  retrieving revision 1.299
  diff -u -r1.298 -r1.299
  --- build.xml 31 Dec 2002 11:03:50 -0000      1.298
  +++ build.xml 2 Jan 2003 10:50:05 -0000       1.299
  @@ -862,6 +862,8 @@
           <exclude name="**/poi.*"                   unless="poi.present"/>
           <exclude name="**/POIFSSerializer.java"    unless="poi.present"/>
   -->              
  +
  +<!-- present in lib/optional
           <exclude name="**/java/Pizza.java"         unless="pizza.present"/>
           <exclude name="**/java/pizza.*"            unless="pizza.present"/>
           <exclude name="**/java/javac.*"            if="pizza.present"/>
  @@ -872,6 +874,7 @@
           <exclude name="**/environment/http/*.java" unless="servlet.present"/>
           <exclude name="**/generation/StreamGenerator.java" 
unless="servlet.present"/>
           <exclude name="**/components/request/**"   unless="servlet.present"/>
  +-->
   
   <!-- moved to block      
           <exclude name="**/ScriptAction.java"       unless="bsf.present"/>
  @@ -879,8 +882,10 @@
           <exclude name="**/bsf.*"                   unless="bsf.present"/>
   -->
   
  +<!-- present in lib/optional
           <exclude name="**/deli/DeliImpl.java"      unless="deli.present"/>
           <exclude name="**/deli.*"                  unless="deli.present"/>
  +-->
   
   <!-- moved to block      
           <exclude name="**/HTMLGenerator.java"      unless="tidy.present"/>
  @@ -901,31 +906,34 @@
           <exclude name="**/renderer/*"              unless="fop.present"/>
           <exclude name="**/fop.*"                   unless="fop.present"/>
   -->
  +<!-- present in lib/optional
           <exclude name="**/CompiledJavascript*"     
unless="rhino.compiler.present"/>
           <exclude name="**/javascript/Javascript*"  
unless="rhino.interpreter.present"/>
           <exclude name="**/javascript/javascript*"  
unless="rhino.interpreter.present"/>
           <exclude name="**/xsp/JSGenerator.java"    
unless="rhino.interpreter.present"/>
           <exclude name="**/xsp/javascript/**"       
unless="rhino.interpreter.present"/>
           <exclude name="**/flow/javascript/**"      
unless="rhino.interpreter.present"/>
  +-->
   
  +<!-- moved to block
           <exclude name="**/programming/python/*"    unless="python.present"/>
           <exclude name="**/xsp/PythonGenerator*"    unless="python.present"/>
           <exclude name="**/xsp/python/*"            unless="python.present"/>
  -
  +-->
  +<!-- present in lib/optional
           <exclude name="**/components/resolver/ResolverImpl.java" 
unless="resolver.present"/>
           <exclude name="**/resolver.*"                            
unless="resolver.present"/>
   
           <exclude name="**/Jstyle*"             unless="jstyle.present"/>
  -
  +-->
   <!-- moved to block      
           <exclude name="**/Php*"                unless="php.present"/>
           <exclude name="**/php.*"               unless="php.present"/>
   -->
   
  -        <!-- excludes for oracle and informix moved to 
tools/src/blocks-build.xsl -->
  -
  +<!-- mockified
           <exclude name="**/Sendmail*.java"      unless="mail.present"/>
  -
  +-->
   <!-- moved to block      
           <exclude name="**/LDAPTransformer*"    unless="naming.present"/>
           <exclude name="**/samples/parentcm/*"  unless="naming.present"/>
  @@ -935,9 +943,9 @@
           <exclude name="**/JSPEngineImplWLS.java"   
unless="weblogic.present"/>
   -->
   
  +<!-- present in lib/optional
           <exclude name="**/XMLDB*.java"        unless="xmldb.present"/>
           <exclude name="**/DbXML*.java"        unless="xmldb.present"/>
  -        <!-- XML:DB protocol config references only one driver, xindice -->
           <exclude name="**/source/xmldb.*"     unless="xindice.present"/>
           <exclude name="**/generation/xmldb.*" unless="xindice.present"/>
           <exclude name="**/RTFSerializer.java" unless="jfor.present"/>
  @@ -948,13 +956,13 @@
   
           <exclude name="**/components/hsqldb/ServerImpl.java" 
unless="hsqldb.present"/>
           <exclude name="**/hsqldb.*"                          
unless="hsqldb.present"/>
  -
  +-->
   <!-- moved to block      
           <exclude name="**/components/search/*"             
unless="lucene.present"/>
           <exclude name="**/generation/SearchGenerator.java" 
unless="lucene.present"/>
           <exclude name="**/lucene.*"                        
unless="lucene.present"/>
   -->
  -
  +<!-- present in lib/optional
           <exclude name="**/components/store/Jisp*.java" 
unless="jisp.present"/>
           <exclude name="**/store/jisp.*"                
unless="jisp.present"/>
           <exclude name="**/store/file.*"                if="jisp.present"/>
  @@ -971,6 +979,7 @@
           <exclude name="**/MaybeUpload*.java"           
unless="maybeupload.present"/>
           <exclude name="**/http/RequestWrapper*.java"/>
           <exclude name="**/browser/*.x*"/>
  +-->
         </fileset>
       </copy>
   
  @@ -1050,7 +1059,6 @@
              
style="${java.dir}/org/apache/cocoon/components/browser/BrowserImpl.xsl"/>
     </target>
   
  -
     <!-- =================================================================== 
-->
     <!-- Compiles the source directory                                       
-->
     <!-- =================================================================== 
-->
  @@ -1079,6 +1087,19 @@
   
       <echo message="Compiling with Java ${ant.java.version}, debug ${debug}, 
optimize ${optimize}, deprecation ${deprecation}"/>
   
  +    <mkdir dir="${build.mocks}"/>
  +
  +    <javac srcdir="${mocks.dir}"
  +           destdir="${build.mocks}"
  +           debug="${debug}"
  +           optimize="${optimize}"
  +           deprecation="${deprecation}"
  +           target="${target.vm}"
  +           nowarn="${nowarn}">
  +      <classpath refid="classpath"/>
  +    </javac>
  +
  +
       <javac srcdir="${build.src}"
              destdir="${build.dest}"
              debug="${debug}"
  @@ -1086,7 +1107,11 @@
              deprecation="${deprecation}"
              target="${target.vm}"
              nowarn="${nowarn}">
  -      <classpath refid="classpath"/>
  +      <!--classpath refid="classpath"/-->
  +      <classpath>
  +        <path refid="classpath"/>
  +        <path location="${build.mocks}"/>
  +      </classpath>
       </javac>
   
       <copy todir="${build.scratchpad.dest}">
  @@ -1105,7 +1130,11 @@
              optimize="${optimize}"
              deprecation="${deprecation}"
              target="${target.vm}">
  -      <classpath refid="scratchpad.classpath"/>
  +      <!--classpath refid="scratchpad.classpath"/-->
  +      <classpath>
  +        <path refid="scratchpad.classpath"/>
  +        <path location="{build.mocks}"/>
  +      </classpath>
       </javac>
       
   
  @@ -1125,7 +1154,11 @@
              optimize="${optimize}"
              deprecation="${deprecation}"
              target="${target.vm}">
  -      <classpath refid="scratchpad.classpath"/>
  +      <!--classpath refid="scratchpad.classpath"/-->
  +      <classpath>
  +        <path refid="scratchpad.classpath"/>
  +        <path location="{build.mocks}"/>
  +      </classpath>
       </javac>
           
       
  @@ -2450,7 +2483,99 @@
       <fileset dir="${build.dir}" includes="**/sitemap.report" />
      </apply>
     </target>
  +
  +  <!-- =================================================================== 
-->
  +  <!-- Build the Eclipse projects files                                    
-->
  +  <!--===================================================================  
-->
  +  <target name="eclipse-project" depends="init">
     
  +    <!-- prepare the various paths that will form the project -->
  +    <path id="src.dirs">
  +      <!-- main source dir -->
  +      <pathelement path="${src.dir}/java"/>
  +      <!-- deprecated source dir -->
  +      <pathelement path="${src.dir}/deprecated/java"/>
  +      <!-- scratchpad source dir -->
  +      <pathelement path="${src.dir}/scratchpad/src"/>
  +      <!-- blocks source dirs -->
  +      <dirset dir="${blocks.dir}">
  +        <include name="*/java"/>
  +      </dirset>
  +    </path>
  +    
  +    <path id="mocks.dirs">
  +      <!-- main mocks dir -->
  +      <pathelement path="${mocks.dir}"/>
  +      <!-- scratchpad mocks dir -->
  +      <pathelement path="${src.dir}/scratchpad/mocks"/>
  +      <!-- blocks mocks dirs -->
  +      <dirset dir="${blocks.dir}">
  +        <include name="*/mocks"/>
  +      </dirset>
  +    </path>
  +    
  +    <path id="libs">
  +      <!-- main libs -->
  +      <fileset dir="${lib.dir}">
  +        <include name="core/*.jar"/>
  +        <include name="core/jvm${target.vm}/*.jar"/>
  +        <include name="optional/*.jar"/>
  +        <include name="local/*.jar"/>
  +        <include name="endorsed/*.jar"/>
  +      </fileset>
  +      <!-- scratchpad libs -->
  +      <fileset dir="${scratchpad.dir}/lib">
  +        <include name="*.jar"/>
  +      </fileset>
  +      <!-- no block-specific libs for now -->
  +    </path>
  +    
  +    <!-- convert paths to properties -->
  +    <property name="src.dirs" refid="src.dirs"/>
  +    <property name="mocks.dirs" refid="mocks.dirs"/>
  +    <property name="libs" refid="libs"/>
  +    
  +    <!-- expand properties in the template file -->
  +    <copy file="${src.dir}/resources/dev/eclipse/classpath-tmpl.xml"
  +          tofile="${build.work}/classpath-temp.xml"
  +          filtering="yes"
  +          overwrite="yes">
  +      <filterset>
  +        <filter token="SRC_DIRS" value="${src.dirs}"/>
  +        <filter token="LIBS" value="${libs}"/>
  +        <filter token="MOCKS_DIRS" value="${mocks.dirs}"/>
  +      </filterset>
  +    </copy>
  +    
  +    <!-- split the path in 'item' XML elements -->
  +    <replace file="${build.work}/classpath-temp.xml"
  +             token="${path.separator}" value="&lt;/item&gt;&#xA; 
&lt;item&gt;"/>
  +    <!-- relativize file names by removing the current directory -->
  +    <replace file="${build.work}/classpath-temp.xml"
  +             token="${user.dir}${file.separator}" value=""/>
  +    <!-- and in case that fails, remove the base directory -->
  +    <replace file="${build.work}/classpath-temp.xml"
  +             token="${basedir}${file.separator}" value=""/>
  +
  +    <!-- replace platform-dependent path separator by '/' -->
  +    <replace file="${build.work}/classpath-temp.xml"
  +             token="${file.separator}" value="/"/>
  +
  +    <!-- now build the .classpath file -->
  +    <xslt in="${build.work}/classpath-temp.xml" out="${basedir}/.classpath"
  +           processor="trax"
  +           style="${src.dir}/resources/dev/eclipse/make-classpath.xsl"/>
  +    
  +    <!-- copy the project file (expand version) -->
  +    <copy file="${src.dir}/resources/dev/eclipse/project"
  +          tofile="${basedir}/.project"
  +          overwrite="yes">
  +      <filterset>
  +        <filter token="VERSION" value="${version}"/>
  +      </filterset>
  +    </copy>
  +
  +  </target>
       
   <!-- ***************************************************************** -->
   <!-- ***************************************************************** -->
  
  
  
  1.4       +20 -0     xml-cocoon2/project-info.xml
  
  Index: project-info.xml
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/project-info.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- project-info.xml  26 Dec 2002 14:05:18 -0000      1.3
  +++ project-info.xml  2 Jan 2003 10:50:05 -0000       1.4
  @@ -402,6 +402,26 @@
            
     </project>    
   
  +  <project name="python-block">
  +    <package>org.apache.cocoon</package>
  +    
  +    <ant target="block">
  +      <property name="block-name" value="python"/>
  +    </ant>
  +    
  +    <depend project="xml-cocoon2"/>
  +    <option project="jython" version="supplied"/>
  +    
  +    <work nested="tools/anttasks"/>
  +    <home nested="build/cocoon"/>
  +    
  +    <jar name="python-block.jar"/>
  +
  +    <nag from="Nicola Ken Barozzi &lt;[EMAIL PROTECTED]&gt;"
  +         to="[email protected]"/>
  +         
  +  </project>    
  +
     <project name="lucene-block">
       <package>org.apache.cocoon</package>
       
  
  
  
  1.25      +5 -2      xml-cocoon2/properties.xml
  
  Index: properties.xml
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/properties.xml,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- properties.xml    26 Dec 2002 14:05:18 -0000      1.24
  +++ properties.xml    2 Jan 2003 10:50:05 -0000       1.25
  @@ -8,6 +8,7 @@
       src="./build/cocoon/src"
       test="./build/cocoon/test"
       dest="./build/cocoon/classes"
  +    mocks="./build/cocoon/mock-classes"
       docs="./build/cocoon/docs"
       xdocs="./build/cocoon/xdocs"
       war="./build/cocoon/webapp"
  @@ -38,7 +39,7 @@
         dir="./build/cocoon/deprecated"
         src="./build/cocoon/deprecated/java"
         dest="./build/cocoon/deprecated/classes" />
  -      
  +     
        <docs
         printer="./build/cocoon/printer-docs"
         loglevel="ERROR" />
  @@ -69,6 +70,7 @@
   
      <src dir="./src" />
      <java dir="./src/java" />
  +   <mocks dir="./src/mocks"/>
      <test dir="./src/test" />
      <lib dir="./lib" />
      <endorsed dir="./lib/endorsed" />
  @@ -132,7 +134,8 @@
           <naming include="true"/>
           <jsp include="true"/>
           <samples include="true"/>
  -        <php/><!-- NKB needs mock objects or real classes in the mock dir of 
the block -->
  +        <php include="true"/><!-- NKB needs mock objects or real classes in 
the mock dir of the block -->
  +        <python include="true"/>
           <lucene include="true"/>        
           <html include="true"/>
           <bsf include="true"/>
  
  
  
  1.6       +3 -3      
xml-cocoon2/src/blocks/databases/java/org/apache/cocoon/components/language/markup/xsp/AbstractEsqlConnection.java
  
  Index: AbstractEsqlConnection.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/blocks/databases/java/org/apache/cocoon/components/language/markup/xsp/AbstractEsqlConnection.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- AbstractEsqlConnection.java       19 Dec 2002 11:09:42 -0000      1.5
  +++ AbstractEsqlConnection.java       2 Jan 2003 10:50:05 -0000       1.6
  @@ -285,7 +285,8 @@
           return (getConnection().prepareCall(s, i1, i2));
       }
   
  -    /* @JDBC3_START@
  +    // @JDBC3_START@
  +
         public void setHoldability(int holdability)
             throws SQLException
         {
  @@ -368,7 +369,6 @@
         {
             return getConnection().prepareStatement(sql, columnNames);
         }
  -  @JDBC3_END@ */
  -
  +    // @JDBC3_END@
   }
   
  
  
  
  1.2       +2 -2      
xml-cocoon2/src/blocks/databases/java/org/apache/cocoon/util/BlobHelper.java
  
  Index: BlobHelper.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/blocks/databases/java/org/apache/cocoon/util/BlobHelper.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- BlobHelper.java   6 Nov 2002 18:19:27 -0000       1.1
  +++ BlobHelper.java   2 Jan 2003 10:50:05 -0000       1.2
  @@ -104,8 +104,8 @@
   
       // if ever implemented.... the following  are the JDBC3 methods
       // since not implemented anyway, included in JDBC2 builds as well.
  -    /* @JDBC3_START@
  -       @JDBC3_END@ */
  +    // @JDBC3_START@
  +    // @JDBC3_END@
   
   
       /**
  
  
  
  1.2       +2 -2      
xml-cocoon2/src/blocks/databases/java/org/apache/cocoon/util/ClobHelper.java
  
  Index: ClobHelper.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/blocks/databases/java/org/apache/cocoon/util/ClobHelper.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ClobHelper.java   6 Nov 2002 18:19:27 -0000       1.1
  +++ ClobHelper.java   2 Jan 2003 10:50:05 -0000       1.2
  @@ -112,8 +112,8 @@
   
       // if ever implemented.... the following  are the JDBC3 methods
       // since not implemented anyway, included in JDBC2 builds as well.
  -    /* @JDBC3_START@
  -       @JDBC3_END@ */
  +    // @JDBC3_START@
  +    // @JDBC3_END@
   
   
       /**
  
  
  
  1.1                  
xml-cocoon2/src/blocks/databases/mocks/com/informix/jdbc/IfxStatement.java
  
  Index: IfxStatement.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package com.informix.jdbc;
  
  import java.sql.SQLException;
  import java.sql.Statement;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: IfxStatement.java,v 1.1 2003/01/02 10:50:06 sylvain Exp $
   */
  
  public abstract class IfxStatement implements Statement {
      
      public abstract int getSerial() throws SQLException;
  }
  
  
  
  1.1                  
xml-cocoon2/src/blocks/databases/mocks/oracle/jdbc/OracleResultSet.java
  
  Index: OracleResultSet.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package oracle.jdbc;
  
  import java.sql.ResultSet;
  import java.sql.SQLException;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: OracleResultSet.java,v 1.1 2003/01/02 10:50:06 sylvain 
Exp $
   */
  public abstract class OracleResultSet implements ResultSet {
  
      public oracle.sql.BLOB getBLOB(int idx) throws SQLException {
          throw new NoSuchMethodError("This is a mock object");
      }
      
      public oracle.sql.CLOB getCLOB(int idx) throws SQLException {
          throw new NoSuchMethodError("This is a mock object");
      }
  }
  
  
  
  1.1                  
xml-cocoon2/src/blocks/databases/mocks/oracle/sql/BLOB.java
  
  Index: BLOB.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package oracle.sql;
  
  import java.io.OutputStream;
  import java.sql.SQLException;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: BLOB.java,v 1.1 2003/01/02 10:50:06 sylvain Exp $
   */
  public abstract class BLOB implements java.sql.Blob {
  
      public abstract int getBufferSize() throws SQLException;
      public abstract OutputStream getBinaryOutputStream() throws SQLException;
  
  }
  
  
  
  1.1                  
xml-cocoon2/src/blocks/databases/mocks/oracle/sql/CLOB.java
  
  Index: CLOB.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package oracle.sql;
  
  import java.io.OutputStream;
  import java.sql.SQLException;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: CLOB.java,v 1.1 2003/01/02 10:50:06 sylvain Exp $
   */
  public abstract class CLOB implements java.sql.Clob {
  
      public abstract int getBufferSize() throws SQLException;
      public abstract OutputStream getAsciiOutputStream() throws SQLException;
  
  }
  
  
  
  1.1                  xml-cocoon2/src/blocks/php/mocks/net/php/servlet.java
  
  Index: servlet.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package net.php;
  
  import java.io.IOException;
  
  import javax.servlet.ServletException;
  import javax.servlet.ServletRequest;
  import javax.servlet.ServletResponse;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: servlet.java,v 1.1 2003/01/02 10:50:06 sylvain Exp $
   */
  public class servlet extends javax.servlet.http.HttpServlet {
  
        public void service(ServletRequest request, ServletResponse response, 
String arg)
                throws ServletException /* not IOException ? */ {
          throw new NoSuchMethodError("This is a mock object");
        }
  }
  
  
  
  1.1                  xml-cocoon2/src/blocks/python/python.samplesxpipe
  
  Index: python.samplesxpipe
  ===================================================================
  <?xml version="1.0"?>
  
  <samplesxpipe xpath="/sitemap/pipelines/[EMAIL PROTECTED]'optional']"
         unless="[EMAIL PROTECTED]'xsp-py/*']">
      <!-- XSP pages written in Python -->
      <map:match pattern="xsp-py/*">
        <map:generate type="serverpages" src="docs/samples/xsp-py/{1}.xsp">
          <map:parameter name="programming-language" value="python"/>
        </map:generate>
        <map:transform src="stylesheets/dynamic-page2html.xsl">
          <map:parameter name="view-source" 
value="docs/samples/xsp-py/{1}.xsp"/>
        </map:transform>
        <map:serialize/>
      </map:match>
  </samplesxpipe>
  
  
  
  1.1                  xml-cocoon2/src/blocks/python/conf/python-language.xconf
  
  Index: python-language.xconf
  ===================================================================
  <?xml version="1.0"?>
  
  <xconf xpath="cocoon/programming-languages" unless="python-language">
      <!-- Python language -->
      <python-language name="python" logger="core.language.python"/>
  </xconf>
  
  
  
  1.1                  xml-cocoon2/src/blocks/python/conf/python-xsp.xconf
  
  Index: python-xsp.xconf
  ===================================================================
  <?xml version="1.0"?>
  
  <xconf xpath="cocoon/markup-languages/[EMAIL PROTECTED]'xsp']"
         unless="[EMAIL PROTECTED]'python']">
        <!-- XSP in Python -->
        <target-language name="python">
          <parameter name="core-logicsheet" 
value="resource://org/apache/cocoon/components/language/markup/xsp/python/xsp.xsl"/>
        </target-language>
  </xconf>
  
  
  
  1.1                  
xml-cocoon2/src/blocks/python/java/org/apache/cocoon/components/language/markup/xsp/PythonGenerator.java
  
  Index: PythonGenerator.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache Cocoon" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.cocoon.components.language.markup.xsp;
  
  import org.apache.avalon.framework.configuration.Configurable;
  import org.apache.avalon.framework.configuration.Configuration;
  import org.apache.avalon.framework.configuration.ConfigurationException;
  import org.apache.avalon.framework.activity.Initializable;
  import org.apache.avalon.framework.parameters.Parameters;
  
  import org.apache.cocoon.environment.SourceResolver;
  import org.apache.cocoon.ProcessingException;
  import org.apache.cocoon.Constants;
  import org.apache.cocoon.util.ClassUtils;
  import org.apache.cocoon.xml.XMLizable;
  
  import org.python.util.PythonInterpreter;
  import org.python.core.Py;
  import org.python.core.PyCode;
  import org.python.core.PySystemState;
  import org.w3c.dom.Node;
  import org.xml.sax.helpers.AttributesImpl;
  import org.xml.sax.SAXException;
  
  import java.io.File;
  import java.io.IOException;
  import java.io.FileInputStream;
  import java.util.Collection;
  import java.util.Properties;
  import java.util.Map;
  
  /**
   * Class representing interpreted XSP-generated
   * <code>ServerPagesGenerator</code> programs
   * written in Python language
   *
   * @author <a href="mailto:[EMAIL PROTECTED]">Vadim Gritsenko</a>
   * @version CVS $Id: PythonGenerator.java,v 1.1 2003/01/02 10:50:06 sylvain 
Exp $
   */
  public class PythonGenerator extends XSPGenerator
          implements Configurable, Initializable {
  
      /**
       * Python source file
       */
      private File file;
  
      private PythonInterpreter python;
  
      private PyCode code;
      private Exception compileError;
  
  
      public void configure(Configuration configuration) throws 
ConfigurationException {
          this.file = new File(configuration.getChild("file").getValue());
  
          Configuration[] dependencies = 
configuration.getChildren("dependency");
          this.dependencies = new File[dependencies.length];
          for (int i = 0; i < dependencies.length; i ++) {
              this.dependencies[i] = new File(dependencies[i].getValue());
          }
      }
  
      /**
       * Determines whether this generator's source files have changed
       *
       * @return Whether any of the files this generator depends on has changed
       * since it was created
       */
      public boolean modifiedSince(long date) {
          if (this.file.lastModified() < date) {
              return true;
          }
  
          for (int i = 0; i < dependencies.length; i++) {
              if (this.file.lastModified() < dependencies[i].lastModified()) {
                  return true;
              }
          }
  
          return false;
      }
  
      public void initialize() throws Exception {
          try {
              Properties properties = new Properties();
              File workDir = 
(File)avalonContext.get(Constants.CONTEXT_WORK_DIR);
              properties.setProperty("python.home", workDir.toString());
              properties.setProperty("python.packages.fakepath",
                      (String)avalonContext.get(Constants.CONTEXT_CLASSPATH));
              PythonInterpreter.initialize(System.getProperties(), properties, 
new String[]{});
  
              python = new PythonInterpreter();
              python.set("page", this);
              python.set("logger", getLogger());
              python.set("xspAttr", new AttributesImpl());
          
              if (getLogger().isDebugEnabled()) {
                  getLogger().debug("Compiling script " + file);
              }
              
              this.code = Py.compile_flags(
                      new FileInputStream(this.file),
                      this.file.toString(),
                      "exec",
                      null);
          } catch (Exception e) {
              this.compileError = e;
          }
      }
  
  
      public void setup(SourceResolver resolver, Map objectModel, String src, 
Parameters par)
              throws ProcessingException, SAXException, IOException {
          super.setup(resolver, objectModel, src, par);
  
          if (this.compileError != null) {
              throw new ProcessingException("Failed to compile script", 
compileError);
          }
  
          python.set("objectModel", this.objectModel);
          python.set("request", this.request);
          python.set("response", this.response);
          python.set("context", this.context);
          python.set("resolver", this.resolver);
          python.set("parameters", this.parameters);
      }
  
      public void generate() throws IOException, ProcessingException {
          try {
              python.set("contentHandler", this.contentHandler);
  
              if (getLogger().isDebugEnabled()) {
                  getLogger().debug("Executing script " + file);
              }
              python.exec(code);
          } catch (Exception e) {
              throw new ProcessingException("generate: Got Python exception", 
e);
          }
      }
  
      public void recycle() {
          python.set("contentHandler", null);
  
          python.set("objectModel", null);
          python.set("request", null);
          python.set("response", null);
          python.set("context", null);
          python.set("resolver", null);
          python.set("parameters", null);
  
          super.recycle();
      }
  
      public void dispose() {
          python.set("page", null);
          python.set("logger", null);
          python.set("xspAttr", null);
  
          this.python = null;
          this.compileError = null;
          this.code = null;
  
          super.dispose();
      }
  }
  
  
  
  1.1                  
xml-cocoon2/src/blocks/python/java/org/apache/cocoon/components/language/markup/xsp/python/xsp.xsl
  
  Index: xsp.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <!-- $Id: xsp.xsl,v 1.1 2003/01/02 10:50:06 sylvain Exp $-->
  <!--
   *****************************************************************************
   * 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.                                                         *
   *****************************************************************************
  -->
  
  <!--
   * XSP Core logicsheet for the Python language
   *
   * @author <a href="mailto:[EMAIL PROTECTED]>Vadim Gritsenko</a>
   * @version CVS $Revision: 1.1 $ $Date: 2003/01/02 10:50:06 $
  -->
  
  <xsl:stylesheet version="1.0"
                  xmlns:xsp="http://apache.org/xsp";
                  xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                  
xmlns:XSLTExtension="org.apache.cocoon.components.language.markup.xsp.XSLTExtension">
    <xsl:output method="text"/>
  
    <xsl:variable name="xsp-uri" select="'http://apache.org/xsp'"/>
  
    <!--
      this variable holds the instance of extension class to properly
      escape text into Java strings
  
      ovidiu: use the class name as the namespace to identify the
      class. This is supposedly portable across XSLT implementations.
    -->
    <xsl:variable
         name="extension"
         select="XSLTExtension:new()"
         
xmlns:XSLTExtension="org.apache.cocoon.components.language.markup.xsp.XSLTExtension"/>
  
  
  
    <xsl:template match="/">
      <code>
        <xsl:text>""" $Cocoon extends: 
org.apache.cocoon.components.language.markup.xsp.PythonGenerator$ """
  </xsl:text>
        <xsl:for-each select="//xsp:dependency">
          <xsl:text>""" $Cocoon depends: </xsl:text>
          <xsl:value-of select="translate(., '\','/')"/>
          <xsl:text>$ """
  </xsl:text>
         </xsl:for-each>
  
        <xsl:apply-templates select="xsp:page"/>
      </code>
    </xsl:template>
  
  
  
    <xsl:template match="xsp:page">
  """ Generated by XSP. Edit at your own risk, :-)
  
  Built-in beans for internal use:
      page           - "this" in Java
      contentHandler - page.contentHandler
      xspAttr     - AttributesImpl
  
  Built-in beans available for use:
      context    - org.apache.cocoon.environment.Context
      request    - org.apache.cocoon.environment.Request
      response   - org.apache.cocoon.environment.Response
      parameters - parameters defined in the sitemap
      objectModel- java.util.Map
      resolver   - org.apache.cocoon.environment.SourceResolver
      objectModel - Map
      logger      - Logger
  """
  
  from java import lang
  from java import util
  
  <xsl:text>""" User Class "Declarations" """
  </xsl:text>
      <xsl:apply-templates select="xsp:logic">
        <xsl:with-param name="indent" select="''"/>
      </xsl:apply-templates>
  
  <xsl:text>""" User Class Initialization """
  </xsl:text>
      <xsl:value-of select="xsp:init-page"/>
  
  <xsl:text>""" Document Body """
  </xsl:text>
      <xsl:text>contentHandler.startDocument()
  </xsl:text>
  
      <!-- Generate top-level processing instructions -->
      <xsl:apply-templates select="/processing-instruction()"/>
  
      <!-- Process only 1st non-XSP element as generated root -->
      <xsl:call-template name="process-first-element">
        <xsl:with-param name="content" select="*[not(namespace-uri(.) = 
$xsp-uri)][1]"/>
      </xsl:call-template>
  
      <xsl:text>contentHandler.endDocument()
  </xsl:text>
    </xsl:template>
  
  
  
    <xsl:template name="process-first-element">
      <xsl:param name="content"/>
  
      <!-- Generate top-level namespaces declarations -->
      <xsl:variable name="parent-element" select="$content/.."/>
      <xsl:for-each select="$content/namespace::*">
        <xsl:variable name="ns-prefix" select="local-name(.)"/>
        <xsl:variable name="ns-uri" select="string(.)"/>
        <!-- Declare namespaces that also exist on the parent (i.e. not locally 
declared),
             and filter out "xmlns:xmlns" namespace produced by Xerces+Saxon -->
        <xsl:if test="($ns-prefix != 'xmlns') and 
$parent-element/namespace::*[local-name(.) = $ns-prefix and string(.) = 
$ns-uri]">
          <xsl:text>contentHandler.startPrefixMapping("</xsl:text>
          <xsl:value-of select="$ns-prefix"/>", "<xsl:value-of 
select="$ns-uri"/>
          <xsl:text>")
  </xsl:text>
        </xsl:if>
      </xsl:for-each>
  
      <xsl:text>if 1: # Process First Element
  </xsl:text>
  
      <!-- Generate content -->
      <xsl:apply-templates select="$content">
        <xsl:with-param name="indent" select="''"/>
      </xsl:apply-templates>
  
      <!-- Close top-level namespaces declarations-->
      <xsl:for-each select="$content/namespace::*">
        <xsl:variable name="ns-prefix" select="local-name(.)"/>
        <xsl:variable name="ns-uri" select="string(.)"/>
        <xsl:if test="($ns-prefix != 'xmlns') and 
$parent-element/namespace::*[local-name(.) = $ns-prefix and string(.) = 
$ns-uri]">
          <xsl:text>contentHandler.endPrefixMapping("</xsl:text>
          <xsl:value-of select="local-name(.)"/>
          <xsl:text>")
  </xsl:text>
        </xsl:if>
      </xsl:for-each>
    </xsl:template>
  
  
  
    <xsl:template match="xsp:element">
      <xsl:param name="indent"/>
  
      <xsl:variable name="zindent">
        <xsl:choose>
          <xsl:when test="string-length(XSLTExtension:suffix($extension, 
preceding-sibling::xsp:text[1])) &gt; 0">
            <xsl:value-of select="XSLTExtension:suffix($extension, 
preceding-sibling::xsp:text[1])"/>
          </xsl:when>
          <xsl:when test="string-length(XSLTExtension:suffix($extension, 
preceding-sibling::text()[1])) &gt; 0">
            <xsl:value-of select="XSLTExtension:suffix($extension, 
preceding-sibling::text()[1])"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="$indent"/>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:variable>
  
      <xsl:variable name="uri">
        <xsl:call-template name="get-parameter">
          <xsl:with-param name="name">uri</xsl:with-param>
          <xsl:with-param name="indent" select="$indent"/>
        </xsl:call-template>
      </xsl:variable>
  
      <xsl:variable name="prefix">
        <xsl:call-template name="get-parameter">
          <xsl:with-param name="name">prefix</xsl:with-param>
          <xsl:with-param name="indent" select="$indent"/>
        </xsl:call-template>
      </xsl:variable>
  
      <xsl:if test="@name and contains(@name, ':')">
        <xsl:call-template name="error">
          <xsl:with-param name="message">[&lt;xsp:element name="<xsl:value-of 
select="@name"/>"&gt;]
  Name can not contain ':'. If you want to create namespaced element, specify 
'uri' and 'prefix'.
          </xsl:with-param>
        </xsl:call-template>
      </xsl:if>
  
      <xsl:variable name="name">
        <xsl:call-template name="get-parameter">
          <xsl:with-param name="name">name</xsl:with-param>
          <xsl:with-param name="required">true</xsl:with-param>
          <xsl:with-param name="indent" select="$indent"/>
        </xsl:call-template>
      </xsl:variable>
  
      <xsl:variable name="raw-name">
        <xsl:if test="
          ($uri = '&quot;&quot;' and $prefix != '&quot;&quot;') or
          ($uri != '&quot;&quot;' and $prefix = '&quot;&quot;')">
          <xsl:call-template name="error">
            <xsl:with-param name="message">[&lt;xsp:element&gt;]
  Either both 'uri' and 'prefix' or none of them must be specified
            </xsl:with-param>
          </xsl:call-template>
        </xsl:if>
  
        <xsl:choose>
          <xsl:when test="$prefix = '&quot;&quot;'">
            <xsl:copy-of select="$name"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:text>(</xsl:text>
            <xsl:copy-of select="$prefix"/> + ":" + <xsl:copy-of 
select="$name"/>
            <xsl:text>)</xsl:text>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:variable>
  
      <!-- Start Element -->
      <xsl:value-of select="$zindent"/>
      <xsl:text># &lt;</xsl:text>
      <xsl:value-of select="name(.)"/>
      <xsl:text>&gt;
  </xsl:text>
      <!-- Declare namespaces that are not already present on the parent 
element.
           Note : we could use "../../namespace::*[...]" to get parent element 
namespaces
           but Xalan 2.0.1 retunrs only the first namespace (Saxon is OK).
           That's why we store the parent element in a variable -->
      <xsl:variable name="parent-element" select=".."/>
      <xsl:for-each select="namespace::*">
        <xsl:variable name="ns-prefix" select="local-name(.)"/>
        <xsl:variable name="ns-uri" select="string(.)"/>
        <xsl:if test="not($parent-element/namespace::*[local-name(.) = 
$ns-prefix and string(.) = $ns-uri])">
          <xsl:value-of select="$zindent"/>
          <xsl:text>contentHandler.startPrefixMapping("</xsl:text>
          <xsl:value-of select="local-name(.)"/>", "<xsl:value-of select="."/>
          <xsl:text>")
  </xsl:text>
        </xsl:if>
      </xsl:for-each>
  
      <!-- Declare namespace defined by @uri and @prefix attribute -->
      <xsl:if test="$uri != '&quot;&quot;'">
        <xsl:if test="not($parent-element/namespace::*[local-name(.) = $prefix 
and string(.) = $uri])">
          <xsl:value-of select="$zindent"/>
          <xsl:text>contentHandler.startPrefixMapping(</xsl:text>
          <xsl:value-of select="$prefix"/>, <xsl:value-of select="$uri"/>
          <xsl:text>)
  </xsl:text>
        </xsl:if>
      </xsl:if>
  
      <!-- Attributes -->
      <xsl:apply-templates select="xsp:attribute | xsp:logic[xsp:attribute]">
        <xsl:with-param name="indent" select="$zindent"/>
      </xsl:apply-templates>
  
      <xsl:value-of select="$zindent"/>
      <xsl:text>contentHandler.startElement(</xsl:text>
      <xsl:copy-of select="$uri"/>, <xsl:copy-of select="$name"/>, <xsl:copy-of 
select="$raw-name"/>
      <xsl:text>, xspAttr)
  </xsl:text>
      <xsl:value-of select="$zindent"/>
      <xsl:text>xspAttr.clear()
  </xsl:text>
      <xsl:value-of select="$zindent"/>
      <xsl:text>if 1:
  </xsl:text>
  
      <!-- Element body -->
      <xsl:apply-templates select="node()[not(
        (namespace-uri(.) = $xsp-uri and local-name(.) = 'attribute') or
        (namespace-uri(.) = $xsp-uri and local-name(.) = 'logic' and 
./xsp:attribute)
        )]">
        <xsl:with-param name="indent" select="concat($zindent, '   ')"/>
      </xsl:apply-templates>
  
      <xsl:value-of select="$zindent"/>
      <xsl:text>contentHandler.endElement(</xsl:text>
      <xsl:copy-of select="$uri"/>, <xsl:copy-of select="$name"/>, <xsl:copy-of 
select="$raw-name"/>
      <xsl:text>)
  </xsl:text>
  
      <!-- Declare namespace defined by @uri and @prefix attribute -->
      <xsl:if test="$uri != '&quot;&quot;'">
        <xsl:if test="not($parent-element/namespace::*[local-name(.) = $prefix 
and string(.) = $uri])">
          <xsl:value-of select="$zindent"/>
          <xsl:text>contentHandler.endPrefixMapping(</xsl:text>
          <xsl:value-of select="$prefix"/>
          <xsl:text>)
  </xsl:text>
        </xsl:if>
      </xsl:if>
  
      <!-- End Namespaces -->
      <xsl:for-each select="namespace::*">
        <xsl:variable name="ns-prefix" select="local-name(.)"/>
        <xsl:variable name="ns-uri" select="string(.)"/>
        <xsl:if test="not($parent-element/namespace::*[local-name(.) = 
$ns-prefix and string(.) = $ns-uri])">
          <xsl:value-of select="$zindent"/>
          <xsl:text>contentHandler.endPrefixMapping("</xsl:text>
          <xsl:value-of select="local-name(.)"/>
          <xsl:text>")
  </xsl:text>
        </xsl:if>
      </xsl:for-each>
  
      <!-- End Element -->
      <xsl:value-of select="$zindent"/>
      <xsl:text># &lt;/</xsl:text>
      <xsl:value-of select="name(.)"/>
      <xsl:text>&gt;
  </xsl:text>
    </xsl:template>
  
  
  
    <xsl:template match="xsp:attribute">
      <xsl:param name="indent" select="XSLTExtension:suffix($extension, 
preceding-sibling::text()[1])"/>
  
      <xsl:variable name="uri">
        <xsl:call-template name="get-parameter">
          <xsl:with-param name="name">uri</xsl:with-param>
          <xsl:with-param name="indent" select="$indent"/>
        </xsl:call-template>
      </xsl:variable>
  
      <xsl:variable name="prefix">
        <xsl:call-template name="get-parameter">
          <xsl:with-param name="name">prefix</xsl:with-param>
          <xsl:with-param name="indent" select="$indent"/>
        </xsl:call-template>
      </xsl:variable>
  
      <xsl:variable name="name">
        <xsl:call-template name="get-parameter">
          <xsl:with-param name="name">name</xsl:with-param>
          <xsl:with-param name="required">true</xsl:with-param>
          <xsl:with-param name="indent" select="$indent"/>
        </xsl:call-template>
      </xsl:variable>
  
      <xsl:variable name="raw-name">
        <xsl:if test="
          ($uri = '&quot;&quot;' and $prefix != '&quot;&quot;') or
          ($uri != '&quot;&quot;' and $prefix = '&quot;&quot;')
        ">
          <xsl:call-template name="error">
            <xsl:with-param name="message">[&lt;xsp:attribute&gt;]
  Either both 'uri' and 'prefix' or none of them must be specified
            </xsl:with-param>
          </xsl:call-template>
        </xsl:if>
  
        <xsl:choose>
          <xsl:when test="$prefix = '&quot;&quot;'">
            <xsl:copy-of select="$name"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:text>(</xsl:text>
            <xsl:copy-of select="$prefix"/> + ":" + <xsl:copy-of 
select="$name"/>
            <xsl:text>)</xsl:text>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:variable>
  
      <xsl:variable name="content">
        <xsl:for-each select="text()|xsp:expr|xsp:text">
          <xsl:if test="position() &gt; 1">
           <xsl:text> + </xsl:text>
          </xsl:if>
          <xsl:choose>
            <xsl:when test="namespace-uri(.) = $xsp-uri and local-name(.) = 
'expr'">
              <xsl:text>(</xsl:text>
              <xsl:value-of select="."/>
              <xsl:text>)</xsl:text>
            </xsl:when>
            <xsl:otherwise>
              <xsl:text>"</xsl:text>
              <xsl:value-of select="XSLTExtension:escape($extension, .)"/>
              <xsl:text>"</xsl:text>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:for-each>
        <xsl:if test="not(text()|xsp:expr|xsp:text)">
          <xsl:text>""</xsl:text>
        </xsl:if>
      </xsl:variable>
  
      <xsl:text>
  </xsl:text>
      <xsl:value-of select="$indent"/>
      <xsl:text>xspAttr.addAttribute(</xsl:text>
      <xsl:copy-of select="$uri"/>, <xsl:copy-of select="$name"/>, <xsl:copy-of 
select="$raw-name"/>
      <xsl:text>, "CDATA", </xsl:text><xsl:value-of 
select="normalize-space($content)"/>
      <xsl:text>)
  </xsl:text>
    </xsl:template>
  
  
  
    <xsl:template match="xsp:expr">
      <xsl:variable name="indent">
        <xsl:choose>
          <xsl:when test="preceding-sibling::xsp:text[1]">
            <xsl:value-of select="XSLTExtension:suffix($extension, 
preceding-sibling::xsp:text[1])"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="XSLTExtension:suffix($extension, 
preceding-sibling::text()[1])"/>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:variable>
  
      <xsl:choose>
        <xsl:when test="namespace-uri(..) = $xsp-uri and local-name(..) != 
'content' and local-name(..) != 'element'">
          <!--
               Expression is nested inside another XSP tag:
               preserve its Java type
          -->
          <xsl:text>(</xsl:text>
          <xsl:value-of select="."/>
          <xsl:text>)</xsl:text>
        </xsl:when>
        <xsl:when test="string-length(.) = 0">
          <!-- Do nothing -->
        </xsl:when>
        <xsl:otherwise>
          <!-- Output the value as elements or character data depending on its 
type -->
          <xsl:value-of select="$indent"/>
          <xsl:text>page.xspExpr(</xsl:text>
          <xsl:value-of select="."/>
          <xsl:text>)
  </xsl:text>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:template>
  
  
  
    <!-- FIXME: Is this _really_ necessary? -->
    <xsl:template match="xsp:content">
      <xsl:variable name="zindent" select="XSLTExtension:suffix($extension, 
preceding-sibling::text()[1])"/>
      <xsl:text>
  </xsl:text>
      <xsl:value-of select="$zindent"/>
      <xsl:text># &lt;xsp:content&gt;
  </xsl:text>
      <xsl:value-of select="$zindent"/>
      <xsl:text>if 1:
  </xsl:text>
      <xsl:apply-templates>
        <xsl:with-param name="indent" select="XSLTExtension:suffix($extension, 
text()[1])"/>
      </xsl:apply-templates>
      <xsl:text>
  </xsl:text>
      <xsl:value-of select="$zindent"/>
      <xsl:text># &lt;/xsp:content&gt;
  </xsl:text>
    </xsl:template>
  
  
  
    <xsl:template match="xsp:logic">
      <xsl:variable name="zindent" select="XSLTExtension:suffix($extension, 
preceding-sibling::xsp:text[1])"/>
  
      <xsl:value-of select="$zindent"/>
      <xsl:text># &lt;xsp:logic&gt;
  </xsl:text>
      <xsl:value-of select="$zindent"/>
      <xsl:text>if 1:
  </xsl:text>
      <xsl:apply-templates/>
  
      <xsl:text>
  </xsl:text>
      <xsl:value-of select="$zindent"/>
      <xsl:text># &lt;/xsp:logic&gt;
  </xsl:text>
    </xsl:template>
  
  
  
    <xsl:template match="xsp:pi">
      <xsl:variable name="indent" select="XSLTExtension:suffix($extension, 
preceding-sibling::text()[1])"/>
  
      <xsl:variable name="target">
        <xsl:call-template name="get-parameter">
          <xsl:with-param name="name">target</xsl:with-param>
          <xsl:with-param name="indent" select="$indent"/>
        </xsl:call-template>
      </xsl:variable>
  
      <xsl:variable name="content">
        <xsl:for-each select="text()|xsp:expr">
          <xsl:choose>
            <xsl:when test="namespace-uri(.) = $xsp-uri and local-name(.) = 
'expr'">
              <xsl:text>String(</xsl:text>
              <xsl:value-of select="."/>
              <xsl:text>)</xsl:text>
            </xsl:when>
            <xsl:otherwise>
              <xsl:text>"</xsl:text>
              <xsl:value-of select="."/>
              <xsl:text>"</xsl:text>
            </xsl:otherwise>
          </xsl:choose>
          <xsp:text> + </xsp:text>
        </xsl:for-each>
        <xsl:text>""</xsl:text>
      </xsl:variable>
  
      <xsl:value-of select="$indent"/>
      <xsl:text>contentHandler.processingInstruction(</xsl:text>
      <xsl:copy-of select="$target"/>, <xsl:value-of 
select="normalize-space($content)"/>
      <xsl:text>)
  </xsl:text>
    </xsl:template>
  
  
  
    <!-- FIXME: How to create comments in SAX? -->
    <xsl:template match="xsp:comment">
      <xsl:variable name="indent" select="XSLTExtension:suffix($extension, 
preceding-sibling::text()[1])"/>
  
      <xsl:value-of select="$indent"/>
      <xsl:text>page.xspComment("</xsl:text>
      <xsl:value-of select="."/>
      <xsl:text>")
  </xsl:text>
    </xsl:template>
  
  
  
    <xsl:template match="*[not(namespace-uri(.) = $xsp-uri)]">
      <xsl:param name="indent"/>
  
      <xsl:variable name="text-sibling" 
select="preceding-sibling::xsp:text[string-length(XSLTExtension:suffix($extension,
 .)) &gt; 0][1]"/>
      <xsl:variable name="textn-sibling" 
select="preceding-sibling::text()[string-length(XSLTExtension:suffix($extension,
 .)) &gt; 0][1]"/>
      <xsl:variable name="zindent">
        <xsl:choose>
          <xsl:when test="$text-sibling">
            <xsl:value-of select="XSLTExtension:suffix($extension, 
$text-sibling)"/>
          </xsl:when>
          <xsl:when test="$textn-sibling">
            <xsl:value-of select="XSLTExtension:suffix($extension, 
$textn-sibling)"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="$indent"/>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:variable>
  
      <!-- Start Element -->
      <xsl:value-of select="$zindent"/>
      <xsl:text># &lt;</xsl:text>
      <xsl:value-of select="name(.)"/>
      <xsl:text>&gt;
  </xsl:text>
  
      <xsl:variable name="parent-element" select=".."/>
      <xsl:for-each select="namespace::*">
        <xsl:variable name="ns-prefix" select="local-name(.)"/>
        <xsl:variable name="ns-uri" select="string(.)"/>
        <xsl:if test="not($parent-element/namespace::*[local-name(.) = 
$ns-prefix and string(.) = $ns-uri])">
          <xsl:value-of select="$zindent"/>
          <xsl:text>contentHandler.startPrefixMapping("</xsl:text>
          <xsl:value-of select="local-name(.)"/>", "<xsl:value-of select="."/>
          <xsl:text>")
  </xsl:text>
        </xsl:if>
      </xsl:for-each>
  
      <xsl:apply-templates select="@*"/>
  
      <xsl:apply-templates select="xsp:attribute | xsp:logic[xsp:attribute]">
        <xsl:with-param name="indent" select="$zindent"/>
      </xsl:apply-templates>
  
      <xsl:value-of select="$zindent"/>
      <xsl:text>contentHandler.startElement("</xsl:text>
      <xsl:value-of select="namespace-uri(.)"/>", "<xsl:value-of 
select="local-name(.)"/>", "<xsl:value-of select="name(.)"/>
      <xsl:text>", xspAttr)
  </xsl:text>
      <xsl:value-of select="$zindent"/>
      <xsl:text>xspAttr.clear()
  </xsl:text>
      <xsl:value-of select="$zindent"/>
      <xsl:text>if 1:
  </xsl:text>
  
      <xsl:apply-templates select="node()[not(
          (namespace-uri(.) = $xsp-uri and local-name(.) = 'attribute') or
          (namespace-uri(.) = $xsp-uri and local-name(.) = 'logic' and 
./xsp:attribute)
        )]">
        <xsl:with-param name="indent" select="concat($zindent, '   ')"/>
      </xsl:apply-templates>
  
      <xsl:value-of select="$zindent"/>
      <xsl:text>contentHandler.endElement("</xsl:text>
      <xsl:value-of select="namespace-uri(.)"/>", "<xsl:value-of 
select="local-name(.)"/>", "<xsl:value-of select="name(.)"/>
      <xsl:text>")
  </xsl:text>
  
      <xsl:for-each select="namespace::*">
        <xsl:variable name="ns-prefix" select="local-name(.)"/>
        <xsl:variable name="ns-uri" select="string(.)"/>
        <xsl:if test="not($parent-element/namespace::*[local-name(.) = 
$ns-prefix and string(.) = $ns-uri])">
          <xsl:value-of select="$zindent"/>
          <xsl:text>contentHandler.endPrefixMapping("</xsl:text>
          <xsl:value-of select="local-name(.)"/>
          <xsl:text>")
  </xsl:text>
        </xsl:if>
      </xsl:for-each>
  
      <!-- End Element -->
      <xsl:value-of select="$zindent"/>
      <xsl:text># &lt;/</xsl:text>
      <xsl:value-of select="name(.)"/>
      <xsl:text>&gt;
  </xsl:text>
    </xsl:template>
  
  
  
    <xsl:template match="@*">
      <xsl:param name="indent" select="XSLTExtension:suffix($extension, 
preceding-sibling::text()[1])"/>
  
      <!-- Filter out namespace declaration attributes -->
      <xsl:if test="not(starts-with(name(.), 'xmlns:'))">
        <xsl:value-of select="$indent"/>
        <xsl:text>xspAttr.addAttribute("</xsl:text>
        <xsl:value-of select="namespace-uri(.)"/>", "<xsl:value-of 
select="local-name(.)"/>", "<xsl:value-of select="name(.)"/>", "CDATA", 
"<xsl:value-of select="XSLTExtension:escape($extension, .)"/>
        <xsl:text>")
  </xsl:text>
      </xsl:if>
    </xsl:template>
  
  
    
    <xsl:template match="xsp:text">
      <xsl:param name="indent"/>
  
      <xsl:variable name="text-sibling" 
select="preceding-sibling::xsp:text[string-length(XSLTExtension:suffix($extension,
 .)) &gt; 0][1]"/>
      <xsl:variable name="zindent">
        <xsl:choose>
          <xsl:when test="string-length(XSLTExtension:prefix($extension, .)) 
&gt; 0">
            <xsl:value-of select="XSLTExtension:prefix($extension, .)"/>
          </xsl:when>
          <xsl:when test="$text-sibling">
            <xsl:value-of select="XSLTExtension:suffix($extension, 
$text-sibling)"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="$indent"/>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:variable>
  
      <xsl:choose>
        <xsl:when test="namespace-uri(..) = $xsp-uri and (local-name(..) = 
'logic' or local-name(..) = 'expr')">
          <xsl:value-of select="."/>
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="$zindent"/>
          <xsl:text>page.xspCharacters("</xsl:text>
          <xsl:value-of select="XSLTExtension:escape($extension, .)"/>
          <xsl:text>")
  </xsl:text>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:template>
  
  
  
    <xsl:template match="text()" mode="value">
      <xsl:value-of select="."/>
    </xsl:template>
  
  
  
    <xsl:template match="processing-instruction()">
      <xsl:text>
  </xsl:text>
      <xsl:text>contentHandler.processingInstruction("</xsl:text>
      <xsl:value-of select="name()"/>", "<xsl:value-of select="."/>
      <xsl:text>")
  </xsl:text>
    </xsl:template>
  
  
  
    <!-- Utility templates -->
    <xsl:template name="get-parameter">
      <xsl:param name="indent" select="'????'"/>
  
      <xsl:param name="name"/>
      <xsl:param name="default"/>
      <xsl:param name="required">false</xsl:param>
  
      <xsl:choose>
        <xsl:when test="@*[name(.) = $name]">"<xsl:value-of select="@*[name(.) 
= $name]"/>"</xsl:when>
        <xsl:when test="xsp:[EMAIL PROTECTED] = $name]">
          <xsl:call-template name="get-parameter-content">
            <xsl:with-param name="content"
                            select="(*[namespace-uri(.)=$xsp-uri and 
local-name(.) = 'param'])[EMAIL PROTECTED] = $name]"/>
            <xsl:with-param name="indent" select="$indent"/>
          </xsl:call-template>
        </xsl:when>
        <xsl:otherwise>
          <xsl:choose>
            <xsl:when test="string-length($default) = 0">
              <xsl:choose>
                <xsl:when test="$required = 'true'">
                  <xsl:call-template name="error">
                    <xsl:with-param name="message">[Logicsheet processor]
  Parameter '<xsl:value-of select="$name"/>' missing in dynamic tag 
&lt;<xsl:value-of select="name(.)"/>&gt;
                    </xsl:with-param>
                  </xsl:call-template>
                </xsl:when>
                <xsl:otherwise>""</xsl:otherwise>
              </xsl:choose>
            </xsl:when>
            <xsl:otherwise><xsl:copy-of select="$default"/></xsl:otherwise>
          </xsl:choose>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:template>
  
  
  
    <xsl:template name="get-parameter-content">
      <xsl:param name="indent" select="'????'"/>
      <xsl:param name="content"/>
      <xsl:choose>
        <xsl:when test="$content/*[namespace-uri(.)=$xsp-uri and local-name(.) 
!= 'text']">
          <xsl:apply-templates select="$content/*[namespace-uri(.)=$xsp-uri and 
local-name(.) != 'text']">
            <xsl:with-param name="indent" select="$indent"/>
          </xsl:apply-templates>
        </xsl:when>
        <xsl:otherwise>"<xsl:value-of select="$content"/>"</xsl:otherwise>
      </xsl:choose>
    </xsl:template>
  
  
  
    <xsl:template name="get-nested-content">
      <xsl:param name="indent" select="'????'"/>
      <xsl:param name="content"/>
      <xsl:choose>
        <xsl:when test="$content/*">
          <xsl:apply-templates select="$content/*">
            <xsl:with-param name="indent" select="$indent"/>
          </xsl:apply-templates>
        </xsl:when>
        <xsl:otherwise>"<xsl:value-of select="$content"/>"</xsl:otherwise>
      </xsl:choose>
    </xsl:template>
  
  
  
    <xsl:template name="error">
      <xsl:param name="message"/>
      <xsl:message terminate="yes"><xsl:value-of 
select="$message"/></xsl:message>
    </xsl:template>
  
  
    <!-- Ignored elements -->
    <xsl:template match="xsp:logicsheet|xsp:dependency|xsp:param"/>
  </xsl:stylesheet>
  
  
  
  1.1                  
xml-cocoon2/src/blocks/python/java/org/apache/cocoon/components/language/programming/python/PythonLanguage.java
  
  Index: PythonLanguage.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache Cocoon" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.cocoon.components.language.programming.python;
  
  import 
org.apache.cocoon.components.language.programming.AbstractProgrammingLanguage;
  import org.apache.cocoon.components.language.programming.ProgrammingLanguage;
  import org.apache.cocoon.components.language.programming.Program;
  import org.apache.cocoon.components.language.LanguageException;
  import org.apache.cocoon.components.language.markup.xsp.XSLTExtension;
  import org.apache.cocoon.util.IOUtils;
  import org.apache.cocoon.util.ClassUtils;
  
  import java.io.File;
  import java.io.BufferedReader;
  import java.io.FileReader;
  import java.io.IOException;
  import java.io.InputStreamReader;
  import java.io.FileInputStream;
  import java.util.ArrayList;
  
  /**
   * The interpreted Python programming language.
   * Program in Python must have comment line as first line of file:
   * <pre>
   * """ $Cocoon extends: 
org.apache.cocoon.components.language.xsp.JSGenerator$ """
   * </pre>
   * The class specified will be used as a Java wrapper interpreting javascript 
program.
   *
   * @author <a href="mailto:[EMAIL PROTECTED]">Vadim Gritsenko</a>
   * @version CVS $Id: PythonLanguage.java,v 1.1 2003/01/02 10:50:06 sylvain 
Exp $
   */
  public class PythonLanguage extends AbstractProgrammingLanguage implements 
ProgrammingLanguage {
  
      public Program preload(String filename, File baseDirectory, String 
encoding) throws LanguageException {
          return load(filename, baseDirectory, encoding);
      }
  
      public Program load(String filename, File baseDirectory, String encoding) 
throws LanguageException {
          // Does source file exist?
          File sourceFile = new File(baseDirectory,
                  filename + "." + this.getSourceExtension());
          if (!sourceFile.exists()) {
              throw new LanguageException("Can't load program - File doesn't 
exist: "
                      + IOUtils.getFullFilename(sourceFile));
          }
          if (!sourceFile.isFile()) {
              throw new LanguageException("Can't load program - File is not a 
normal file: "
                      + IOUtils.getFullFilename(sourceFile));
          }
          if (!sourceFile.canRead()) {
              throw new LanguageException("Can't load program - File cannot be 
read: "
                      + IOUtils.getFullFilename(sourceFile));
          }
  
          Class clazz = null;
          ArrayList dependecies = new ArrayList();
  
          String className = null;
          BufferedReader r = null;
          try {
              r = new BufferedReader(
                      (encoding == null)?
                      new FileReader(sourceFile):
                      new InputStreamReader(new FileInputStream(sourceFile), 
encoding));
              className = getMeta(r.readLine(), "extends");
              if (className == null) {
                  throw new LanguageException("Can't load program - Signature 
is not found: "
                          + IOUtils.getFullFilename(sourceFile));
              }
  
              clazz = ClassUtils.loadClass(className);
  
              String line;
              while((line = getMeta(r.readLine(), "depends")) != null) {
                  dependecies.add(line);
              }
          } catch (IOException e) {
              throw new LanguageException("Can't load program - Signature is 
not found: "
                      + IOUtils.getFullFilename(sourceFile));
          } catch (ClassNotFoundException e) {
              throw new LanguageException("Can't load program - Base class " + 
className + " is not found: "
                      + IOUtils.getFullFilename(sourceFile));
          } finally {
              if (r != null) try {
                  r.close();
              } catch (IOException ignored) {
              }
          }
  
          return new PythonProgram(sourceFile, clazz, dependecies);
      }
  
      private String getMeta(String line, String meta) {
          if (line == null) {
              return null;
          }
  
          meta = "$Cocoon " + meta + ": ";
          int i = line.indexOf(meta);
          if (i != -1) {
              int j = line.indexOf("$", i + 1);
              if (j != -1) {
                  line = line.substring(i + meta.length(), j);
              } else {
                  line = null;
              }
          } else {
              line = null;
          }
          return line;
      }
  
      protected void doUnload(Object program, String filename, File baseDir)
              throws LanguageException {
          // Do nothing. Source is already deleted by the 
AbstractProgrammingLanguage.
      }
  
      public String quoteString(String constant) {
          return XSLTExtension.escapeString(constant);
      }
  
      /**
       * Return the language's canonical source file extension.
       *
       * @return The source file extension
       */
      public String getSourceExtension() {
          return "py";
      }
  }
  
  
  
  1.1                  
xml-cocoon2/src/blocks/python/java/org/apache/cocoon/components/language/programming/python/PythonProgram.java
  
  Index: PythonProgram.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache Cocoon" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.cocoon.components.language.programming.python;
  
  import org.apache.avalon.framework.configuration.DefaultConfiguration;
  import org.apache.avalon.framework.configuration.Configurable;
  import org.apache.avalon.framework.component.ComponentManager;
  import org.apache.avalon.framework.context.Context;
  
  import org.apache.avalon.excalibur.component.ComponentHandler;
  import org.apache.avalon.excalibur.component.RoleManager;
  import org.apache.avalon.excalibur.component.LogkitLoggerManager;
  
  import org.apache.cocoon.components.language.programming.Program;
  import org.apache.cocoon.components.language.generator.CompiledComponent;
  
  import java.io.File;
  import java.util.Collection;
  import java.util.Iterator;
  
  /**
   * This class represents program in the Python language.
   *
   * @author <a href="mailto:[EMAIL PROTECTED]">Vadim Gritsenko</a>
   * @version CVS $Id: PythonProgram.java,v 1.1 2003/01/02 10:50:06 sylvain Exp 
$
   */
  public class PythonProgram implements Program {
  
      protected File file;
      protected Class clazz;
      protected DefaultConfiguration config;
  
      public PythonProgram(File file, Class clazz, Collection dependecies) {
          this.file = file;
          this.clazz = clazz;
  
          config = new DefaultConfiguration("", "GeneratorSelector");
          DefaultConfiguration child = new DefaultConfiguration("file", "");
          child.setValue(file.toString());
          config.addChild(child);
  
          for (Iterator i = dependecies.iterator(); i.hasNext(); ) {
              child = new DefaultConfiguration("dependency", "");
              child.setValue(i.next().toString());
              config.addChild(child);
          }
      }
  
      public String getName() {
          return file.toString();
      }
  
      public ComponentHandler getHandler(ComponentManager manager,
                                         Context context,
                                         RoleManager roles,
                                         LogkitLoggerManager logKitManager)
              throws Exception {
  
          return ComponentHandler.getComponentHandler(
                  clazz, config, manager, context, roles, logKitManager);
      }
  
      public CompiledComponent newInstance() throws Exception {
          CompiledComponent instance = (CompiledComponent) clazz.newInstance();
          if (instance instanceof Configurable)
              ((Configurable) instance).configure(config);
          return instance;
      }
  }
  
  
  
  1.1                  
xml-cocoon2/src/blocks/python/mocks/org/python/core/Py.java
  
  Index: Py.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package org.python.core;
  
  import java.io.FileInputStream;
  import java.io.InputStream;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: Py.java,v 1.1 2003/01/02 10:50:06 sylvain Exp $
   */
  public class Py {
  
        public static PyCode compile_flags(
                InputStream fileInputStream,
                String string,
                String string1,
                Object object)
      {
          throw new NoSuchMethodError("This is a mock object");
      }
  }
  
  
  
  1.1                  
xml-cocoon2/src/blocks/python/mocks/org/python/core/PyCode.java
  
  Index: PyCode.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package org.python.core;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: PyCode.java,v 1.1 2003/01/02 10:50:06 sylvain Exp $
   */
  public class PyCode {
  
  }
  
  
  
  1.1                  
xml-cocoon2/src/blocks/python/mocks/org/python/core/PySystemState.java
  
  Index: PySystemState.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package org.python.core;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: PySystemState.java,v 1.1 2003/01/02 10:50:06 sylvain Exp 
$
   */
  public class PySystemState {
  
  }
  
  
  
  1.1                  
xml-cocoon2/src/blocks/python/mocks/org/python/util/PythonInterpreter.java
  
  Index: PythonInterpreter.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package org.python.util;
  
  import java.util.Properties;
  
  import org.python.core.PyCode;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: PythonInterpreter.java,v 1.1 2003/01/02 10:50:06 sylvain 
Exp $
   */
  public class PythonInterpreter {
  
        public static void initialize(
                Properties properties,
                Properties properties1,
                String[] strings) {
          throw new NoSuchMethodError("This is a mock object");
        }
  
        public void set(String string, Object obj) {
          throw new NoSuchMethodError("This is a mock object");
        }
  
        public void exec(PyCode code) {
          throw new NoSuchMethodError("This is a mock object");
        }
  }
  
  
  
  1.9       +2 -2      
xml-cocoon2/src/java/org/apache/cocoon/acting/SendmailAction.java
  
  Index: SendmailAction.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/acting/SendmailAction.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- SendmailAction.java       21 Sep 2002 22:57:18 -0000      1.8
  +++ SendmailAction.java       2 Jan 2003 10:50:07 -0000       1.9
  @@ -138,7 +138,7 @@
                           + properties.get("mail.smtp.host"));
                   }
               }
  -            Session session = Session.getDefaultInstance(properties, null);
  +            Session session = Session.getDefaultInstance(properties);
               Message message = new MimeMessage(session);
               String from = null;
               String to = null;
  
  
  
  1.1                  xml-cocoon2/src/mocks/javax/mail/Address.java
  
  Index: Address.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package javax.mail;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: Address.java,v 1.1 2003/01/02 10:50:07 sylvain Exp $
   */
  public abstract class Address {
  }
  
  
  
  1.1                  xml-cocoon2/src/mocks/javax/mail/Message.java
  
  Index: Message.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package javax.mail;
  
  import java.util.Date;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: Message.java,v 1.1 2003/01/02 10:50:07 sylvain Exp $
   */
  public abstract class Message implements Part {
  
      public static class RecipientType {
          public static RecipientType BCC = null;
          public static RecipientType CC = null;
          public static RecipientType TO = null;
      }
  
        public void setFrom(Address addr) throws MessagingException {
          throw new NoSuchMethodError("This is a mock object");
        }
  
        public void setRecipient(
                RecipientType type,
                Address address) throws MessagingException {
          throw new NoSuchMethodError("This is a mock object");
        }
  
        public void setSubject(String subject) throws MessagingException {
          throw new NoSuchMethodError("This is a mock object");
        }
  
        public void setText(String body) throws MessagingException {
          throw new NoSuchMethodError("This is a mock object");
        }
  
        public void setSentDate(Date date) throws MessagingException {
          throw new NoSuchMethodError("This is a mock object");
        }
  }
  
  
  
  1.1                  xml-cocoon2/src/mocks/javax/mail/MessagingException.java
  
  Index: MessagingException.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package javax.mail;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: MessagingException.java,v 1.1 2003/01/02 10:50:07 
sylvain Exp $
   */
  public class MessagingException extends Exception {
  }
  
  
  
  1.1                  xml-cocoon2/src/mocks/javax/mail/Part.java
  
  Index: Part.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package javax.mail;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: Part.java,v 1.1 2003/01/02 10:50:07 sylvain Exp $
   */
  public interface Part {
      public abstract void setText(String s)
          throws MessagingException;
  }
  
  
  1.1                  xml-cocoon2/src/mocks/javax/mail/Session.java
  
  Index: Session.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package javax.mail;
  
  import java.util.Properties;
  
  /**
   * http://java.sun.com/products/javamail/1.3/docs/javadocs/
   * http://java.sun.com/products/javabeans/glasgow/javadocs/
   */
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: Session.java,v 1.1 2003/01/02 10:50:07 sylvain Exp $
   */
  public abstract class Session {
      
      public static Session getDefaultInstance(Properties props) {
          throw new NoSuchMethodError("This is a mock object");
      }
  
  }
  
  
  
  1.1                  xml-cocoon2/src/mocks/javax/mail/Transport.java
  
  Index: Transport.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package javax.mail;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: Transport.java,v 1.1 2003/01/02 10:50:07 sylvain Exp $
   */
  public abstract class Transport {
  
        public static void send(Message message) {
          throw new NoSuchMethodError("This is a mock object");
        }
  }
  
  
  
  1.1                  
xml-cocoon2/src/mocks/javax/mail/internet/AddressException.java
  
  Index: AddressException.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package javax.mail.internet;
  
  import javax.mail.MessagingException;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: AddressException.java,v 1.1 2003/01/02 10:50:07 sylvain 
Exp $
   */
  public class AddressException extends MessagingException {
  
  }
  
  
  
  1.1                  
xml-cocoon2/src/mocks/javax/mail/internet/InternetAddress.java
  
  Index: InternetAddress.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package javax.mail.internet;
  
  import javax.mail.Address;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: InternetAddress.java,v 1.1 2003/01/02 10:50:07 sylvain 
Exp $
   */
  public class InternetAddress extends Address {
  
        public InternetAddress(String from) {
          throw new NoSuchMethodError("This is a mock object");
        }
  }
  
  
  
  1.1                  
xml-cocoon2/src/mocks/javax/mail/internet/MimeMessage.java
  
  Index: MimeMessage.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package javax.mail.internet;
  
  import javax.mail.Message;
  import javax.mail.Session;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: MimeMessage.java,v 1.1 2003/01/02 10:50:07 sylvain Exp $
   */
  public class MimeMessage extends Message {
      
      public MimeMessage(Session session) {
          throw new NoSuchMethodError("This is a mock object");
      }
  }
  
  
  
  1.1                  xml-cocoon2/src/mocks/org/jaxen/dom/DOMXPath.java
  
  Index: DOMXPath.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package org.jaxen.dom;
  
  import java.util.List;
  import org.w3c.dom.Node;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: DOMXPath.java,v 1.1 2003/01/02 10:50:07 sylvain Exp $
   */
  public class DOMXPath {
  
        public DOMXPath(String str) {
          throw new NoSuchMethodError("This is a mock object");
        }
  
        public Node selectSingleNode(Object object) {
          throw new NoSuchMethodError("This is a mock object");
        }
  
        public List selectNodes(Object object) {
          throw new NoSuchMethodError("This is a mock object");
        }
  }
  
  
  
  1.1                  xml-cocoon2/src/mocks/sun/tools/javac/Main.java
  
  Index: Main.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package sun.tools.javac;
  
  import java.io.IOException;
  import java.io.OutputStream;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: Main.java,v 1.1 2003/01/02 10:50:07 sylvain Exp $
   */
  public class Main {
  
        public Main(OutputStream err, String string) {
         throw new UnsupportedOperationException("This is a mock object");
        }
  
        public boolean compile(String[] strings) throws IOException {
           throw new UnsupportedOperationException("This is a mock object");
        }
  }
  
  
  
  1.1                  xml-cocoon2/src/resources/dev/eclipse/classpath-tmpl.xml
  
  Index: classpath-tmpl.xml
  ===================================================================
  <?xml version="1.0"?>
  <data>
    <src-dirs><item>@SRC_DIRS@</item></src-dirs>
    <libs><item>@LIBS@</item></libs>
    <mock-dirs><item>@MOCKS_DIRS@</item></mock-dirs>
  </data>
  
  
  1.1                  xml-cocoon2/src/resources/dev/eclipse/make-classpath.xsl
  
  Index: make-classpath.xsl
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!--
    Build the Eclipse .classpath file from a list of path items
    (see "eclipse-project" target in build.xml)
    
    @author Sylvain Wallez
    @version CVS $Id: make-classpath.xsl,v 1.1 2003/01/02 10:50:07 sylvain Exp $
  -->
  
  <xsl:stylesheet
    version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
  
    <xsl:output indent="yes" method="xml"/>
  
    <xsl:strip-space elements="*"/>
  
    <xsl:template match="/data">
      <classpath>
        <!-- 1. source dirs -->
        <xsl:for-each select="src-dirs/item">
          <classpathentry kind="src" path="{.}"/>
        </xsl:for-each>
       
        <!-- 2. libraries -->
        <xsl:for-each select="libs/item">
          <classpathentry kind="lib" path="{.}"/>
        </xsl:for-each>
       
        <!-- 3. mock classes -->
        <xsl:for-each select="mock-dirs/item">
          <classpathentry kind="src" path="{.}"/>
        </xsl:for-each>
       
        <!-- 4. JRE runtime -->
        <classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" 
sourcepath="JRE_SRC"/>
       
        <!-- output directory. Build in a separate dir since Eclipse is 
confused by classes
             compiled externally by Sun's Javac -->
        <classpathentry kind="output" path="build/eclipse/classes"/>
  
      </classpath>
    </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-cocoon2/src/resources/dev/eclipse/project
  
  Index: project
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <projectDescription>
        <name>Cocoon @VERSION@</name>
        <comment></comment>
        <projects>
        </projects>
        <buildSpec>
                <buildCommand>
                        <name>org.eclipse.jdt.core.javabuilder</name>
                        <arguments>
                        </arguments>
                </buildCommand>
        </buildSpec>
        <natures>
                <nature>org.eclipse.jdt.core.javanature</nature>
        </natures>
  </projectDescription>
  
  
  
  1.2       +6 -6      xml-cocoon2/src/resources/orig/cocoon2.svg
  
  Index: cocoon2.svg
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/resources/orig/cocoon2.svg,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- cocoon2.svg       3 Jan 2002 12:31:34 -0000       1.1
  +++ cocoon2.svg       2 Jan 2003 10:50:07 -0000       1.2
  @@ -35,16 +35,16 @@
                        <path style="&st1;" 
d="M251.433,28.914V20.41c0-3.118-2.551-5.669-5.67-5.669h-21.26v14.173"/>
                </g>
                <g>
  -                     <path d="M176.598,23.527z"/>
  -                     <path style="&st1;" d="M174.896,21.827z"/>
  +                     <path d="M176.598,23.527h0.001z"/>
  +                     <path style="&st1;" d="M174.896,21.827h0.001z"/>
                </g>
                <g>
  -                     <path d="M197.856,23.527z"/>
  -                     <path style="&st1;" d="M196.155,21.827z"/>
  +                     <path d="M197.856,23.527h0.001z"/>
  +                     <path style="&st1;" d="M196.155,21.827h0.001z"/>
                </g>
                <g>
  -                     <path d="M105.731,23.527z"/>
  -                     <path style="&st1;" d="M104.03,21.827z"/>
  +                     <path d="M105.731,23.527h0.001z"/>
  +                     <path style="&st1;" d="M104.03,21.827h0.001z"/>
                </g>
        </g>
   </g><!-- Layer_x0020_1 -->
  
  
  
  1.1                  xml-cocoon2/src/scratchpad/lib/servlet-2_3.jar
  
        <<Binary file>>
  
  
  1.1                  
xml-cocoon2/src/scratchpad/mocks/javax/transaction/HeuristicMixedException.java
  
  Index: HeuristicMixedException.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package javax.transaction;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: HeuristicMixedException.java,v 1.1 2003/01/02 10:50:08 
sylvain Exp $
   */
  public class HeuristicMixedException extends Exception {
  
      public HeuristicMixedException() {
          throw new NoSuchMethodError("This is a mock object");
      }
  
      public HeuristicMixedException(String msg) {
          throw new NoSuchMethodError("This is a mock object");
      }
  }
  
  
  1.1                  
xml-cocoon2/src/scratchpad/mocks/javax/transaction/HeuristicRollbackException.java
  
  Index: HeuristicRollbackException.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package javax.transaction;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: HeuristicRollbackException.java,v 1.1 2003/01/02 
10:50:08 sylvain Exp $
   */
  public class HeuristicRollbackException extends Exception {
  
      public HeuristicRollbackException() {
          throw new NoSuchMethodError("This is a mock object");
      }
  
      public HeuristicRollbackException(String msg) {
          throw new NoSuchMethodError("This is a mock object");
      }
  }
  
  
  1.1                  
xml-cocoon2/src/scratchpad/mocks/javax/transaction/NotSupportedException.java
  
  Index: NotSupportedException.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package javax.transaction;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: NotSupportedException.java,v 1.1 2003/01/02 10:50:08 
sylvain Exp $
   */
  public class NotSupportedException extends Exception {
  
      public NotSupportedException() {
          throw new NoSuchMethodError("This is a mock object");
      }
  
      public NotSupportedException(String msg) {
          throw new NoSuchMethodError("This is a mock object");
      }
  }
  
  
  1.1                  
xml-cocoon2/src/scratchpad/mocks/javax/transaction/RollbackException.java
  
  Index: RollbackException.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package javax.transaction;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: RollbackException.java,v 1.1 2003/01/02 10:50:08 sylvain 
Exp $
   */
  public class RollbackException extends Exception {
  
      public RollbackException() {
          throw new NoSuchMethodError("This is a mock object");
      }
  
      public RollbackException(String s) {
          throw new NoSuchMethodError("This is a mock object");
      }
  }
  
  
  1.1                  
xml-cocoon2/src/scratchpad/mocks/javax/transaction/SystemException.java
  
  Index: SystemException.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package javax.transaction;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: SystemException.java,v 1.1 2003/01/02 10:50:08 sylvain 
Exp $
   */
  public class SystemException extends Exception {
  
      public SystemException() {
          throw new NoSuchMethodError("This is a mock object");
      }
  
      public SystemException(String s) {
          throw new NoSuchMethodError("This is a mock object");
      }
  
      public SystemException(int i) {
          throw new NoSuchMethodError("This is a mock object");
      }
  }
  
  
  1.1                  
xml-cocoon2/src/scratchpad/mocks/javax/transaction/UserTransaction.java
  
  Index: UserTransaction.java
  ===================================================================
  /*
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package javax.transaction;
  
  /**
   * Mock class providing the declarations required to compile the Cocoon code 
when
   * the actual library is not present.
   * 
   * @version CVS $Id: UserTransaction.java,v 1.1 2003/01/02 10:50:08 sylvain 
Exp $
   */
  public interface UserTransaction {
  
      public abstract void begin() throws NotSupportedException, 
SystemException;
  
      public abstract void commit()
          throws
              RollbackException,
              HeuristicMixedException,
              HeuristicRollbackException,
              SecurityException,
              IllegalStateException,
              SystemException;
  
      public abstract void rollback()
          throws IllegalStateException, SecurityException, SystemException;
  
      public abstract void setRollbackOnly()
          throws IllegalStateException, SystemException;
  
      public abstract int getStatus() throws SystemException;
  
      public abstract void setTransactionTimeout(int seconds) throws 
SystemException;
  }
  
  
  1.15      +9 -7      xml-cocoon2/tools/src/blocks-build.xsl
  
  Index: blocks-build.xsl
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/tools/src/blocks-build.xsl,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- blocks-build.xsl  19 Dec 2002 00:22:29 -0000      1.14
  +++ blocks-build.xsl  2 Jan 2003 10:50:08 -0000       1.15
  @@ -5,7 +5,7 @@
      <xsl:template match="/">
         <project default="all" basedir="." name="blocks-build">
            <description>Autogenerated Ant build file that creates the build 
dependencies.</description>
  -
  +         
            <xsl:apply-templates select="module" />
         </project>
      </xsl:template>
  @@ -41,13 +41,15 @@
         </target>
   
         <target name="filter-jdbc" unless="jdbc3.present">
  -        <filter token="JDBC3_START" value=""/>
  -        <filter token="JDBC3_END" value=""/>
  +        <filter token="JDBC3_START">
  +          <xsl:attribute name="value">${line.separator} /* Start JDBC3 
specific code </xsl:attribute>
  +        </filter>
  +        <filter token="JDBC3_END" value=" End JDBC3 specific code */"/>
         </target>
   
         <target name="nofilter-jdbc" if="jdbc3.present">
  -        <filter token="JDBC3_START" value="*/"/>
  -        <filter token="JDBC3_END" value="/*"/>
  +        <filter token="JDBC3_START" value="Start JDBC3 specific code"/>
  +        <filter token="JDBC3_END" value="End JDBC3 specific code"/>
         </target>
   
               
  @@ -203,8 +205,8 @@
                  <xsl:attribute 
name="dir">${currentblock.java.dir}</xsl:attribute>
                  <include name="**/*.java" />
                  <!-- excludes moved from build.xml -->
  -               <exclude name="**/Ora*.java"           
unless="ora.driver.present"/>
  -               <exclude name="**/Ifx*.java"           
unless="ifx.driver.present"/>
  +               <!--exclude name="**/Ora*.java"           
unless="ora.driver.present"/>
  +               <exclude name="**/Ifx*.java"           
unless="ifx.driver.present"/-->
               </fileset>
            </copy>
   
  
  
  

----------------------------------------------------------------------
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