[cvs] expresso commit by rimovm: API Walkthrough for ControllerRequest:

JCorporate Ltd jcorp at jcorporate.com
Mon May 2 19:31:38 UTC 2005


Log Message:
-----------
API Walkthrough for ControllerRequest:

@deprecated duplicate functions to what AutoElement does.
@deprecated Hashtable based functions
Added Map based functions.

Modified Files:
--------------
    expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller:
        Controller.java
        ControllerRequest.java
        ControllerResponse.java
        DefaultForm.java
        ServletControllerRequest.java
        State.java
        Transition.java
    expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dbobj:
        Schema.java
    expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/servlet/viewhandler:
        DefaultViewHandler.java
    expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/utility:
        ControllerRun.java
    expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller:
        ComponentManager.java
        ReportServer.java
        TestController.java
        Upload.java
    expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/ldap:
        UserLDAP.java
    expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html:
        ExButtonTag.java
        ExImageTag.java
        ExSubmitTag.java
    expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller:
        EditUserPreference.java
        QueueJob.java
    expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/dbmaint:
        DynamicCmd.java
        ListBase.java
    expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/ui:
        DefaultAutoElement.java

Revision Data
-------------
Index: EditUserPreference.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/EditUserPreference.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/EditUserPreference.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/EditUserPreference.java -u -r1.20 -r1.21
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/EditUserPreference.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/EditUserPreference.java
@@ -243,9 +243,9 @@
         onePreference.setDataContext(params.getDataContext());
 
         boolean reestablishLocale = false;
-        for (Enumeration p = params.getParameters().keys();
-             p.hasMoreElements();) {
-            oneParamName = (String) p.nextElement();
+        for (Iterator p = params.getAllParameters().keySet().iterator();
+             p.hasNext();) {
+            oneParamName = (String) p.next();
 
             StringTokenizer stk = new StringTokenizer(oneParamName, "_");
 
Index: QueueJob.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/QueueJob.java,v
retrieving revision 1.22
retrieving revision 1.23
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/QueueJob.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/QueueJob.java -u -r1.22 -r1.23
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/QueueJob.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/QueueJob.java
@@ -354,9 +354,9 @@
             String oneParamName;
             int paramNumber = 0;
 
-            for (Enumeration par = params.getParameters().keys();
-                 par.hasMoreElements();) {
-                oneParamName = (String) par.nextElement();
+            for (Iterator par = params.getAllParameters().keySet().iterator();
+                 par.hasNext();) {
+                oneParamName = (String) par.next();
 
                 /* skip params used for management of this controller */
                 if ((!oneParamName.equals(STATE_PARAM_KEY)) &&
Index: ControllerRequest.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/ControllerRequest.java,v
retrieving revision 1.36
retrieving revision 1.37
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/ControllerRequest.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/ControllerRequest.java -u -r1.36 -r1.37
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/ControllerRequest.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/ControllerRequest.java
@@ -84,6 +84,7 @@
 import com.jcorporate.expresso.core.security.ReadOnlyUser;
 import com.jcorporate.expresso.core.registry.RequestRegistry;
 import com.jcorporate.expresso.core.dbobj.RequestContext;
+import java.util.Collections;
 
 
 /**
@@ -92,17 +93,44 @@
  * <b>Developer Notes</b> Because this class can be cloned, please make sure that
  * you add any fields to this class to the clone function.
  */
-public class ControllerRequest implements Serializable, RequestContext, Cloneable {
+public class ControllerRequest implements Serializable, RequestContext, Cloneable
+{
 
     /**
      * The parameters for the request.
      */
-    private Hashtable params = null;
+    private Map params = null;
+
+    /**
+     * Initialization Parameters Appears to be unused.
+     * @deprecated Since Expresso 5.7
+     */
     private Map initParams = null;
+
+    /**
+     * Object parameters.
+     */
     private Map objectParams = null;
+
+    /**
+     * User name.
+     */
     private String userName = null;
+
+    /**
+     * User id.
+     *
+     */
     private int uid = 0;
+
+    /**
+     * The schema for this request.
+     */
     private String mySchema = null;
+
+    /**
+     * The Locale to use for this request.
+     */
     private Locale currentLocale = null;
 
     /* The ActionForm session key for this request, if any ActionForm is specified */
@@ -121,8 +149,15 @@
      * The attributes of this Controller object
      */
     private Map attributes = null;
-    private String dbName = null;
 
+    /**
+     * Database context.
+     */
+    private String dataContext = null;
+
+    /**
+     * The log4j Logger.
+     */
     private static transient final Logger log = Logger.getLogger(ControllerRequest.class);
 
 
@@ -152,12 +187,12 @@
      */
     public ControllerRequest() {
 
-    } /* ControllerRequest() */
+    }
+    /* ControllerRequest() */
 
 
     public void setFileParameter(String paramName, String paramValue,
-                                 String fileName)
-            throws ControllerException {
+        String fileName) throws ControllerException {
         setParameter(paramName, paramValue);
         StringUtil.assertNotBlank(fileName, "File name must not be blank here");
 
@@ -197,7 +232,8 @@
         }
 
         attributes.put(attrib, val);
-    } /* setAttributes(String, String) */
+    }
+    /* setAttributes(String, String) */
 
     /**
      * Set the named attribute to the given value
@@ -211,7 +247,8 @@
         }
 
         attributes.put(attrib, val);
-    } /* setAttributes(String, String) */
+    }
+    /* setAttributes(String, String) */
 
     /**
      * get the named attribute of this Controller
@@ -226,7 +263,8 @@
         } else {
             return (String) attributes.get(attrib);
         }
-    } /* setAttributes(String, String) */
+    }
+    /* setAttributes(String, String) */
 
     /**
      * get the named attribute of this Controller
@@ -240,7 +278,8 @@
         } else {
             return attributes.get(attrib);
         }
-    } /* setAttributes(String, String) */
+    }
+    /* setAttributes(String, String) */
 
     /**
      * Get the attributes Map
@@ -250,7 +289,8 @@
      */
     public Map getAttributes() {
         return attributes;
-    } /* getAttributes() */
+    }
+    /* getAttributes() */
 
     /**
      * Set the attributes Map to the supplied Map
@@ -259,7 +299,8 @@
      */
     public void setAttributes(Map attributes) {
         this.attributes = attributes;
-    } /* setAttributes(Map) */
+    }
+    /* setAttributes(Map) */
 
     /**
      * remove the attribute
@@ -284,29 +325,30 @@
         }
 
         initParams.put(paramName, paramValue);
-    } /* setInitialParameter(String, String) */
+    }
+    /* setInitialParameter(String, String) */
 
     /**
      * @param paramName  The name of the parameter
      * @param paramValue The value of the parameter
      * @throws ControllerException upon error
      */
-    public void setParameter(String paramName, String paramValue)
-            throws ControllerException {
+    public void setParameter(String paramName, String paramValue) throws ControllerException {
         if (params == null) {
-            params = new Hashtable(10);
+            params = new HashMap(10);
         }
         if (paramName == null) {
             throw new ControllerException("Parameter name may not be null");
         }
         if (paramValue == null) {
             throw new ControllerException("Parameter value may not be" +
-                    " null for parameter '" + paramName +
-                    "'");
+                " null for parameter '" + paramName +
+                "'");
         }
 
         params.put(paramName, paramValue);
-    } /* setParameter(String, String) */
+    }
+    /* setParameter(String, String) */
 
 
     /**
@@ -316,10 +358,9 @@
      * @param paramValue The value object
      * @throws ControllerException upon error
      */
-    public void setObjectParameter(String paramName, Object paramValue)
-            throws ControllerException {
+    public void setObjectParameter(String paramName, Object paramValue) throws ControllerException {
         StringUtil.assertNotBlank(paramName,
-                "Parameter name may not be blank or null here");
+            "Parameter name may not be blank or null here");
 
         if (paramValue == null) {
             throw new IllegalArgumentException("Parameter value may not be null here");
@@ -329,7 +370,8 @@
         }
 
         objectParams.put(paramName, paramValue);
-    } /* setObjectParameter(String, Object) */
+    }
+    /* setObjectParameter(String, Object) */
 
 
     /**
@@ -337,17 +379,17 @@
      * @return the Object retrieved from the object parameters list.
      * @throws ControllerException if unable to get the object parameters
      */
-    public Object getObjectParameter(String paramName)
-            throws ControllerException {
+    public Object getObjectParameter(String paramName) throws ControllerException {
         StringUtil.assertNotBlank(paramName,
-                "Parameter name may not be blank or null here");
+            "Parameter name may not be blank or null here");
 
         if (objectParams == null) {
             return null;
         } else {
             return objectParams.get(paramName);
         }
-    } /* getObjectParameter(String) */
+    }
+    /* getObjectParameter(String) */
 
 
     /**
@@ -361,11 +403,25 @@
 
         /* of a given state */
         if (h != null) {
-            params = h;
+            params = new HashMap(h);
         } else {
-            params = new Hashtable(1);
+            params = new HashMap(1);
         }
-    } /* setParameters(Hashtable) */
+    }
+    /* setParameters(Hashtable) */
+
+    /**
+     * Sets the parameters for this request.  Overrides any existing parameters
+     * previously set.
+     * @param parameterMap Map
+     */
+    public void setParameters(Map parameterMap) {
+        if (parameterMap != null) {
+            parameterMap = new HashMap(parameterMap);
+        } else {
+            params = new HashMap(0);
+        }
+    }
 
     /**
      * The client of the controller must tell us who is accessing us,
@@ -375,7 +431,8 @@
      */
     public void setUser(String newUser) {
         userName = newUser;
-    } /* setUser(String) */
+    }
+    /* setUser(String) */
 
     /**
      * Sets the current integer user id.
@@ -393,15 +450,16 @@
      * example, to preserve it's portability across all UI environments.
      *
      * @param newSession A PersistentSession object
+     * @throws ControllerException if newSession is null.
      */
-    public void setSession(PersistentSession newSession)
-            throws ControllerException {
+    public void setSession(PersistentSession newSession) throws ControllerException {
         if (newSession == null) {
             throw new ControllerException("Cannot set a null PersistentSession object");
         }
 
         mySession = newSession;
-    } /* setSession(PersistentSession) */
+    }
+    /* setSession(PersistentSession) */
 
 
     /**
@@ -409,10 +467,9 @@
      * environments.  Use this instead of HTTPSession or HTTPServletRequest
      *
      * @return a Persistant Session Object
-     * @throws ControllerException upon error
+     * @throws ControllerException if the internal session has never been set.
      */
-    public PersistentSession getSession()
-            throws ControllerException {
+    public PersistentSession getSession() throws ControllerException {
         if (mySession == null) {
             throw new ControllerException("No PersistentSession object available");
         }
@@ -425,6 +482,7 @@
      *
      * @param paramName the name of the parameter to retrieve
      * @return java.lang.String
+     * @deprecated Appears to be unused.  Since Expresso 5.7
      */
     public String getInitParameter(String paramName) {
         if (initParams == null) {
@@ -432,7 +490,8 @@
         } else {
             return (String) initParams.get(paramName);
         }
-    } /* getInitialParameter(String) */
+    }
+    /* getInitialParameter(String) */
 
     /**
      * Get the user name
@@ -445,7 +504,8 @@
         }
 
         return userName;
-    } /* getUser() */
+    }
+    /* getUser() */
 
     /**
      * Get the user id as an integer
@@ -460,14 +520,29 @@
      * Return the complete hashtable of parameters all keyed by parameter names
      *
      * @return a Hashtable containing all the parameter values, keyed by name; this is a CLONE of the source hashtable, not the original
+     * @deprecated Since Expresso 5.7  Use getParams() which returns a readonly Map instead
      */
     public Hashtable getParameters() {
         if (params != null) {
-            return (Hashtable) params.clone();
+            return new Hashtable(params);
         } else {
             return new Hashtable();
         }
-    } /* getParameters() */
+    }
+
+
+    /**
+     * Retrieves the parameters in the form of a HashMap with String keys
+     * and String values.
+     * @return A ReadOnly Map instance.
+     */
+    public Map getAllParameters() {
+        if (params != null) {
+            return Collections.unmodifiableMap(params);
+        } else {
+            return new HashMap(0);
+        }
+    }
 
     /**
      * Fetch the value for the given parameter. Return null
@@ -482,7 +557,8 @@
         }
 
         return (String) params.get(paramCode);
-    } /* getParameter(String) */
+    }
+    /* getParameter(String) */
 
 
     /**
@@ -500,7 +576,8 @@
         }
 
         return false;
-    } /* isFileParameter(String) */
+    }
+    /* isFileParameter(String) */
 
     /**
      * Return the name of the database connection we use - or null
@@ -510,12 +587,9 @@
      * @deprecated 10/2004 v.5.6 use getDataContext instead
      */
     public String getDBName() {
-        if (StringUtil.notNull(dbName).equals("")) {
-            return "default";
-        }
-
-        return dbName;
-    } /* getDBName() */
+        return getDataContext();
+    }
+    /* getDBName() */
 
     /**
      * Return the name of the database connection we use - or null
@@ -524,10 +598,10 @@
      * @return The current DBContext
      */
     public String getDataContext() {
-        if (StringUtil.notNull(dbName).equals("")) {
+        if (StringUtil.notNull(dataContext).equals("")) {
             return "default";
         }
-        return dbName;
+        return dataContext;
     }
 
     /**
@@ -536,20 +610,21 @@
      * @param newDBName The dbcontext to set this request to.
      */
     public synchronized void setDBName(String newDBName) {
-        if (StringUtil.notNull(newDBName).equals("")) {
-            dbName = "default";
-        } else {
-            dbName = newDBName;
-        }
-    } /* setDBName(String) */
+        setDataContext(newDBName);
+    }
+    /* setDBName(String) */
 
     /**
      * Set this DB Controller to operate on a database other than the default
      *
-     * @param newDBName The dbcontext to set this request to.
+     * @param newDataContext The dbcontext to set this request to.
      */
-    public synchronized void setDataContext(String newDBName) {
-        this.setDBName(newDBName);
+    public synchronized void setDataContext(String newDataContext) {
+        if (StringUtil.notNull(newDataContext).equals("")) {
+            dataContext = "default";
+        } else {
+            dataContext = newDataContext;
+        }
     }
 
     /**
@@ -558,25 +633,28 @@
      *
      * @param myDBObj the dbobject to populate
      * @throws ControllerException upon error
+     * @deprecated Since 5.7  Use the AutoElement package instead.  Used in Expresso's
+     * own code.
      */
-    public void populate(DBObject myDBObj)
-            throws ControllerException {
+    public void populate(DBObject myDBObj) throws ControllerException {
         try {
             String oneFieldName = null;
 
             for (Iterator e = myDBObj.getJDBCMetaData().getFieldNamesList().iterator()
-                    ; e.hasNext();) {
+                ; e.hasNext(); ) {
                 oneFieldName = (String) e.next();
 
                 if (getParameter(oneFieldName) != null) {
                     myDBObj.setField(oneFieldName, getParameter(oneFieldName));
                 }
-            } /* for each field */
+            }
+            /* for each field */
 
         } catch (DBException de) {
             throw new ControllerException(de);
         }
-    } /* addAutoInput(DBOBject) */
+    }
+    /* addAutoInput(DBOBject) */
 
 
     /**
@@ -586,8 +664,7 @@
      *         exist.
      * @throws ControllerException if there is an error getting the Session object
      */
-    public ErrorCollection getErrorCollection()
-            throws ControllerException {
+    public ErrorCollection getErrorCollection() throws ControllerException {
         ErrorCollection ec = (ErrorCollection) getSession().getAttribute(Globals.ERROR_KEY);
 
 //
@@ -609,10 +686,18 @@
         return ec;
     }
 
+    /**
+     * Sets the form attribute.
+     * @param newAttribute String
+     */
     public synchronized void setFormAttribute(String newAttribute) {
         formAttribute = newAttribute;
     }
 
+    /**
+     * Get the name of the ActionForm that this Request is mapped to.
+     * @return String
+     */
     public String getFormAttribute() {
         return formAttribute;
     }
@@ -624,8 +709,8 @@
      * @param paramName the parameter to check against.
      * @return true if the name given IS a valid defined parameter
      */
-    public boolean isParameter(String paramName) {
-        Hashtable allParams = getParameters();
+    public boolean isParameter(final String paramName) {
+        Map allParams = getAllParameters();
 
         if (allParams == null) {
             return false;
@@ -643,19 +728,21 @@
      * @param ec        The error collection that gets filled out.
      * @throws ControllerException upon internal or data error
      * @throws ValidationException if there is an error validating the object
+     * @deprecated Use DefaultAutoElement for parsing DBObjects instead. (Since v5.7)
      */
-    public void validateDBObject(DBObject oneObject, ErrorCollection ec)
-            throws ControllerException, ValidationException {
+    public void validateDBObject(final DBObject oneObject, final ErrorCollection ec) throws ControllerException
+        , ValidationException {
         try {
             String oneFieldName = null;
-            for (Iterator af = oneObject.getMetaData().getFieldNamesList().iterator(); af.hasNext();) {
+            for (Iterator af = oneObject.getMetaData().getFieldNamesList().iterator(); af.hasNext(); ) {
                 oneFieldName = (String) af.next();
                 validateDBField(oneFieldName, oneObject, ec);
             }
         } catch (DBException de) {
             throw new ControllerException(de);
         }
-    } /* validateDBObj(DBObject, ErrorCollection) */
+    }
+    /* validateDBObj(DBObject, ErrorCollection) */
 
 
     /**
@@ -669,11 +756,10 @@
      * @param ec          The ErrorCollection to fill out if there is an error
      * @throws DBException         upon data error
      * @throws ControllerException upon internal error
+     * @deprecated Use DefaultAutoElement for parsing DBObjects instead. (Since v5.7)
      */
-    public void validateDBField(String dbFieldName,
-                                DBObject oneObject,
-                                ErrorCollection ec)
-            throws ControllerException, DBException {
+    public void validateDBField(final String dbFieldName, final DBObject oneObject
+        , final ErrorCollection ec) throws ControllerException, DBException {
 
         validateField(dbFieldName, dbFieldName, oneObject, ec);
     }
@@ -689,17 +775,15 @@
      * @param ec           The ErrorCollection to fill out if there is an error
      * @throws DBException         upon data error
      * @throws ControllerException upon internal error
+     * @deprecated Use DefaultAutoElement for parsing DBObjects instead. (Since v5.7)
      */
-    public void validateField(String dbFieldName,
-                              String reqFieldName,
-                              DBObject oneObject,
-                              ErrorCollection ec)
-            throws ControllerException, DBException {
+    public void validateField(final String dbFieldName, final String reqFieldName, final DBObject oneObject
+        , final ErrorCollection ec) throws ControllerException, DBException {
 
-        Hashtable allParams = getParameters();
+        Map allParams = getAllParameters();
 
         if ((!oneObject.getMetaData().getFieldMetadata(dbFieldName).isReadOnly()) &&
-                (!oneObject.getMetaData().getFieldMetadata(dbFieldName).isVirtual())) {
+            (!oneObject.getMetaData().getFieldMetadata(dbFieldName).isVirtual())) {
             if (allParams.containsKey(reqFieldName)) {
                 String oneFieldParam = getParameter(reqFieldName);
 
@@ -742,7 +826,7 @@
 
         try {
             l = new Locale(ConfigManager.getContext(getDataContext()).getLanguage(),
-                    ConfigManager.getContext(getDataContext()).getCountry());
+                ConfigManager.getContext(getDataContext()).getCountry());
         } catch (ConfigurationException ce) {
             l = null;
         }
@@ -757,28 +841,12 @@
      * Returns a clone of this object.
      *
      * @return a newly cloned ControllerRequest object.
+     * @throws java.lang.CloneNotSupportedException if unable to create a new
+     * instance.of this class.
      */
-    public Object clone() {
-        Object o = null;
-        String className = this.getClass().getName();
+    public Object clone() throws CloneNotSupportedException {
+        Object o = super.clone();
 
-        try {
-            Class c = ClassLocator.loadClass(className);
-            o = c.newInstance();
-        } catch (ClassNotFoundException cn) {
-            throw new IllegalArgumentException("State object '" + className +
-                    "' not found");
-        } catch (InstantiationException ie) {
-            throw new IllegalArgumentException("State object '" + className +
-                    "' cannot be instantiated");
-        } catch (IllegalArgumentException e) {
-            throw new IllegalArgumentException("State object '" + className +
-                    "' cannot be instantiated (IllegalArgumentException)");
-        } catch (IllegalAccessException iae) {
-            throw new IllegalArgumentException("llegal access loading " +
-                    "State object '" + className +
-                    "'");
-        }
         synchronized (this) {
             ControllerRequest cr = (ControllerRequest) o;
 
@@ -787,16 +855,16 @@
             }
 
             cr.currentLocale = this.currentLocale;
-            cr.dbName = this.dbName;
+            cr.dataContext = this.dataContext;
 
             if (this.fileParams != null) {
-                cr.fileParams = (Hashtable) this.fileParams.clone();
+                cr.fileParams = (Hashtable)this.fileParams.clone();
             }
 
             cr.formAttribute = this.formAttribute;
 
             if (this.formResponseCache != null) {
-                cr.formResponseCache = (Hashtable) this.formResponseCache.clone();
+                cr.formResponseCache = (Hashtable)this.formResponseCache.clone();
             }
 
             cr.initialState = this.initialState;
@@ -812,7 +880,7 @@
                 cr.objectParams = new HashMap(this.objectParams);
             }
             if (this.params != null) {
-                cr.params = (Hashtable) this.params.clone();
+                cr.params = new HashMap(this.params);
             }
 
             cr.uid = this.uid;
@@ -833,9 +901,11 @@
 
 
     /**
-     * get requesting user
+     * Get requesting user.
      *
      * @return user object for requesting user; will throw if UID is not found
+     * @throws DBException if the underlying <tt>User</tt> object has toubles
+     * access hte database.
      */
     public User getUserInfo() throws DBException {
         return User.getUser(this);
@@ -845,8 +915,8 @@
      * Retrieve the read only user of the requesting user.
      * @return ReadOnlyUser
      */
-    public ReadOnlyUser getRequestingUser()  {
+    public ReadOnlyUser getRequestingUser() {
         return RequestRegistry.getUser();
     }
 
-} /* ControllerRequest */
+}
Index: DefaultForm.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/DefaultForm.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/DefaultForm.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/DefaultForm.java -u -r1.25 -r1.26
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/DefaultForm.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/DefaultForm.java
@@ -89,6 +89,7 @@
 import com.jcorporate.expresso.core.i18n.Messages;
 import com.jcorporate.expresso.core.misc.ConfigManager;
 import com.jcorporate.expresso.core.misc.StringUtil;
+import java.util.Map;
 
 
 /**
@@ -115,7 +116,7 @@
     public void saveForm(ControllerRequest req)
             throws ControllerException {
         formData.clear();
-        formData.putAll(req.getParameters());
+        formData.putAll(req.getAllParameters());
     }
 
     public void restoreForm(ControllerRequest req)
@@ -154,12 +155,26 @@
     }
 
     /**
-     * Set all of the fields using a hastable of parameters
+     * Set all of the fields using a hastable of parameters.
      *
      * @param parameters values to set
      * @throws ControllerException on error
+     * @deprecated since Expresso 5.7  Use setUsingMapParameters() instead.
      */
-    public synchronized void setUsingHashtableParameters(Hashtable parameters) throws ControllerException {
+    public synchronized void setUsingHashtableParameters(final Hashtable parameters) throws ControllerException {
+        for (Iterator i = parameters.keySet().iterator(); i.hasNext();) {
+            String key = (String) i.next();
+            setField(key, (String) parameters.get(key));
+        }
+    }
+
+    /**
+     * Set all of the fields using a map of parameters.
+     *
+     * @param parameters values to set
+     * @throws ControllerException on error
+     */
+    public synchronized void setUsingMapParameters(final Map parameters) throws ControllerException {
         for (Iterator i = parameters.keySet().iterator(); i.hasNext();) {
             String key = (String) i.next();
             setField(key, (String) parameters.get(key));
@@ -261,13 +276,13 @@
 
     /**
      * Get the state requested by the transition button in the form
-     * @param params the hashtable of parameters to parse
+     * @param request the HttpServletRequest object to load.
      * @return String
      * @throws ControllerException
      *
      * @author Raul Davidovich, improved by Nahuel
      */
-    protected String getState(HttpServletRequest request) throws ControllerException {
+    protected String getState(final HttpServletRequest request) throws ControllerException {
 
         String state = request.getParameter("state");
 
Index: State.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/State.java,v
retrieving revision 1.31
retrieving revision 1.32
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/State.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/State.java -u -r1.31 -r1.32
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/State.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/State.java
@@ -917,6 +917,7 @@
      *
      * @param paramName The parameter name to retrieve
      * @return java.lang.String
+     * @deprecated Appears to be unused.  Since Expresso 5.7
      */
     public String getInitParameter(String paramName) {
         return myRequest.getInitParameter(paramName);
Index: ControllerResponse.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/ControllerResponse.java,v
retrieving revision 1.58
retrieving revision 1.59
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/ControllerResponse.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/ControllerResponse.java -u -r1.58 -r1.59
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/ControllerResponse.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/ControllerResponse.java
@@ -1548,9 +1548,9 @@
 
     /**
      * Add and error message to the response
-     * 
+     *
      * @param errorMessage
-     * 
+     *
      * @throws ControllerException on error
      */
     public void addError(String errorMessage) throws ControllerException {
@@ -1590,7 +1590,7 @@
      * @param errorMessage key to error msg found in message bundle
      * @param args         an array of replacement value to use in ${} replacement templates
      * @see com.jcorporate.expresso.core.i18n.MessageBundle#getString(java.lang.String, java.lang.Object[])
-     * 
+     *
      * @throws ControllerException on error
      */
     public void addError(String errorMessage, Object[] args) throws ControllerException {
@@ -1735,9 +1735,9 @@
 
         ValidationSet validSet = new ValidationSet();
 
-        for (Enumeration e = getRequest().getParameters().keys();
-             e.hasMoreElements();) {
-            paramName = (String) e.nextElement();
+        for (Iterator e = getRequest().getAllParameters().keySet().iterator();
+             e.hasNext();) {
+            paramName = (String) e.next();
             vi = new ValidationItem(paramName, false, checkClassName);
             validSet.setValidationItem(vi);
         }
@@ -2270,7 +2270,7 @@
 
     /**
      * return raw key, without running through msg bundle string translation--useful for when 'cloning' in Transition
-     * 
+     *
      * @return String the title key
      */
     public String getTitleKey() {
Index: Transition.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/Transition.java,v
retrieving revision 1.62
retrieving revision 1.63
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/Transition.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/Transition.java -u -r1.62 -r1.63
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/Transition.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/Transition.java
@@ -85,6 +85,9 @@
 import java.util.Hashtable;
 import java.util.Map;
 import java.util.Vector;
+import java.util.Iterator;
+import java.util.HashMap;
+import java.util.Collections;
 
 
 /**
@@ -137,7 +140,7 @@
     /**
      * The parameters to the controller object
      */
-    private Hashtable params = new Hashtable(1);
+    private Map params = new Hashtable(1);
     private String myState = null;
     private boolean returnToSender = false;
 
@@ -335,7 +338,7 @@
 
         synchronized (this) {
             t = (Transition) super.clone();
-            t.params = (Hashtable) params.clone();
+            t.params = new HashMap(params);
             t.controllerObject = controllerObject;
             t.myState = myState;
             t.returnToSender = returnToSender;
@@ -447,12 +450,24 @@
      * when the action is called.
      *
      * @return A hashtable of name/value pairs for the parameters
+     * @deprecated Since Expresso 5.7 Use getAllParemeters() which returns
+     * a Map object instead.
      */
     public Hashtable getParams() {
-        return params;
+        return new Hashtable(params);
     } /* getParams() */
 
     /**
+     * Retrieve a <tt>Map</tt> of parameters for this transition object.
+     * These parameters are to be handed to the new controller
+     * when the action is called.
+     * @return A <em>ReadOnly Map</em>
+     */
+    public Map getAllParameters() {
+        return Collections.unmodifiableMap(params);
+    }
+
+    /**
      * @param includeControllerParameter whether to include controller param or not.
      * @return parameter string which includes all params added to trans, as well
      *         as state param. controller param added optionally
@@ -503,11 +518,11 @@
             if (!this.params.isEmpty()) {
                 String oneKey = null;
 
-                for (Enumeration e = this.params.keys(); e.hasMoreElements();) {
+                for (Iterator e = this.params.keySet().iterator(); e.hasNext();) {
                     if (paramString.length() != 0) {
                         paramString.append("&");
                     }
-                    oneKey = (String) e.nextElement();
+                    oneKey = (String) e.next();
 
                     //Encode user's Transition parameters otherwise is ueer's parameters has '&' then
                     //it will mess up the addButtonParams() method when using Tokenizer.
@@ -674,7 +689,7 @@
      * Creation date: (1/10/01 11:24:00 AM)
      * author: Adam Rossi, PlatinumSolutions
      *
-     * @deprecated 4/28/2005 use {@link com.jcorporate.expresso.ext.taglib.ExTagUtils#getHTMLParamString} instead 
+     * @deprecated 4/28/2005 use {@link com.jcorporate.expresso.ext.taglib.ExTagUtils#getHTMLParamString} instead
      *
      * @return java.lang.String
      */
@@ -744,7 +759,7 @@
      *
      * @param newController the classname of the new controller
      */
-    public synchronized void setOwnerController(String newController) {
+    public synchronized void setOwnerController(final String newController) {
         clearCache();
         ownerObject = newController;
     }
@@ -754,12 +769,22 @@
      *
      * @param newParams the new parameters in bulk
      */
-    public synchronized void setParams(Hashtable newParams) {
+    public synchronized void setParams(final Hashtable newParams) {
         clearCache();
         params = new Hashtable(newParams);
     }
 
     /**
+     * Sets the transitions parameters to the passed in collection. (Overwrites
+     * any existing parametesr!)
+     * @param newParameters Map the new map to use.
+     */
+    public synchronized void setParams(final Map newParameters) {
+        clearCache();
+        params = newParameters;
+    }
+
+    /**
      * This method will take the request parameters that were passed to this state
      * and will copy them into this transition's parameters.  These parameters
      * will then be used when this state is reinvoked (return-to-sender) in order
@@ -767,20 +792,20 @@
      *
      * @param newReturnToSenderRequest The <code>ControllerRequest</code> object
      */
-    public synchronized void setReturnToSenderParms(ControllerRequest newReturnToSenderRequest) {
+    public synchronized void setReturnToSenderParms(final ControllerRequest newReturnToSenderRequest) {
         clearCache();
         String oneParamName = null;
         Object oneParamValue = null;
-        Hashtable params = newReturnToSenderRequest.getParameters();
-        Hashtable newParams = new Hashtable();
+        Map params = newReturnToSenderRequest.getAllParameters();
+        Map newParams = new Hashtable();
 
         //Copy all parameters except hidden parameters xxx_params and xxx_encoding.
         //The xxx_params have already been unencoded and untokenized into separate parameters.
         //Passing the xxx_params caused problems when the transition was encoded again and sent to HTML.
         //When the double-encoded parameter comes back with the next user request it is never unencoded.
         //This ends up causing problems with the fromXML/toXML methods in Transition.
-        for (Enumeration e = params.keys(); e.hasMoreElements();) {
-            oneParamName = (String) e.nextElement();
+        for (Iterator e = params.keySet().iterator(); e.hasNext();) {
+            oneParamName = (String) e.next();
 
             if (!oneParamName.endsWith("_params") &&
                     !oneParamName.endsWith("_encoding") &&
@@ -1202,8 +1227,8 @@
         String oneParamKey = null;
         String oneParamValue = null;
 
-        for (Enumeration ep = params.keys(); ep.hasMoreElements();) {
-            oneParamKey = (String) ep.nextElement();
+        for (Iterator ep = params.keySet().iterator(); ep.hasNext();) {
+            oneParamKey = (String) ep.next();
             oneParamValue = (String) params.get(oneParamKey);
 
             if (oneParamValue != null) {
@@ -1211,10 +1236,15 @@
             }
         }
 
-        ControllerRequest newRequest = (ControllerRequest) req.clone();
-        newRequest.setParameters(this.params);
-        newRequest.setParameter(Controller.STATE_PARAM_KEY, StringUtil.notNull(this.getState()));
-        newRequest.setParameter(Controller.CONTROLLER_PARAM_KEY, this.getControllerObject());
+        ControllerRequest newRequest = null;
+        try {
+            newRequest = (ControllerRequest) req.clone();
+            newRequest.setParameters(this.params);
+            newRequest.setParameter(Controller.STATE_PARAM_KEY, StringUtil.notNull(this.getState()));
+            newRequest.setParameter(Controller.CONTROLLER_PARAM_KEY, this.getControllerObject());
+        } catch (CloneNotSupportedException ex) {
+            throw new ControllerException("Error cloning the ControllerRequestObject.", ex);
+        }
 
         ControllerResponse newResponse = null;
 
Index: Controller.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/Controller.java,v
retrieving revision 1.111
retrieving revision 1.112
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/Controller.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/Controller.java -u -r1.111 -r1.112
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/Controller.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/Controller.java
@@ -114,6 +114,7 @@
 import java.util.Locale;
 import java.util.Stack;
 import java.util.Vector;
+import java.util.Map;
 
 
 /**
@@ -955,6 +956,7 @@
      * @param req       ?
      * @param creq      ?
      * @param regDomain ?
+     * @throws ControllerException upon error.
      */
     protected void addRegDomainParamtoSession(HttpServletRequest req,
                                               ControllerRequest creq,
@@ -1488,6 +1490,7 @@
      * @param nextState the state to be performed
      * @param request   the request object
      * @param response  the response object
+     * @throws ControllerException upon error.
      */
     protected void prePerform(State nextState,
                               ControllerRequest request,
@@ -1507,6 +1510,7 @@
      * @param nextState the state to be performed
      * @param request   the request object
      * @param response  the response object
+     * @throws ControllerException upon error.
      */
     protected void postPerform(State nextState,
                                ControllerRequest request,
@@ -1801,9 +1805,9 @@
 
                         // TODO: Is this a bug or not core developers? *PP*
                         // BUG BUG - Should parameter names and values be URLEncoded?
-                        for (Enumeration ep = req.getParameters().keys();
-                             ep.hasMoreElements();) {
-                            oneParamName = (String) ep.nextElement();
+                        for (Iterator ep = req.getAllParameters().keySet().iterator();
+                             ep.hasNext();) {
+                            oneParamName = (String) ep.next();
                             oneParamValue = req.getParameter(oneParamName);
                             newURL.append("&");
                             newURL.append(oneParamName);
@@ -1919,7 +1923,7 @@
             /** we populate the DefaultForm with the contents of the HTML form  *RD* Mon Jul 27 2004 */
             if (form instanceof DefaultForm) {
                 try {
-                    ((DefaultForm) form).setUsingHashtableParameters(req.getParameters());
+                    ((DefaultForm) form).setUsingMapParameters(req.getAllParameters());
                 } catch (Exception ex) {
                     ex.printStackTrace();
                     throw new ServletException(ex);
@@ -2376,7 +2380,7 @@
                                      ControllerRequest request)
             throws ControllerException {
         try {
-            BeanUtils.populate(stateForm, request.getParameters());
+            BeanUtils.populate(stateForm, request.getAllParameters());
         } catch (Exception e) {
             throw new ControllerException(e);
         }
@@ -2586,6 +2590,7 @@
      * @param nextState the state to transition to.
      * @return An instantiated Transition Object
      * @throws NonHandleableException upon a fatal error.
+     * @throws ControllerException upon error.
      */
     protected Transition processTransitions(ControllerRequest request,
                                             ControllerResponse response,
@@ -2652,9 +2657,9 @@
 
                 String oneParamKey = "";
                 String oneParamValue = "";
-                Hashtable transitionParams = nextTransition.getParams();
-                for (Enumeration ep = transitionParams.keys(); ep.hasMoreElements();) {
-                    oneParamKey = (String) ep.nextElement();
+                Map transitionParams = nextTransition.getAllParameters();
+                for (Iterator ep = transitionParams.keySet().iterator(); ep.hasNext();) {
+                    oneParamKey = (String) ep.next();
                     oneParamValue = (String) transitionParams.get(oneParamKey);
 
                     //Assign the 'required' parameters from the calling controller.
Index: ServletControllerRequest.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/ServletControllerRequest.java,v
retrieving revision 1.33
retrieving revision 1.34
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/ServletControllerRequest.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/ServletControllerRequest.java -u -r1.33 -r1.34
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/ServletControllerRequest.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/ServletControllerRequest.java
@@ -112,9 +112,25 @@
      * the client. Don't use it if you don't *need* it.
      */
     private transient ServletResponse myServletResponse = null;
+
+    /**
+     * A hook to the ServletResponse object.
+     */
     private transient ServletRequest myServletRequest = null;
+
+    /**
+     * A hook to the calling servlet.
+     */
     private Servlet myCallingServlet = null;
+
+    /**
+     * The <tt>ActionMapping</tt> associated with this request.
+     */
     private ActionMapping myMapping = null;
+
+    /**
+     * The actionform associated with this request.
+     */
     private ActionForm myForm = null;
 
 
@@ -391,10 +407,11 @@
 
 
     /**
-     * Add any parameters specified by the "button"
+     * Add any parameters specified by the &quot;button&quot;.
      *
      * @param params the hashtable of parameters to add
      * @return Hashtable
+     * @throws ControllerException upon parsing error.
      */
     private static Hashtable addButtonParams(Hashtable params)
             throws ControllerException {
@@ -567,15 +584,13 @@
      * @param request    the Servlet Request
      * @param response   the Servlet Response
      * @param controller the Controller
+     * @param mp The <tt>MultipartRequestHandler</tt> instance to use for
+     * parsing.
      * @throws ControllerException exception upon controller error
      * @throws ServletException    upon javax.servlet related errors
+     * @return A populated Servlet ControllerRequest.
      */
-    public static ServletControllerRequest parseParamsMultiPart(MultipartRequestHandler mp,
-                                                                ActionMapping mapping,
-                                                                ActionForm form,
-                                                                HttpServletRequest request,
-                                                                HttpServletResponse response,
-                                                                Controller controller)
+    public static ServletControllerRequest parseParamsMultiPart(MultipartRequestHandler mp, ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response, Controller controller)
             throws ServletException, ControllerException {
         String controllerName = controller.getClass().getName();
 
@@ -823,8 +838,10 @@
      * shallow copied since a deep copy is meaningless in a servlet environment
      *
      * @return a new instantiated ServletControllerRequest object
+     * @throws java.lang.CloneNotSupportedException if there is an error
+     * creating an instance of this class.
      */
-    public Object clone() {
+    public Object clone() throws CloneNotSupportedException {
         ServletControllerRequest scr = (ServletControllerRequest) super.clone();
         scr.myCallingServlet = this.myCallingServlet;
         scr.myServletRequest = this.myServletRequest;
Index: Schema.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dbobj/Schema.java,v
retrieving revision 1.55
retrieving revision 1.56
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/dbobj/Schema.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/dbobj/Schema.java -u -r1.55 -r1.56
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dbobj/Schema.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dbobj/Schema.java
@@ -1211,6 +1211,7 @@
      * Provide Configurations
      *
      * @param newConfig the new configuration object
+     * @throws ConfigurationException upon configuration error.
      */
     public void configure(Configuration newConfig) throws ConfigurationException {
         this.setupValue = newConfig.getMappedProperties("SetupValue");
@@ -1235,6 +1236,7 @@
      * Reconfigure Lifecycle Event.  Nullify values and restart.
      *
      * @param newConfig The new Configuration
+     * @throws ConfigurationException upon configuration exception.
      */
     public void reconfigure(Configuration newConfig) throws ConfigurationException {
         synchronized (Schema.class) {
Index: DefaultViewHandler.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/servlet/viewhandler/DefaultViewHandler.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/servlet/viewhandler/DefaultViewHandler.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/servlet/viewhandler/DefaultViewHandler.java -u -r1.16 -r1.17
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/core/servlet/viewhandler/DefaultViewHandler.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/core/servlet/viewhandler/DefaultViewHandler.java
@@ -110,6 +110,7 @@
 import com.jcorporate.expresso.services.html.TextField;
 import org.apache.log4j.Logger;
 import org.apache.struts.action.ActionMessage;
+import java.util.Map;
 
 
 /**
@@ -356,7 +357,7 @@
         Cell oneCell = null;
         Button oneButton = null;
         String paramString = null;
-        Hashtable params = null;
+        Map params = null;
         HiddenField hidden = null;
 
         /* Add the parameters by creating a hidden "xxx_params" field for each transition */
@@ -364,7 +365,7 @@
             a = (Transition) e.nextElement();
 
             if (a != null) {
-                params = a.getParams();
+                params = a.getAllParameters();
 
                 if (params != null) {
                     paramString = a.getParamString();
Index: ControllerRun.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/utility/ControllerRun.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/utility/ControllerRun.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/utility/ControllerRun.java -u -r1.19 -r1.20
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/core/utility/ControllerRun.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/core/utility/ControllerRun.java
@@ -110,6 +110,7 @@
 import com.jcorporate.expresso.core.db.*;
 import java.util.List;
 import java.util.Iterator;
+import java.util.Map;
 
 
 /**
@@ -152,16 +153,16 @@
         Button oneButton = null;
         StringBuffer paramString = null;
         String paramName = null;
-        Hashtable params = null;
+        Map params = null;
         HiddenField hidden = null;
 
         for (Enumeration e = h.elements(); e.hasMoreElements();) {
             a = (Transition) e.nextElement();
-            params = a.getParams();
+            params = a.getAllParameters();
             paramString = new StringBuffer();
 
-            for (Enumeration p = params.keys(); p.hasMoreElements();) {
-                paramName = (String) p.nextElement();
+            for (Iterator p = params.keySet().iterator(); p.hasNext();) {
+                paramName = (String) p.next();
                 paramString.append("&");
                 paramString.append(paramName);
                 paramString.append("=");
Index: ReportServer.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/ReportServer.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/ReportServer.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/ReportServer.java -u -r1.8 -r1.9
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/ReportServer.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/ReportServer.java
@@ -206,7 +206,7 @@
             throws ControllerException, NonHandleableException {
         try {
             ExpressoReport report = instantiateReport(request);
-            java.util.Map paramMap = new java.util.HashMap(request.getParameters());
+            java.util.Map paramMap = request.getAllParameters();
             report.setReportParameters(paramMap);
             report.setDataContext(request.getDataContext());
             report.setReportCode(request.getParameter("ReportCode"));
Index: TestController.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/TestController.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/TestController.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/TestController.java -u -r1.20 -r1.21
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/TestController.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/TestController.java
@@ -121,6 +121,8 @@
  * components to be executed.
  *
  * @author Michael Nash
+ * @deprecated Since Expresso 5.7  use either Cactus testing or straight
+ * unit testing.
  */
 public class TestController
         extends DBController
Index: Upload.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/Upload.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/Upload.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/Upload.java -u -r1.13 -r1.14
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/Upload.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/Upload.java
@@ -84,6 +84,8 @@
 import java.io.File;
 import java.util.Enumeration;
 import java.util.Hashtable;
+import java.util.Map;
+import java.util.Iterator;
 
 
 /**
@@ -152,13 +154,13 @@
     } /* run() */
 
 
-    private void runUploadState(ControllerRequest req, ControllerResponse res)
+    private void runUploadState(final ControllerRequest req, final ControllerResponse res)
             throws ControllerException, NonHandleableException {
-        Hashtable params = req.getParameters();
+        Map params = req.getAllParameters();
         int processedCount = 0;
 
-        for (Enumeration e = params.keys(); e.hasMoreElements();) {
-            String oneParamName = (String) e.nextElement();
+        for (Iterator e = params.keySet().iterator(); e.hasNext();) {
+            String oneParamName = (String) e.next();
             String clientFileName = null;
             String fileParamName = null;
 
@@ -193,4 +195,4 @@
 
 } /* Upload */
 
-/* Upload */
\ No newline at end of file
+/* Upload */
Index: ComponentManager.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/ComponentManager.java,v
retrieving revision 1.22
retrieving revision 1.23
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/ComponentManager.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/ComponentManager.java -u -r1.22 -r1.23
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/ComponentManager.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/ComponentManager.java
@@ -99,6 +99,7 @@
 import com.jcorporate.expresso.services.dbobj.SchemaList;
 import com.jcorporate.expresso.services.test.SchemaCreator;
 import com.jcorporate.expresso.services.test.SchemaDeleter;
+import java.util.Map;
 
 
 /**
@@ -535,7 +536,7 @@
                                               ControllerResponse response) throws ControllerException {
         ArrayList returnList = new ArrayList();
 
-        Hashtable allParams = request.getParameters();
+        Map allParams = request.getAllParameters();
 
         for (Iterator i = allParams.keySet().iterator(); i.hasNext();) {
             String oneParam = (String) i.next();
Index: DynamicCmd.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/dbmaint/DynamicCmd.java,v
retrieving revision 1.45
retrieving revision 1.46
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/dbmaint/DynamicCmd.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/dbmaint/DynamicCmd.java -u -r1.45 -r1.46
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/dbmaint/DynamicCmd.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/dbmaint/DynamicCmd.java
@@ -315,7 +315,7 @@
             initializeDBObj();
             add(new Output("dbobj", URLUTF8Encoder.decode(StringUtil.notNull(getParameter("dbobj")))));
 
-            if (newParams.getParameters().containsKey("nocount")) {
+            if (newParams.getAllParameters().containsKey("nocount")) {
                 this.countTotalRecords = false;
             }
 
Index: ListBase.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/dbmaint/ListBase.java,v
retrieving revision 1.33
retrieving revision 1.34
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/dbmaint/ListBase.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/dbmaint/ListBase.java -u -r1.33 -r1.34
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/dbmaint/ListBase.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/dbmaint/ListBase.java
@@ -86,6 +86,7 @@
 import java.util.Iterator;
 import java.util.Locale;
 import java.util.StringTokenizer;
+import java.util.Map;
 
 
 /**
@@ -288,8 +289,8 @@
 
         //xun li add for record count
         showNext = paginator.isMoreRecords();
-        addOutput(new Output("recordRange", 
-        		getString("Records_to_", new Object[]{Integer.toString(startShowingRecord),Integer.toString(endShowingRecord)})));
+        addOutput(new Output("recordRange",
+                getString("Records_to_", new Object[]{Integer.toString(startShowingRecord),Integer.toString(endShowingRecord)})));
 
         return totalRecordCount;
     } /* listRecords(String, Output) */
@@ -397,7 +398,7 @@
         }
 
         Class controllerClass = this.getController().getClass();
-        java.util.Hashtable allParameters = request.getParameters();
+        Map allParameters = request.getAllParameters();
         allParameters.remove(Controller.CONTROLLER_PARAM_KEY);
         String state = (String) allParameters.get(Controller.STATE_PARAM_KEY);
         allParameters.remove(Controller.STATE_PARAM_KEY);
@@ -447,8 +448,8 @@
             returnBlock.add(t);
         }
 
-        addOutput(new Output("pageCount", 
-        			getString("_Pages", new Object[]{Integer.toString(this.getRecordPaginator().getPageCount())})));
+        addOutput(new Output("pageCount",
+                    getString("_Pages", new Object[]{Integer.toString(this.getRecordPaginator().getPageCount())})));
         return returnBlock;
     }
 
Index: UserLDAP.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/ldap/UserLDAP.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/ldap/UserLDAP.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/ldap/UserLDAP.java -u -r1.18 -r1.19
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/ldap/UserLDAP.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/ldap/UserLDAP.java
@@ -291,6 +291,7 @@
      * Get the groups associated with this User
      *
      * @return The group list
+     * @deprecated as per UserInfo Spec
      */
     public java.util.Vector getGroups()
             throws DBException {
Index: ExSubmitTag.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExSubmitTag.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExSubmitTag.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExSubmitTag.java -u -r1.15 -r1.16
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExSubmitTag.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExSubmitTag.java
@@ -78,6 +78,7 @@
 import com.jcorporate.expresso.ext.struts.taglib.ControllerUtils;
 import com.jcorporate.expresso.ext.taglib.ExTagUtils;
 import com.jcorporate.expresso.ext.taglib.MessageUtil;
+import java.util.Map;
 
 
 /**
@@ -133,7 +134,7 @@
         }
 
 
-        Hashtable params = myTransition.getParams();
+         Map params = myTransition.getAllParameters();
 
         if (params != null) {
 
Index: ExButtonTag.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExButtonTag.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExButtonTag.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExButtonTag.java -u -r1.12 -r1.13
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExButtonTag.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExButtonTag.java
@@ -77,6 +77,7 @@
 import com.jcorporate.expresso.core.misc.StringUtil;
 import com.jcorporate.expresso.ext.struts.taglib.ControllerUtils;
 import com.jcorporate.expresso.ext.taglib.ExTagUtils;
+import java.util.Map;
 
 
 /**
@@ -128,7 +129,7 @@
             }
         }
 
-        Hashtable params = myTransition.getParams();
+        Map params = myTransition.getAllParameters();
 
         if (params != null) {
 
Index: ExImageTag.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExImageTag.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExImageTag.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExImageTag.java -u -r1.15 -r1.16
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExImageTag.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExImageTag.java
@@ -78,6 +78,7 @@
 import com.jcorporate.expresso.core.misc.StringUtil;
 import com.jcorporate.expresso.ext.struts.taglib.ControllerUtils;
 import com.jcorporate.expresso.ext.taglib.ExTagUtils;
+import java.util.Map;
 
 
 /**
@@ -131,7 +132,7 @@
             }
         }
 
-        Hashtable params = myTransition.getParams();
+        Map params = myTransition.getAllParameters();
 
         if (params != null) {
 
Index: DefaultAutoElement.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/ui/DefaultAutoElement.java,v
retrieving revision 1.62
retrieving revision 1.63
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/ui/DefaultAutoElement.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/ui/DefaultAutoElement.java -u -r1.62 -r1.63
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/ui/DefaultAutoElement.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/ui/DefaultAutoElement.java
@@ -417,7 +417,7 @@
         //patterns and load them into the appropriate DBObject by calling
         //parseSingleInput for each matching paramter.
         //
-        for (Iterator e = request.getParameters().keySet().iterator();
+        for (Iterator e = request.getAllParameters().keySet().iterator();
              e.hasNext();) {
             String oneParameterName = (String) e.next();
 


More information about the cvs mailing list