You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by df...@apache.org on 2004/05/05 11:58:08 UTC

cvs commit: jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/table TableHandler.java

dflorey     2004/05/05 02:58:08

  Modified:    proposals/projector/src/java/org/apache/slide/projector
                        Constants.java Processor.java
               proposals/projector/src/conf web.xml
               proposals/projector/src/java/org/apache/slide/projector/processor/form
                        FormGenerator.java Trigger.java Form.java
                        FormHandler.java
               proposals/projector/src/java/org/apache/slide/projector/engine
                        ResultConfiguration.java ProcessorManager.java
                        ParameterConfiguration.java
                        StepConfigurationHandler.java
               proposals/projector/src/java/org/apache/slide/projector/processor/table
                        TableHandler.java
  Log:
  Preparation for page spanning form based processes (introducing domain concept)
  
  Revision  Changes    Path
  1.3       +1 -13     jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/Constants.java
  
  Index: Constants.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/Constants.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Constants.java	3 May 2004 14:54:54 -0000	1.2
  +++ Constants.java	5 May 2004 09:58:08 -0000	1.3
  @@ -7,11 +7,6 @@
   
   public interface Constants {
       // FIXME should be read from configuration
  -
  -    public final static String URL_ENCODING = "UTF-8";
  -
  -    public final static String CURRENT_PROCESSOR_URI = "currentProcessorUri";
  -
       public final static String CONNECTOR = "org.apache.slide.projector.connector.webdav.WebdavConnector";
       public final static String REPOSITORY_DOMAIN = "/slide";
       public final static String REPOSITORY_HOST = "localhost";
  @@ -38,7 +33,6 @@
       public final static int UDP = 0;
       public final static int TCP = 1;
       public final static int OFF = 2;
  -
   	
   	public final static int NOTIFICATION_METHOD = UDP;
       public final static String NOTIFICATION_HOST = "192.168.105.64";
  @@ -57,10 +51,4 @@
       public final static String CLASSES_DIR = SYSTEM_HOME + "classes/";
   
       public static final String PROCESS_STORAGE_PREFIX = SYSTEM_HOME+"jobs/";
  -
  -    public final static String DEFAULT_CONTENT_ENCODING = "ISO-8859-1";
  -
  -    public final static String CHARACTER_ENCODING_PROPERTY = "characterEncoding";
  -
  -    public final static String HISTORY_URI_START = "/history";
  -}
  +}
  \ No newline at end of file
  
  
  
  1.2       +0 -63     jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/Processor.java
  
  Index: Processor.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/Processor.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Processor.java	3 May 2004 14:20:23 -0000	1.1
  +++ Processor.java	5 May 2004 09:58:08 -0000	1.2
  @@ -1,66 +1,3 @@
  -/*
  - * $Header$
  - * $Revision$
  - * $Date$
  - *
  - * ====================================================================
  - *
  - * 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
  - * 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", "Slide", 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 apache@apache.org.
  - *
  - * 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.  For more
  - * information on the Apache Software Foundation, please see
  - * <http://www.apache.org/>.
  - *
  - * [Additional notices, if required by prior licensing conditions]
  - *
  - */
  -
   package org.apache.slide.projector;
   
   import org.apache.slide.projector.descriptor.ParameterDescriptor;
  
  
  
  1.2       +6 -651    jakarta-slide/proposals/projector/src/conf/web.xml
  
  Index: web.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/proposals/projector/src/conf/web.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- web.xml	3 May 2004 14:20:29 -0000	1.1
  +++ web.xml	5 May 2004 09:58:08 -0000	1.2
  @@ -1,669 +1,24 @@
   <?xml version="1.0" encoding="ISO-8859-1"?>
   <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
   <web-app>
  -    <!-- Definition and configuration of servlet filters -->
  -    <filter>
  -        <filter-name>webdavlog</filter-name>
  -        <filter-class>org.apache.slide.webdav.filter.LogFilter</filter-class>
  -        <init-param>
  -            <param-name>logFormat</param-name>
  -            <param-value>%T, %t, %P, %m, %s "%l", %i, %p</param-value>
  -            <description>
  -                Defines the format of a log line.
  -                The following placeholders are available: 
  -                    %T=thread-name, 
  -                    %t=date-time, 
  -                    %P=principal-name, 
  -                    %m=method-name, 
  -                    %s=status-code, 
  -                    %l=default-status-text, 
  -                    %L=detailed-status-text, 
  -                    %i=elapsed-time, 
  -                    %p=relative-request-uri, 
  -                    %u=request-uri.
  -                    %x=request-content-length.
  -                    %A=header User-Agent.
  -            </description>
  -        </init-param>
  -        <init-param>
  -            <param-name>outputToConsole</param-name>
  -            <param-value>true</param-value>
  -            <description>If true, output is directed to STDOUT.</description>
  -        </init-param>
  -        <init-param>
  -            <param-name>outputToServletLog</param-name>
  -            <param-value>false</param-value>
  -            <description>If true, output is directed to the servlet's log file.</description>
  -        </init-param>
  -        <!--
  -        <init-param>
  -            <param-name>outputToFile</param-name>
  -            <param-value>c:\webdav.log.xml</param-value>
  -            <description>If present, output is directed to the specified file.</description>
  -        </init-param>
  -        -->
  -    </filter>
  -    <filter-mapping>
  -        <filter-name>webdavlog</filter-name>
  -        <servlet-name>webdav</servlet-name>
  -    </filter-mapping>
  -    <!-- Definition and configuration of Slide's WebDAV servlet. -->
  +    <!-- Definition and configuration of Projector's WebDAV servlet. -->
       <servlet>
  -        <servlet-name>webdav</servlet-name>
  -        <display-name>Slide DAV Server</display-name>
  -        <servlet-class>org.apache.slide.webdav.WebdavServlet</servlet-class>
  -        <init-param>
  -            <param-name>domain</param-name>
  -            <param-value>/Domain.xml</param-value>
  -            <description>
  -                Path to the domain configuration file, relative to the path of the
  -                web application.
  -                The default is '/Domain.xml'.
  -            </description>
  -        </init-param>
  -        <init-param>
  -            <param-name>namespace</param-name>
  -            <param-value>slide</param-value>
  -            <description>
  -                Name of the Slide namespace that should be accessed by this servlet.
  -                If this parameter is provided, make sure the corresponding namespace
  -                is defined in the domain configuration file. Otherwise, the default
  -                namespace will be used, if one exists.
  -            </description>
  -        </init-param>
  -        <init-param>
  -            <param-name>scope</param-name>
  -            <param-value/>
  -            <description>
  -                 Scope of the Slide namespace that should be exposed by this servlet.
  -                 For example, if you want to expose only the /files collection via
  -                 WebDAV, set this parameter to '/files'. In that case, any URLs of the
  -                 form '/context-path/servlet-path/*' will be mapped to '/files/*'
  -                 in the Slide namespace.
  -                 The default value is an empty string.
  -            </description>
  -        </init-param>
  -        <init-param>
  -            <param-name>depth-limit</param-name>
  -            <param-value>3</param-value>
  -            <description>
  -                 This init-parameter determines the depth limit for PROPFIND and other
  -                 methods, to avoid performance hits on the server for requests with
  -                 infinite depth.
  -                 The default value is '3'.
  -            </description>
  -        </init-param>
  -        <init-param>
  -            <param-name>default-mime-type</param-name>
  -            <param-value>application/octet-stream</param-value>
  -            <description>
  -                The MIME type that should be used for resources of unknown type. For
  -                example, if a WebDAV client uploads a file (via PUT) without specifying
  -                the Content-Type header, the MIME type defined here will be used.
  -                The default value is 'application/octet-stream'.
  -            </description>
  -        </init-param>
  -        <init-param>
  -            <param-name>default-servlet</param-name>
  -            <param-value>true</param-value>
  -            <description>
  -                By default, the WebDAV servlet is mapped as default servlet of the
  -                web application context (the url-pattern in servlet-mapping is '/').
  -                If you want to change that mapping so the servlet is no longer the
  -                default servlet, you must change this initialization parameter to
  -                indicate the situation to the servlet, by setting it to 'false'.
  -                The default value is 'true'.
  -            </description>
  -        </init-param>
  -        <init-param>
  -            <param-name>directory-browsing</param-name>
  -            <param-value>true</param-value>
  -            <description>
  -                 Use the 'directory-browsing' init-parameter to turn off generation of
  -                 HTML index pages that enable browsing of collections (by setting this
  -                 parameter to 'false'), or to specify a web-app relative path to a
  -                 template resource (a JSP page, for example) which should handle
  -                 generation of the HTML index page. In the latter case, you can use a
  -                 JSP page at WEB-INF/index.jsp by specifying '/WEB-INF/index.jsp' as
  -                 value of this parameter.
  -                 The default value is 'true'.
  -            </description>
  -        </init-param>
  -        <init-param>
  -            <param-name>directory-browsing-hide-acl</param-name>
  -            <param-value>true</param-value>
  -            <description>
  -                Use this parameter to hide ACL information in generated HTML index pages.
  -                (see parameter "directory-browsing")
  -                The default value is 'true'.
  -            </description>
  -        </init-param>
  -        <init-param>
  -            <param-name>directory-browsing-hide-locks</param-name>
  -            <param-value>true</param-value>
  -            <description>
  -                Use this parameter to hide locking information in generated HTML index pages.
  -                (see parameter "directory-browsing")
  -                The default value is 'true'.
  -            </description>
  -        </init-param>
  -        <init-param>
  -            <param-name>optimizePropfindOutput</param-name>
  -            <param-value>true</param-value>
  -            <description>
  -                If set to false, the PropFindMethod will first create a (large) JDOM 
  -                document in memory and then write it to the response stream. 
  -                If set true, the PropFindMethod will write results to the stream as
  -                soon as they are available. This will reduce memory consumption
  -                in the case of large responses (PROPFIND on many resources).
  -                The output of these two variants differ slightly, since in optimized 
  -                mode the D:DAV namespace is declared in the multistatus element AND
  -                in all response elements. Since this is still a valid XML document
  -                it shouldn't be a problem, but in case you encounter any diffculties
  -                this switch provides a way to get around it. 
  -            </description>
  -        </init-param>
  -        <init-param>
  -            <param-name>debug</param-name>
  -            <param-value>0</param-value>
  -        </init-param>
  -        <init-param>
  -            <param-name>extendedAllprop</param-name>
  -            <param-value>false</param-value>
  -            <description>
  -            According to RFC3253 (DeltaV), RFCxxxx (ACL) and RFCxxxx (Binding),
  -            a DAV:allprop PROPFIND should not return any of the properties defined
  -            in any of that documents.
  -            For testing purposes, the specified behaviour can be disabled by 
  -            setting this parameter "true".
  -            </description>
  -        </init-param>
  -        <init-param>
  -            <param-name>lockdiscoveryIncludesPrincipalURL</param-name>
  -            <param-value>true</param-value>
  -            <description>
  -                As proposed on February 08, 2003 by Lisa Dusseault in 
  -                w3c-dist-auth-request@w3.org, the DAV:lockdiscovery property should 
  -                include an element DAV:principal-URL with the semantics of the 
  -                WebDAV/ACL specification. This feature can be switched-off in case 
  -                of interoperability problems.
  -            </description>
  -        </init-param>
  +        <servlet-name>process</servlet-name>
  +        <display-name>Projector<display-name>
  +        <servlet-class>org.apache.slide.projector.engine.ProcessServlet</servlet-class>
           <load-on-startup>1</load-on-startup>
  -        <!-- Uncomment this to get authentication -->
  -        <@A...@security-role-ref>
  -            <role-name>root</role-name>
  -            <role-link>root</role-link>
  -        </security-role-ref>
  -        <security-role-ref>
  -            <role-name>guest</role-name>
  -            <role-link>guest</role-link>
  -        </security-role-ref>
  -        <security-role-ref>
  -            <role-name>user</role-name>
  -            <role-link>user</role-link>
  -        </security-role-ref@AUTH@>
       </servlet>
  -    <!-- The mapping for the Slide WebDAV servlet.
  -       If you change the mapping so that the servlet isn't the default servlet
  -       anymore, make sure to set the init-parameter 'default-servlet' to
  -       'false'. -->
  +    <!-- The mapping for the process servlet. -->
       <servlet-mapping>
  -        <servlet-name>webdav</servlet-name>
  +        <servlet-name>process</servlet-name>
           <url-pattern>/</url-pattern>
       </servlet-mapping>
       <!-- Set the default session timeout (in seconds) -->
       <session-config>
           <session-timeout>30</session-timeout>
       </session-config>
  -    <!-- Establish the default MIME type mappings -->
  -    <mime-mapping>
  -        <extension>txt</extension>
  -        <mime-type>text/plain</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>html</extension>
  -        <mime-type>text/html</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>htm</extension>
  -        <mime-type>text/html</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>gif</extension>
  -        <mime-type>image/gif</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>jpg</extension>
  -        <mime-type>image/jpeg</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>jpe</extension>
  -        <mime-type>image/jpeg</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>jpeg</extension>
  -        <mime-type>image/jpeg</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>java</extension>
  -        <mime-type>text/plain</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>body</extension>
  -        <mime-type>text/html</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>rtx</extension>
  -        <mime-type>text/richtext</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>tsv</extension>
  -        <mime-type>text/tab-separated-values</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>etx</extension>
  -        <mime-type>text/x-setext</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>ps</extension>
  -        <mime-type>application/x-postscript</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>class</extension>
  -        <mime-type>application/java</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>csh</extension>
  -        <mime-type>application/x-csh</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>sh</extension>
  -        <mime-type>application/x-sh</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>tcl</extension>
  -        <mime-type>application/x-tcl</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>tex</extension>
  -        <mime-type>application/x-tex</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>texinfo</extension>
  -        <mime-type>application/x-texinfo</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>texi</extension>
  -        <mime-type>application/x-texinfo</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>t</extension>
  -        <mime-type>application/x-troff</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>tr</extension>
  -        <mime-type>application/x-troff</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>roff</extension>
  -        <mime-type>application/x-troff</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>man</extension>
  -        <mime-type>application/x-troff-man</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>me</extension>
  -        <mime-type>application/x-troff-me</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>ms</extension>
  -        <mime-type>application/x-wais-source</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>src</extension>
  -        <mime-type>application/x-wais-source</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>zip</extension>
  -        <mime-type>application/zip</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>bcpio</extension>
  -        <mime-type>application/x-bcpio</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>cpio</extension>
  -        <mime-type>application/x-cpio</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>gtar</extension>
  -        <mime-type>application/x-gtar</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>shar</extension>
  -        <mime-type>application/x-shar</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>sv4cpio</extension>
  -        <mime-type>application/x-sv4cpio</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>sv4crc</extension>
  -        <mime-type>application/x-sv4crc</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>tar</extension>
  -        <mime-type>application/x-tar</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>ustar</extension>
  -        <mime-type>application/x-ustar</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>dvi</extension>
  -        <mime-type>application/x-dvi</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>hdf</extension>
  -        <mime-type>application/x-hdf</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>latex</extension>
  -        <mime-type>application/x-latex</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>bin</extension>
  -        <mime-type>application/octet-stream</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>oda</extension>
  -        <mime-type>application/oda</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>pdf</extension>
  -        <mime-type>application/pdf</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>ps</extension>
  -        <mime-type>application/postscript</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>eps</extension>
  -        <mime-type>application/postscript</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>ai</extension>
  -        <mime-type>application/postscript</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>rtf</extension>
  -        <mime-type>application/rtf</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>nc</extension>
  -        <mime-type>application/x-netcdf</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>cdf</extension>
  -        <mime-type>application/x-netcdf</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>cer</extension>
  -        <mime-type>application/x-x509-ca-cert</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>exe</extension>
  -        <mime-type>application/octet-stream</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>gz</extension>
  -        <mime-type>application/x-gzip</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>Z</extension>
  -        <mime-type>application/x-compress</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>z</extension>
  -        <mime-type>application/x-compress</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>hqx</extension>
  -        <mime-type>application/mac-binhex40</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>mif</extension>
  -        <mime-type>application/x-mif</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>ief</extension>
  -        <mime-type>image/ief</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>tiff</extension>
  -        <mime-type>image/tiff</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>tif</extension>
  -        <mime-type>image/tiff</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>ras</extension>
  -        <mime-type>image/x-cmu-raster</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>pnm</extension>
  -        <mime-type>image/x-portable-anymap</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>pbm</extension>
  -        <mime-type>image/x-portable-bitmap</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>pgm</extension>
  -        <mime-type>image/x-portable-graymap</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>ppm</extension>
  -        <mime-type>image/x-portable-pixmap</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>rgb</extension>
  -        <mime-type>image/x-rgb</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>xbm</extension>
  -        <mime-type>image/x-xbitmap</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>xpm</extension>
  -        <mime-type>image/x-xpixmap</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>xwd</extension>
  -        <mime-type>image/x-xwindowdump</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>au</extension>
  -        <mime-type>audio/basic</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>snd</extension>
  -        <mime-type>audio/basic</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>aif</extension>
  -        <mime-type>audio/x-aiff</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>aiff</extension>
  -        <mime-type>audio/x-aiff</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>aifc</extension>
  -        <mime-type>audio/x-aiff</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>wav</extension>
  -        <mime-type>audio/x-wav</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>mpeg</extension>
  -        <mime-type>video/mpeg</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>mpg</extension>
  -        <mime-type>video/mpeg</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>mpe</extension>
  -        <mime-type>video/mpeg</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>qt</extension>
  -        <mime-type>video/quicktime</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>mov</extension>
  -        <mime-type>video/quicktime</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>avi</extension>
  -        <mime-type>video/x-msvideo</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>movie</extension>
  -        <mime-type>video/x-sgi-movie</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>avx</extension>
  -        <mime-type>video/x-rad-screenplay</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>wrl</extension>
  -        <mime-type>x-world/x-vrml</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>mpv2</extension>
  -        <mime-type>video/mpeg2</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>jpg</extension>
  -        <mime-type>image/pjpeg</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>sgml</extension>
  -        <mime-type>text/sgml</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>sgm</extension>
  -        <mime-type>text/sgml</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>css</extension>
  -        <mime-type>text/css</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>png</extension>
  -        <mime-type>image/png</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>bmp</extension>
  -        <mime-type>image/bmp</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>mpga</extension>
  -        <mime-type>audio/mpeg</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>mp2</extension>
  -        <mime-type>audio/mpeg</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>mp3</extension>
  -        <mime-type>audio/mpeg</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>js</extension>
  -        <mime-type>application/x-javascript</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>xml</extension>
  -        <mime-type>text/xml</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>xls</extension>
  -        <mime-type>application/vnd.ms-excel</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>ppt</extension>
  -        <mime-type>application/vnd.ms-powerpoint</mime-type>
  -    </mime-mapping>
  -    <mime-mapping>
  -        <extension>doc</extension>
  -        <mime-type>application/msword</mime-type>
  -    </mime-mapping>
       <!-- Establish the default list of welcome files -->
       <welcome-file-list>
  -        <welcome-file>index.jsp</welcome-file>
           <welcome-file>index.html</welcome-file>
  -        <welcome-file>index.htm</welcome-file>
       </welcome-file-list>
  -    <!-- Authetication for the WebDAV servlet -->
  -    <!-- Uncomment this to get authentication -->
  -    <@A...@security-constraint>
  -        <web-resource-collection>
  -            <web-resource-name>DAV resource</web-resource-name>
  -            <url-pattern>/*</url-pattern>
  -            <http-method>COPY</http-method>
  -            <http-method>DELETE</http-method>
  -            <http-method>GET</http-method>
  -            <http-method>HEAD</http-method>
  -            <http-method>LOCK</http-method>
  -            <http-method>MKCOL</http-method>
  -            <http-method>MOVE</http-method>
  -            <http-method>OPTIONS</http-method>
  -            <http-method>POST</http-method>
  -            <http-method>PROPFIND</http-method>
  -            <http-method>PROPPATCH</http-method>
  -            <http-method>PUT</http-method>
  -            <http-method>UNLOCK</http-method>
  -            <http-method>VERSION-CONTROL</http-method>
  -            <http-method>REPORT</http-method>
  -            <http-method>CHECKIN</http-method>
  -            <http-method>CHECKOUT</http-method>
  -            <http-method>UNCHECKOUT</http-method>
  -            <http-method>MKWORKSPACE</http-method>
  -            <http-method>UPDATE</http-method>
  -            <http-method>LABEL</http-method>
  -            <http-method>MERGE</http-method>
  -            <http-method>BASELINE-CONTROL</http-method>
  -            <http-method>MKACTIVITY</http-method>
  -            <http-method>ACL</http-method>
  -            <http-method>SEARCH</http-method>
  -            <http-method>BIND</http-method>
  -            <http-method>UNBIND</http-method>
  -            <http-method>REBIND</http-method>
  -        </web-resource-collection>
  -        <auth-constraint>
  -            <role-name>root</role-name>
  -            <role-name>guest</role-name>
  -            <role-name>user</role-name>
  -        </auth-constraint>
  -    </security-constraint>
  -    <login-config>
  -        <auth-method>BASIC</auth-method>
  -        <realm-name>Slide DAV Server</realm-name>
  -    </login-config>
  -    <security-role>
  -        <role-name>root</role-name>
  -    </security-role>
  -    <security-role>
  -        <role-name>guest</role-name>
  -    </security-role>
  -    <security-role>
  -        <role-name>user</role-name>
  -    </security-role@AUTH@>
   </web-app>
  
  
  
  1.2       +4 -3      jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/FormGenerator.java
  
  Index: FormGenerator.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/FormGenerator.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- FormGenerator.java	3 May 2004 14:20:18 -0000	1.1
  +++ FormGenerator.java	5 May 2004 09:58:08 -0000	1.2
  @@ -18,7 +18,6 @@
    * @author <a href="mailto:dflorey@c1-fse.de">Daniel Florey</a>
    * @version $Revision$
    */
  -
   public class FormGenerator extends Form {
       public final static String CONTROL = " control";
   
  @@ -54,7 +53,9 @@
       }
   
       public Result process(Map parameter, Context context) throws Exception {
  -        boolean validate = ((BooleanResource)parameter.get(VALIDATE)).booleanValue();
  +    	// Collect involved parameters and call super
  +    	
  +    	boolean validate = ((BooleanResource)parameter.get(VALIDATE)).booleanValue();
           URI actionUri = (URIResource)parameter.get(Control.ACTION);
           Processor action = ProcessorManager.getInstance().getProcessor(actionUri);
           Locale locale = ((LocaleResource)parameter.get(LOCALE)).getLocale();
  
  
  
  1.2       +10 -5     jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/Trigger.java
  
  Index: Trigger.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/Trigger.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Trigger.java	3 May 2004 14:20:18 -0000	1.1
  +++ Trigger.java	5 May 2004 09:58:08 -0000	1.2
  @@ -1,11 +1,13 @@
   package org.apache.slide.projector.processor.form;
   
   import org.apache.slide.projector.ConfigurationException;
  +import org.apache.slide.projector.descriptor.BooleanValueDescriptor;
   import org.apache.slide.projector.descriptor.ParameterDescriptor;
   import org.apache.slide.projector.descriptor.ResourceValueDescriptor;
   import org.apache.slide.projector.descriptor.URIValueDescriptor;
   import org.apache.slide.projector.i18n.ParameterMessage;
   import org.apache.slide.projector.processor.TemplateRenderer;
  +import org.apache.slide.projector.resource.BooleanResource;
   import org.apache.slide.projector.resource.NullResource;
   import org.apache.slide.projector.resource.StreamableResource;
   
  @@ -15,8 +17,9 @@
    */
   
   public class Trigger extends TemplateRenderer {
  -    public final static String PROCESSOR = "processor";
  +    public final static String ACTION = "action";
       public final static String STEP = "step";
  +    public final static String VALIDATE = "validate";
       public final static String VALUE = "value";
   
       private ParameterDescriptor[] parameterDescriptors;
  @@ -33,11 +36,13 @@
               }
           }
           parameterDescriptors[parentParameterDescriptors.length - 1] =
  -                new ParameterDescriptor(Trigger.PROCESSOR, new ParameterMessage("trigger/processor"), new URIValueDescriptor());
  +                new ParameterDescriptor(ACTION, new ParameterMessage("trigger/action"), new URIValueDescriptor());
           parameterDescriptors[parentParameterDescriptors.length ] =
  -                new ParameterDescriptor(Trigger.STEP, new ParameterMessage("trigger/step"), new ResourceValueDescriptor(), new NullResource());
  +                new ParameterDescriptor(STEP, new ParameterMessage("trigger/step"), new ResourceValueDescriptor(), NullResource.NULL );
           parameterDescriptors[parentParameterDescriptors.length + 1] =
  -                new ParameterDescriptor(Trigger.VALUE, new ParameterMessage("trigger/value"), new ResourceValueDescriptor(), new NullResource());
  +                new ParameterDescriptor(VALUE, new ParameterMessage("trigger/value"), new ResourceValueDescriptor(), NullResource.NULL);
  +        parameterDescriptors[parentParameterDescriptors.length + 1] =
  +            new ParameterDescriptor(VALIDATE, new ParameterMessage("trigger/validate"), new BooleanValueDescriptor(), BooleanResource.TRUE);
       }
   
       public ParameterDescriptor[] getParameterDescriptors() {
  
  
  
  1.2       +5 -7      jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/Form.java
  
  Index: Form.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/Form.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Form.java	3 May 2004 14:20:18 -0000	1.1
  +++ Form.java	5 May 2004 09:58:08 -0000	1.2
  @@ -105,7 +105,6 @@
                               new ParameterDescriptor(CONTROL, new ParameterMessage("form/control"), new URIValueDescriptor()),
                               new ParameterDescriptor(Control.ACTION, new ParameterMessage("control/action"), new URIValueDescriptor()),
                               new ParameterDescriptor(Control.PARAMETER, new ParameterMessage("control/parameter"), new StringValueDescriptor()),
  -                            new ParameterDescriptor(Control.VALUE, new ParameterMessage("control/value"), new ResourceValueDescriptor(), new NullResource())
                           }));
                   counter++;
               } else if (parentParameterDescriptors[i].getName().startsWith(TRIGGER_IDENTIFIER)) {
  @@ -113,9 +112,8 @@
                               new ParameterMessage("form/trigger"),
                               new MapValueDescriptor(new ParameterDescriptor[] {
                                   new ParameterDescriptor(CONTROL, new ParameterMessage("form/trigger"), new URIValueDescriptor()),
  -                                new ParameterDescriptor(Trigger.PROCESSOR, new ParameterMessage("trigger/processor"), new URIValueDescriptor()),
  +                                new ParameterDescriptor(Trigger.ACTION, new ParameterMessage("trigger/action"), new URIValueDescriptor()),
                                   new ParameterDescriptor(Trigger.STEP, new ParameterMessage("trigger/step"),  new ResourceValueDescriptor(), new NullResource()),
  -                                new ParameterDescriptor(Trigger.VALUE, new ParameterMessage("trigger/value"), new ResourceValueDescriptor(), new NullResource())
                               }));
                       counter++;
               } else if (!parentParameterDescriptors[i].getName().equals(FRAGMENT)) {
  @@ -160,7 +158,7 @@
                       controlState = Control.REQUIRED_CONTROL;
                   }
                   if ( validate ) {
  -                    Object controlValue = controlParameters.get(Control.VALUE);
  +                    Object controlValue = context.getStore(Store.TRANSIENT_PROCESS).get(parameterName);
                       try {
                           controlValue = ProcessorHelper.validate(parameterDescriptors[i], controlValue, context);
                       } catch ( ValidationException exception ) {
  
  
  
  1.3       +44 -11    jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/FormHandler.java
  
  Index: FormHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/FormHandler.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- FormHandler.java	3 May 2004 15:50:40 -0000	1.2
  +++ FormHandler.java	5 May 2004 09:58:08 -0000	1.3
  @@ -6,10 +6,11 @@
   import org.apache.slide.projector.engine.ProcessorManager;
   import org.apache.slide.projector.i18n.ParameterMessage;
   import org.apache.slide.projector.processor.SimpleProcessor;
  +import org.apache.slide.projector.resource.BooleanResource;
   import org.apache.slide.projector.resource.NullResource;
  -import org.apache.slide.projector.resource.StringResource;
   import org.apache.slide.projector.util.ProcessorHelper;
   
  +import java.util.Iterator;
   import java.util.Map;
   
   /**
  @@ -18,22 +19,54 @@
    */
   
   public class FormHandler implements Processor {
  -    private final static ParameterDescriptor[] parameterDescriptors = new ParameterDescriptor[] {
  -        new ParameterDescriptor(Trigger.PROCESSOR, new ParameterMessage("trigger/processor"), new URIValueDescriptor()),
  -        new ParameterDescriptor(Trigger.STEP, new ParameterMessage("trigger/step"),  new ResourceValueDescriptor(), new NullResource())
  +	private final static String FORM_PARAMETER_IDENTIFIER = "form:";
  +
  +	private final static String FORM_PROCESSOR = "form-processor";
  +	private final static String FORM_STEP = "form-step";
  +	
  +	private final static ParameterDescriptor[] parameterDescriptors = new ParameterDescriptor[] {
  +        new ParameterDescriptor(Trigger.ACTION, new ParameterMessage("formHandler/action"), new URIValueDescriptor()),
  +        new ParameterDescriptor(Trigger.VALIDATE, new ParameterMessage("formHandler/validate"), new BooleanValueDescriptor(), BooleanResource.TRUE),
  +        new ParameterDescriptor(Trigger.STEP, new ParameterMessage("formHandler/step"),  new StringValueDescriptor(), NullResource.NULL ),
  +        new ParameterDescriptor(FORM_STEP, new ParameterMessage("formHandler/form-step"),  new StringValueDescriptor(), NullResource.NULL ),
  +        new ParameterDescriptor(FORM_PROCESSOR, new ParameterMessage("formHandler/form-processor"), new URIValueDescriptor())
       };
  -    private final static ResultDescriptor resultDescriptor = new ResultDescriptor(
  +
  +	private final static ResultDescriptor resultDescriptor = new ResultDescriptor(
               new StateDescriptor[] { StateDescriptor.OK_DESCRIPTOR },
               new ResultEntryDescriptor[] {
                   new ResultEntryDescriptor(SimpleProcessor.OUTPUT, new ParameterMessage("trigger/output"), ContentType.DYNAMIC, true)
               });
   
       public Result process(Map parameter, Context context) throws Exception {
  -        URI processorURI = (URI)parameter.get(Trigger.PROCESSOR);
  -        Processor processor = ProcessorManager.getInstance().getProcessor(processorURI);
  -        ProcessorHelper.validate(processor.getParameterDescriptors(), parameter, context);
  -        context.setBookmark(processorURI);
  -        return processor.process(parameter,  context);
  +    	boolean validate = ((BooleanResource)parameter.get(Trigger.VALIDATE)).booleanValue();
  +		URI processorURI = (URI)parameter.get(Trigger.ACTION);
  +		URI formURI = (URI)parameter.get(FORM_PROCESSOR);
  +		Processor formProcessor = ProcessorManager.getInstance().getProcessor(formURI);
  +		String formStep = parameter.get(FORM_STEP).toString();
  +		String targetStep = parameter.get(Trigger.STEP).toString();
  +		// 1. Store all (request) parameters into process store
  +    	for ( Iterator i = parameter.entrySet().iterator(); i.hasNext(); ) {
  +    		Map.Entry entry = (Map.Entry)i.next();
  +    		String key = (String)entry.getKey();
  +    		if ( key.startsWith(FORM_PARAMETER_IDENTIFIER) ) {
  +    			context.getStore(Store.TRANSIENT_PROCESS).put(key.substring(FORM_PARAMETER_IDENTIFIER.length()), entry.getValue());
  +    		}
  +    	}
  +    	if ( validate ) {
  +    		// 2. Validate parameters
  +    		Processor processor = ProcessorManager.getInstance().getProcessor(processorURI);
  +    		try {
  +    			ProcessorHelper.validate(processor.getParameterDescriptors(), parameter, context);
  +    		} catch ( ValidationException exception ) {
  +    	    	// 3. Go back to form step if validation failes
  +    			context.setFormStep(formURI, formStep);
  +    		}
  +    	}
  +    	// 4. Launch target step if validation is successfull
  +		context.setFormStep(formURI, targetStep);
  +		Processor bookmark = ProcessorManager.getInstance().getProcessor(context.getBookmark());
  +        return bookmark.process(parameter,  context);
       }
   
       public ParameterDescriptor[] getParameterDescriptors() {
  
  
  
  1.2       +25 -8     jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/engine/ResultConfiguration.java
  
  Index: ResultConfiguration.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/engine/ResultConfiguration.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ResultConfiguration.java	3 May 2004 14:20:20 -0000	1.1
  +++ ResultConfiguration.java	5 May 2004 09:58:08 -0000	1.2
  @@ -4,10 +4,13 @@
   import org.apache.slide.projector.Resource;
   import org.apache.slide.projector.Result;
   import org.apache.slide.projector.Store;
  +import org.apache.slide.projector.resource.MapResource;
   import org.apache.slide.projector.resource.StreamableResource;
   import org.apache.slide.projector.util.StoreHelper;
   
   import java.io.IOException;
  +import java.util.HashMap;
  +import java.util.Map;
   import java.util.logging.Level;
   import java.util.logging.Logger;
   
  @@ -15,21 +18,18 @@
       private static Logger logger = Logger.getLogger(ResultConfiguration.class.getName());
   
       private int store = Store.NONE;
  -    private String name, key;
  +    private String name, key, domain;
       private boolean presentable;
       private long timeout = -1;
   
  -    public ResultConfiguration(String name, String store, String key, boolean presentable, long timeout) {
  -        if (store != null) this.store = StoreHelper.getStoreByName(store);
  -        this.name = name;
  -        this.key = key;
  -        this.presentable = presentable;
  -        this.timeout = timeout;
  +    public ResultConfiguration(String name, String store, String domain, String key, boolean presentable, long timeout) {
  +        this(name, StoreHelper.getStoreByName(store), domain, key, presentable, timeout);
       }
   
  -    public ResultConfiguration(String name, int store, String key, boolean presentable, long timeout) {
  +    public ResultConfiguration(String name, int store, String domain, String key, boolean presentable, long timeout) {
           this.name = name;
           this.store = store;
  +        this.domain = domain;
           this.key = key;
           this.presentable = presentable;
           this.timeout = timeout;
  @@ -39,6 +39,10 @@
           return store;
       }
   
  +    public String getDomain() {
  +    	return domain;
  +    }
  +    
       public String getKey() {
           return key;
       }
  @@ -74,6 +78,19 @@
                   try {
                       String evaluatedKey = Process.evaluateKey(key, context);
                       if ( evaluatedKey != null ) {
  +                    	if ( domain != null ) {
  +                    		Map map; 
  +                    		MapResource mapResource = (MapResource)resultStore.get(domain);
  +                			if ( mapResource == null ) {
  +                				map = new HashMap();
  +                				mapResource = new MapResource(map);
  +                			} else {
  +                				map = mapResource.getMap();
  +                			}
  +                			map.put(evaluatedKey, value);
  +                			evaluatedKey = domain;
  +                			value = mapResource;
  +                    	}
                       	if ( timeout != -1 ) {
                       		resultStore.put(evaluatedKey, value, timeout);
                       	} else {
  
  
  
  1.2       +5 -5      jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/engine/ProcessorManager.java
  
  Index: ProcessorManager.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/engine/ProcessorManager.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ProcessorManager.java	3 May 2004 14:20:20 -0000	1.1
  +++ ProcessorManager.java	5 May 2004 09:58:08 -0000	1.2
  @@ -14,6 +14,7 @@
   import org.apache.slide.projector.processor.SimpleProcessor;
   import org.apache.slide.projector.resource.StreamableResource;
   import org.apache.slide.projector.resource.URIResource;
  +import org.apache.slide.projector.util.ProcessorHelper;
   import org.xml.sax.InputSource;
   import org.xml.sax.helpers.AttributesImpl;
   
  @@ -136,17 +137,16 @@
                   } else {
                       Map parameters = new HashMap();
                       if ( parameterDescriptors.length == 1 ) {
  -                        Resource validatedValue = parameterDescriptors[0].getValueDescriptor().validate(input, context);
  -                        parameters.put(parameterDescriptors[0].getName(), validatedValue);
  +                        parameters.put(parameterDescriptors[0].getName(), ProcessorHelper.validate(parameterDescriptors[0], input, context));
                       } else {
  -                        for ( int i = 0; i < parameterDescriptors.length; i++ ) {
  +                    	for ( int i = 0; i < parameterDescriptors.length; i++ ) {
                               if ( parameterDescriptors[i].isRequired() ) {
  -                                Resource validatedValue = parameterDescriptors[i].getValueDescriptor().validate(input, context);
  -                                parameters.put(parameterDescriptors[i].getName(), validatedValue);
  +                                parameters.put(parameterDescriptors[i].getName(), ProcessorHelper.validate(parameterDescriptors[i], input, context));
                               } else {
                                   parameters.put(parameterDescriptors[i].getName(), parameterDescriptors[i].getDefaultValue());
                               }
                           }
  +                    	
                       }
                       Result processorResult = processor.process(parameters, context);
                       input = processorResult.getResultEntries().get(resultKey);
  
  
  
  1.2       +18 -5     jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/engine/ParameterConfiguration.java
  
  Index: ParameterConfiguration.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/engine/ParameterConfiguration.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ParameterConfiguration.java	3 May 2004 14:20:20 -0000	1.1
  +++ ParameterConfiguration.java	5 May 2004 09:58:08 -0000	1.2
  @@ -2,6 +2,7 @@
   
   import org.apache.slide.projector.*;
   import org.apache.slide.projector.descriptor.ParameterDescriptor;
  +import org.apache.slide.projector.resource.MapResource;
   
   import java.io.IOException;
   import java.util.*;
  @@ -138,7 +139,7 @@
       public static class ValueConfiguration implements Configuration {
           private boolean storeUsed;
           private int store = Store.NONE;
  -        private String storeKey, value, resultKey;
  +        private String storeKey, domain, value, resultKey;
           private URI processorUri;
   
           public ValueConfiguration(String value) {
  @@ -146,8 +147,9 @@
               this.storeUsed = false;
           }
   
  -        public ValueConfiguration(int store, String storeKey) {
  +        public ValueConfiguration(int store, String domain, String storeKey) {
               this.storeKey = storeKey;
  +            this.domain = domain;
               this.store = store;
               this.storeUsed = true;
           }
  @@ -159,17 +161,19 @@
               this.storeUsed = false;
           }
   
  -        public ValueConfiguration(URI processorUri, int store, String storeKey) {
  +        public ValueConfiguration(URI processorUri, int store, String domain, String storeKey) {
               this.processorUri = processorUri;
               this.storeKey = storeKey;
  +            this.domain = domain;
               this.store = store;
               this.storeUsed = true;
           }
   
  -        public ValueConfiguration(URI processorUri, String resultKey, int store, String storeKey) {
  +        public ValueConfiguration(URI processorUri, String resultKey, int store, String domain, String storeKey) {
               this.processorUri = processorUri;
               this.resultKey = resultKey;
               this.storeKey = storeKey;
  +            this.domain = domain;
               this.store = store;
               this.storeUsed = true;
           }
  @@ -184,7 +188,16 @@
                       value = parameter.get(key);
                   } else {
                       Store store = context.getStore(getStore());
  -                    if ( store != null ) value = store.get(key);
  +                    if ( store != null ) { 
  +                    	if ( domain != null ) {
  +                    		MapResource mapResource = (MapResource)store.get(domain);
  +                    		if ( mapResource != null ) {
  +                    			value = mapResource.getMap().get(key);
  +                    		}
  +                    	} else {
  +                    		value = store.get(key);
  +                    	}
  +                    }
                   }
               }
               if (getProcessorUri() != null ) {
  
  
  
  1.2       +9 -7      jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/engine/StepConfigurationHandler.java
  
  Index: StepConfigurationHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/engine/StepConfigurationHandler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- StepConfigurationHandler.java	3 May 2004 14:20:20 -0000	1.1
  +++ StepConfigurationHandler.java	5 May 2004 09:58:08 -0000	1.2
  @@ -74,6 +74,7 @@
           } else if (path.matches("save")) {
               String resultName = attributes.getValue("result");
               String resultStore = attributes.getValue("store");
  +            String resultDomain = attributes.getValue("domain");
               String resultKey = attributes.getValue("key");
               String timeoutAsString = attributes.getValue("timeout");
               long timeout = -1;
  @@ -82,9 +83,9 @@
               }
               boolean presentableResult = ConversionHelpers.getBoolean(attributes.getValue("presentable"), false);
               if (resultStore == null) {
  -            	resultConfiguration = new ResultConfiguration(resultName, Store.NONE, resultName, presentableResult, timeout);
  +            	resultConfiguration = new ResultConfiguration(resultName, Store.NONE, resultDomain, resultName, presentableResult, timeout);
               } else {
  -                resultConfiguration = new ResultConfiguration(resultName, resultStore, resultKey, presentableResult, timeout);
  +                resultConfiguration = new ResultConfiguration(resultName, resultStore, resultDomain, resultKey, presentableResult, timeout);
               }
           } else if (path.matches("route")) {
               String state = attributes.getValue("state");
  @@ -115,16 +116,17 @@
               String processor = attributes.getValue("processor");
               String resultKey = attributes.getValue("result");
               String store = attributes.getValue("store");
  +            String domain = attributes.getValue("domain");
               String key = attributes.getValue("key");
               URI processorUri = ( processor == null ? null : new URIResource(processor) );
               if ( processorUri != null ) {
                   if (store != null && key != null) {
  -                    parameterConfiguration.addConfiguration(new ParameterConfiguration.ValueConfiguration(processorUri, resultKey, StoreHelper.getStoreByName(store), key));
  +                    parameterConfiguration.addConfiguration(new ParameterConfiguration.ValueConfiguration(processorUri, resultKey, StoreHelper.getStoreByName(store), domain, key));
                   } else {
                       parameterConfiguration.addConfiguration(new ParameterConfiguration.ValueConfiguration(processorUri, resultKey, leadingCDdata));
                   }
               } else if (store != null && key != null) {
  -                parameterConfiguration.addConfiguration(new ParameterConfiguration.ValueConfiguration(StoreHelper.getStoreByName(store), key));
  +                parameterConfiguration.addConfiguration(new ParameterConfiguration.ValueConfiguration(StoreHelper.getStoreByName(store), domain, key));
               } else {
                   if ( leadingCDdata == null ) leadingCDdata = "";
                   parameterConfiguration.addConfiguration(new ParameterConfiguration.ValueConfiguration(leadingCDdata));
  
  
  
  1.3       +1 -3      jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/table/TableHandler.java
  
  Index: TableHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/table/TableHandler.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- TableHandler.java	3 May 2004 15:50:40 -0000	1.2
  +++ TableHandler.java	5 May 2004 09:58:08 -0000	1.3
  @@ -7,8 +7,6 @@
   import org.apache.slide.projector.util.ProcessorHelper;
   import org.apache.slide.projector.resource.MapResource;
   import org.apache.slide.projector.resource.NumberResource;
  -import org.apache.slide.projector.resource.StringResource;
  -import org.apache.slide.projector.resource.URIResource;
   import org.apache.slide.projector.descriptor.*;
   
   import java.util.Map;
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: slide-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-dev-help@jakarta.apache.org