ivelin      02/05/19 23:53:17

  Modified:    src/java/org/apache/cocoon/transformation
                        AbstractSAXTransformer.java
               src/webapp cocoon.xconf.moved sitemap.xmap
               src/webapp/WEB-INF cocoon.xconf web.xml
               src/webapp/WEB-INF/db cocoondb.data cocoondb.properties
                        cocoondb.script
               src/webapp/docs/samples sample-apps.xml
               src/webapp/docs/samples/formvalidation descriptor.xml
               src/webapp/docs/samples/slides clean-page.xml lib-page.xml
                        page.xml
               src/webapp/docs/samples/soap fortune.xml
               src/webapp/resources/entities book-cocoon-v10.dtd
                        changes-v10.dtd document-v10.dtd faq-v10.dtd
                        javadoc-v04draft.dtd specification-v10.dtd
                        todo-v10.dtd
               src/webapp/resources/icons cocoon.ico
               src/webapp/samples/common/resources/icons cocoon.ico
               src/webapp/samples/common/style/xsl/html simple-xml2html.xsl
               src/webapp/samples/hello-world/content/templates
                        hello-page.vm
               src/webapp/samples/hello-world/style/xsl simple-page2vml.xsl
                        simple-xml2html.xsl
               src/webapp/samples/tutorial/docs/dtd changes-v10.dtd
                        faq-v10.dtd javadoc-v04draft.dtd
                        specification-v10.dtd todo-v10.dtd
               src/webapp/stylesheets simple-samples2html.xsl
                        simple-xml2html.xsl svg-samples2html.xsl
               src/webapp/stylesheets/page simple-page2vml.xsl
               src/webapp/sub/stylesheets simple-samples2html.xsl
               src/webapp/templates hello-page.vm
               src/webapp/tutorial/docs/dtd changes-v10.dtd faq-v10.dtd
                        javadoc-v04draft.dtd specification-v10.dtd
                        todo-v10.dtd
               src/webapp/welcome welcome.xhtml
  Added:       lib/optional commons-jxpath.jar
               src/java/org/apache/cocoon/acting AbstractXMLFormAction.java
               src/java/org/apache/cocoon/transformation
                        XMLFormTransformer.java
               src/webapp/stylesheets/xmlform xmlform2html.xsl
  Removed:     src/scratchpad/lib commons-JXPath-20020320.jar
               src/scratchpad/src/org/apache/cocoon/acting
                        AbstractXMLFormAction.java
               src/scratchpad/src/org/apache/cocoon/transformation
                        XMLFormTransformer.java
               src/scratchpad/src/org/apache/cocoon/validation Schema.java
                        SchemaFactory.java Validator.java Violation.java
                        ZNestedBean.java ZTestBean.java
                        ZValidationTest.java zxmlform-sch-report-test.xml
               src/scratchpad/src/org/apache/cocoon/validation/schematron
                        ActivePattern.java Assert.java Pattern.java
                        Phase.java Report.java Rule.java
                        SchematronFactory.java SchematronSchema.java
                        SchematronValidator.java ValidationResult.java
               src/scratchpad/webapp/mount/xmlform README.txt sitemap.xmap
               src/scratchpad/webapp/mount/xmlform/schematron
                        wizard-xmlform-sch-report.xml
               src/scratchpad/webapp/mount/xmlform/stylesheets
                        wizard2html.xsl xmlform2html.xsl
               src/scratchpad/webapp/mount/xmlform/wizard README
                        confirm.xml deployment.xml end.xml start.xml
                        system.xml userIdentity.xml
  Log:
  moved XMLForm from scratchpad to main tree
  added link to XMLForm Wizard demo from sample-apps page
  
  Revision  Changes    Path
  1.1                  xml-cocoon2/lib/optional/commons-jxpath.jar
  
        <<Binary file>>
  
  
  1.1                  
xml-cocoon2/src/java/org/apache/cocoon/acting/AbstractXMLFormAction.java
  
  Index: AbstractXMLFormAction.java
  ===================================================================
  /*
   * $Header: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/acting/AbstractXMLFormAction.java,v
 1.1 2002/05/20 06:53:14 ivelin Exp $
   * $Revision: 1.1 $
   * $Date: 2002/05/20 06:53:14 $
   *
   * ====================================================================
   * The Apache Software License, Version 1.1
   *
   * 
   *
   * Copyright (c) 1999-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 acknowlegement:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowlegement may appear in the software itself,
   *    if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Commons", 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 names without prior written
   *    permission of the Apache Group.
   *
   * 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 and was
   * originally based on software copyright (c) 2001, Plotnix, Inc,
   * <http://www.plotnix.com/>.
   * For more information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.cocoon.acting;
  
  
  // Java classes
  import java.util.Map;
  import java.util.HashMap;
  import java.util.SortedSet;
  import java.util.Iterator;
  import java.util.Properties;
  import java.util.Enumeration;
  import java.io.InputStream;
  import java.io.FileInputStream;
  import java.io.File;
  
  // XML classes
  import javax.xml.transform.stream.StreamSource;
  import javax.xml.transform.TransformerException;
  import org.xml.sax.InputSource;
  import org.w3c.dom.Node;
  import org.w3c.dom.NodeList;
  
  // Framework classes
  import org.apache.avalon.framework.CascadingRuntimeException;
  import org.apache.avalon.framework.parameters.Parameters;
  import org.apache.avalon.excalibur.pool.Poolable;
  
  // Cocoon classes
  import org.apache.cocoon.Constants;
  import org.apache.cocoon.environment.Redirector;
  import org.apache.cocoon.environment.SourceResolver;
  import org.apache.cocoon.environment.Source;
  import org.apache.cocoon.acting.*;
  import org.apache.cocoon.environment.Request;
  import org.apache.cocoon.environment.ObjectModelHelper;
  import org.apache.cocoon.environment.Session;
  import org.apache.cocoon.environment.Context;
  
  // Schematron classes
  import org.apache.cocoon.components.validation.SchemaFactory;
  import org.apache.cocoon.components.validation.Schema;
  import org.apache.cocoon.components.validation.Validator;
  import org.apache.cocoon.components.validation.Violation;
  
  // Cocoon Form
  import org.apache.cocoon.components.xmlform.Form;
  
  
  
  /**
   *
   * This is the base action class for 
   * xmlform handling
   *
   * This action is Poolable which means that 
   * subclasses of this class should not be
   * concerned about thread safety.
   * The framework ensures that only one thread
   * has access to a concrete instance at any time.
   *
   * However once an action is complete, the instance
   * will be recycled and reused for another request.
   * 
   *
   * Several ideas are borrowed from the original work of
   * Torsten Curdt.
   *
   * @author Ivelin Ivanov <[EMAIL PROTECTED]>
   */
  public abstract class AbstractXMLFormAction 
    extends ConfigurableComposerAction 
    implements Poolable
  {
  
    public static final String OBJECT_MAP_NEXT_PAGE = "page";  
  
  
    /**
     * The first method which is called
     * when an action is invoked.
     *
     * It is called before population.
     *
     *
     * @return null if the Action is prepared to continue.
     * an objectModel map which will be immediately returned by the action.
     *
     * This method is a good place to handle buttons with Cancel
     * kind of semantics. For example 
     * <pre>return page("input")</pre>
     *
     */
    protected abstract Map prepare();
    
    
    /**
     * Invoked during the form population process 
     *
     * Provides default implementation, which 
     * can be extended or replaced by subclasses
     *
     * Implementations of this method are responsible 
     * for creating and
     * returning the Form object which the action
     * is working on.
     *
     * @return Form the form object this action works with
     *
     */
    protected Form getForm ()
    {
      Form form = Form.lookup( getObjectModel(), getFormId() );
      
      if (form != null) return form;
      else // create new form
      {
        form = new Form( getFormId(), getFormModel() );
        Validator v = getFormValidator();
        form.setValidator ( v );
        form.save ( getObjectModel(), getFormScope() );
        return form;
      }
    }
  
      
    public Map act(Redirector redirector, SourceResolver resolver, Map 
objectModel, String src, Parameters params) 
      throws java.lang.Exception 
    {
      // populate action state objects
        redirector_ = redirector;
        resolver_ = resolver;
        objectModel_ = objectModel;
        src_ = src;
        params_ = params;
      
        // find and save the action command
        findCommand();
  
        // ensure that there is a form available
        // through the rest of the flow
        Form form = getForm();
  
        // call the subclass prepare()
        // give it a chance to get ready for action
        Map prepareResult = prepare();
        if ( prepareResult != null ) return prepareResult;
  
        // populate form with request parameters
        // population is automatically followed by validation by default.
        // If this is not the desired behaviour, the Form class can be 
subclassed
        form.populate( objectModel );
  
        
        return perform();
    }
    
  
    /**
     * Get the command which was submitted with the form.
     * It is extracted from the standard cocoon-action-* request parameter
     *
     */
      public String getCommand()
      {
        return command_;
      }
    
  
      protected void findCommand()
      {
        command_ = null;
        Enumeration enum = getRequest().getParameterNames ();
        while (enum.hasMoreElements ())
          {
            String paramName = (String) enum.nextElement ();
            // search for the command
           if ( paramName.startsWith ( Constants.ACTION_PARAM_PREFIX ) ) 
           {
             command_ = 
               paramName.substring ( Constants.ACTION_PARAM_PREFIX.length(), 
paramName.length() );
           }
        }
      }
      
      
      /**
       * @return the @view attribute of the xmlform form tag.
       * This attribute is used to identify the part(or view)
       * of the model which is used in the specific xmlform
       * document.
       *
       */
      public String getFormView()
      {
        return getForm().getFormView( getObjectModel() ); 
      }
      
  
    
    /**
     * Called to determine the exit point of an action.
     * The pageName is made available in the objectMap,
     * which can be then referenced in the pipeline
     * @param pageName logical name for a next page
     * @return Map a pipeline objectMap containing the pageName
     *
     */
    protected Map page( String pageName )
    {
      Map objectModel = new HashMap();
      objectModel.put( OBJECT_MAP_NEXT_PAGE,  pageName );    
      return objectModel;
    }
    
    /**
     * Invoked after form population
     * unless a Cancel button was pressed, 
     * in which case population is skipped and this method
     * is invoked immediately
     *
     * Semanticly similar to Struts Action.perform()
     *
     * Take appropriate action based on the command
     *
     */
    public abstract Map perform ();
  
  
    protected SourceResolver getSourceResolver()
    {
      return resolver_;
    }
  
    protected Redirector getRedirector()
    {
      return redirector_;
    }
  
    protected Map getObjectModel()
    {
      return objectModel_;
    }
  
    
    protected Parameters getParameters()
    {
      return params_;
    }
    
    protected String getSrc()
    {
      return src_;
    }
    
    protected Request getRequest()
    {
      return (Request) ( getObjectModel().get(ObjectModelHelper.REQUEST_OBJECT) 
);
    }
    
    protected Session getSession( boolean shouldCreateNew )
    {
      return getRequest().getSession( shouldCreateNew );
    }
    
    protected Session getSession()
    {
      return getSession( true );
    }
  
    
    /**
     * Extract action parameters and 
     * instantiate a new validator based on them.
     *
     * xmlform-validator-schema-ns
     * xmlform-validator-schema
     *
     * Subclasses may override this method
     * to use custom validators
     *
     */
    protected Validator getFormValidator()
    {
      try
        {
          // initialize the Validor with a schema file
          String schNS = 
getParameters().getParameter("xmlform-validator-schema-ns", null);
          String schDoc = 
getParameters().getParameter("xmlform-validator-schema", null);
          
          // if validator params are not specified, then
          // there is no validation by default
          if (schNS == null || schDoc == null ) return null;
  
          Source schemaSrc = getSourceResolver().resolve( schDoc );
          InputSource is = schemaSrc.getInputSource ();
          SchemaFactory schf = SchemaFactory.lookup ( schNS );
          Schema sch = schf.compileSchema ( is );
          
          return sch.newValidator();  
        } 
        catch ( Exception e)
        {
          // couldn't load the validator
          throw new CascadingRuntimeException( " Failed loading validating 
schema ", e );
        }
    }
    
    
    /**
     * Extract xmlform-model 
     * action parameter and 
     * instantiate a new form model it.
     *
     *
     * Subclasses may override this method
     * to use custom model instantiation technique
     *
     */
    protected Object getFormModel()
    {
      try
        {
          String modelClassName = getParameters().getParameter("xmlform-model", 
null);
          Class modelClass = Class.forName ( modelClassName );
          Object o = modelClass.newInstance ();
          return o;
        } 
        catch ( Exception e)
        {
          throw new CascadingRuntimeException( " Failed instantiating form 
model ", e );
        }
    }
  
    
    protected String getFormId()
    {
      String formId = getParameters().getParameter("xmlform-id", null);
      if ( formId == null )
        throw new RuntimeException( " xmlform-id not specified " );
      else 
        return formId;
    }
      
    
    protected String getFormScope()
    {
      String formScope = getParameters().getParameter("xmlform-scope", null);
      if ( formScope == null )
      {
        // default to request scope
        formScope = Form.SCOPE_REQUEST;
      }
      return formScope;
    }
      
    
    // action state objects
    private Redirector redirector_;
    private SourceResolver resolver_;
    private Map objectModel_;
    private Parameters params_;
    private String src_; 
    private Request request_;
    private Session session_;
    private String command_;
    
  }
  
  
  
  
  1.5       +3 -3      
xml-cocoon2/src/java/org/apache/cocoon/transformation/AbstractSAXTransformer.java
  
  Index: AbstractSAXTransformer.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/transformation/AbstractSAXTransformer.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- AbstractSAXTransformer.java       19 Apr 2002 11:02:57 -0000      1.4
  +++ AbstractSAXTransformer.java       20 May 2002 06:53:15 -0000      1.5
  @@ -124,7 +124,7 @@
    *
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
  - * @version CVS $Id: AbstractSAXTransformer.java,v 1.4 2002/04/19 11:02:57 
cziegeler Exp $
  + * @version CVS $Id: AbstractSAXTransformer.java,v 1.5 2002/05/20 06:53:15 
ivelin Exp $
   */
   public abstract class AbstractSAXTransformer
   extends AbstractTransformer
  @@ -430,7 +430,7 @@
   
       /**
        * Start DocumentFragment recording.
  -     * All invoming events are recorded and not forwarded. The resulting
  +     * All invoking events are recorded and not forwarded. The resulting
        * DocumentFragment can be obtained by the matching endRecording() call.
        */
       public void startRecording()
  @@ -452,7 +452,7 @@
   
       /**
        * Stop DocumentFragment recording.
  -     * All invoming events are recorded and not forwarded. This method 
returns
  +     * All invoking events are recorded and not forwarded. This method 
returns
        * the resulting DocumentFragment.
        */
       public DocumentFragment endRecording()
  
  
  
  1.1                  
xml-cocoon2/src/java/org/apache/cocoon/transformation/XMLFormTransformer.java
  
  Index: XMLFormTransformer.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.apache.cocoon.transformation;
  
  import java.io.IOException;
  import java.util.Map;
  import java.util.List;
  import java.util.Iterator;
  import java.util.Collection;
  import java.util.SortedSet;
  import java.util.Stack;
  import java.lang.reflect.Array; 
  
  import org.xml.sax.Attributes;
  import org.xml.sax.SAXException;
  import org.xml.sax.helpers.AttributesImpl;
  
  import org.w3c.dom.DocumentFragment;
  
  import org.apache.log.Logger;
  import org.apache.avalon.framework.parameters.Parameters;
  
  import org.apache.cocoon.ProcessingException;
  import org.apache.cocoon.precept.acting.AbstractPreceptorAction;
  import org.apache.cocoon.caching.CacheValidity;
  import org.apache.cocoon.caching.NOPCacheValidity;
  import org.apache.cocoon.environment.ObjectModelHelper;
  import org.apache.cocoon.environment.Request;
  import org.apache.cocoon.environment.Session;
  import org.apache.cocoon.environment.SourceResolver;
  import org.apache.cocoon.transformation.AbstractTransformer;
  import org.apache.cocoon.transformation.AbstractSAXTransformer;
  import org.apache.cocoon.xml.dom.DOMStreamer;
  
  import org.apache.cocoon.components.validation.Violation;
  import org.apache.cocoon.components.xmlform.Form;
  
  /**
   * Transforms a document with XMLForm 
   * elements into a document in the same namespace,
   * but with populated values for the XPath references
   * to the form's model attributes
   *
   * The original code was built by Torsten Curdt as 
   * part of the Preceptor API
   *
   * @author: Ivelin Ivanov <[EMAIL PROTECTED]>, May 2002
   * @author: Michael Ratliff, [EMAIL PROTECTED] <[EMAIL PROTECTED]>, May 2002
   * @author: Torsten Curdt <[EMAIL PROTECTED]>, March 2002
   */
  
  public class XMLFormTransformer extends AbstractSAXTransformer 
  {
  
  
    //implements Cacheable {
  
  
  
    public final static String NS = "http://xml.apache.org/cocoon/xmlform/2002";;
    private final static String NS_PREFIX = "xf";
    public final static Attributes NOATTR = new AttributesImpl();
    private final static String XMLNS_PREFIX = "xmlns";
  
    /** 
     * The main tag in the XMLForm namespace
     * almost all other tags have to appear within the form tag
     * The id attribute refers to a xmlform.Form object 
     * available in the current Request or Session
     *
     * &lt;form id="form-feedback">
     *  &lt;output ref="user/age"/>
     *  &lt;textbox ref="user/name"/>
     * &lt;/form>
     */
    public final static String TAG_FORM = "form";
    public final static String TAG_FORM_ATTR_ID = "id";
  
    /** 
     * the only tag which can be used outside of the form tag
     * with reference to the form id,
     * &lt;output ref="user/age" id="form-feedback"/>
     */
    public final static String TAG_OUTPUT = "output";
    public final static String TAG_OUTPUT_ATTR_FORM = TAG_FORM;
  
    /** 
     * can be used directly under the form tag
     * to enlist all field violations or
     * within a field tag to enlist only the violations for the field.
     * <br>
     * <pre>
     * &lt;form id="form-feedback">
     *  &lt;violations/>
     *  &lt;textbox ref="user/name">
     *    &lt;violations/>
     *  &lt;/textbox>
     * &lt;/form>
     * </pre>
     *
     * When used under the forms tag it is transformed to a set of:
     * <br>
     * &lt;violation ref="user/age">Age must be a positive number 
&lt;/violation>
     * <br>
     * and when used within a field it is transformed to a set of:
     * <br>
     * &lt;violation>Age must be a positive number &lt;/violation>
     * <br>
     * The only difference is that the ref tag is used in the first case,
     * while in the second it is omited.
     *
     */
    public final static String TAG_INSERTVIOLATIONS = "violations";
    
    /** the name of the elements which replace the violations tag */
    public final static String TAG_VIOLATION = "violation";
  
    /** action buttons */
    public final static String TAG_SUBMIT = "submit";
    public final static String TAG_CANCEL = "cancel";
    public final static String TAG_RESET = "reset";
    
    public final static String TAG_CAPTION = "caption";
    public final static String TAG_TEXTBOX = "textbox";
    public final static String TAG_TEXTAREA = "textarea";
    public final static String TAG_PASSWORD = "password";
    public final static String TAG_SELECTBOOLEAN = "selectBoolean";
    public final static String TAG_SELECTONE = "selectOne";
    public final static String TAG_SELECTMANY = "selectMany";
    
    /**
     * grouping tag 
     *
     * <pre>
     *  <group ref="address">
     *   <caption>Shipping Address</caption>
     *     <input ref="line_1">
     *       <caption>Address line 1</caption>
     *     </input>
     *     <input ref="line_2">
     *       <caption>Address line 2</caption>
     *     </input>
     *     <input ref="postcode">
     *       <caption>Postcode</caption>
     *     </input>
     * </group>
     * </pre>
     *   
     *
     */
    public final static String TAG_GROUP = "group";
    
    /** 
     *  repeat tag 
     *
     *  <repeat nodeset="/cart/items/item">
     *    <input ref="." .../><html:br/>
     *  </repeat>
     *
     *
     */
  
    public final static String TAG_REPEAT = "repeat";
  
    
    /** 
     * this attribute is used within the 
     * <code>repeat</code> tag
     * to represent an XPath node set selector from
     * the underlying xmlform model.
     */
    public final static String TAG_REPEAT_ATTR_NODESET = "nodeset";
      
    /**
     * The current fully expanded reference 
     * in the form model.
     *
     */
    private String cannonicalRef = null;
    
    /**
     * Tracks the current repeat tag depth, 
     * when there is one in scope
     */
    private int repeatTagDepth = -1;
  
    /**
     * The nodeset selector string of the 
     * currently processed repeat tag (if any)
     */
    private String nodeset = null;
    
    
    /**
     * The flag annotating if the transformer is
     * working on a repeat tag
     */
    private boolean isRecording = false;
    
    
    /**
     * the ref value of the current field
     * used by the violations tag
     */
    private Stack refStack = null;
    
    /**
     * Tracks the current depth of the XML tree
     */
    private int currentTagDepth = 0;
  
    
    /** 
     * this attribute is used within all field tags
     * to represent an XPath reference to the attribute of 
     * the underlying model.
     */
    public final static String TAG_COMMON_ATTR_REF = "ref";
    
  
    // the current Form being processed
    private Form currentForm;
  
    private Object value_;
  
    
  
      /**
       * Setup the next round.
       * The instance variables are initialised.
       * @param resolver The current SourceResolver
       * @param objectModel The objectModel of the environment.
       * @param src The value of the src attribute in the sitemap.
       * @param par The parameters from the sitemap.
       */
    public void setup(
                        SourceResolver resolver,
                        Map                   objectModel,
                        String                 src,
                        Parameters        par)
      throws ProcessingException,
             SAXException,
             IOException 
      {
        super.setup( resolver, objectModel, src, par );
        if (request == null) 
        {
          getLogger().debug("no request object");
          throw new ProcessingException("no request object");
        }
        
        // set the XMLForm namespace as the one
        // this transformer is interested to work on
        namespaceURI = NS;
  
        // init tracking parameters
        currentForm = null;
        cannonicalRef = "";
        refStack = new Stack();
        currentTagDepth = 0;
        repeatTagDepth = -1;
        isRecording = false;
        nodeset = null;
    }
  
    
      /**
       * Start processing elements of our namespace.
       * This hook is invoked for each sax event with our namespace.
       * @param uri The namespace of the element.
       * @param name The local name of the element.
       * @param raw The qualified name of the element.
       * @param attr The attributes of the element.
       */
      public void startTransformingElement(String uri,
                                           String name,
                                           String raw,
                                           Attributes attributes )
      throws ProcessingException, IOException, SAXException 
      {
        try
        {
          // avoid endless loop for elements in our namespace
          // when outputting the elements themselves
          this.ignoreHooksCount = 1;
  
          if (this.getLogger().isDebugEnabled() == true) 
          {
              this.getLogger().debug("BEGIN startTransformingElement uri=" + 
uri + ", name=" + name + ", raw=" + raw + ", attr=" + attributes + ")");
          }
  
        // top level element in our namespace
        // set an xmlns:xf="XMLForm namespace..." attribute
        // to explicitely define the prefix to namespace binding
        if (currentTagDepth == 0)
        {
          AttributesImpl atts;
          if (attributes == null || attributes.getLength() == 0) {
              atts = new AttributesImpl();
          } else {
              atts = new AttributesImpl(attributes);
          }
          atts.addAttribute( null, NS_PREFIX, XMLNS_PREFIX + ":" + NS_PREFIX, 
"CDATA", NS);
          attributes = atts;
        }
  
        // track the tree depth
        ++currentTagDepth;
  
        // if within a repeat tag, keep recording
        // when recording, nothing is actively processed
        if (isRecording)
        {
          // just record the SAX event
          super.startElement( uri, name, raw, attributes);
        }
         // when a new repeat tag is discovered
         // start recording
        // the repeat will be unrolled after the repeat tag ends
       else if (TAG_REPEAT.equals( name) )
       {
         repeatTagDepth = currentTagDepth;
         isRecording = true;
  
        // get the nodeset selector string
        nodeset = attributes.getValue(TAG_REPEAT_ATTR_NODESET);
  
        if (nodeset == null)
        {
           throw new SAXException( name + " element should provide a '" + 
TAG_REPEAT_ATTR_NODESET + "' attribute" );
        }
         
         // open the repeat tag in the output document
         super.startElement( uri, name, raw, attributes);
         // and start recording its content
         startRecording();
       }
      else // if not a repeat tag
      {
          // if this tag has a "ref" attribute, then
          // add its value to the refStack
          String aref = attributes.getValue( TAG_COMMON_ATTR_REF );
          if ( aref != null ) 
          {
            // put on top of the ref stack the full ref
            // append the new ref to the last stack top if not referencing the 
root
            cannonicalRef = aref.startsWith ("/") ? aref : ( ((Entry) 
refStack.peek()).getValue() + "/" + aref );
            Entry entry = new Entry( new Integer(currentTagDepth), 
cannonicalRef);
            refStack.push( entry );
            
            // replace the ref attribute's value(path) with its full cannonical 
form
            AttributesImpl atts = new AttributesImpl( attributes );
            int refIdx = atts.getIndex ( TAG_COMMON_ATTR_REF );
            atts.setValue ( refIdx, cannonicalRef );
            attributes = atts;          
          }
  
          // match tag name and apply transformation logic 
          if (TAG_FORM.equals(name)) 
          {
            startElementForm( uri, name, raw, attributes ); 
          }
          else if ( TAG_OUTPUT.equals(name) ) 
          {
            startElementOutput( uri, name, raw, attributes );
          } // end if TAG_OUTPUT
          else if ( TAG_CAPTION.equals( name ) ) 
          { 
            super.startElement( uri, name, raw, attributes);
            this.ignoreHooksCount = 0;
          }
          // if the currentForm is still not available
          // then we can't process nested form tags
          else if (currentForm != null)
          {
            if (TAG_INSERTVIOLATIONS.equals(name)) 
            {
              startElementViolations( uri, name, raw, attributes );
            } // end if TAG_INSERTVIOLATIONS
  
            else if ( 
                      TAG_TEXTBOX.equals(name) ||
                      TAG_TEXTAREA.equals(name) ||
                      TAG_PASSWORD.equals(name) ||
                      TAG_SELECTBOOLEAN.equals(name) ||
                      TAG_SELECTONE.equals(name)) 
            {
                startElementSimpleField( uri, name, raw, attributes, 
currentForm );
            }
            else if (TAG_SELECTMANY.equals(name)) 
            {
              startElementSimpleField( uri, name, raw, attributes, currentForm 
);
            }
            else if (
              TAG_SUBMIT.equals(name) ||
              TAG_CANCEL.equals(name) ||
              TAG_RESET.equals(name) ) 
            {
              super.startElement(uri, name, raw, attributes);
            }
            else 
            {
                getLogger().error("unknown element [" + String.valueOf(name) + 
"]");
                super.startElement(uri, name, raw, attributes);
            }
          }
        } // end else (not a repeat tag)
      }
      finally 
      {
        // reset ignore counter
        this.ignoreHooksCount = 0;
      }
  
      
      if (this.getLogger().isDebugEnabled() == true) 
      {
            this.getLogger().debug("END startTransformingElement");
      }
    } // end of startTransformingElement
  
  
    protected void startElementForm(String uri, String name, String raw, 
Attributes attributes) throws SAXException 
    {
      String id = attributes.getValue(TAG_FORM_ATTR_ID);
  
      if ( currentForm != null )
      {
        String error = "Form nodes should not be nested ! Current form [id=" + 
currentForm.getId() + "], nested form [id=" + String.valueOf(id) + "]";
        getLogger().error( error );
        throw new SAXException( error );
      }
  
      super.startElement(uri, name, raw, attributes);
  
      // load up the referenced form 
      currentForm =  Form.lookup( objectModel, id ); 
  
      // if the form wasn't found, we're in trouble
      if (currentForm == null)
      {
        getLogger().error("could not find form [id=" + String.valueOf(id) + 
"]");
      }
    } // end of startElementForm
  
    
    
    protected void startElementViolations(String uri, String name, String raw, 
Attributes attributes) throws SAXException 
    {
        SortedSet violations = currentForm.getViolations();
  
        // if there are no violations, there is nothing to show
        if (violations == null)  return;
  
        // if we're immediately under the form tag
        // and parent "ref" attribute is not available
        if ( refStack.isEmpty () ) 
        {
          for (Iterator it = violations.iterator(); it.hasNext();) 
          {
            Violation violation = (Violation) it.next();
  
            // render <violation> tag
  
            // set the ref attribute
            AttributesImpl atts;
            if (attributes == null || attributes.getLength() == 0) {
                atts = new AttributesImpl();
            } else {
                atts = new AttributesImpl(attributes);
            }
            // atts.addAttribute( NS, TAG_COMMON_ATTR_REF, NS_PREFIX + ":" + 
TAG_COMMON_ATTR_REF, "CDATA", violation.getPath());
            atts.addAttribute( null, TAG_COMMON_ATTR_REF, TAG_COMMON_ATTR_REF, 
"CDATA", violation.getPath());
  
            // now start the element
            super.startElement(uri, TAG_VIOLATION, NS_PREFIX + ":" + 
TAG_VIOLATION, atts);
  
            // set message 
            String vm = violation.getMessage();
            super.characters( vm.toCharArray(), 0, vm.length());
  
            super.endElement(uri, TAG_VIOLATION, NS_PREFIX + ":" + 
TAG_VIOLATION);
          }
        } // end if (currentRef_ == null) 
        else 
        {
          Entry entry = (Entry) refStack.peek ();
          String currentRef = (String) entry.getValue ();
          Violation v = new Violation();
          v.setPath( currentRef );
          Collection restViolations = violations.tailSet ( v );
          Iterator rviter = restViolations.iterator ();
          while ( rviter.hasNext () )
          {
            Violation nextViolation = (Violation) rviter.next ();
            // we're only interested in violations
            // with matching reference
            if ( !currentRef.equals (nextViolation.getPath () ) ) break;
            
            // render <violation> tag
            super.startElement(uri, TAG_VIOLATION, NS_PREFIX + ":" + 
TAG_VIOLATION, attributes );
            // set message 
            String vm = nextViolation.getMessage();
            super.characters( vm.toCharArray(), 0, vm.length());
            super.endElement(uri, TAG_VIOLATION, NS_PREFIX + ":" + 
TAG_VIOLATION);
          }
        }
    } // end of startElementViolations
  
    
  
    /**
     * Since the ouput tag is the only one which can be used
     * outside of a form tag, it needs some special treatment
     *
     */
    protected void startElementOutput(String uri, String name, String raw, 
Attributes attributes) 
      throws SAXException
    {
  
          // we will either use the locally referenced form id 
          // or the global id. At least one of the two must be available
          Form form = null;
          String formAttr = attributes.getValue( TAG_OUTPUT_ATTR_FORM );
          if (formAttr == null) 
          {
            if (currentForm == null)
            {
              throw new SAXException( "When used outside of a form tag, the 
output tag requires an '" + TAG_OUTPUT_ATTR_FORM + "' attribute" );
            }
            form = currentForm;
          }
          else
          {
            form = Form.lookup( objectModel, formAttr );
          }
          
          startElementSimpleField( uri, name, raw, attributes, form );
  
    } // end of startElementOutput
    
  
    
    protected void startElementSimpleField(String uri, String name, String raw, 
Attributes attributes, Form form) 
      throws SAXException
    {
        String ref = attributes.getValue(TAG_COMMON_ATTR_REF);
  
        if (ref == null)
        {
           throw new SAXException( name + " element should provide a '" + 
TAG_COMMON_ATTR_REF + "' attribute" );
        }
        
        if ( form == null)
        {
           throw new SAXException( name + " element should be either nested 
within a form tag or provide a form attribute" );
        }
  
        getLogger().debug("[" + String.valueOf( name ) + "] getting value from 
form [id=" + form.getId() + ", ref=" + String.valueOf(ref) + "]");
  
        value_ = form.getValue( ref );
  
        // we will only forward the SAX event once we know
        // that the value of the tag is available
        super.startElement(uri, name, raw, attributes);
  
        getLogger().debug("Value of form [id=" + form.getId() + ", ref=" + 
String.valueOf(ref) + "] = [" + value_ + "]") ;
  
        // render the value subelement(s)
        if (value_ instanceof Collection)
        {
                Iterator i=((Collection) value_).iterator();
                while (i.hasNext())
                {
            renderValueSubElement( i.next() );
                }
        }
        else if ( value_ != null && value_.getClass().isArray () )
        {
          int len = Array.getLength ( value_ );
          for (int i = 0; i < len; i++ )
          {
            renderValueSubElement( Array.get ( value_, i ) );
          }
        }
        else
        {
          renderValueSubElement( value_ );
          }
    } // end of startElementSimpleField
    
  
    /**
     * Outputs a <xf:value> element.
     * Used when transforming XMLForm elements
     * with reference to the model
     *
     * @param vobj provides the text content 
     * within the <xf:value> element
     *  
     */
    protected void renderValueSubElement( Object vobj )
      throws SAXException
    {
      super.startElement( NS, "value", NS_PREFIX + ":" + "value", NOATTR);
        if (vobj != null) 
        {
          String v = String.valueOf( vobj );
          super.characters(v.toCharArray(),0,v.length());
        }
        super.endElement( NS, "value", NS_PREFIX + ":" + "value" );     
    }
    
      /**
       * Start processing elements of our namespace.
       * This hook is invoked for each sax event with our namespace.
       * @param uri The namespace of the element.
       * @param name The local name of the element.
       * @param raw The qualified name of the element.
       */
      public void endTransformingElement(
           String uri,
           String name,
           String raw)
      throws ProcessingException, IOException, SAXException 
    {
      if (this.getLogger().isDebugEnabled() == true) 
      {
          this.getLogger().debug("BEGIN endTransformingElement uri=" + uri + ", 
name=" + name + ", raw=" + raw + ")");
      }
              
  
      try
      {
          // avoid endless loop for elements in our namespace
          this.ignoreHooksCount = 1;
  
          
       // when the end of an active repeat tag is reached
       // stop recording, unroll the repeat tag content 
       // for each node in the node set,
       // then close the repeat tag
       if (TAG_REPEAT.equals( name) && (repeatTagDepth == currentTagDepth))
       {
         isRecording = false;
         DocumentFragment docFragment = endRecording();
         unrollRepeatTag( docFragment );
         nodeset = null;
         // close the repeat tag
         super.endElement(uri, name, raw);
       }
        // if within a repeat tag, keep recording
        // when recording, nothing is actively processed
       else  if (isRecording)
       {
          // just record the SAX event
          super.endElement(uri, name, raw);
       }
      else // if not a repeat tag
      {
  
          // keep the ref stack in synch with the tree navigation
          if ( !refStack.isEmpty () )
          {
            Entry entry = (Entry) refStack.peek();
            Integer refDepth = (Integer) entry.getKey ();
            if ( currentTagDepth <= refDepth.intValue () ) 
            {
              refStack.pop();
              cannonicalRef = refStack.isEmpty () ? "" : (String)( (Entry) 
(refStack.peek ()) ).getValue();
            }
          }
  
  
          if (TAG_INSERTVIOLATIONS.equals(name)) 
          {
            // all violations were rendered completely in the startElement 
method
          }
          else if (TAG_FORM.equals(name)) 
          {
            // nullify currentForm since we're getting out of its scope
            currentForm = null;
            super.endElement(uri, name, raw);
          }
          else if (TAG_OUTPUT.equals(name) ||
                  TAG_TEXTBOX.equals(name) ||
                  TAG_PASSWORD.equals(name) ||
                  TAG_SELECTBOOLEAN.equals(name) ||
                  TAG_SELECTONE.equals(name) ) 
          {
            super.endElement(uri, name, raw);
          }
          else if (TAG_SELECTMANY.equals(name)) 
          {
            super.endElement(uri, name, raw);
          }
          else if (TAG_SUBMIT.equals(name)) 
          {
            super.endElement(uri, name, raw);
          } 
          else if ( TAG_CAPTION.equals( name ) ) 
          { 
            super.endElement(uri, name, raw);
          }
          else 
          {
            getLogger().error("unknown element [" + String.valueOf(name) + "]");
            super.endElement(uri, name, raw);
          }
        } // else (not in a recording tag)
      }
      finally
      {
        // reset ignore hooks counter
        this.ignoreHooksCount = 0;
  
        // track the tree depth
        --currentTagDepth;
      }
      
      if (this.getLogger().isDebugEnabled() == true) 
      {
        this.getLogger().debug("END endTransformingElement");
      }
      
    } // end of endTransformingElement
  
      
    /**
     * Unroll the repeat tag.
     * For each node in the repeat tag's nodeset selector result,
     * render a <code>group</code> tag with a <code>ref</code> 
     * attribute which points to the location of the current node
     * in the nodeset. Within each <code>group</code> tag,
     * output the content of the repeat tag,
     * by resolving all form model references within nested xmlform tags, 
     * relative to the <code>ref</code> attribute of the <code>group</code> 
element.
     *
     * @param docFragment the content of the repeat tag
     * @param nodeset the nodeset selector string
     */
    protected void unrollRepeatTag( DocumentFragment docFragment )
      throws SAXException
    {
      int oldIgnoreHooksCount = ignoreHooksCount;
      try
      {
        // reset ignore hooks counter
        this.ignoreHooksCount = 0;
  
        Collection locations = currentForm.locate( nodeset );
        Iterator iter = locations.iterator();
        // iterate over each node in the nodeset
        while ( iter.hasNext() )
        {
          String nextNodeLocation = (String) iter.next ();
  
          // set the ref attribute to point to the current node
          AttributesImpl atts = new AttributesImpl();
          atts.addAttribute( null, TAG_COMMON_ATTR_REF, TAG_COMMON_ATTR_REF, 
"CDATA", nextNodeLocation);
  
          super.startElement(NS, TAG_GROUP, NS_PREFIX + ":" + TAG_GROUP, atts);
          if (value_ != null) 
          {
            // stream back the recorder repeat content
            DOMStreamer streamer = new DOMStreamer( this, this);
            streamer.stream( docFragment );
          }
  
          super.endElement( NS, TAG_GROUP, NS_PREFIX + ":" + TAG_GROUP );
  
        }
      }
      finally
      {
        ignoreHooksCount = oldIgnoreHooksCount;
      }
    } // unrollRepeatTag
      
      
      
  
  
      /**
       * refStack entry.
       */
    private static class Entry implements Map.Entry {
        Object key;
        Object value;
  
        Entry(Object key, Object value) {
            this.key = key;
            this.value = value;
        }
  
        // Map.Entry Ops 
  
        public Object getKey() {
            return key;
        }
  
        public Object getValue() {
            return value;
        }
  
        public Object setValue(Object value) {
            Object oldValue = this.value;
            this.value = value;
            return oldValue;
        }
  
        public boolean equals(Object o) {
            if (!(o instanceof Map.Entry))
                return false;
            Map.Entry e = (Map.Entry)o;
  
            return (key==null ? e.getKey()==null : key.equals(e.getKey())) &&
               (value==null ? e.getValue()==null : value.equals(e.getValue()));
        }
  
        public int hashCode() {
            return getKey().hashCode () ^ (value==null ? 0 : value.hashCode());
        }
  
        public String toString() {
            return key+"="+value;
        }
  }
  
  }
  
  
  
  1.2       +1 -1      xml-cocoon2/src/webapp/cocoon.xconf.moved
  
  Index: cocoon.xconf.moved
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/cocoon.xconf.moved,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- cocoon.xconf.moved        21 Mar 2002 08:35:27 -0000      1.1
  +++ cocoon.xconf.moved        20 May 2002 06:53:15 -0000      1.2
  @@ -8,4 +8,4 @@
   
   We apologize for the inconvenience.
   
  -Thank you.
  \ No newline at end of file
  +Thank you.
  
  
  
  1.52      +172 -193  xml-cocoon2/src/webapp/sitemap.xmap
  
  Index: sitemap.xmap
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/sitemap.xmap,v
  retrieving revision 1.51
  retrieving revision 1.52
  diff -u -r1.51 -r1.52
  --- sitemap.xmap      13 May 2002 18:12:18 -0000      1.51
  +++ sitemap.xmap      20 May 2002 06:53:15 -0000      1.52
  @@ -1,5 +1,4 @@
  -<?xml version="1.0"?>
  -
  +<?xml version="1.0" encoding="UTF-8"?>
   <map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0";>
   <!-- 
      This is the 'heart' of Cocoon. The sitemap maps URI space to 
  @@ -53,37 +52,29 @@
   
   -->
     <map:generators default="file">
  -    <map:generator name="file" 
src="org.apache.cocoon.generation.FileGenerator"
  -                        label="content,data"
  -                        logger="sitemap.generator.file"
  -                        pool-max="32" pool-min="8" pool-grow="4"/>
  -
  -    <map:generator name="serverpages" 
src="org.apache.cocoon.generation.ServerPagesGenerator"
  -                        label="content,data"
  -                        logger="sitemap.generator.serverpages"
  -                        pool-max="32" pool-min="4" pool-grow="2"/>
  +    <map:generator label="content,data" logger="sitemap.generator.file" 
name="file" pool-grow="4" pool-max="32" pool-min="8" 
src="org.apache.cocoon.generation.FileGenerator"/>
  +
  +    <map:generator label="content,data" 
logger="sitemap.generator.serverpages" name="serverpages" pool-grow="2" 
pool-max="32" pool-min="4" 
src="org.apache.cocoon.generation.ServerPagesGenerator"/>
       
  -    <map:generator name="directory" 
src="org.apache.cocoon.generation.DirectoryGenerator"
  -                        logger="sitemap.generator.directory"
  -                        label="content,data"
  -                        pool-max="16" pool-min="2" pool-grow="2"/>
  -
  -    <map:generator name="request" 
src="org.apache.cocoon.generation.RequestGenerator"
  -                        logger="sitemap.generator.request"
  -                        label="data"
  -                        pool-max="16" pool-min="2" pool-grow="2"/>
  -
  -    <map:generator name="status" 
src="org.apache.cocoon.generation.StatusGenerator"
  -                        logger="sitemap.generator.status"
  -                        label="data"
  -                        pool-max="16" pool-min="2" pool-grow="2"/>
  -
  -   <map:generator name="imagedirectory" 
logger="sitemap.generator.imagedirectory" label="content,data"
  -                  
src="org.apache.cocoon.generation.ImageDirectoryGenerator"/>
  -
  -   <map:generator name="extractor"      logger="sitemap.generator.extractor" 
     label="data"
  -                  
src="org.apache.cocoon.generation.FragmentExtractorGenerator"/>
  -  </map:generators>
  +    <map:generator label="content,data" logger="sitemap.generator.directory" 
name="directory" pool-grow="2" pool-max="16" pool-min="2" 
src="org.apache.cocoon.generation.DirectoryGenerator"/>
  +
  +    <map:generator label="data" logger="sitemap.generator.request" 
name="request" pool-grow="2" pool-max="16" pool-min="2" 
src="org.apache.cocoon.generation.RequestGenerator"/>
  +
  +    <map:generator label="data" logger="sitemap.generator.status" 
name="status" pool-grow="2" pool-max="16" pool-min="2" 
src="org.apache.cocoon.generation.StatusGenerator"/>
  +
  +   <map:generator label="content,data" 
logger="sitemap.generator.imagedirectory" name="imagedirectory" 
src="org.apache.cocoon.generation.ImageDirectoryGenerator"/>
  +
  +   <map:generator label="data" logger="sitemap.generator.extractor" 
name="extractor" src="org.apache.cocoon.generation.FragmentExtractorGenerator"/>
  +  
  +    <map:generator label="content,data" name="html" 
src="org.apache.cocoon.generation.HTMLGenerator"/>
  +
  +    <map:generator label="content,data" name="jsp" 
src="org.apache.cocoon.generation.JspGenerator"/>
  +    <map:generator label="content,data" name="stream" 
src="org.apache.cocoon.generation.StreamGenerator"/>
  +
  +    <map:generator label="content,data" name="script" 
src="org.apache.cocoon.generation.ScriptGenerator"/>
  +
  +    <map:generator label="content,data" name="velocity" 
src="org.apache.cocoon.generation.VelocityGenerator"/>
  +</map:generators>
   
   <!--
     Transformers can be placed inside the pipeline between the generator
  @@ -94,9 +85,7 @@
     configuration.
   -->
     <map:transformers default="xslt">
  -    <map:transformer name="xslt" 
src="org.apache.cocoon.transformation.TraxTransformer"
  -                        logger="sitemap.transformer.xslt"
  -                        pool-max="32" pool-min="8" pool-grow="2">
  +    <map:transformer logger="sitemap.transformer.xslt" name="xslt" 
pool-grow="2" pool-max="32" pool-min="8" 
src="org.apache.cocoon.transformation.TraxTransformer">
         <use-request-parameters>false</use-request-parameters>
         <use-browser-capabilities-db>false</use-browser-capabilities-db>
         <use-deli>false</use-deli>
  @@ -114,36 +103,26 @@
         
<transformer-factory>org.apache.xalan.xsltc.trax.TransformerFactoryImpl</transformer-factory>
       </map:transformer-->
   
  -    <map:transformer name="log" 
src="org.apache.cocoon.transformation.LogTransformer"
  -                        logger="sitemap.transformer.log"
  -                        pool-max="16" pool-min="2" pool-grow="2"/>
  +    <map:transformer logger="sitemap.transformer.log" name="log" 
pool-grow="2" pool-max="16" pool-min="2" 
src="org.apache.cocoon.transformation.LogTransformer"/>
   
  -    <map:transformer name="xinclude" 
src="org.apache.cocoon.transformation.XIncludeTransformer"
  -                        logger="sitemap.transformer.xinclude"
  -                        pool-max="16" pool-min="2" pool-grow="2"/>
  +    <map:transformer logger="sitemap.transformer.xinclude" name="xinclude" 
pool-grow="2" pool-max="16" pool-min="2" 
src="org.apache.cocoon.transformation.XIncludeTransformer"/>
   
  -    <map:transformer name="cinclude" 
src="org.apache.cocoon.transformation.CIncludeTransformer"
  -                        logger="sitemap.transformer.cinclude"
  -                        pool-max="16" pool-min="2" pool-grow="2"/>
  +    <map:transformer logger="sitemap.transformer.cinclude" name="cinclude" 
pool-grow="2" pool-max="16" pool-min="2" 
src="org.apache.cocoon.transformation.CIncludeTransformer"/>
   
  -   <map:transformer name="sql"             logger="sitemap.transformer.sql"
  -                    src="org.apache.cocoon.transformation.SQLTransformer"/>
  +   <map:transformer logger="sitemap.transformer.sql" name="sql" 
src="org.apache.cocoon.transformation.SQLTransformer"/>
   
  -   <map:transformer name="extractor"       
logger="sitemap.transformer.extractor"
  -                    
src="org.apache.cocoon.transformation.FragmentExtractorTransformer"/>
  +   <map:transformer logger="sitemap.transformer.extractor" name="extractor" 
src="org.apache.cocoon.transformation.FragmentExtractorTransformer"/>
   
  -   <map:transformer name="filter"          
logger="sitemap.transformer.filter"
  -                    
src="org.apache.cocoon.transformation.FilterTransformer"/>
  +   <map:transformer logger="sitemap.transformer.filter" name="filter" 
src="org.apache.cocoon.transformation.FilterTransformer"/>
   
  -   <map:transformer name="writeDOMsession" 
logger="sitemap.transformer.writeDOMsession"
  -                    
src="org.apache.cocoon.transformation.WriteDOMSessionTransformer"/>
  +   <map:transformer logger="sitemap.transformer.writeDOMsession" 
name="writeDOMsession" 
src="org.apache.cocoon.transformation.WriteDOMSessionTransformer"/>
   
  -   <map:transformer name="readDOMsession"  
logger="sitemap.transformer.readDOMsession"
  -                    
src="org.apache.cocoon.transformation.ReadDOMSessionTransformer"/>
  -   <map:transformer name="encodeURL"       
logger="sitemap.transformer.encodeURL"
  -                    
src="org.apache.cocoon.transformation.EncodeURLTransformer"/>
  +   <map:transformer logger="sitemap.transformer.readDOMsession" 
name="readDOMsession" 
src="org.apache.cocoon.transformation.ReadDOMSessionTransformer"/>
  +   <map:transformer logger="sitemap.transformer.encodeURL" name="encodeURL" 
src="org.apache.cocoon.transformation.EncodeURLTransformer"/>
   
  -  </map:transformers>
  +  
  +    <map:transformer name="xt" 
src="org.apache.cocoon.transformation.XTTransformer"/>
  +</map:transformers>
   
   <!--
     Readers are an exception to the above rule that a pipline need to
  @@ -154,58 +133,55 @@
     reader. They are useful for delivering binary content like images.
   -->
     <map:readers default="resource">
  -    <map:reader name="resource" 
src="org.apache.cocoon.reading.ResourceReader"
  -                        logger="sitemap.reader.resource"
  -                        pool-max="32"/>
  -  </map:readers>
  +    <map:reader logger="sitemap.reader.resource" name="resource" 
pool-max="32" src="org.apache.cocoon.reading.ResourceReader"/>
  +  
  +    <map:reader name="jsp" src="org.apache.cocoon.reading.JSPReader"/>
  +</map:readers>
   
   <!--
     Serializers consume SAX events and produce a character stream. Every
     pipeline needs to be terminated by a serializer.
   -->
     <map:serializers default="html">
  -    <map:serializer name="links" 
src="org.apache.cocoon.serialization.LinkSerializer"
  -                        logger="sitemap.serializer.links"/>
  +    <map:serializer logger="sitemap.serializer.links" name="links" 
src="org.apache.cocoon.serialization.LinkSerializer"/>
  +
  +    <map:serializer logger="sitemap.serializer.xml" mime-type="text/xml" 
name="xml" src="org.apache.cocoon.serialization.XMLSerializer"/>
   
  -    <map:serializer name="xml" 
src="org.apache.cocoon.serialization.XMLSerializer"
  -                        mime-type="text/xml"
  -                        logger="sitemap.serializer.xml"/>
  -
  -    <map:serializer name="html" 
src="org.apache.cocoon.serialization.HTMLSerializer"
  -                        mime-type="text/html"
  -                        logger="sitemap.serializer.html"
  -                        pool-max="32" pool-min="4" pool-grow="4">
  +    <map:serializer logger="sitemap.serializer.html" mime-type="text/html" 
name="html" pool-grow="4" pool-max="32" pool-min="4" 
src="org.apache.cocoon.serialization.HTMLSerializer">
         <buffer-size>1024</buffer-size>
       </map:serializer>
   
  -   <map:serializer name="vrml"   mime-type="model/vrml"       
logger="sitemap.serializer.vrml"
  -                   src="org.apache.cocoon.serialization.TextSerializer"/>
  +   <map:serializer logger="sitemap.serializer.vrml" mime-type="model/vrml" 
name="vrml" src="org.apache.cocoon.serialization.TextSerializer"/>
   
  -   <map:serializer name="wml"    mime-type="text/vnd.wap.wml" 
logger="sitemap.serializer.wml"
  -                   src="org.apache.cocoon.serialization.XMLSerializer">
  +   <map:serializer logger="sitemap.serializer.wml" 
mime-type="text/vnd.wap.wml" name="wml" 
src="org.apache.cocoon.serialization.XMLSerializer">
       <doctype-public>-//WAPFORUM//DTD WML 1.1//EN</doctype-public>
       <doctype-system>http://www.wapforum.org/DTD/wml_1.1.xml</doctype-system>
       <encoding>ASCII</encoding>
       <omit-xml-declaration>yes</omit-xml-declaration>
      </map:serializer>
   
  -   <map:serializer name="svgxml" mime-type="image/svg-xml"    
logger="sitemap.serializer.svgxml"
  -                   src="org.apache.cocoon.serialization.XMLSerializer">
  +   <map:serializer logger="sitemap.serializer.svgxml" 
mime-type="image/svg-xml" name="svgxml" 
src="org.apache.cocoon.serialization.XMLSerializer">
       <doctype-public>-//W3C//DTD SVG 20000303 Stylable//EN</doctype-public>
       
<doctype-system>http://www.w3.org/TR/2000/03/WD-SVG-20000303/</doctype-system>
      </map:serializer>
   
  -   <map:serializer name="xhtml" mime-type="text/html"         
logger="sitemap.serializer.xhtml"
  -                   src="org.apache.cocoon.serialization.XMLSerializer"
  -                   pool-max="64" pool-min="2" pool-grow="2">
  +   <map:serializer logger="sitemap.serializer.xhtml" mime-type="text/html" 
name="xhtml" pool-grow="2" pool-max="64" pool-min="2" 
src="org.apache.cocoon.serialization.XMLSerializer">
        <doctype-public>-//W3C//DTD XHTML 1.0 Strict//EN</doctype-public>
        
<doctype-system>http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</doctype-system>
        <encoding>UTF-8</encoding>
      </map:serializer>
   
  -   <map:serializer name="text"   mime-type="text/text"        
logger="sitemap.serializer.text"
  -                   src="org.apache.cocoon.serialization.TextSerializer"/>
  -  </map:serializers>
  +   <map:serializer logger="sitemap.serializer.text" mime-type="text/text" 
name="text" src="org.apache.cocoon.serialization.TextSerializer"/>
  +  
  +    <map:serializer mime-type="application/pdf" name="fo2pdf" 
src="org.apache.cocoon.serialization.FOPSerializer"/>
  +    <map:serializer mime-type="application/postscript" name="fo2ps" 
src="org.apache.cocoon.serialization.FOPSerializer"/>
  +    <map:serializer mime-type="vnd.hp-PCL" name="fo2pcl" 
src="org.apache.cocoon.serialization.FOPSerializer"/>
  +
  +    <map:serializer mime-type="image/jpeg" name="svg2jpeg" 
src="org.apache.cocoon.serialization.SVGSerializer">
  +      <parameter name="quality" type="float" value="0.9"/>
  +    </map:serializer>
  +    <map:serializer mime-type="image/png" name="svg2png" 
src="org.apache.cocoon.serialization.SVGSerializer"/>
  +</map:serializers>
   
   <!--
     Matchers are executed during pipeline setup. They decide if a
  @@ -220,35 +196,26 @@
     during pipeline setup.
   -->
     <map:matchers default="wildcard">
  -    <map:matcher name="wildcard" 
src="org.apache.cocoon.matching.WildcardURIMatcher"
  -                        logger="sitemap.matcher.wildcard"/>
  +    <map:matcher logger="sitemap.matcher.wildcard" name="wildcard" 
src="org.apache.cocoon.matching.WildcardURIMatcher"/>
   
  -    <map:matcher name="regexp" 
src="org.apache.cocoon.matching.RegexpURIMatcher"
  -                        logger="sitemap.matcher.regexp"/>
  -   <map:matcher name="request-parameter" 
logger="sitemap.matcher.request-parameter"
  -                src="org.apache.cocoon.matching.RequestParameterMatcher"/>
  +    <map:matcher logger="sitemap.matcher.regexp" name="regexp" 
src="org.apache.cocoon.matching.RegexpURIMatcher"/>
  +   <map:matcher logger="sitemap.matcher.request-parameter" 
name="request-parameter" 
src="org.apache.cocoon.matching.RequestParameterMatcher"/>
   
  -   <map:matcher name="cookie" logger="sitemap.matcher.cookie"
  -                src="org.apache.cocoon.matching.CookieMatcher"/>
  +   <map:matcher logger="sitemap.matcher.cookie" name="cookie" 
src="org.apache.cocoon.matching.CookieMatcher"/>
   
  -   <map:matcher name="header" logger="sitemap.matcher.header"
  -                src="org.apache.cocoon.matching.HeaderMatcher"/>
  +   <map:matcher logger="sitemap.matcher.header" name="header" 
src="org.apache.cocoon.matching.HeaderMatcher"/>
   
  -   <map:matcher name="parameter" logger="sitemap.matcher.parameter"
  -                src="org.apache.cocoon.matching.ParameterMatcher"/>
  +   <map:matcher logger="sitemap.matcher.parameter" name="parameter" 
src="org.apache.cocoon.matching.ParameterMatcher"/>
   
  -   <map:matcher name="sessionstate"  logger="sitemap.matcher.sessionstate"
  -                
src="org.apache.cocoon.matching.WildcardSessionAttributeMatcher">
  +   <map:matcher logger="sitemap.matcher.sessionstate" name="sessionstate" 
src="org.apache.cocoon.matching.WildcardSessionAttributeMatcher">
         <attribute-name>org.apache.cocoon.SessionState</attribute-name>
      </map:matcher>
   
  -   <map:matcher name="next-page"     logger="sitemap.matcher.next-page"
  -                
src="org.apache.cocoon.matching.WildcardRequestParameterMatcher">
  +   <map:matcher logger="sitemap.matcher.next-page" name="next-page" 
src="org.apache.cocoon.matching.WildcardRequestParameterMatcher">
         <parameter-name>next-state</parameter-name>
      </map:matcher>
   
  -   <map:matcher name="referer-match" logger="sitemap.matcher.referer-match"
  -                src="org.apache.cocoon.matching.WildcardHeaderMatcher">
  +   <map:matcher logger="sitemap.matcher.referer-match" name="referer-match" 
src="org.apache.cocoon.matching.WildcardHeaderMatcher">
         <header-name>referer</header-name>
      </map:matcher>
     </map:matchers>
  @@ -263,8 +230,7 @@
     during pipeline setup.
   -->
     <map:selectors default="browser">
  -   <map:selector name="browser" logger="sitemap.selector.browser"
  -                 src="org.apache.cocoon.selection.BrowserSelector">
  +   <map:selector logger="sitemap.selector.browser" name="browser" 
src="org.apache.cocoon.selection.BrowserSelector">
       <!-- # NOTE: The appearance indicates the search order. This is very 
important since
            #       some words may be found in more than one browser 
description. (MSIE is
            #       presented as "Mozilla/4.0 (Compatible; MSIE 4.01; ...")
  @@ -285,34 +251,28 @@
       <browser name="netscape" useragent="Mozilla"/>
      </map:selector>
   
  -   <map:selector name="request-parameter" 
logger="sitemap.selector.request-parameter"
  -                 src="org.apache.cocoon.selection.RequestParameterSelector">
  +   <map:selector logger="sitemap.selector.request-parameter" 
name="request-parameter" 
src="org.apache.cocoon.selection.RequestParameterSelector">
       <!-- Define now which request parameter to use; or do it later,
            when using this selector, via "parameter-name" parameter.
       <parameter-name>myparam</parameter-name> 
       -->
      </map:selector>
   
  -   <map:selector name="request-attribute" 
logger="sitemap.selector.request-attribute"
  -                 src="org.apache.cocoon.selection.RequestAttributeSelector">
  +   <map:selector logger="sitemap.selector.request-attribute" 
name="request-attribute" 
src="org.apache.cocoon.selection.RequestAttributeSelector">
       <!-- <attribute-name>myparam</attribute-name> -->
      </map:selector>
   
  -   <map:selector name="session-attribute" 
logger="sitemap.selector.session-attribute"
  -                 src="org.apache.cocoon.selection.SessionAttributeSelector">
  +   <map:selector logger="sitemap.selector.session-attribute" 
name="session-attribute" 
src="org.apache.cocoon.selection.SessionAttributeSelector">
       <!-- <attribute-name>myparam</attribute-name> -->
      </map:selector>
   
  -   <map:selector name="parameter" logger="sitemap.selector.parameter"
  -                 src="org.apache.cocoon.selection.ParameterSelector"/>
  +   <map:selector logger="sitemap.selector.parameter" name="parameter" 
src="org.apache.cocoon.selection.ParameterSelector"/>
   
  -   <map:selector name="header" logger="sitemap.selector.header"
  -                 src="org.apache.cocoon.selection.HeaderSelector">
  +   <map:selector logger="sitemap.selector.header" name="header" 
src="org.apache.cocoon.selection.HeaderSelector">
       <!-- <header-name>myparam</header-name> -->
      </map:selector>
   
  -   <map:selector name="host" logger="sitemap.selector.host"
  -                 src="org.apache.cocoon.selection.HostSelector"/>
  +   <map:selector logger="sitemap.selector.host" name="host" 
src="org.apache.cocoon.selection.HostSelector"/>
     </map:selectors>
   
   <!--
  @@ -328,35 +288,26 @@
     during pipeline setup.
   -->
     <map:actions>
  -    <map:action name="add-employee" 
src="org.apache.cocoon.acting.DatabaseAddAction"
  -                        logger="sitemap.action.add-employee"/>
  +    <map:action logger="sitemap.action.add-employee" name="add-employee" 
src="org.apache.cocoon.acting.DatabaseAddAction"/>
   
  -    <map:action name="del-employee" 
src="org.apache.cocoon.acting.DatabaseDeleteAction"
  -                        logger="sitemap.action.del-employee"/>
  +    <map:action logger="sitemap.action.del-employee" name="del-employee" 
src="org.apache.cocoon.acting.DatabaseDeleteAction"/>
   
  -    <map:action name="upd-employee" 
src="org.apache.cocoon.acting.DatabaseUpdateAction"
  -                        logger="sitemap.action.upd-employee"/>
  +    <map:action logger="sitemap.action.upd-employee" name="upd-employee" 
src="org.apache.cocoon.acting.DatabaseUpdateAction"/>
   
      <!-- LangSelect action is deprecated. Use LocaleAction instead -->
      <!-- Locale Action is moved to /samples/i18n/sitemap.xmap -->
   
  -   <map:action name="request"         logger="sitemap.action.request"
  -               src="org.apache.cocoon.acting.RequestParamAction"/>
  +   <map:action logger="sitemap.action.request" name="request" 
src="org.apache.cocoon.acting.RequestParamAction"/>
   
  -   <map:action name="form-validator"  logger="sitemap.action.form-validator"
  -               src="org.apache.cocoon.acting.FormValidatorAction"/>
  +   <map:action logger="sitemap.action.form-validator" name="form-validator" 
src="org.apache.cocoon.acting.FormValidatorAction"/>
   
  -   <map:action name="session-state"   logger="sitemap.action.session-state"
  -               src="org.apache.cocoon.acting.SessionStateAction"/>
  +   <map:action logger="sitemap.action.session-state" name="session-state" 
src="org.apache.cocoon.acting.SessionStateAction"/>
   
  -   <map:action name="session-isvalid" logger="sitemap.action.session-isvalid"
  -               src="org.apache.cocoon.acting.SessionIsValidAction"/>
  +   <map:action logger="sitemap.action.session-isvalid" 
name="session-isvalid" src="org.apache.cocoon.acting.SessionIsValidAction"/>
   
  -   <map:action name="resource-exists" logger="sitemap.action.resource-exists"
  -               src="org.apache.cocoon.acting.ResourceExistsAction"/>
  +   <map:action logger="sitemap.action.resource-exists" 
name="resource-exists" src="org.apache.cocoon.acting.ResourceExistsAction"/>
   
  -   <map:action name="set-header" logger="sitemap.action.set-header"
  -               src="org.apache.cocoon.acting.HttpHeaderAction"/>
  +   <map:action logger="sitemap.action.set-header" name="set-header" 
src="org.apache.cocoon.acting.HttpHeaderAction"/>
   
     </map:actions>
    </map:components>
  @@ -368,16 +319,16 @@
     orthogonal to pipelines. Please refer to the docs.
   -->
    <map:views>
  -  <map:view name="content" from-label="content">
  +  <map:view from-label="content" name="content">
      <map:serialize type="xml"/>
     </map:view>
   
  -  <map:view name="pretty-content" from-label="data">
  +  <map:view from-label="data" name="pretty-content">
       <map:transform src="stylesheets/simple-xml2html.xsl"/>
       <map:serialize type="html"/>
     </map:view>
     
  -  <map:view name="links" from-position="last">
  +  <map:view from-position="last" name="links">
      <map:serialize type="links"/>
     </map:view>
   
  @@ -404,7 +355,7 @@
     </map:resource>
   
     <map:resource name="dynamic-page">
  -     <map:generate type="serverpages" src="{target}.xsp"/>
  +     <map:generate src="{target}.xsp" type="serverpages"/>
        <map:transform src="stylesheets/dynamic-page2html.xsl">
          <map:parameter name="view-source" value="{target}.xsp"/>
        </map:transform>
  @@ -414,7 +365,7 @@
     <map:resource name="dynamic-page1">
        <!-- print all current sitemap parameters to log -->
        <map:act type="session-state">
  -        <map:parameter name="new-state" value="{../0}" />
  +        <map:parameter name="new-state" value="{../0}"/>
           <!-- 
              use the complete string that was matched as a parameter. Compare
              this with the target parameter below. There the third
  @@ -440,7 +391,7 @@
     </map:resource>
   
     <map:resource name="simple-page">
  -     <map:generate type="file" src="{target}.xml"/>
  +     <map:generate src="{target}.xml" type="file"/>
        <map:transform src="stylesheets/page/simple-page2html.xsl">
           <map:parameter name="view-source" value="{target}.xml"/>
        </map:transform>
  @@ -458,9 +409,9 @@
   
    <map:action-sets>
     <map:action-set name="employee">
  -   <map:act type="add-employee" action="Add"/>
  -   <map:act type="del-employee" action="Delete"/>
  -   <map:act type="upd-employee" action="Update"/>
  +   <map:act action="Add" type="add-employee"/>
  +   <map:act action="Delete" type="del-employee"/>
  +   <map:act action="Update" type="upd-employee"/>
     </map:action-set>
    </map:action-sets>
   
  @@ -497,7 +448,7 @@
     <!-- MyApp - minimal Cocoon Application Mount -->
     <map:pipeline>
       <map:match pattern="myapp/**">
  -      <map:mount uri-prefix="myapp" src="myapp/" check-reload="yes"/>
  +      <map:mount check-reload="yes" src="myapp/" uri-prefix="myapp"/>
       </map:match>
     </map:pipeline>
   
  @@ -526,7 +477,7 @@
         -->
           
         <!-- Mount: -->
  -      <map:mount uri-prefix="sub" src="sub/sitemap.xmap" check-reload="yes"/>
  +      <map:mount check-reload="yes" src="sub/sitemap.xmap" uri-prefix="sub"/>
         <!--
           Sitemaps may be organized hierarchically. Here such a subsitemap
           is "mounted" (think: unix filesystems) to be responsible for all
  @@ -566,10 +517,10 @@
         -->
       </map:match>
       <map:match pattern="documents/**">
  -      <map:mount uri-prefix="documents" src="documentation/" 
check-reload="yes"/>
  +      <map:mount check-reload="yes" src="documentation/" 
uri-prefix="documents"/>
       </map:match>
       <map:match pattern="tutorial/**">
  -      <map:mount uri-prefix="tutorial/" src="tutorial/" check-reload="yes"/>
  +      <map:mount check-reload="yes" src="tutorial/" uri-prefix="tutorial/"/>
       </map:match>
     </map:pipeline>
   
  @@ -578,13 +529,43 @@
       <!-- sample use of regexp equivalent to "**.source" using wildcard
            this also shows the '\{' notation to escape sitemap values 
substitution -->
       <map:match pattern="(.*)\.s\{1}ource" type="regexp">
  -      <map:generate src="cocoon:/{1}" />
  +      <map:generate src="cocoon:/{1}"/>
         <map:transform src="stylesheets/simple-xml2html.xsl"/>
         <map:serialize/>
       </map:match>
   
       <!-- Below goes entries added by Cocoon build system -->
  -  </map:pipeline>
  +  
  +
  +    <!-- XSP pages written in Javascript -->
  +    <map:match pattern="xsp-js/*">
  +      <map:generate src="docs/samples/xsp-js/{1}.xsp" type="serverpages">
  +        <map:parameter name="programming-language" value="js"/>
  +      </map:generate>
  +      <map:transform src="stylesheets/dynamic-page2html.xsl">
  +        <map:parameter name="view-source" 
value="docs/samples/xsp-js/{1}.xsp"/>
  +      </map:transform>
  +      <map:serialize/>
  +    </map:match>
  +
  +
  +    <!-- Mount search pages sitemap, for using indexing & searching -->
  +    <map:match pattern="search/**">
  +      <map:mount check-reload="yes" src="search/" uri-prefix="search"/>
  +    </map:match>
  +
  +
  +    <!-- ======================= XML:DB ============================== -->
  +    <map:match pattern="xmldb/**">
  +      <map:match pattern="xpath" type="request-parameter">
  +        <map:generate src="xmldb:xindice://localhost:4080/db/{../1}#{1}"/>
  +        <map:serialize type="xml"/>
  +      </map:match>
  +
  +      <map:generate src="xmldb:xindice://localhost:4080/db/{1}"/>
  +      <map:serialize type="xml"/>
  +    </map:match>
  +</map:pipeline>
   
     <!-- "automount" setup
       This causes directories added under "mount"
  @@ -594,7 +575,7 @@
     -->
     <map:pipeline>
       <map:match pattern="mount/*/**">
  -      <map:mount uri-prefix="mount/{1}" src="mount/{1}/" check-reload="yes"/>
  +      <map:mount check-reload="yes" src="mount/{1}/" uri-prefix="mount/{1}"/>
         <!-- 
            This is an example of using a sitemap variable: "{1}" Curly
        brackets denote sitemap variables, here the one named "1".
  @@ -606,7 +587,7 @@
     <map:pipeline>
       <!-- protected webapp example pipeline -->
       <map:match pattern="protected/**">
  -      <map:mount uri-prefix="protected" src="protected/" check-reload="yes"/>
  +      <map:mount check-reload="yes" src="protected/" uri-prefix="protected"/>
       </map:match>
   
       <!-- mount other sample pages -->
  @@ -703,7 +684,7 @@
      </map:match>
   
      <map:match pattern="welcome-svg-images/*.png">
  -    <map:generate type="extractor" src="{1}"/>
  +    <map:generate src="{1}" type="extractor"/>
       <!--
          Again, citing the javadocs:
   
  @@ -792,7 +773,7 @@
      </map:match>
   
      <map:match pattern="sites/images/*.gif">
  -    <map:read src="resources/images/{1}.gif" mime-type="image/gif"/>
  +    <map:read mime-type="image/gif" src="resources/images/{1}.gif"/>
      </map:match>
   
      <!-- ================  NEWS  =========================== -->
  @@ -804,11 +785,11 @@
      </map:match>
   
      <map:match pattern="news/**.gif">
  -    <map:read src="http://images.slashdot.org/topics/{1}.gif"; 
mime-type="image/gif"/>
  +    <map:read mime-type="image/gif" 
src="http://images.slashdot.org/topics/{1}.gif"/>
      </map:match>
   
      <map:match pattern="news/**.jpg">
  -    <map:read src="http://images.slashdot.org/topics/{1}.jpg"; 
mime-type="image/jpg"/>
  +    <map:read mime-type="image/jpg" 
src="http://images.slashdot.org/topics/{1}.jpg"/>
      </map:match>
   
      <map:match pattern="news/moreover.xml">
  @@ -856,9 +837,9 @@
   
       Please see docs for further explanations.
        -->
  -     <map:part src="cocoon:/news/slashdot.xml" element="news" 
ns="http://foo.bar.com/slashdot"/>
  -     <map:part src="cocoon:/news/moreover.xml" element="news" 
ns="http://foo.bar.com/moreover"/>
  -     <map:part src="cocoon:/news/xmlhack.xml" element="news" 
ns="http://foo.bar.com/xmlhack"/>
  +     <map:part element="news" ns="http://foo.bar.com/slashdot"; 
src="cocoon:/news/slashdot.xml"/>
  +     <map:part element="news" ns="http://foo.bar.com/moreover"; 
src="cocoon:/news/moreover.xml"/>
  +     <map:part element="news" ns="http://foo.bar.com/xmlhack"; 
src="cocoon:/news/xmlhack.xml"/>
       </map:aggregate>
       <map:transform src="stylesheets/news/news.xsl"/>
       <map:serialize/>
  @@ -866,7 +847,7 @@
   
      <!-- Aggregation using CInclude transformer -->
      <map:match pattern="news/aggregate">
  -    <map:generate type="serverpages" src="docs/samples/xsp/aggregate.xsp"/>
  +    <map:generate src="docs/samples/xsp/aggregate.xsp" type="serverpages"/>
       <map:transform type="cinclude"/>
       <map:transform src="stylesheets/news/news.xsl"/>
       <map:serialize/>
  @@ -905,13 +886,13 @@
      </map:match>
   
      <map:match pattern="scripts/*">
  -    <map:generate type="script" src="docs/samples/scripts/{1}"/>
  +    <map:generate src="docs/samples/scripts/{1}" type="script"/>
       <map:transform src="stylesheets/page/simple-page2html.xsl"/>
       <map:serialize type="html"/>
      </map:match>
   
      <map:match pattern="templates/*">
  -    <map:generate type="velocity" src="templates/{1}">
  +    <map:generate src="templates/{1}" type="velocity">
       <map:parameter name="name" value="Velocity"/>
       <map:parameter name="project" value="Cocoon"/>
       </map:generate>
  @@ -934,28 +915,28 @@
      </map:match>
   
      <map:match pattern="slides/style">
  -    <map:read src="resources/styles/slides-apachecon.css" 
mime-type="text/css"/>
  +    <map:read mime-type="text/css" 
src="resources/styles/slides-apachecon.css"/>
      </map:match>
   
      <map:match pattern="style">
  -    <map:read src="resources/styles/slides-apachecon.css" 
mime-type="text/css"/>
  +    <map:read mime-type="text/css" 
src="resources/styles/slides-apachecon.css"/>
      </map:match>
   
      <map:match pattern="slides/**.gif">
  -    <map:read src="docs/samples/{1}.gif" mime-type="image/gif"/>
  +    <map:read mime-type="image/gif" src="docs/samples/{1}.gif"/>
      </map:match>
   
      <map:match pattern="slides/**.jpg">
  -    <map:read src="docs/samples/{1}.jpg" mime-type="image/jpg"/>
  +    <map:read mime-type="image/jpg" src="docs/samples/{1}.jpg"/>
      </map:match>
   
      <map:match pattern="slides/**.png">
  -    <map:read src="docs/samples/{1}.png" mime-type="image/png"/>
  +    <map:read mime-type="image/png" src="docs/samples/{1}.png"/>
      </map:match>
   
      <!-- =========================== Dynamic ================================ 
-->
      <map:match pattern="xsp/*">
  -    <map:generate type="serverpages" src="docs/samples/xsp/{1}.xsp"/>
  +    <map:generate src="docs/samples/xsp/{1}.xsp" type="serverpages"/>
       <map:transform src="stylesheets/dynamic-page2html.xsl">
           <map:parameter name="view-source" value="docs/samples/xsp/{1}.xsp"/>
       <!--
  @@ -971,7 +952,7 @@
      </map:match>
   
      <map:match pattern="xsp-plain/*">
  -    <map:generate type="serverpages" src="docs/samples/xsp/{1}.xsp"/>
  +    <map:generate src="docs/samples/xsp/{1}.xsp" type="serverpages"/>
       <map:serialize/>
      </map:match>
   
  @@ -1003,7 +984,7 @@
         included if at least one action of this set completes
         successfully.
          -->
  -       <map:generate type="serverpages" 
src="docs/samples/forms/employee.xsp"/>
  +       <map:generate src="docs/samples/forms/employee.xsp" 
type="serverpages"/>
          <map:transform src="stylesheets/dynamic-page2html.xsl">
             <map:parameter name="view-source" 
value="docs/samples/forms/employee.xsp"/>
          </map:transform>
  @@ -1012,7 +993,7 @@
      </map:match>
   
      <map:match pattern="forms/*">
  -     <map:generate type="serverpages" src="docs/samples/forms/{1}.xsp"/>
  +     <map:generate src="docs/samples/forms/{1}.xsp" type="serverpages"/>
        <map:transform src="stylesheets/dynamic-page2html.xsl">
           <map:parameter name="view-source" 
value="docs/samples/forms/{1}.xsp"/>
        </map:transform>
  @@ -1048,28 +1029,28 @@
         <map:act type="session-isvalid">
           <!-- if session is valid ... -->
   
  -        <map:match type="sessionstate" pattern="1">
  +        <map:match pattern="1" type="sessionstate">
              <!-- if a specific session attribute matches pattern "1" -->
  -           <map:match type="next-page" pattern="1">
  +           <map:match pattern="1" type="next-page">
                 <map:call resource="dynamic-page1">
                    <map:parameter name="target" 
value="docs/samples/session-state"/>
                 </map:call>
                 <!-- by calling this resource, the rest of this fragment here 
is irrelevant -->
              </map:match>
  -           <map:match type="next-page" pattern="2">
  +           <map:match pattern="2" type="next-page">
                 <map:call resource="dynamic-page1">
                    <map:parameter name="target" 
value="docs/samples/session-state"/>
                 </map:call>
              </map:match>
           </map:match>
   
  -        <map:match type="sessionstate" pattern="2">
  -           <map:match type="next-page" pattern="1">
  +        <map:match pattern="2" type="sessionstate">
  +           <map:match pattern="1" type="next-page">
                 <map:call resource="dynamic-page1">
                    <map:parameter name="target" 
value="docs/samples/session-state"/>
                 </map:call>
              </map:match>
  -           <map:match type="next-page" pattern="2">
  +           <map:match pattern="2" type="next-page">
                 <map:call resource="dynamic-page1">
                    <map:parameter name="target" 
value="docs/samples/session-state"/>
                 </map:call>
  @@ -1090,12 +1071,12 @@
      <!-- ========================== referer ================================= 
-->
   
     <map:match pattern="referer/*">
  -     <map:match type="referer-match" pattern="http://*/cocoon/referer/a";>
  +     <map:match pattern="http://*/cocoon/referer/a"; type="referer-match">
           <map:call resource="simple-page">
              <map:parameter name="target" 
value="docs/samples/referer/a/{../1}"/>
           </map:call>
        </map:match>
  -     <map:match type="referer-match" pattern="http://*/cocoon/referer/b";>
  +     <map:match pattern="http://*/cocoon/referer/b"; type="referer-match">
           <map:call resource="simple-page">
              <map:parameter name="target" 
value="docs/samples/referer/b/{../1}"/>
           </map:call>
  @@ -1122,24 +1103,24 @@
   
      <!-- ========================== XSP Sources 
============================== -->
      <map:match pattern="view-source/*">
  -    <map:read src="docs/samples/slides/{1}" mime-type="text/plain"/>
  +    <map:read mime-type="text/plain" src="docs/samples/slides/{1}"/>
      </map:match>
   
      <map:match pattern="view-source">
  -    <map:generate type="serverpages" 
src="docs/samples/slides/view-source.xsp"/>
  +    <map:generate src="docs/samples/slides/view-source.xsp" 
type="serverpages"/>
       <map:serialize/>
      </map:match>
   
   
      <!-- ========================== SOAP ============================== -->
      <map:match pattern="soap/*">
  -    <map:generate type="serverpages" src="docs/samples/soap/{1}.xml"/>
  +    <map:generate src="docs/samples/soap/{1}.xml" type="serverpages"/>
       <map:serialize type="xml"/>
      </map:match>
   
      <!-- ======================== XScript Samples ========================= 
-->
      <map:match pattern="xscript/soap-getquote1">
  -     <map:generate type="serverpages" 
src="docs/samples/xscript/soap-getquote1.xsp"/>
  +     <map:generate src="docs/samples/xscript/soap-getquote1.xsp" 
type="serverpages"/>
        <map:transform src="docs/samples/xscript/soap-getquote1.xsl"/>
        <map:transform src="stylesheets/dynamic-page2html.xsl">
          <map:parameter name="view-source" 
value="docs/samples/xscript/soap-getquote1.xsp"/>
  @@ -1148,7 +1129,7 @@
      </map:match>
   
      <map:match pattern="xscript/*">
  -     <map:generate type="serverpages" src="docs/samples/xscript/{1}.xsp"/>
  +     <map:generate src="docs/samples/xscript/{1}.xsp" type="serverpages"/>
        <map:transform src="stylesheets/dynamic-page2html.xsl">
          <map:parameter name="view-source" 
value="docs/samples/xscript/{1}.xsp"/>
        </map:transform>
  @@ -1158,7 +1139,7 @@
      <!-- ========================== Tidy Samples 
============================== -->
      
      <map:match pattern="yahoo">
  -    <map:generate type="html" src="http://www.yahoo.com";>
  +    <map:generate src="http://www.yahoo.com"; type="html">
         <map:parameter name="xpath" 
value="/html/body/center/table[1]/tr[1]/td[1]/table[position()=last()]"/>
       </map:generate>
       <map:transform src="stylesheets/news/news.xsl"/>
  @@ -1167,7 +1148,7 @@
   
      <!-- ========================= Server ================================ -->
      <map:match pattern="legacyProfiles/**.rdf">
  -    <map:read src="resources/legacyProfiles/{1}.rdf" mime-type="text/rdf"/>
  +    <map:read mime-type="text/rdf" src="resources/legacyProfiles/{1}.rdf"/>
      </map:match>
   
      <map:match pattern="request">
  @@ -1188,27 +1169,27 @@
      </map:match>
   
      <map:match pattern="sites/styles/**.css">
  -    <map:read src="resources/styles/{1}.css" mime-type="text/css"/>
  +    <map:read mime-type="text/css" src="resources/styles/{1}.css"/>
      </map:match>
   
      <map:match pattern="**favicon.ico">
  -    <map:read src="resources/icons/cocoon.ico" mime-type="application/ico"/>
  +    <map:read mime-type="application/ico" src="resources/icons/cocoon.ico"/>
      </map:match>
      
      <map:match pattern="images/**.gif">
  -    <map:read src="resources/images/{1}.gif" mime-type="image/gif"/>
  +    <map:read mime-type="image/gif" src="resources/images/{1}.gif"/>
      </map:match>
   
      <map:match pattern="images/**.jpg">
  -    <map:read src="resources/images/{1}.jpg" mime-type="image/jpg"/>
  +    <map:read mime-type="image/jpg" src="resources/images/{1}.jpg"/>
      </map:match>
   
      <map:match pattern="images/**.png">
  -    <map:read src="resources/images/{1}.png" mime-type="image/png"/>
  +    <map:read mime-type="image/png" src="resources/images/{1}.png"/>
      </map:match>
   
      <map:match pattern="**/">
  -    <map:generate type="directory" src="{1}"/>
  +    <map:generate src="{1}" type="directory"/>
       <map:transform src="stylesheets/system/directory2html.xsl"/>
       <map:serialize/>
      </map:match>
  @@ -1221,6 +1202,4 @@
     </map:pipeline>
    </map:pipelines>
   
  -</map:sitemap>
  -
  -<!-- end of file -->
  +</map:sitemap><!-- end of file -->
  \ No newline at end of file
  
  
  
  1.22      +175 -41   xml-cocoon2/src/webapp/WEB-INF/cocoon.xconf
  
  Index: cocoon.xconf
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/WEB-INF/cocoon.xconf,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- cocoon.xconf      19 May 2002 19:23:28 -0000      1.21
  +++ cocoon.xconf      20 May 2002 06:53:15 -0000      1.22
  @@ -1,4 +1,4 @@
  -<?xml version="1.0"?>
  +<?xml version="1.0" encoding="UTF-8"?>
   <cocoon version="2.0">
   
   <!-- ================ Apache Cocoon configuration file ================== -->
  @@ -54,9 +54,7 @@
           DocumentBuilderFactory implementation to be used (similar to
           sax-parser-factory for DOM).
     -->
  -  <xml-parser class="org.apache.avalon.excalibur.xml.JaxpParser"
  -              logger="core.xml-parser"
  -              pool-max="32" pool-min="8" pool-grow="4">
  +  <xml-parser class="org.apache.avalon.excalibur.xml.JaxpParser" 
logger="core.xml-parser" pool-grow="4" pool-max="32" pool-min="8">
       <parameter name="validate" value="false"/>
       <parameter name="namespace-prefixes" value="false"/>
       <parameter name="stop-on-warning" value="true"/>
  @@ -139,8 +137,7 @@
   
     <!-- Xpath Processor:
     -->
  -  <xpath-processor 
class="org.apache.avalon.excalibur.xml.xpath.XPathProcessorImpl"
  -                   logger="core.xpath-processor"/>
  +  <xpath-processor 
class="org.apache.avalon.excalibur.xml.xpath.XPathProcessorImpl" 
logger="core.xpath-processor"/>
   
     <!-- URL Factory:
       The url factory adds special url protocols to the system, they are then
  @@ -151,10 +148,10 @@
     <url-factory logger="core.url-factory">
       <!-- Allows access to resources available from the ClassLoader,
            using getResource() method. -->
  -    <protocol name="resource" 
class="org.apache.cocoon.components.url.ResourceURLFactory"/>
  +    <protocol class="org.apache.cocoon.components.url.ResourceURLFactory" 
name="resource"/>
       <!-- Allows access to resources available from the servlet context,
            using getResource() method. -->
  -    <protocol name="context"  
class="org.apache.cocoon.components.url.ContextURLFactory"/>
  +    <protocol class="org.apache.cocoon.components.url.ContextURLFactory" 
name="context"/>
       <!-- Add here protocol factories for your own protocols -->
     </url-factory>
   
  @@ -166,9 +163,17 @@
     -->
     <source-handler logger="core.source-handler">
       <!-- file protocol : this is a WriteableSource -->
  -    <protocol name="file" 
class="org.apache.cocoon.components.source.FileSourceFactory"/>
  +    <protocol class="org.apache.cocoon.components.source.FileSourceFactory" 
name="file"/>
   
  -  </source-handler>
  +  
  +
  +    <!-- xmldb pseudo protocol -->
  +    <protocol class="org.apache.cocoon.components.source.XMLDBSourceFactory" 
name="xmldb">
  +      <!-- Xindice driver -->
  +      <driver class="org.apache.xindice.client.xmldb.DatabaseImpl" 
type="xindice"/>
  +      <!-- Add here other XML:DB compliant databases drivers -->
  +    </protocol>
  +</source-handler>
   
     <!-- Source Factories
          Each source factory adds a special uri protocol to the system.
  @@ -179,8 +184,19 @@
         <component-instance 
class="org.apache.cocoon.components.source.impl.ContextSourceFactory" 
name="context"/>
         <component-instance 
class="org.apache.cocoon.components.source.impl.CocoonSourceFactory" 
name="cocoon"/>
         <!-- file protocol : this is a WriteableSource -->
  -      <component-instance 
class="org.apache.cocoon.components.source.impl.FileSourceFactory" name="file" 
/>
  -  </source-factories>
  +      <component-instance 
class="org.apache.cocoon.components.source.impl.FileSourceFactory" name="file"/>
  +  
  +
  +    <!-- xmldb pseudo protocol -->
  +    <component-instance 
class="org.apache.cocoon.components.source.impl.SourceFactoryWrapper" 
name="xmldb">
  +        <source-factory 
class="org.apache.cocoon.components.source.XMLDBSourceFactory">
  +            <!-- Xindice driver -->
  +            <driver class="org.apache.xindice.client.xmldb.DatabaseImpl" 
type="xindice"/>
  +            <!-- Add here other XML:DB compliant databases drivers -->
  +        </source-factory>
  +    </component-instance>
  +
  +</source-factories>
   
     <!-- The XMLizer converts different mime-types to XML -->
     <xmlizer>
  @@ -225,7 +241,7 @@
   
     <!-- Programming Languages: -->
     <programming-languages>
  -    <java-language name="java" logger="core.language.java">
  +    <java-language logger="core.language.java" name="java">
         <!-- Specifies which formatter to use to format source code.
              This parameter is optional. 
              It is commented out because of bug #5689: Java "code-formatter" 
incorrectly formats double values
  @@ -233,14 +249,23 @@
         -->
         <!-- A singleton-like implementation of a ClassLoader -->
         <parameter name="class-loader" 
value="org.apache.cocoon.components.classloader.ClassLoaderManagerImpl"/>
  -    </java-language>
  -  </programming-languages>
  +    
  +      <!-- Compiler parameter specifies which class to use to compile Java.
  +           Possible variants are:
  +             Javac. Requires javac.jar (included with JDK as lib/toools.jar).
  +             Pizza. Requires pizza.jar (included with Cocoon distribution).
  +             Jikes. Requires IBM jikes compiler to be present in the PATH  
-->
  +      <parameter name="compiler" 
value="org.apache.cocoon.components.language.programming.java.Pizza"/>
  +</java-language>
  +  
  +    <!-- Interpreted JavaScript language -->
  +    <js-language logger="core.language.js" name="js"/>
  +</programming-languages>
   
     <!-- Class loader:
       A singleton-like implementation of a ClassLoader.
     -->
  -  <classloader 
class="org.apache.cocoon.components.classloader.ClassLoaderManagerImpl"
  -               logger="core.classloader"/>
  +  <classloader 
class="org.apache.cocoon.components.classloader.ClassLoaderManagerImpl" 
logger="core.classloader"/>
     
     <!-- Markup Languages:
       This section defines several builtin logicsheets. A logicsheet is an XML
  @@ -248,7 +273,7 @@
       code embedding directives for a given markup language.
     -->
     <markup-languages>
  -    <xsp-language name="xsp" logger="core.markup.xsp">
  +    <xsp-language logger="core.markup.xsp" name="xsp">
         <parameter name="prefix" value="xsp"/>
         <parameter name="uri" value="http://apache.org/xsp"/>
   
  @@ -363,13 +388,36 @@
           </builtin-logicsheet>
   
         </target-language>
  -    </xsp-language>
  +    
  +      <!-- XSP in Javascript -->
  +      <target-language name="js">
  +        <parameter name="core-logicsheet" 
value="resource://org/apache/cocoon/components/language/markup/xsp/javascript/xsp.xsl"/>
  +
  +        <builtin-logicsheet>
  +          <parameter name="prefix" value="xsp-request"/>
  +          <parameter name="uri" value="http://apache.org/xsp/request/2.0"/>
  +          <parameter name="href" 
value="resource://org/apache/cocoon/components/language/markup/xsp/javascript/request.xsl"/>
  +        </builtin-logicsheet>
  +
  +        <builtin-logicsheet>
  +          <parameter name="prefix" value="xsp-response"/>
  +          <parameter name="uri" value="http://apache.org/xsp/response/2.0"/>
  +          <parameter name="href" 
value="resource://org/apache/cocoon/components/language/markup/xsp/javascript/response.xsl"/>
  +        </builtin-logicsheet>
  +
  +        <builtin-logicsheet>
  +          <parameter name="prefix" value="xsp-session"/>
  +          <parameter name="uri" value="http://apache.org/xsp/session/2.0"/>
  +          <parameter name="href" 
value="resource://org/apache/cocoon/components/language/markup/xsp/javascript/session.xsl"/>
  +        </builtin-logicsheet>
  +      </target-language>
  +</xsp-language>
   
     </markup-languages>
   
     <!-- Datasources: -->
     <datasources>
  -    <jdbc name="personnel" logger="core.datasources.personnel">
  +    <jdbc logger="core.datasources.personnel" name="personnel">
         <!--
             If you have an Oracle database, and are using the the
         pool-controller below, you should add the attribute
  @@ -380,7 +428,7 @@
         That way the test to see if the server has disconnected
         the JdbcConnection will function properly.
         -->
  -      <pool-controller min="5" max="10"/>
  +      <pool-controller max="10" min="5"/>
         <!--
             If you need to ensure an autocommit is set to true or
         false, then create the "auto-commit" element below.
  @@ -389,9 +437,9 @@
   
         The default is true.
         -->
  -      <dburl>@database-url@</dburl>
  -      <user>@database-user@</user>
  -      <password>@database-password@</password>
  +      <dburl>jdbc:hsqldb:hsql://localhost:9002</dburl>
  +      <user>sa</user>
  +      <password/>
       </jdbc>
     </datasources>
   
  @@ -401,9 +449,7 @@
       the character stream. Alternatives to CachingStreamPipeline are:
       <stream-pipeline 
class="org.apache.cocoon.components.pipeline.NonCachingStreamPipeline"/>
     -->
  -  <stream-pipeline 
class="org.apache.cocoon.components.pipeline.CachingStreamPipeline"
  -                   logger="core.stream-pipeline"
  -                   pool-max="32" pool-min="8" pool-grow="4"/>
  +  <stream-pipeline 
class="org.apache.cocoon.components.pipeline.CachingStreamPipeline" 
logger="core.stream-pipeline" pool-grow="4" pool-max="32" pool-min="8"/>
   
     <!-- Event Pipeline:
       Connects the generator and the various transformers and produces a
  @@ -412,9 +458,7 @@
       <event-pipeline 
class="org.apache.cocoon.components.profiler.ProfilingCachingEventPipeline"/>
       <event-pipeline 
class="org.apache.cocoon.components.profiler.ProfilingNonCachingEventPipeline"/>
     -->
  -  <event-pipeline 
class="org.apache.cocoon.components.pipeline.CachingEventPipeline"
  -                  logger="core.event-pipeline"
  -                  pool-max="32" pool-min="8" pool-grow="4"/>
  +  <event-pipeline 
class="org.apache.cocoon.components.pipeline.CachingEventPipeline" 
logger="core.event-pipeline" pool-grow="4" pool-max="32" pool-min="8"/>
   
     <!-- Compiling xml to byte streams.
       The xml-serializer "compiles" xml sax events into a byte stream
  @@ -423,13 +467,9 @@
       may have to change the other one as well, as they might have
       a dependency.
     -->
  -  <xml-serializer 
class="org.apache.cocoon.components.sax.XMLByteStreamCompiler"
  -                  logger="core.xml-serializer"
  -                  pool-max="32" pool-min="8" pool-grow="4"/>
  -
  -  <xml-deserializer 
class="org.apache.cocoon.components.sax.XMLByteStreamInterpreter"
  -                    logger="core.xml-deserializer"
  -                    pool-max="32" pool-min="8" pool-grow="4"/>
  +  <xml-serializer 
class="org.apache.cocoon.components.sax.XMLByteStreamCompiler" 
logger="core.xml-serializer" pool-grow="4" pool-max="32" pool-min="8"/>
  +
  +  <xml-deserializer 
class="org.apache.cocoon.components.sax.XMLByteStreamInterpreter" 
logger="core.xml-deserializer" pool-grow="4" pool-max="32" pool-min="8"/>
   
     <!-- SAXConnector:
       Connects the various pipeline components.
  @@ -456,7 +496,7 @@
       The Monitor keeps track on changes to a Resource.
     -->
     <monitor logger="core.monitor">
  -    <thread priority="5" frequency="10000"/>
  +    <thread frequency="10000" priority="5"/>
     </monitor>
   
   <!-- ======================== The sitemap  ============================== -->
  @@ -474,7 +514,101 @@
       For development environment, set the check-reload to yes.
       For production environment, it is advisable to set the check-reload to 
no.
     -->
  -  <sitemap file="sitemap.xmap" check-reload="yes" logger="sitemap"
  -        
config="resource://org/apache/cocoon/components/treeprocessor/treeprocessor-builtins.xml"/>
  +  <sitemap check-reload="yes" 
config="resource://org/apache/cocoon/components/treeprocessor/treeprocessor-builtins.xml"
 file="sitemap.xmap" logger="sitemap"/>
  +
  +
  +
  +  <!-- Search:
  +    These are the components that handle the search. 
  +    
  +    Cocoon indexer write into an index.
  +    Cocoon searcher reads form an index, returning matched hits.
  +    Cocoon crawler crawls all links starting from a given base URI.
  +    Lucene xml indexer build a lucene document from XML content.
  +   -->
  +  <cocoon-indexer logger="core.search.indexer"/>
  +  <cocoon-searcher logger="core.search.searcher"/>  
  +  <cocoon-crawler logger="core.search.crawler"/>
  +  <lucene-xml-indexer logger="core.search.lucene"/>
  +
  +
  +  <!-- HSQLDB Server for samples:
  +    Comment this section out if you don't care about the samples.
  +        port   : number      port where the server is listening
  +        silent : true/false  display all queries
  +        trace  : true/false  display JDBC trace messages
  +  -->
  +  <hsqldb-server class="org.apache.cocoon.components.hsqldb.ServerImpl" 
logger="core.hsqldb-server" pool-max="1" pool-min="1">
  +     <parameter name="port" value="9002"/>
  +     <parameter name="silent" value="true"/>
  +     <parameter name="trace" value="false"/>
  +  </hsqldb-server>
  +
  +
  +  <!-- Entity resolution catalogs: 
*********************************************
  +    catalog:
  +    The default catalog is distributed at /resources/entities/catalog
  +    This is the contextual pathname for Cocoon resources.
  +    You can override this path, if necessary, using the "catalog" parameter.
  +   <parameter name="catalog" value="/resources/entities/catalog"/>
  +    However, it is probably desirable to leave this default catalog config
  +    and declare your own local catalogs, which are loaded in addition to
  +    the system catalog.
  +
  +    There are various ways to do local configuration (see "Entity Catalogs"
  +    documentation). One way is via the CatalogManager.properties file.
  +    As an additional method, you can specify the "local-catalog" parameter 
here.
  +
  +    local-catalog:
  +    The full filesystem pathname to a single local catalog file.
  +   <parameter name="local-catalog" value="/usr/local/sgml/mycatalog"/>
  +
  +    verbosity:
  +    The level of messages for status/debug (messages go to standard output)
  +    The following messages are provided ...
  +     0 = none
  +     1 = ? (... not sure yet)
  +     2 = 1+, Loading catalog, Resolved public, Resolved system
  +     3 = 2+, Catalog does not exist, resolvePublic, resolveSystem
  +     10 = 3+, List all catalog entries when loading a catalog
  +    (Cocoon also logs the "Resolved public" messages.) 
  +    TODO: determine all messages at each level
  +   <parameter name="verbosity" value="2"/>
  +
  +  ************************************************************************** 
-->
  +  <entity-resolver 
class="org.apache.cocoon.components.resolver.ResolverImpl" 
logger="core.resolver">
  +   <parameter name="catalog" value="/resources/entities/catalog"/>
  +   <parameter name="verbosity" value="1"/>
  +  </entity-resolver>
  +
  +
  +  <!-- Persistent store for the cache. Two store implementations to choose
  +       from:
  +         * FilesystemStore: Simple. Dependable. Thorougly tested.
  +         * JispFilesystemStore: Scalable. New kid on the block. Not 
thorougly tested.
  +       If you opt in to use JispFilesystemStore, comment out FilesystemStore
  +       entry.
  +
  +       JispFilesystemStore configuration parameters
  +       (in addition to common parameters):
  +         datafile: name of the store file to use.
  +         indexfile: name of the index file to use.
  +         order: FIXME: put description here.
  +
  +  <persistent-store 
class="org.apache.cocoon.components.store.JispFilesystemStore"
  +                    logger="core.store.persistent">
  +    <parameter name="use-cache-directory" value="true"/>
  +    <parameter name="datafile" value="cocoon-cache.dat"/>
  +    <parameter name="indexfile" value="cocoon-cache.idx"/>
  +    <parameter name="order" value="1701"/>
  +  </persistent-store>
  +  -->
   
  -</cocoon>
  +
  +  <!-- Deli support -->
  +  <!-- Uncomment this section to enable DELI
  +  <deli class="org.apache.cocoon.components.deli.DeliImpl">
  +    <parameter name="deli-config-file" 
value="resources/deli/config/deliConfig.xml"/>
  +  </deli>
  +  -->
  +</cocoon>
  \ No newline at end of file
  
  
  
  1.10      +1 -1      xml-cocoon2/src/webapp/WEB-INF/web.xml
  
  Index: web.xml
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/WEB-INF/web.xml,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- web.xml   20 Apr 2002 08:13:20 -0000      1.9
  +++ web.xml   20 May 2002 06:53:15 -0000      1.10
  @@ -117,7 +117,7 @@
           com.ibm.servlet.classloader.Handler -->
   
           <!-- For Database Driver: -->
  -        @database-driver@
  +        org.hsqldb.jdbcDriver
   
           <!-- For parent ComponentManager sample:
           org.apache.cocoon.samples.parentcm.Configurator
  
  
  
  1.2       +3 -1      xml-cocoon2/src/webapp/WEB-INF/db/cocoondb.data
  
        <<Binary file>>
  
  
  1.3       +1 -1      xml-cocoon2/src/webapp/WEB-INF/db/cocoondb.properties
  
  Index: cocoondb.properties
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/WEB-INF/db/cocoondb.properties,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- cocoondb.properties       19 Apr 2002 12:44:19 -0000      1.2
  +++ cocoondb.properties       20 May 2002 06:53:15 -0000      1.3
  @@ -1,4 +1,4 @@
   #HSQL database
  -#Sat Apr 13 23:06:03 EDT 2002
  +#Mon May 20 01:42:46 CDT 2002
   version=1.6
   modified=yes
  
  
  
  1.4       +4 -33     xml-cocoon2/src/webapp/WEB-INF/db/cocoondb.script
  
  Index: cocoondb.script
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/WEB-INF/db/cocoondb.script,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- cocoondb.script   30 Apr 2002 03:39:32 -0000      1.3
  +++ cocoondb.script   20 May 2002 06:53:15 -0000      1.4
  @@ -4,8 +4,8 @@
   CREATE TABLE GROUPS(GID INTEGER IDENTITY PRIMARY KEY,GNAME 
VARCHAR,UNIQUE(GNAME))
   CREATE TABLE USER_GROUPS(UID INTEGER,GID INTEGER,UNIQUE(UID,GID),FOREIGN 
KEY(UID)REFERENCES USER(UID),FOREIGN KEY(GID)REFERENCES GROUPS(GID))
   CREATE TABLE STATE_TAX(CATEGORY VARCHAR NOT NULL,GROSSTAX_COLLECTED DOUBLE 
NOT NULL,NETTAX_COLLECTED DOUBLE NOT NULL,YEAR INTEGER NOT NULL)
  -GRANT ALL ON CLASS "java.lang.Math" TO PUBLIC
   GRANT ALL ON CLASS "org.hsqldb.Library" TO PUBLIC
  +GRANT ALL ON CLASS "java.lang.Math" TO PUBLIC
   CREATE USER SA PASSWORD "" ADMIN
   CREATE ALIAS DAYNAME FOR "org.hsqldb.Library.dayname"
   CREATE ALIAS SPACE FOR "org.hsqldb.Library.space"
  @@ -115,36 +115,7 @@
   INSERT INTO STATE_TAX VALUES('Horse Racing',1.7921198E7,1.7321198E7,2001)
   INSERT INTO STATE_TAX VALUES('Severance',7981539.0,7967438.0,2001)
   INSERT INTO STATE_TAX VALUES('School District 
Income',1.61257059E8,1.53238001E8,2001)
  -/*C3*/CONNECT USER sa PASSWORD ""
  -/*C4*/CONNECT USER sa PASSWORD ""
  -SET AUTOCOMMIT TRUE
  -CONNECT USER sa PASSWORD ""
  +/*C1*/CONNECT USER sa PASSWORD ""
  +/*C2*/CONNECT USER sa PASSWORD ""
   /*C5*/CONNECT USER sa PASSWORD ""
  -SET AUTOCOMMIT TRUE
  -CONNECT USER sa PASSWORD ""
  -/*C6*/CONNECT USER sa PASSWORD ""
  -SET AUTOCOMMIT TRUE
  -CONNECT USER sa PASSWORD ""
  -/*C7*/CONNECT USER sa PASSWORD ""
  -SET AUTOCOMMIT TRUE
  -CONNECT USER sa PASSWORD ""
  -/*C8*/CONNECT USER sa PASSWORD ""
  -SET AUTOCOMMIT TRUE
  -CONNECT USER sa PASSWORD ""
  -/*C9*/CONNECT USER sa PASSWORD ""
  -SET AUTOCOMMIT TRUE
  -CONNECT USER sa PASSWORD ""
  -/*C10*/CONNECT USER sa PASSWORD ""
  -SET AUTOCOMMIT TRUE
  -CONNECT USER sa PASSWORD ""
  -/*C11*/CONNECT USER sa PASSWORD ""
  -SET AUTOCOMMIT TRUE
  -CONNECT USER sa PASSWORD ""
  -/*C12*/CONNECT USER sa PASSWORD ""
  -SET AUTOCOMMIT TRUE
  -CONNECT USER sa PASSWORD ""
  -/*C13*/CONNECT USER sa PASSWORD ""
  -SET AUTOCOMMIT TRUE
  -CONNECT USER sa PASSWORD ""
  -/*C14*/CONNECT USER sa PASSWORD ""
  -SET AUTOCOMMIT TRUE
  +/*C6*/CONNECT U
  \ No newline at end of file
  
  
  
  1.3       +15 -2     xml-cocoon2/src/webapp/docs/samples/sample-apps.xml
  
  Index: sample-apps.xml
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/docs/samples/sample-apps.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- sample-apps.xml   9 Feb 2002 06:21:57 -0000       1.2
  +++ sample-apps.xml   20 May 2002 06:53:16 -0000      1.3
  @@ -1,6 +1,6 @@
   <?xml version="1.0" encoding="iso-8859-1"?>
   
  -<!-- CVS: $Id: sample-apps.xml,v 1.2 2002/02/09 06:21:57 vgritsenko Exp $ -->
  +<!-- CVS: $Id: sample-apps.xml,v 1.3 2002/05/20 06:53:16 ivelin Exp $ -->
   
   <samples xmlns:xlink="http://www.w3.org/1999/xlink";>
   
  @@ -29,8 +29,21 @@
      </sample>
     </group>
   
  + 
     <group name="Sample Forms">
  -    <sample name="Manage Employees" href="forms/employee" 
xlink:role="dynamic">
  +    <sample name="Cocoon Feedback Wizard" href="mount/xmlform/wizard.html" 
xlink:role="dynamic">
  +        Presents a sophisticated form handling demo - 
  +        multi page wizard with two way navigation.
  +        Features the 
  +        <link href="#XMLForm Doc!">XMLForm</link> framework which provides 
  +        <xlink:link 
href="http://www.w3.org/MarkUp/Forms/";>XForms</xlink:link>
  +        based markup, 
  +        <xlink:a 
href="http://www.ascc.net/xml/resource/schematron/schematron.html";>Schematron</xlink:a>
  +         instance validation and
  +        automated binding to 
  +        <xlink:a 
href="http://java.sun.com/products/javabeans/";>JavaBeans</xlink:a> and 
  +        <xlink:a href="http://www.w3.org/DOM/";>DOM</xlink:a> instances.
  +    </sample>    <sample name="Manage Employees" href="forms/employee" 
xlink:role="dynamic">
         Adds, updates and deletes Employees to the employees table.  You 
should make sure
         that you have a database and table according to the 
docs/samples/sql/sql-page.xml.sql
         definitions.  Don't forget to change the driver information...
  
  
  
  1.2       +1 -1      
xml-cocoon2/src/webapp/docs/samples/formvalidation/descriptor.xml
  
  Index: descriptor.xml
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/webapp/docs/samples/formvalidation/descriptor.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- descriptor.xml    3 Jan 2002 12:31:40 -0000       1.1
  +++ descriptor.xml    20 May 2002 06:53:16 -0000      1.2
  @@ -11,4 +11,4 @@
          <validate name="email"/>
       </constraint-set>
   
  -</root>
  \ No newline at end of file
  +</root>
  
  
  
  1.2       +2 -2      xml-cocoon2/src/webapp/docs/samples/slides/clean-page.xml
  
  Index: clean-page.xml
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/webapp/docs/samples/slides/clean-page.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- clean-page.xml    3 Jan 2002 12:31:41 -0000       1.1
  +++ clean-page.xml    20 May 2002 06:53:16 -0000      1.2
  @@ -1,7 +1,7 @@
   <?xml version="1.0"?>
   
   <!-- Author: Stefano Mazzocchi "[EMAIL PROTECTED]" -->
  -<!-- Version: $Id: clean-page.xml,v 1.1 2002/01/03 12:31:41 giacomo Exp $ -->
  +<!-- Version: $Id: clean-page.xml,v 1.2 2002/05/20 06:53:16 ivelin Exp $ -->
   
   <page>
    <title>First XSP Page</title>
  @@ -62,4 +62,4 @@
    provided to you by another XSP page.</p>
   
    <p>Enjoy XSP!</p>
  -</page>
  \ No newline at end of file
  +</page>
  
  
  
  1.2       +2 -2      xml-cocoon2/src/webapp/docs/samples/slides/lib-page.xml
  
  Index: lib-page.xml
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/docs/samples/slides/lib-page.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- lib-page.xml      3 Jan 2002 12:31:41 -0000       1.1
  +++ lib-page.xml      20 May 2002 06:53:16 -0000      1.2
  @@ -1,7 +1,7 @@
   <?xml version="1.0"?>
   
   <!-- Author: Stefano Mazzocchi "[EMAIL PROTECTED]" -->
  -<!-- Version: $Id: lib-page.xml,v 1.1 2002/01/03 12:31:41 giacomo Exp $ -->
  +<!-- Version: $Id: lib-page.xml,v 1.2 2002/05/20 06:53:16 ivelin Exp $ -->
   
   
   <xsp:page
  @@ -70,4 +70,4 @@
   
    <p>Enjoy XSP!</p>
   </page>
  -</xsp:page>
  \ No newline at end of file
  +</xsp:page>
  
  
  
  1.2       +2 -2      xml-cocoon2/src/webapp/docs/samples/slides/page.xml
  
  Index: page.xml
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/docs/samples/slides/page.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- page.xml  3 Jan 2002 12:31:41 -0000       1.1
  +++ page.xml  20 May 2002 06:53:16 -0000      1.2
  @@ -1,7 +1,7 @@
   <?xml version="1.0"?>
   
   <!-- Author: Stefano Mazzocchi "[EMAIL PROTECTED]" -->
  -<!-- Version: $Id: page.xml,v 1.1 2002/01/03 12:31:41 giacomo Exp $ -->
  +<!-- Version: $Id: page.xml,v 1.2 2002/05/20 06:53:16 ivelin Exp $ -->
   
   <xsp:page 
     language="java" 
  @@ -125,4 +125,4 @@
     
     <p>Enjoy XSP!</p>
    </page>
  -</xsp:page>
  \ No newline at end of file
  +</xsp:page>
  
  
  
  1.2       +1 -1      xml-cocoon2/src/webapp/docs/samples/soap/fortune.xml
  
  Index: fortune.xml
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/docs/samples/soap/fortune.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- fortune.xml       30 Jan 2002 23:32:33 -0000      1.1
  +++ fortune.xml       20 May 2002 06:53:16 -0000      1.2
  @@ -13,4 +13,4 @@
           </m:getAnyFortune>
         </soap:call>
     </page>
  -</xsp:page>
  \ No newline at end of file
  +</xsp:page>
  
  
  
  1.2       +1 -1      
xml-cocoon2/src/webapp/resources/entities/book-cocoon-v10.dtd
  
  Index: book-cocoon-v10.dtd
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/webapp/resources/entities/book-cocoon-v10.dtd,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- book-cocoon-v10.dtd       3 Jan 2002 12:31:43 -0000       1.1
  +++ book-cocoon-v10.dtd       20 May 2002 06:53:16 -0000      1.2
  @@ -36,7 +36,7 @@
     20011031 Initial version. (DC)
       
   COPYRIGHT:
  -  Copyright (c) @year@ The Apache Software Foundation.
  +  Copyright (c) 1999-2002 The Apache Software Foundation.
     
     Permission to copy in any form is granted provided this notice is 
     included in all copies. Permission to redistribute is granted 
  
  
  
  1.2       +1 -1      xml-cocoon2/src/webapp/resources/entities/changes-v10.dtd
  
  Index: changes-v10.dtd
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/webapp/resources/entities/changes-v10.dtd,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- changes-v10.dtd   3 Jan 2002 12:31:43 -0000       1.1
  +++ changes-v10.dtd   20 May 2002 06:53:16 -0000      1.2
  @@ -38,7 +38,7 @@
     20000316 Added bugfixing attribute. (SM)
   
   COPYRIGHT:
  -  Copyright (c) @year@ The Apache Software Foundation.
  +  Copyright (c) 1999-2002 The Apache Software Foundation.
   
     Permission to copy in any form is granted provided this notice is
     included in all copies. Permission to redistribute is granted
  
  
  
  1.3       +1 -1      
xml-cocoon2/src/webapp/resources/entities/document-v10.dtd
  
  Index: document-v10.dtd
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/webapp/resources/entities/document-v10.dtd,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- document-v10.dtd  28 Mar 2002 01:58:47 -0000      1.2
  +++ document-v10.dtd  20 May 2002 06:53:16 -0000      1.3
  @@ -54,7 +54,7 @@
     20020223 Allowed "figure" at section level (SM)
   
   COPYRIGHT:
  -  Copyright (c) @year@ The Apache Software Foundation.
  +  Copyright (c) 1999-2002 The Apache Software Foundation.
   
     Permission to copy in any form is granted provided this notice is
     included in all copies. Permission to redistribute is granted
  
  
  
  1.2       +1 -1      xml-cocoon2/src/webapp/resources/entities/faq-v10.dtd
  
  Index: faq-v10.dtd
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/resources/entities/faq-v10.dtd,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- faq-v10.dtd       3 Jan 2002 12:31:43 -0000       1.1
  +++ faq-v10.dtd       20 May 2002 06:53:16 -0000      1.2
  @@ -36,7 +36,7 @@
     19991129 Initial version. (SM)
       
   COPYRIGHT:
  -  Copyright (c) @year@ The Apache Software Foundation.
  +  Copyright (c) 1999-2002 The Apache Software Foundation.
     
     Permission to copy in any form is granted provided this notice is 
     included in all copies. Permission to redistribute is granted 
  
  
  
  1.2       +1 -1      
xml-cocoon2/src/webapp/resources/entities/javadoc-v04draft.dtd
  
  Index: javadoc-v04draft.dtd
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/webapp/resources/entities/javadoc-v04draft.dtd,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- javadoc-v04draft.dtd      3 Jan 2002 12:31:43 -0000       1.1
  +++ javadoc-v04draft.dtd      20 May 2002 06:53:16 -0000      1.2
  @@ -47,7 +47,7 @@
     19991129 Cleaned up DTD. (SM)
       
   COPYRIGHT:
  -  Copyright (c) @year@ The Apache Software Foundation.
  +  Copyright (c) 1999-2002 The Apache Software Foundation.
     
     Permission to copy in any form is granted provided this notice is 
     included in all copies. Permission to redistribute is granted 
  
  
  
  1.2       +1 -1      
xml-cocoon2/src/webapp/resources/entities/specification-v10.dtd
  
  Index: specification-v10.dtd
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/webapp/resources/entities/specification-v10.dtd,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- specification-v10.dtd     3 Jan 2002 12:31:43 -0000       1.1
  +++ specification-v10.dtd     20 May 2002 06:53:16 -0000      1.2
  @@ -31,7 +31,7 @@
     19991129 Initial version. (SM)
       
   COPYRIGHT:
  -  Copyright (c) @year@ The Apache Software Foundation.
  +  Copyright (c) 1999-2002 The Apache Software Foundation.
     
     Permission to copy in any form is granted provided this notice is 
     included in all copies. Permission to redistribute is granted 
  
  
  
  1.2       +1 -1      xml-cocoon2/src/webapp/resources/entities/todo-v10.dtd
  
  Index: todo-v10.dtd
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/resources/entities/todo-v10.dtd,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- todo-v10.dtd      3 Jan 2002 12:31:43 -0000       1.1
  +++ todo-v10.dtd      20 May 2002 06:53:16 -0000      1.2
  @@ -39,7 +39,7 @@
     19991225 Added actions element for better structure (SM)
       
   COPYRIGHT:
  -  Copyright (c) @year@ The Apache Software Foundation.
  +  Copyright (c) 1999-2002 The Apache Software Foundation.
     
     Permission to copy in any form is granted provided this notice is 
     included in all copies. Permission to redistribute is granted 
  
  
  
  1.2       +1 -1      xml-cocoon2/src/webapp/resources/icons/cocoon.ico
  
        <<Binary file>>
  
  
  1.2       +1 -1      
xml-cocoon2/src/webapp/samples/common/resources/icons/cocoon.ico
  
        <<Binary file>>
  
  
  1.2       +1 -1      
xml-cocoon2/src/webapp/samples/common/style/xsl/html/simple-xml2html.xsl
  
  Index: simple-xml2html.xsl
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/webapp/samples/common/style/xsl/html/simple-xml2html.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- simple-xml2html.xsl       18 Mar 2002 19:22:19 -0000      1.1
  +++ simple-xml2html.xsl       20 May 2002 06:53:16 -0000      1.2
  @@ -381,4 +381,4 @@
         <xsl:text>&#160;</xsl:text>
      </xsl:template>
   
  -</xsl:stylesheet>
  \ No newline at end of file
  +</xsl:stylesheet>
  
  
  
  1.2       +1 -1      
xml-cocoon2/src/webapp/samples/hello-world/content/templates/hello-page.vm
  
  Index: hello-page.vm
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/webapp/samples/hello-world/content/templates/hello-page.vm,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- hello-page.vm     27 Mar 2002 10:09:31 -0000      1.1
  +++ hello-page.vm     20 May 2002 06:53:16 -0000      1.2
  @@ -7,4 +7,4 @@
     <para>This is my first Cocoon2 page!</para>
     <para>Hi!  This page is generated using $name from the $project 
project.</para>
    </content>
  -</page>
  \ No newline at end of file
  +</page>
  
  
  
  1.2       +1 -1      
xml-cocoon2/src/webapp/samples/hello-world/style/xsl/simple-page2vml.xsl
  
  Index: simple-page2vml.xsl
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/webapp/samples/hello-world/style/xsl/simple-page2vml.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- simple-page2vml.xsl       18 Mar 2002 19:22:40 -0000      1.1
  +++ simple-page2vml.xsl       20 May 2002 06:53:16 -0000      1.2
  @@ -42,4 +42,4 @@
      <xsl:apply-templates/>
     </xsl:template>
   
  -</xsl:stylesheet>
  \ No newline at end of file
  +</xsl:stylesheet>
  
  
  
  1.2       +1 -1      
xml-cocoon2/src/webapp/samples/hello-world/style/xsl/simple-xml2html.xsl
  
  Index: simple-xml2html.xsl
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/webapp/samples/hello-world/style/xsl/simple-xml2html.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- simple-xml2html.xsl       18 Mar 2002 19:22:40 -0000      1.1
  +++ simple-xml2html.xsl       20 May 2002 06:53:16 -0000      1.2
  @@ -381,4 +381,4 @@
         <xsl:text>&#160;</xsl:text>
      </xsl:template>
   
  -</xsl:stylesheet>
  \ No newline at end of file
  +</xsl:stylesheet>
  
  
  
  1.2       +1 -1      
xml-cocoon2/src/webapp/samples/tutorial/docs/dtd/changes-v10.dtd
  
  Index: changes-v10.dtd
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/webapp/samples/tutorial/docs/dtd/changes-v10.dtd,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- changes-v10.dtd   18 Mar 2002 19:23:08 -0000      1.1
  +++ changes-v10.dtd   20 May 2002 06:53:16 -0000      1.2
  @@ -38,7 +38,7 @@
     20000316 Added bugfixing attribute. (SM)
   
   COPYRIGHT:
  -  Copyright (c) @year@ The Apache Software Foundation.
  +  Copyright (c) 1999-2002 The Apache Software Foundation.
   
     Permission to copy in any form is granted provided this notice is
     included in all copies. Permission to redistribute is granted
  
  
  
  1.2       +1 -1      
xml-cocoon2/src/webapp/samples/tutorial/docs/dtd/faq-v10.dtd
  
  Index: faq-v10.dtd
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/webapp/samples/tutorial/docs/dtd/faq-v10.dtd,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- faq-v10.dtd       18 Mar 2002 19:23:08 -0000      1.1
  +++ faq-v10.dtd       20 May 2002 06:53:16 -0000      1.2
  @@ -36,7 +36,7 @@
     19991129 Initial version. (SM)
       
   COPYRIGHT:
  -  Copyright (c) @year@ The Apache Software Foundation.
  +  Copyright (c) 1999-2002 The Apache Software Foundation.
     
     Permission to copy in any form is granted provided this notice is 
     included in all copies. Permission to redistribute is granted 
  
  
  
  1.2       +1 -1      
xml-cocoon2/src/webapp/samples/tutorial/docs/dtd/javadoc-v04draft.dtd
  
  Index: javadoc-v04draft.dtd
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/webapp/samples/tutorial/docs/dtd/javadoc-v04draft.dtd,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- javadoc-v04draft.dtd      18 Mar 2002 19:23:08 -0000      1.1
  +++ javadoc-v04draft.dtd      20 May 2002 06:53:16 -0000      1.2
  @@ -47,7 +47,7 @@
     19991129 Cleaned up DTD. (SM)
       
   COPYRIGHT:
  -  Copyright (c) @year@ The Apache Software Foundation.
  +  Copyright (c) 1999-2002 The Apache Software Foundation.
     
     Permission to copy in any form is granted provided this notice is 
     included in all copies. Permission to redistribute is granted 
  
  
  
  1.2       +1 -1      
xml-cocoon2/src/webapp/samples/tutorial/docs/dtd/specification-v10.dtd
  
  Index: specification-v10.dtd
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/webapp/samples/tutorial/docs/dtd/specification-v10.dtd,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- specification-v10.dtd     18 Mar 2002 19:23:08 -0000      1.1
  +++ specification-v10.dtd     20 May 2002 06:53:16 -0000      1.2
  @@ -31,7 +31,7 @@
     19991129 Initial version. (SM)
       
   COPYRIGHT:
  -  Copyright (c) @year@ The Apache Software Foundation.
  +  Copyright (c) 1999-2002 The Apache Software Foundation.
     
     Permission to copy in any form is granted provided this notice is 
     included in all copies. Permission to redistribute is granted 
  
  
  
  1.2       +1 -1      
xml-cocoon2/src/webapp/samples/tutorial/docs/dtd/todo-v10.dtd
  
  Index: todo-v10.dtd
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/webapp/samples/tutorial/docs/dtd/todo-v10.dtd,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- todo-v10.dtd      18 Mar 2002 19:23:08 -0000      1.1
  +++ todo-v10.dtd      20 May 2002 06:53:16 -0000      1.2
  @@ -39,7 +39,7 @@
     19991225 Added actions element for better structure (SM)
       
   COPYRIGHT:
  -  Copyright (c) @year@ The Apache Software Foundation.
  +  Copyright (c) 1999-2002 The Apache Software Foundation.
     
     Permission to copy in any form is granted provided this notice is 
     included in all copies. Permission to redistribute is granted 
  
  
  
  1.9       +3 -3      
xml-cocoon2/src/webapp/stylesheets/simple-samples2html.xsl
  
  Index: simple-samples2html.xsl
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/webapp/stylesheets/simple-samples2html.xsl,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- simple-samples2html.xsl   7 Mar 2002 21:02:34 -0000       1.8
  +++ simple-samples2html.xsl   20 May 2002 06:53:17 -0000      1.9
  @@ -6,7 +6,7 @@
    <xsl:template match="/">
     <html>
      <head>
  -    <title>Apache Cocoon @version@</title>
  +    <title>Apache Cocoon 2.1-dev</title>
       <link rel="SHORTCUT ICON" href="favicon.ico"/>
      </head>
      <body bgcolor="#ffffff" link="#0086b2" vlink="#00698c" alink="#743e75">
  @@ -17,7 +17,7 @@
        <tr>
         <td width="30%"></td>
         <td width="40%" align="center"><img border="0" 
src="images/cocoon.gif"/></td>
  -      <td width="30%" align="center"><font face="arial,helvetica,sanserif" 
color="#000000"><b>version @version@</b></font></td>
  +      <td width="30%" align="center"><font face="arial,helvetica,sanserif" 
color="#000000"><b>version 2.1-dev</b></font></td>
        </tr>
       </table>
   
  @@ -25,7 +25,7 @@
   
       <p align="center">
        <font size="-1">
  -      Copyright &#169; @year@ <a href="http://www.apache.org";>The Apache 
Software Foundation</a>.<br/>
  +      Copyright &#169; 1999-2002 <a href="http://www.apache.org";>The Apache 
Software Foundation</a>.<br/>
         All rights reserved.
        </font>
       </p>
  
  
  
  1.2       +1 -1      xml-cocoon2/src/webapp/stylesheets/simple-xml2html.xsl
  
  Index: simple-xml2html.xsl
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/stylesheets/simple-xml2html.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- simple-xml2html.xsl       3 Jan 2002 12:31:46 -0000       1.1
  +++ simple-xml2html.xsl       20 May 2002 06:53:17 -0000      1.2
  @@ -381,4 +381,4 @@
         <xsl:text>&#160;</xsl:text>
      </xsl:template>
   
  -</xsl:stylesheet>
  \ No newline at end of file
  +</xsl:stylesheet>
  
  
  
  1.6       +3 -3      xml-cocoon2/src/webapp/stylesheets/svg-samples2html.xsl
  
  Index: svg-samples2html.xsl
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/stylesheets/svg-samples2html.xsl,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- svg-samples2html.xsl      29 Jan 2002 02:51:45 -0000      1.5
  +++ svg-samples2html.xsl      20 May 2002 06:53:17 -0000      1.6
  @@ -5,7 +5,7 @@
    <xsl:template match="/">
     <html>
      <head>
  -    <title>Apache Cocoon @version@</title>
  +    <title>Apache Cocoon 2.1-dev</title>
      </head>
      <body bgcolor="#ffffff" link="#0086b2" vlink="#00698c" alink="#743e75">
       <table border="0" cellspacing="2" cellpadding="2" align="center" 
width="100%">
  @@ -15,7 +15,7 @@
        <tr>
         <td width="30%"></td>
         <td width="40%" align="center"><img border="0" 
src="images/cocoon.gif"/></td>
  -      <td width="30%" align="center"><font face="arial,helvetica,sanserif" 
color="#000000"><b>version @version@</b></font></td>
  +      <td width="30%" align="center"><font face="arial,helvetica,sanserif" 
color="#000000"><b>version 2.1-dev</b></font></td>
        </tr>
       </table>
   
  @@ -23,7 +23,7 @@
   
       <p align="center">
        <font size="-1">
  -      Copyright &#169; @year@ <a href="http://www.apache.org";>The Apache 
Software Foundation</a>.<br/>
  +      Copyright &#169; 1999-2002 <a href="http://www.apache.org";>The Apache 
Software Foundation</a>.<br/>
         All rights reserved.
        </font>
       </p>
  
  
  
  1.2       +1 -1      
xml-cocoon2/src/webapp/stylesheets/page/simple-page2vml.xsl
  
  Index: simple-page2vml.xsl
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/webapp/stylesheets/page/simple-page2vml.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- simple-page2vml.xsl       3 Jan 2002 12:31:46 -0000       1.1
  +++ simple-page2vml.xsl       20 May 2002 06:53:17 -0000      1.2
  @@ -42,4 +42,4 @@
      <xsl:apply-templates/>
     </xsl:template>
   
  -</xsl:stylesheet>
  \ No newline at end of file
  +</xsl:stylesheet>
  
  
  
  1.1                  
xml-cocoon2/src/webapp/stylesheets/xmlform/xmlform2html.xsl
  
  Index: xmlform2html.xsl
  ===================================================================
  <?xml version="1.0" encoding="iso-8859-1" ?>
  
  
  <!-- 
  
          Generic XMLForm processing stylesheet.  
    Converts XMLForm tags to HTML tags.
    
    Syntax is borrowed from the XForms standard.
    http://www.w3.org/TR/2002/WD-xforms-20020118/
    
    This stylesheet is usually applied at the end of a 
    transformation process after laying out the xmlform
    tags on the page is complete. At this stage xmlform tags 
    are rendered in device specific format.
    
    author: Ivelin Ivanov, [EMAIL PROTECTED], May 2002
    author: Michael Ratliff, [EMAIL PROTECTED] <[EMAIL PROTECTED]>, May 2002
    Original Author: Torsten Curdt, [EMAIL PROTECTED], March 2002
  
  -->
  
  <xsl:stylesheet version="1.0" 
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
      xmlns:xf="http://xml.apache.org/cocoon/xmlform/2002";
  >
  
     <xsl:output method = "html" omit-xml-declaration = "yes"  /> 
    
  
     <xsl:template match="/">
       <xsl:apply-templates />
     </xsl:template>
  
     <xsl:template match="xf:form">
        <form method="POST">
           <xsl:copy-of select="@*"/>
           <input type="hidden" name="cocoon-xmlform-view" value="[EMAIL 
PROTECTED]"/>
           <xsl:apply-templates />
        </form>
     </xsl:template>
  
     <xsl:template match="xf:output">
        [<xsl:value-of select="xf:value/text()"/>]
     </xsl:template>
  
     <xsl:template match="xf:textbox">
        <input name="[EMAIL PROTECTED]" type="textbox" 
value="{xf:value/text()}" />
     </xsl:template>
  
     <xsl:template match="xf:password">
        <input name="[EMAIL PROTECTED]" type="password" 
value="{xf:value/text()}" />
     </xsl:template>
  
     <xsl:template match="xf:selectBoolean">
        <input name="[EMAIL PROTECTED]" type="checkbox" value="true">
          <xsl:if test="xf:value/text() = 'true'">
            <xsl:attribute name="checked"/>
          </xsl:if>
        </input>
     </xsl:template>
  
     <xsl:template match="xf:selectOne">
       <select name="[EMAIL PROTECTED]">
         <xsl:variable name="selected" select="xf:value/text()"/>
         <xsl:for-each select="xf:item">
           <option value="{xf:value}">
             <xsl:if test="$selected = xf:value">
               <xsl:attribute name="selected"/>
             </xsl:if>
             <xsl:value-of select="xf:caption"/>
           </option>
         </xsl:for-each>
       </select>
     </xsl:template>
  
     
     <xsl:template match="xf:selectMany | xf:[EMAIL PROTECTED]'listbox']">
                <xsl:variable name="selected" select="xf:value"/>
                <select name="[EMAIL PROTECTED]">
                        <xsl:attribute name="multiple"/>
                        <xsl:for-each select="xf:item">
                                <option value="{xf:value}">
                                        <xsl:if test="xf:value = $selected">
                                                <xsl:attribute name="selected"/>
                                        </xsl:if>
                                        <xsl:value-of select="xf:caption"/>
                                </option>
                        </xsl:for-each>
                </select>       
     </xsl:template>
  
     <xsl:template match="xf:submit">
        <input name="[EMAIL PROTECTED]" type="submit" 
value="{xf:caption/text()}" />
     </xsl:template>
  
  
     <xsl:template match="*">
        <xsl:copy><xsl:copy-of select="@*" /><xsl:apply-templates /></xsl:copy>
     </xsl:template>
  
     <xsl:template match="text()">
        <xsl:value-of select="." />
     </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  
  
  
  1.7       +4 -4      
xml-cocoon2/src/webapp/sub/stylesheets/simple-samples2html.xsl
  
  Index: simple-samples2html.xsl
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/webapp/sub/stylesheets/simple-samples2html.xsl,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- simple-samples2html.xsl   9 Feb 2002 06:21:58 -0000       1.6
  +++ simple-samples2html.xsl   20 May 2002 06:53:17 -0000      1.7
  @@ -1,6 +1,6 @@
   <?xml version="1.0"?>
   
  -<!-- CVS: $Id: simple-samples2html.xsl,v 1.6 2002/02/09 06:21:58 vgritsenko 
Exp $ -->
  +<!-- CVS: $Id: simple-samples2html.xsl,v 1.7 2002/05/20 06:53:17 ivelin Exp 
$ -->
   
   <!-- Author: Nicola Ken Barozzi "[EMAIL PROTECTED]" -->
   <!-- Author: Vadim Gritsenko "[EMAIL PROTECTED]" -->
  @@ -9,7 +9,7 @@
    <xsl:template match="/">
     <html>
      <head>
  -    <title>Apache Cocoon @version@</title>
  +    <title>Apache Cocoon 2.1-dev</title>
      </head>
      <body bgcolor="#ffffff" link="#0086b2" vlink="#00698c" alink="#743e75">
       <table border="0" cellspacing="2" cellpadding="2" align="center" 
width="100%">
  @@ -19,7 +19,7 @@
        <tr>
         <td width="30%"></td>
         <td width="40%" align="center"><img border="0" 
src="../images/cocoon.gif"/></td>
  -      <td width="30%" align="center"><font face="arial,helvetica,sanserif" 
color="#000000"><b>version @version@</b></font></td>
  +      <td width="30%" align="center"><font face="arial,helvetica,sanserif" 
color="#000000"><b>version 2.1-dev</b></font></td>
        </tr>
       </table>
   
  @@ -27,7 +27,7 @@
   
       <p align="center">
        <font size="-1">
  -      Copyright &#169; @year@ <a href="http://www.apache.org";>The Apache 
Software Foundation</a>.<br/>
  +      Copyright &#169; 1999-2002 <a href="http://www.apache.org";>The Apache 
Software Foundation</a>.<br/>
         All rights reserved.
        </font>
       </p>
  
  
  
  1.2       +1 -1      xml-cocoon2/src/webapp/templates/hello-page.vm
  
  Index: hello-page.vm
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/templates/hello-page.vm,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- hello-page.vm     3 Jan 2002 12:31:47 -0000       1.1
  +++ hello-page.vm     20 May 2002 06:53:17 -0000      1.2
  @@ -7,4 +7,4 @@
     <para>This is my first Cocoon2 page!</para>
     <para>Hi!  This page is generated using $name from the $project 
project.</para>
    </content>
  -</page>
  \ No newline at end of file
  +</page>
  
  
  
  1.2       +1 -1      xml-cocoon2/src/webapp/tutorial/docs/dtd/changes-v10.dtd
  
  Index: changes-v10.dtd
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/tutorial/docs/dtd/changes-v10.dtd,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- changes-v10.dtd   3 Jan 2002 12:31:48 -0000       1.1
  +++ changes-v10.dtd   20 May 2002 06:53:17 -0000      1.2
  @@ -38,7 +38,7 @@
     20000316 Added bugfixing attribute. (SM)
   
   COPYRIGHT:
  -  Copyright (c) @year@ The Apache Software Foundation.
  +  Copyright (c) 1999-2002 The Apache Software Foundation.
   
     Permission to copy in any form is granted provided this notice is
     included in all copies. Permission to redistribute is granted
  
  
  
  1.2       +1 -1      xml-cocoon2/src/webapp/tutorial/docs/dtd/faq-v10.dtd
  
  Index: faq-v10.dtd
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/tutorial/docs/dtd/faq-v10.dtd,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- faq-v10.dtd       3 Jan 2002 12:31:48 -0000       1.1
  +++ faq-v10.dtd       20 May 2002 06:53:17 -0000      1.2
  @@ -36,7 +36,7 @@
     19991129 Initial version. (SM)
       
   COPYRIGHT:
  -  Copyright (c) @year@ The Apache Software Foundation.
  +  Copyright (c) 1999-2002 The Apache Software Foundation.
     
     Permission to copy in any form is granted provided this notice is 
     included in all copies. Permission to redistribute is granted 
  
  
  
  1.2       +1 -1      
xml-cocoon2/src/webapp/tutorial/docs/dtd/javadoc-v04draft.dtd
  
  Index: javadoc-v04draft.dtd
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/webapp/tutorial/docs/dtd/javadoc-v04draft.dtd,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- javadoc-v04draft.dtd      3 Jan 2002 12:31:48 -0000       1.1
  +++ javadoc-v04draft.dtd      20 May 2002 06:53:17 -0000      1.2
  @@ -47,7 +47,7 @@
     19991129 Cleaned up DTD. (SM)
       
   COPYRIGHT:
  -  Copyright (c) @year@ The Apache Software Foundation.
  +  Copyright (c) 1999-2002 The Apache Software Foundation.
     
     Permission to copy in any form is granted provided this notice is 
     included in all copies. Permission to redistribute is granted 
  
  
  
  1.2       +1 -1      
xml-cocoon2/src/webapp/tutorial/docs/dtd/specification-v10.dtd
  
  Index: specification-v10.dtd
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/webapp/tutorial/docs/dtd/specification-v10.dtd,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- specification-v10.dtd     3 Jan 2002 12:31:48 -0000       1.1
  +++ specification-v10.dtd     20 May 2002 06:53:17 -0000      1.2
  @@ -31,7 +31,7 @@
     19991129 Initial version. (SM)
       
   COPYRIGHT:
  -  Copyright (c) @year@ The Apache Software Foundation.
  +  Copyright (c) 1999-2002 The Apache Software Foundation.
     
     Permission to copy in any form is granted provided this notice is 
     included in all copies. Permission to redistribute is granted 
  
  
  
  1.2       +1 -1      xml-cocoon2/src/webapp/tutorial/docs/dtd/todo-v10.dtd
  
  Index: todo-v10.dtd
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/tutorial/docs/dtd/todo-v10.dtd,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- todo-v10.dtd      3 Jan 2002 12:31:48 -0000       1.1
  +++ todo-v10.dtd      20 May 2002 06:53:17 -0000      1.2
  @@ -39,7 +39,7 @@
     19991225 Added actions element for better structure (SM)
       
   COPYRIGHT:
  -  Copyright (c) @year@ The Apache Software Foundation.
  +  Copyright (c) 1999-2002 The Apache Software Foundation.
     
     Permission to copy in any form is granted provided this notice is 
     included in all copies. Permission to redistribute is granted 
  
  
  
  1.5       +2 -2      xml-cocoon2/src/webapp/welcome/welcome.xhtml
  
  Index: welcome.xhtml
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/welcome/welcome.xhtml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- welcome.xhtml     16 May 2002 09:22:45 -0000      1.4
  +++ welcome.xhtml     20 May 2002 06:53:17 -0000      1.5
  @@ -2,7 +2,7 @@
      <head>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
   
  -      <title>Apache Cocoon @version@</title>
  +      <title>Apache Cocoon 2.1-dev</title>
   
         <link href="favicon.ico" rel="SHORTCUT ICON" />
      </head>
  @@ -25,7 +25,7 @@
               <tr>
                  <td align="center" width="30%">
                     <font color="#000000" face="arial,helvetica,sanserif">
  -                     <b>version @version@</b>
  +                     <b>version 2.1-dev</b>
                     </font>
                  </td>
               </tr>
  
  
  

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