You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by sr...@apache.org on 2003/11/27 20:32:27 UTC

cvs commit: jakarta-commons-sandbox/scaffold/STATUS STATUS-003.txt

sraeburn    2003/11/27 11:32:27

  Modified:    scaffold/src/java/org/apache/commons/scaffold/lang
                        Tokens.java
               scaffold/src/java/org/apache/commons/scaffold/http
                        ConnectionServlet.java ResourceServlet.java
               scaffold STATUS.txt build.properties.sample build.xml
  Added:       scaffold/STATUS STATUS-003.txt
  Removed:     scaffold/src/java/org/apache/commons/scaffold/lang
                        Exceptions.java.save Log.java
  Log:
  Converted to commons-logging
  
  Revision  Changes    Path
  1.7       +195 -61   jakarta-commons-sandbox/scaffold/src/java/org/apache/commons/scaffold/lang/Tokens.java
  
  Index: Tokens.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/scaffold/src/java/org/apache/commons/scaffold/lang/Tokens.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- Tokens.java	13 Oct 2003 08:26:16 -0000	1.6
  +++ Tokens.java	27 Nov 2003 19:32:26 -0000	1.7
  @@ -1,3 +1,65 @@
  +/*
  + * $Header$
  + * $Revision$
  + * $Date$
  + *
  + * ====================================================================
  + *
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 2000-2003 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 acknowledgement:
  + *       "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", "Struts", 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 name, without prior written
  + *    permission of the Apache Software Foundation.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + *
  + */
  +
  +
   package org.apache.commons.scaffold.lang;
   
   
  @@ -5,6 +67,7 @@
    * Language and programming tokens.
    *
    * @author Ted Husted
  + * @author Steve Raeburn
    * @version $Revision$ $Date$
    */
   public final class Tokens {
  @@ -205,6 +268,136 @@
       public static final String DATA_ACCESS_EXCEPTION =
           "Unable to access data.";
   
  +    
  +//	------------------------------------------------------- Log Phrases
  +
  +    
  +	 /**
  +	  * Partial string for assembling a message.
  +	  */
  +	 public static final String CLASS =
  +		 "class: ";
  +
  +
  +	 /**
  +	  * Partial string for assembling a message.
  +	  */
  +	 public static final String PATH_MSG =
  +		 "path: ";
  +
  +
  +	 /**
  +	  * Partial string for assembling a message.
  +	  */
  +	 public static final String NAME =
  +		 "name: ";
  +
  +
  +	 /**
  +	  * Partial string for assembling a message.
  +	  */
  +	 public static final String SPACE =
  +		 " ";
  +
  +
  +	 /**
  +	  * Partial string for assembling a message.
  +	  */
  +	 public static final String NOT_FOUND =
  +		 "was not found ";
  +
  +
  +	 /**
  +	  * Error creating object
  +	  */
  +	 public static final String CREATE_OBJECT_ERROR =
  +		 "*** ERROR creating object ";
  +
  +
  +	 /**
  +	  * Prefix for logging exceptions.
  +	  */
  +	 public static final String ACTION_EXCEPTION =
  +		 "*** ACTION EXCEPTION: ";
  +
  +
  +	 /**
  +	  * Prefix for logging exceptions.
  +	  */
  +	 public static final String ACTION_FORM_EXCEPTION =
  +		 "*** ACTION FORM EXCEPTION: ";
  +
  +
  +	 /**
  +	  * Executing base logic.
  +	  */
  +	 public static final String BASE_LOGIC_EXECUTING =
  +		 "Executing base logic ";
  +
  +
  +	 /**
  +	  * Parsing tokens.
  +	  */
  +	 public static final String TOKENS_PARSING =
  +		 "Parsing tokens ";
  +
  +
  +	 /**
  +	  * Creating Helper.
  +	  */
  +	 public static final String HELPER_CREATING =
  +		 "Creating Helper ";
  +
  +
  +	 /**
  +	  * Helper created.
  +	  */
  +	 public static final String HELPER_CREATED =
  +		 "Helper created ";
  +
  +
  +	 /**
  +	  * Helper processing.
  +	  */
  +	 public static final String HELPER_PROCESSING =
  +		 "Processing helper beans ";
  +
  +
  +	 /**
  +	  * Executing helpers.
  +	  */
  +	 public static final String HELPER_EXECUTING =
  +		 "Executing helper beans ";
  +
  +
  +	 /**
  +	  * Populating helper
  +	  */
  +	 public static final String HELPER_POPULATE =
  +		 "Populate helper bean ";
  +
  +
  +	 /**
  +	  * Checking outcome of helper
  +	  */
  +	 public static final String HELPER_OUTCOME =
  +		 "Processing helper outcome ";
  +
  +
  +	 /**
  +	  * Bean helper
  +	  */
  +	 public static final String PROCESS_BEAN_NULL_SCOPE =
  +		 "** ProcessAction: Process result indicates a null scope ";
  +
  +
  +	 /**
  +	  * Process action - Business method should not return null.
  +	  */
  +	 public static final String PROCESS_RESULT_NULL =
  +		 "** ProcessAction: ProcessResult is NULL " ;    
  +    
  +    
   // end Tokens
   
   }
  @@ -229,63 +422,4 @@
    *    For more information on Adalon and Struts code
    *    generation please visit http://www.synthis.com
    *
  - */
  -
  -
  -
  -/*
  - * ====================================================================
  - *
  - * The Apache Software License, Version 1.1
  - *
  - * Copyright (c) 2001 The Apache Software Foundation.  All rights
  - * reserved.
  - *
  - * Redistribution and use in source and binary forms, with or without
  - * modification, are permitted provided that the following conditions
  - * are met:
  - *
  - * 1. Redistributions of source code must retain the above copyright
  - *    notice, this list of conditions and the following disclaimer.
  - *
  - * 2. Redistributions in binary form must reproduce the above copyright
  - *    notice, this list of conditions and the following disclaimer in
  - *    the documentation and/or other materials provided with the
  - *    distribution.
  - *
  - * 3. The end-user documentation included with the redistribution, if
  - *    any, must include the following acknowledgement:
  - *       "This product includes software developed by the
  - *        Apache Software Foundation (http://www.apache.org/)."
  - *    Alternately, this acknowledgement may appear in the software itself,
  - *    if and wherever such third-party acknowledgements normally appear.
  - *
  - * 4. The names "The Jakarta Project", "Scaffold", 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 Software Foundation.
  - *
  - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  - * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  - * SUCH DAMAGE.
  - * ====================================================================
  - *
  - * This software consists of voluntary contributions made by many
  - * individuals on behalf of the Apache Software Foundation.  For more
  - * information on the Apache Software Foundation, please see
  - * <http://www.apache.org/>.
  - *
  - */
  + */
  \ No newline at end of file
  
  
  
  1.4       +98 -75    jakarta-commons-sandbox/scaffold/src/java/org/apache/commons/scaffold/http/ConnectionServlet.java
  
  Index: ConnectionServlet.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/scaffold/src/java/org/apache/commons/scaffold/http/ConnectionServlet.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ConnectionServlet.java	26 Nov 2003 20:06:52 -0000	1.3
  +++ ConnectionServlet.java	27 Nov 2003 19:32:27 -0000	1.4
  @@ -1,10 +1,72 @@
  -package org.apache.commons.scaffold.http;
  +/*
  + * $Header$
  + * $Revision$
  + * $Date$
  + *
  + * ====================================================================
  + *
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 2000-2003 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 acknowledgement:
  + *       "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", "Struts", 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 name, without prior written
  + *    permission of the Apache Software Foundation.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + *
  + */
   
  +package org.apache.commons.scaffold.http;
   
   import java.io.IOException;
  +
   import javax.servlet.ServletException;
   
  -import org.apache.commons.scaffold.http.ResourceServlet;
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
   import org.apache.commons.scaffold.sql.ConnectionAdaptor;
   import org.apache.commons.scaffold.sql.ServletAdaptor;
   
  @@ -43,24 +105,22 @@
    * @see org.apache.scaffold.sql.ConnectionAdaptor
    * @see org.apache.scaffold.sql.Servletdaptor
    * @see org.apache.scaffold.sql.PoolmanAdaptor
  + * 
  + * @author Ted Husted
  + * @author Steve Raeburn 
  + * 
    */
   public class ConnectionServlet extends ResourceServlet {
   
  +	// ------------------------------------------------------- Class variables
   
  -    /**
  -     * Message for verbose logging.
  -     */
  -    private static String ADAPTOR_LOADING_EVENT = "Loading ConnectionAdaptor";
  +	/**
  +	 * Commons logging instance
  +	 */
  +	private static Log log = LogFactory.getLog(ResourceServlet.class);
   
   
  -    /**
  -     * Message to log if connector initialization fails.
  -     */
  -    private static String ADAPTOR_FAILED_EVENT =
  -        "*** ConnectionAdaptor failed to load: ";
  -
  -
  -    /**
  +	/**
        * Default parameter for setting a custom adaptor type
        * in the servlet configuration.
        */
  @@ -92,6 +152,25 @@
        */
       private static ConnectionAdaptor adaptor;
   
  +    
  +	// ------------------------------------------------------ Logging Messages    
  +
  +    
  +	/**
  +	 * Message for verbose logging.
  +	 */
  +	private static String ADAPTOR_LOADING_EVENT = 
  +        "Loading ConnectionAdaptor";
  +
  +
  +	/**
  +	 * Message to log if connector initialization fails.
  +	 */
  +	private static String ADAPTOR_FAILED_EVENT =
  +		"*** ConnectionAdaptor failed to load: ";
  +   
  +    
  +    // -----------------------------------------------------------------------
   
       /**
        * Initialize the ConnectionAdaptor for this application.
  @@ -106,7 +185,9 @@
       protected void initDefault() throws IOException, ServletException {
   
           super.initDefault();
  -        if (isVerbose()) log(ADAPTOR_LOADING_EVENT);
  +        if (log.isDebugEnabled()) {
  +            log(ADAPTOR_LOADING_EVENT);
  +        }
   
               // Check for an adaptor parameter
           String adaptorClass =
  @@ -119,7 +200,7 @@
           }
   
           catch (Throwable t) {
  -            log(ADAPTOR_FAILED_EVENT,t);
  +            log.error(ADAPTOR_FAILED_EVENT,t);
               t.printStackTrace();
               throw new ServletException(t);
           }
  @@ -137,62 +218,4 @@
           }
       }
   
  -} // end ConnectionServlet
  -
  -
  -
  -/*
  - * The Apache Software License, Version 1.1
  - *
  - * Copyright (c) 1999 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 acknowledgement:
  - *       "This product includes software developed by the
  - *        Apache Software Foundation (http://www.apache.org/)."
  - *    Alternately, this acknowledgement may appear in the software itself,
  - *    if and wherever such third-party acknowledgements normally appear.
  - *
  - * 4. The names "The Jakarta Project", "Ant", 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 Software Foundation.
  - *
  - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  - * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  - * SUCH DAMAGE.
  - * ====================================================================
  - *
  - * This software consists of voluntary contributions made by many
  - * individuals on behalf of the Apache Software Foundation.  For more
  - * information on the Apache Software Foundation, please see
  - * <http://www.apache.org/>.
  - */
  -
  -
  +} // end ConnectionServlet
  \ No newline at end of file
  
  
  
  1.6       +141 -309  jakarta-commons-sandbox/scaffold/src/java/org/apache/commons/scaffold/http/ResourceServlet.java
  
  Index: ResourceServlet.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/scaffold/src/java/org/apache/commons/scaffold/http/ResourceServlet.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ResourceServlet.java	26 Nov 2003 20:06:52 -0000	1.5
  +++ ResourceServlet.java	27 Nov 2003 19:32:27 -0000	1.6
  @@ -1,27 +1,117 @@
  -package org.apache.commons.scaffold.http;
  -
  +/*
  + * $Header$
  + * $Revision$
  + * $Date$
  + *
  + * ====================================================================
  + *
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 2000-2003 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 acknowledgement:
  + *       "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", "Struts", 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 name, without prior written
  + *    permission of the Apache Software Foundation.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + *
  + */
   
  -import java.util.Properties;
  -import java.util.Map;
  +package org.apache.commons.scaffold.http;
   
   import java.io.BufferedInputStream;
  -import java.io.InputStream;
   import java.io.IOException;
  +import java.io.InputStream;
  +import java.util.Map;
  +import java.util.Properties;
  +
   import javax.servlet.ServletException;
   import javax.servlet.UnavailableException;
   import javax.servlet.http.HttpServlet;
   
  -import org.apache.commons.scaffold.lang.Log;
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
   
   /**
    * Base servlet for loading application resources.
  - * @todo Add a message resource bundle for internal messages
  + * 
  + * @author Ted Husted
  + * @author Steve Raeburn
    */
   public class ResourceServlet extends HttpServlet {
   
  +    // TODO: Externalize messages using commons resources. 
  +    //       Previous suggestion was to use MessageResources, but this would 
  +    //       create a dependency on Struts. A better option would be to use 
  +    //       Commons Resources, which Struts will eventually migrate to.
  +    
  +    // ------------------------------------------------------- Class variables
  +
  +    /**
  +     * Commons logging instance
  +     */
  +    private static Log log = LogFactory.getLog(ResourceServlet.class);
  +
  +    // ------------------------------------------------------ Logging Messages
  +
  +    private static final String INIT_FAILED_EVENT =
  +        "ResourceServlet: init() failed.";
  +
  +    private static final String RELOAD_EVENT = 
  +        "Reloading ResourceServlet";
  +
  +    private static final String DESTROY_EVENT = 
  +        "Destroying ResourceServlet";
   
  -// -------------------------------------------------- Parameter Utilities
  +    private static final String RESOURCE_LOADING =
  +        "Loading resources from path: ";
  +
  +    private static final String RESOURCE_NOT_FOUND = 
  +        "Resources not found";
   
  +    // --------------------------------------------------- Parameter Utilities
   
       /**
        * Check for a parameter and returns a default value if not found.
  @@ -30,18 +120,15 @@
        * @param defaultValue The default to return if the parameter is not found
        * @return The customized value or the default value
        */
  -    public String getInitString(
  -            String parameter,
  -            String defaultValue) {
  -
  -        String stringValue =
  -            getServletConfig().getInitParameter(parameter);
  -        if (null==stringValue) return defaultValue;
  +    public String getInitString(String parameter, String defaultValue) {
  +
  +        String stringValue = getServletConfig().getInitParameter(parameter);
  +        if (null == stringValue)
  +            return defaultValue;
           return stringValue;
   
       }
   
  -
       /**
        * Check for a parameter and returns a default value if not found,
        * or if the value does not convert to an <code>int</code>.
  @@ -50,17 +137,14 @@
        * @defaultValue The default to return if the parameter is not found
        * @return The customized value or the default value
        */
  -    public int getInitInt(
  -            String parameter,
  -            int defaultValue) {
  +    public int getInitInt(String parameter, int defaultValue) {
   
           String stringValue = null;
           int intValue = defaultValue;
   
           try {
   
  -            stringValue =
  -                getServletConfig().getInitParameter(parameter);
  +            stringValue = getServletConfig().getInitParameter(parameter);
               intValue = Integer.parseInt(stringValue);
   
           } catch (Throwable t) {
  @@ -70,14 +154,13 @@
           return intValue;
       }
   
  -
       /**
        * Return a map of this servlet's initialization parameters.
        *
        * @return A map of this servlet's initialization parameters.
        * @fixme Not tested yet
        */
  -    public Map getInitParameters()  {
  +    public Map getInitParameters() {
   
           // :FIXME: Not tested yet.
   
  @@ -87,162 +170,24 @@
           while (names.hasMoreElements()) {
               String name = (String) names.nextElement();
               String value = getServletConfig().getInitParameter(name);
  -            map.put(name,value);
  +            map.put(name, value);
           }
           return map;
       }
   
  -
  -// -------------------------------------------------------------- Logging
  -
  -    /**
  -     * The logging level for this servlet.
  -     */
  -    private int logLevel = Log.ERROR;
  -
  -
  -    /**
  -     * Return the logging level for this servlet.
  -     *
  -     * @return The logging level for this servlet.
  -     */
  -    public int getLogLevel() {
  -        return this.logLevel;
  -    }
  -
  -
  -    /**
  -     * Set the logging detail level for this servlet.
  -     *
  -     * @param logLevel The new logging level for this servlet.
  -     */
  -    public void setLogLevel(int logLevel) {
  -        this.logLevel = logLevel;
  -    }
  -
  -
  -    /**
  -     * Is logging set this level or higher?
  -     *
  -     * @param level The debug level to test
  -     */
  -    protected boolean isLogLevel(int level) {
  -        return (getLogLevel()>=level);
  -    }
  -
  -
  -    /**
  -     * Is logging set to debugging?
  -     */
  -    protected boolean isDebug() {
  -        return (getLogLevel()>=Log.DEBUG);
  -    }
  -
  -
  -    /**
  -     * Is logging set to verbose?
  -     */
  -    protected boolean isVerbose() {
  -        return (getLogLevel()>=Log.VERBOSE);
  -    }
  -
  -
  -    /**
  -     * Log the specified message if the current debugging detail level for
  -     * this servlet has been set to an equal or higher value.
  -     * Otherwise, ignore this message.
  -     *
  -     * @param message Message to be logged
  -     * @param level Debugging detail level of this message
  -     */
  -    public void log(
  -            String message,
  -            int level) {
  -
  -        if (isLogLevel(level)) log(message);
  -
  -    }
  -
  -
  -    /**
  -     * Initialize the debugging detail level for this application servlet..
  -     *
  -     * @fixme Add digester, commons logging features.
  -     * @exception ServletException if we cannot initialize these resources
  -     */
  -    protected void initLogging() throws ServletException {
  -
  -        String logLevel = getServletConfig().getInitParameter(Log.LOG_LEVEL_PARAMETER);
  -        // :FIXME: Add digester, commons logging features
  -        // String digesterLevel = getServletConfig().getInitParameter(Log.DIGESTER_LEVEL_PARAMETER);
  -
  -        try {
  -
  -            setLogLevel(Integer.parseInt(logLevel));
  -        }
  -
  -        catch (Throwable t) {
  -
  -            setLogLevel(Log.ERROR);
  -        }
  -
  -    }
  -
  -
  -    protected void destroyLogging() {
  -        // override to provide funcationality if needed
  -    }
  -
  -
  -
  -// ---------------------------------------------------- Internal Messages
  -
  -/*
  -
  -    // :TODO: Add a message resource bundle for internal messages
  -
  -
  -    protected MessageResources internal = null;
  -
  -    protected String internalName = "org.apache.struts.action.ActionResources";
  -
  -...
  -
  -    try {
  -        internal = MessageResources.getMessageResources(internalName);
  -    } catch (MissingResourceException e) {
  -        log.error("Cannot load internal resources from '" + internalName + "'",
  -            e);
  -        throw new UnavailableException
  -            ("Cannot load internal resources from '" + internalName + "'");
  -    }
  -
  -...
  -
  -   log.error(internal.getMessage("dataSource.init", dscs[i].getKey()), t);
  -
  -
  -*/
  -
  -// -------------------------------------------------- Internal Properties
  -
  -
  +    // --------------------------------------------------- Internal Properties
   
       /**
        * The parameter to check for a new path to the default properties
        * ["default"].
        */
  -    private static final String DEFAULT_PARAMETER =
  -        "default";
  -
  +    private static final String DEFAULT_PARAMETER = "default";
   
       /**
        * The default path to use if parameter is not set
        *["resources/default.properties"].
        */
  -    private static final String DEFAULT_PATH =
  -        "resources/default.properties";
  -
  +    private static final String DEFAULT_PATH = "resources/default.properties";
   
       /**
        * The default attribute for the application properties.
  @@ -253,21 +198,6 @@
       private static final String DEFAULT_ATTRIBUTE =
           org.apache.commons.scaffold.lang.Tokens.PROPERTIES_KEY;
   
  -
  -    /**
  -     * Message for verbose logging.
  -     */
  -    private static final String RESOURCE_LOADING =
  -        "Loading resources from path: ";
  -
  -
  -    /**
  -     * Message to log if resource is not found.
  -     */
  -    private static final String RESOURCE_NOT_FOUND =
  -        "Resources not found";
  -
  -
       /**
        * Our default properties object.
        * <p>
  @@ -277,7 +207,6 @@
        */
       Properties properties = null;
   
  -
       /**
        * Set the default properties object.
        */
  @@ -285,7 +214,6 @@
           this.properties = properties;
       }
   
  -
       /**
        * Return the default properties object.
        *
  @@ -295,7 +223,6 @@
           return this.properties;
       }
   
  -
       /**
        * A utility method for loading a Properties file
        * specified by an initialization parameter.
  @@ -312,23 +239,22 @@
        * application scope under this attribute name
        */
       public Properties loadProperties(
  -            String parameter,
  -            String defaultPath,
  -            String attribute) throws ServletException {
  -
  -        String path = getInitString(parameter,defaultPath);
  -
  -        if (isVerbose()) {
  -
  -           log(RESOURCE_LOADING);
  -           log(path);
  -
  +        String parameter,
  +        String defaultPath,
  +        String attribute)
  +        throws ServletException {
  +
  +        String path = getInitString(parameter, defaultPath);
  +
  +        if (log.isDebugEnabled()) {
  +            log.debug(RESOURCE_LOADING);
  +            log.debug(path);
           }
   
           InputStream is = null;
           is = this.getClass().getClassLoader().getResourceAsStream(path);
  -        if (null==is)
  -           throw new UnavailableException(RESOURCE_NOT_FOUND);
  +        if (null == is)
  +            throw new UnavailableException(RESOURCE_NOT_FOUND);
   
           Properties p = null;
           BufferedInputStream bis = new BufferedInputStream(is);
  @@ -339,36 +265,27 @@
               p.load(bis);
               bis.close();
               is.close();
  -        }
  -
  -        catch (IOException e) {
  +        } catch (IOException e) {
   
               p = null;
   
  -        }
  -
  -        finally {
  +        } finally {
               is = null;
               bis = null;
           }
   
  -        if ((null!=p) && (null!=attribute)) {
  +        if ((null != p) && (null != attribute)) {
   
  -            this.getServletContext().setAttribute(attribute,p);
  +            this.getServletContext().setAttribute(attribute, p);
   
           }
   
  -
  -        if (isVerbose()) {
  -
  -           log(p.toString());
  -
  +        if (log.isDebugEnabled()) {
  +            log.debug(p.toString());
           }
   
  -
           return p;
  -   }
  -
  +    }
   
       /**
        * Initialize the default properties for this application.
  @@ -387,11 +304,10 @@
        */
       protected void initDefault() throws IOException, ServletException {
   
  -        setProperties(loadProperties(DEFAULT_PARAMETER, DEFAULT_PATH,
  -            DEFAULT_ATTRIBUTE));
  +        setProperties(
  +            loadProperties(DEFAULT_PARAMETER, DEFAULT_PATH, DEFAULT_ATTRIBUTE));
       }
   
  -
       /**
        * Release any default resources created at initialization
        */
  @@ -399,13 +315,7 @@
           setProperties(null);
       }
   
  -
  -// -------------------------------------------------- HttpServlet Methods
  -
  -
  -    private static final String INIT_FAILED_EVENT =
  -        "ResourceServlet: init() failed.";
  -
  +    // --------------------------------------------------- HttpServlet Methods
   
       /**
        * Initialize this servlet by caling three extension points:
  @@ -428,45 +338,34 @@
   
           try {
   
  -            initLogging();
               initDefault();
               // initMessages();
               initCustom();
   
  -        }
  -
  -        catch (IOException e) {
  +        } catch (IOException e) {
   
               throw new UnavailableException(INIT_FAILED_EVENT);
   
           }
       }
   
  -
  -    /**
  -     * Message for verbose logging.
  -     */
  -    public static final String DESTROY_EVENT = "Destroying ResourceServlet";
  -
  -
       /**
        * Gracefully shut down this controller servlet, releasing any resources
        * that were allocated at initialization.
        */
       public void destroy() {
   
  -        if (isVerbose()) log(DESTROY_EVENT);
  +        if (log.isDebugEnabled()) {
  +            log.debug(DESTROY_EVENT);
  +        }
   
           destroyCustom();
           // destroyMessages();
           destroyDefault();
  -        destroyLogging();
   
       }
   
  -
  -
  -// ------------------------------------------------------ Extension Points
  +    // ------------------------------------------------------ Extension Points
   
       /**
        * Initialize the custom properties or objects for this application.
  @@ -480,7 +379,6 @@
   
       }
   
  -
       /**
        * Release any custom resources created at initialization
        */
  @@ -488,16 +386,7 @@
           // override to provide functionality if needed
       }
   
  -
  -// ------------------------------------------------------- Public Methods
  -
  -
  -    /**
  -     * Message for verbose logging.
  -     */
  -    public static final String RELOAD_EVENT =
  -        "Reloading ResourceServlet";
  -
  +    // -------------------------------------------------------- Public Methods
   
       /**
        * Reload the configuration of this controller servlet from our
  @@ -508,69 +397,12 @@
        */
       public void reload() throws IOException, ServletException {
   
  -        if (logLevel >= Log.VERBOSE) log(RELOAD_EVENT);
  +        if (log.isDebugEnabled()) {
  +            log.debug(RELOAD_EVENT);
  +        }
   
           // Re-initialize
           init();
       }
   
  -
   } // end ResourceServlet
  -
  -
  -
  -/*
  - * The Apache Software License, Version 1.1
  - *
  - * Copyright (c) 1999 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 acknowledgement:
  - *       "This product includes software developed by the
  - *        Apache Software Foundation (http://www.apache.org/)."
  - *    Alternately, this acknowledgement may appear in the software itself,
  - *    if and wherever such third-party acknowledgements normally appear.
  - *
  - * 4. The names "The Jakarta Project", "Ant", 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 Software Foundation.
  - *
  - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  - * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  - * SUCH DAMAGE.
  - * ====================================================================
  - *
  - * This software consists of voluntary contributions made by many
  - * individuals on behalf of the Apache Software Foundation.  For more
  - * information on the Apache Software Foundation, please see
  - * <http://www.apache.org/>.
  - */
  -
  -
  
  
  
  1.13      +11 -125   jakarta-commons-sandbox/scaffold/STATUS.txt
  
  Index: STATUS.txt
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/scaffold/STATUS.txt,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- STATUS.txt	21 Nov 2002 02:09:13 -0000	1.12
  +++ STATUS.txt	27 Nov 2003 19:32:27 -0000	1.13
  @@ -6,6 +6,11 @@
   
   // --------------------------------------------------------------- TODO
   
  +
  +
  +The following items have been carried forward from STATUS-003.txt
  +and have not yet been reviewed:
  +
   - ResourceServlet: Add a message resource bundle for internal messages
   - ResourceServlet: The PROPERTIES_KEY could be made configurable,
   - BaseException: Add message bundle to package and localized messages.
  @@ -29,131 +34,12 @@
   // ------------------------------------------------------------ CHANGES
   
   
  -[2002-11-20]
  -+ StorageBeanBase: Add support for reading command parameters from 
  -a *.param line for each query.
  -+ StorageBean*: Add paramList property (to ease migration to Commons.SQL)
  -+ StorageBean*,ProcessBean*: Move Remote* properties to ProcessBean.
  -+ ResultSetUtils: Deprecate setProperties in favor of BeanUtils.copyProperties.
  -
  -[2002-11-19]
  -+ StorageBeanBase: isNew: change to use String or Number validation
  -when value is not null; store: Fix to use isNew.
  -
  -[2002-11-13]
  -+ ConvertUtils: Add and refactor some Timestamp methods.
  -
  -[2002-10-30]
  -+ ScrollerBean: Change getParameters to scrollerParams to avoid conflict with StorageBean method. Add scrollOffset property. Change searchKey to searchValue to avoid confusion as to purpose. Change return type to Object for using with non-string fields.
  -+ StatementUtils: Add like method for wrapping strings; remove *Like methods.
  -+ ScrollerBean: streamline interface and implementation; change to use standard calls rather than like
  -+ Scroller/ScrollerBeanBase: change to use count and collection rather than *like.
  -+ ScrollBeanBase: Change getParameters to use with two or three parameters depending on the state of hasParameter (2 if false, 3 if true).
  -
  -
  -[2002-10-29]
  -+ ScrollerBeanBase: Debugso it plays nice with BeanUtils.
  -+ ProcessDispatchAction: Change to bypass ProcessFormAction. Now works. 
  -+ ProcessDispatchAction: Now causing a reflection error when used. 
  -
  -
  -[2002-10-28]
  -+ ScrollerBean,ScrollerBeanBase: Initial versions.
  -+ StatementUtils,StorageBeanBase: Fix countLike/columnLike methods
  -
  -
  -25-Oct-2002
  ------------
  -+ StorageBean: Additional convenience methods.
  -+ StatementUtils, StorageBeanBase: Additional convenience methods.
  -
  -24-OCT-2002
  ------------
  -+ Scroller: Add parameters property to reinvoke complex queries.
  -+ ConvertUtils.addParams: intial version, makes query attributes from Map.
  -
  -23-OCT-2002
  ------------
  -+ StatementUtils.getColumnLike: initial version.
  -+ StatementUtils.getCollectionLike: additional signature.
  -
  -15-OCT-2002
  ------------
  -+ ResultListBase, ResultList: Add getCounter to 
  -
  -10-OCT-2002
  ------------
  -+ ProcessBean,*Base: Add ScrollFrom property to manage a scroller.
  -+ ResultList,*Base: Add Scroller property.
  -
  -
  -09-OCT-2002
  ------------
  -+ util.Scroller: initial versoin
  -
  -
  -11-SEP-2002
  ------------
  -+ ConvertUtils: Add blankValue to test Strings for "0", empty, or null. (For beanutil behavior when converting numerics).
  -+ Tokens: Add ERRORS_REQUIRED;
  -+ StorageBeanBase: change marked default to 1 (nominal).
  -+ Replace calls to BeanUtils.populate with copyProperties.
  -+ Migrate to latest commons.beanutil.BeanUtils.
  -
  -
  -09-SEP-2002
  ------------
  -+ Add isNew() to StorageBean, StorageBeanBase.
  -
  -
  -04-SEP-2002
  ------------
  -+ sql.StorageBeanBase: Add modified, remoteNode, and remoteAddr 
  -properties (to help manage optimistic locking and/or audting). 
  -
  -
  -28-AUG-2002
  ------------
  -+ sql.StorageBeanBase: Change TABLE et al to public.
  -
  -
  -23-AUG-2002
  ------------
  -+ sql.AccessBase: Revise cast in createKey to avoid going to null.
  -+ sql.StorageBeanBase: Revise init to support multiple command files.
  -+ http.SetUp: Add standard servlet for loading a command file.
  -+ lang.Tokens: Add process complete.
  -
  -
  -21-AUG-2002
  ------------
  -+ Token: add data.record.duplicate
  -
  -
  -20-AUG-2002
  ------------
  -+ Tokens: Change RESULT_KEY to LIST_KEY
  -+ AccessBase: deprecate class. Add note about findElement 
  -parameters.
  -+ StorageBeanBase.retrieve, recycle,delete: Add call to result.setSingleForm.
  -+ StorageBeanBase.findElement: Swap key,command parameters
  -+ StorageBeanBase: Added findCollection convenience methods.
  -+ StorageBeanBase: Add marked as a base property.
  -
  -
  -19-AUG-2002
  ------------
  -+ StorageBeanBase: update to implement StorageBean
  -+ StorageBean: add interface to utils
  -
  -
  -18-AUG-2002
  ------------
  -+ StorageBean: Draft interface
  -
  +[2003-11-27]
  +- Log: Using commons logging instead. Message tokens have been moved
  +  to the Tokens class. Logging should eventually be migrated to 
  +  commons resources. 
   
  -14-AUG-2002
  ------------
  -+ Initial upload to commons-sandbox. See also STATUS folder.
  +[2003-11-26]
  +- Work begins on updating scaffold. See also STATUS folder.
   
   
  
  
  
  1.2       +2 -2      jakarta-commons-sandbox/scaffold/build.properties.sample
  
  Index: build.properties.sample
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/scaffold/build.properties.sample,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- build.properties.sample	23 Nov 2002 02:12:02 -0000	1.1
  +++ build.properties.sample	27 Nov 2003 19:32:27 -0000	1.2
  @@ -6,7 +6,7 @@
   commons.home=../../jakarta-commons
   commons-beanutils.jar=${commons.home}/beanutils/dist/commons-beanutils.jar
   commons-digester.jar=${commons.home}/beanutils/dist/commons-digester.jar
  -
  +commons-logging.jar=${commons.home}/commons-logging-1.0.3/commons-logging.jar
   
   # JDBC 2.0 Standard Extensions (javax.sql) JAR File
   jdbc20ext.jar=/classes/jdbc20ext.jar
  
  
  
  1.7       +4 -1      jakarta-commons-sandbox/scaffold/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/scaffold/build.xml,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- build.xml	23 Nov 2002 02:12:02 -0000	1.6
  +++ build.xml	27 Nov 2003 19:32:27 -0000	1.7
  @@ -1,6 +1,7 @@
   <!--
   @author Ted Husted
   @author Craig McClanahan
  +@author Steve Raeburn
   @version $Revision$ $Date$
   -->
   
  @@ -21,6 +22,7 @@
       <property name="commons.home"            value="../../jakarta-commons"/>
       <property name="commons-beanutils.jar"   value="${commons.home}/beanutils/dist/commons-beanutils.jar"/>
       <property name="commons-digester.jar"    value="${commons.home}/digester/dist/commons-digester.jar"/>
  +    <property name="commons-loggging.jar"    value="${commons.home}/commons-logging-1.0.3/commons-logging.jar"/>
   
       <property name="jdbc20ext.jar"           value="/classes/jdbc20ext.jar"/>
   
  @@ -57,6 +59,7 @@
         <pathelement location="${build.home}/classes"/>
         <pathelement location="${commons-beanutils.jar}"/>
         <pathelement location="${commons-digester.jar}"/>
  +      <pathelement location="${commons-logging.jar}"/>
         <pathelement location="${jdbc20ext.jar}"/>
         <pathelement location="${lucene.jar}"/>
         <pathelement location="${mockobjects-core.jar}"/>
  
  
  
  1.1                  jakarta-commons-sandbox/scaffold/STATUS/STATUS-003.txt
  
  Index: STATUS-003.txt
  ===================================================================
  
  [SCAFFOLD]
  =======================================================================
  [Ordering is LIFO. Last thing done for a day is the first item listed.]
  
  
  // --------------------------------------------------------------- TODO
  
  - ResourceServlet: Add a message resource bundle for internal messages
  - ResourceServlet: The PROPERTIES_KEY could be made configurable,
  - BaseException: Add message bundle to package and localized messages.
  - Engine: Make singleton instead of static
  - CommandStore: Refactor to use Collection based on preface.
  - CommandStore: Refactor to make appending preface.key optional
  - ConnectionAdaptor: Add Map to store reference to other datasources.
  - ConnectionAdaptor: Add cache to store references to the datasources by key.
  - StorageBeanBase: Use reflection to read parameter key and make array from
  - StorageBeanBase: Check for key.paramlist then paramlist.
  - StorageBeanBase: Permit each subclass to have its own properties (collection
  - StorageBeanBase: Switch to CommandStore (or eliminate that object if not
  - StorageBeanBase: Change from BeanUtil.populate to copyProperties in 1.1
  + StorageBeanBean: Define underlying interface
  - StorageBeanBean: Javadocs for new classes
  
  - i18n exception messages.
  
  - Add support for Tokens.INPUT
  
  // ------------------------------------------------------------ CHANGES
  
  
  [2002-11-20]
  + StorageBeanBase: Add support for reading command parameters from 
  a *.param line for each query.
  + StorageBean*: Add paramList property (to ease migration to Commons.SQL)
  + StorageBean*,ProcessBean*: Move Remote* properties to ProcessBean.
  + ResultSetUtils: Deprecate setProperties in favor of BeanUtils.copyProperties.
  
  [2002-11-19]
  + StorageBeanBase: isNew: change to use String or Number validation
  when value is not null; store: Fix to use isNew.
  
  [2002-11-13]
  + ConvertUtils: Add and refactor some Timestamp methods.
  
  [2002-10-30]
  + ScrollerBean: Change getParameters to scrollerParams to avoid conflict with StorageBean method. Add scrollOffset property. Change searchKey to searchValue to avoid confusion as to purpose. Change return type to Object for using with non-string fields.
  + StatementUtils: Add like method for wrapping strings; remove *Like methods.
  + ScrollerBean: streamline interface and implementation; change to use standard calls rather than like
  + Scroller/ScrollerBeanBase: change to use count and collection rather than *like.
  + ScrollBeanBase: Change getParameters to use with two or three parameters depending on the state of hasParameter (2 if false, 3 if true).
  
  
  [2002-10-29]
  + ScrollerBeanBase: Debugso it plays nice with BeanUtils.
  + ProcessDispatchAction: Change to bypass ProcessFormAction. Now works. 
  + ProcessDispatchAction: Now causing a reflection error when used. 
  
  
  [2002-10-28]
  + ScrollerBean,ScrollerBeanBase: Initial versions.
  + StatementUtils,StorageBeanBase: Fix countLike/columnLike methods
  
  
  25-Oct-2002
  -----------
  + StorageBean: Additional convenience methods.
  + StatementUtils, StorageBeanBase: Additional convenience methods.
  
  24-OCT-2002
  -----------
  + Scroller: Add parameters property to reinvoke complex queries.
  + ConvertUtils.addParams: intial version, makes query attributes from Map.
  
  23-OCT-2002
  -----------
  + StatementUtils.getColumnLike: initial version.
  + StatementUtils.getCollectionLike: additional signature.
  
  15-OCT-2002
  -----------
  + ResultListBase, ResultList: Add getCounter to 
  
  10-OCT-2002
  -----------
  + ProcessBean,*Base: Add ScrollFrom property to manage a scroller.
  + ResultList,*Base: Add Scroller property.
  
  
  09-OCT-2002
  -----------
  + util.Scroller: initial versoin
  
  
  11-SEP-2002
  -----------
  + ConvertUtils: Add blankValue to test Strings for "0", empty, or null. (For beanutil behavior when converting numerics).
  + Tokens: Add ERRORS_REQUIRED;
  + StorageBeanBase: change marked default to 1 (nominal).
  + Replace calls to BeanUtils.populate with copyProperties.
  + Migrate to latest commons.beanutil.BeanUtils.
  
  
  09-SEP-2002
  -----------
  + Add isNew() to StorageBean, StorageBeanBase.
  
  
  04-SEP-2002
  -----------
  + sql.StorageBeanBase: Add modified, remoteNode, and remoteAddr 
  properties (to help manage optimistic locking and/or audting). 
  
  
  28-AUG-2002
  -----------
  + sql.StorageBeanBase: Change TABLE et al to public.
  
  
  23-AUG-2002
  -----------
  + sql.AccessBase: Revise cast in createKey to avoid going to null.
  + sql.StorageBeanBase: Revise init to support multiple command files.
  + http.SetUp: Add standard servlet for loading a command file.
  + lang.Tokens: Add process complete.
  
  
  21-AUG-2002
  -----------
  + Token: add data.record.duplicate
  
  
  20-AUG-2002
  -----------
  + Tokens: Change RESULT_KEY to LIST_KEY
  + AccessBase: deprecate class. Add note about findElement 
  parameters.
  + StorageBeanBase.retrieve, recycle,delete: Add call to result.setSingleForm.
  + StorageBeanBase.findElement: Swap key,command parameters
  + StorageBeanBase: Added findCollection convenience methods.
  + StorageBeanBase: Add marked as a base property.
  
  
  19-AUG-2002
  -----------
  + StorageBeanBase: update to implement StorageBean
  + StorageBean: add interface to utils
  
  
  18-AUG-2002
  -----------
  + StorageBean: Draft interface
  
  
  14-AUG-2002
  -----------
  + Initial upload to commons-sandbox. See also STATUS folder.
  
  
  
  
  

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