You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by hu...@apache.org on 2005/12/08 03:50:47 UTC

svn commit: r354948 - in /struts/apps/trunk/mailreader/src: java/org/apache/struts/apps/mailreader/actions/ webapp/ webapp/WEB-INF/

Author: husted
Date: Wed Dec  7 18:50:41 2005
New Revision: 354948

URL: http://svn.apache.org/viewcvs?rev=354948&view=rev
Log:
MailReader 
* Rename "action" field to "task" field, to avoid the smurf affect :)
* JavaDoc field keys
* Other minor refactorings

Modified:
    struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/BaseAction.java
    struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/LogoffAction.java
    struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/LogonAction.java
    struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/RegistrationAction.java
    struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/SubscriptionAction.java
    struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/WelcomeAction.java
    struts/apps/trunk/mailreader/src/webapp/Registration.jsp
    struts/apps/trunk/mailreader/src/webapp/Subscription.jsp
    struts/apps/trunk/mailreader/src/webapp/WEB-INF/struts-config.xml

Modified: struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/BaseAction.java
URL: http://svn.apache.org/viewcvs/struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/BaseAction.java?rev=354948&r1=354947&r2=354948&view=diff
==============================================================================
--- struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/BaseAction.java (original)
+++ struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/BaseAction.java Wed Dec  7 18:50:41 2005
@@ -30,10 +30,12 @@
 import org.apache.struts.action.ActionMessages;
 import org.apache.struts.action.ActionForm;
 import org.apache.struts.action.DynaActionForm;
+import org.apache.struts.action.ActionMessage;
 import org.apache.struts.apps.mailreader.Constants;
 import org.apache.struts.apps.mailreader.dao.UserDatabase;
 import org.apache.struts.apps.mailreader.dao.User;
 import org.apache.struts.apps.mailreader.dao.Subscription;
+import org.apache.struts.apps.mailreader.dao.ExpiredPasswordException;
 import org.apache.struts.actions.MappingDispatchAction;
 
 /**
@@ -101,6 +103,45 @@
     }
 
     /**
+     * <p>Confirm user credentials. Post any errors and return User object
+     * (or null).</p>
+     *
+     * @param database Database in which to look up the user
+     * @param username Username specified on the logon form
+     * @param password Password specified on the logon form
+     * @param errors ActionMessages queue to passback errors
+     *
+     * @return Validated User object or null
+     * @throws org.apache.struts.apps.mailreader.dao.ExpiredPasswordException to be handled by Struts exception
+     * processor via the action-mapping
+     */
+    User doGetUser(UserDatabase database, String username,
+                   String password, ActionMessages errors)
+            throws ExpiredPasswordException {
+
+        User user = null;
+        if (database == null){
+            errors.add(
+                ActionMessages.GLOBAL_MESSAGE,
+                new ActionMessage("error.database.missing"));
+        }
+        else {
+            user = database.findUser(username);
+            if ((user != null) && !user.getPassword().equals(password)) {
+                user = null;
+            }
+            if (user == null) {
+                errors.add(
+                    ActionMessages.GLOBAL_MESSAGE,
+                    new ActionMessage("error.password.mismatch"));
+            }
+        }
+
+        return user;
+
+    }
+
+    /**
      * <p>
      * Return a reference to the UserDatabase
      * or null if the database is not available.
@@ -275,6 +316,26 @@
              throw new ServletException(message, e);
          }
      }
+
+    /**
+     * <p>Store User object in client session.
+     * If user object is null, any existing user object is removed.</p>
+     *
+     * @param request The request we are processing
+     * @param user The user object returned from the database
+     */
+    void doCacheUser(HttpServletRequest request, User user) {
+
+        HttpSession session = request.getSession();
+        session.setAttribute(Constants.USER_KEY, user);
+        if (log.isDebugEnabled()) {
+            log.debug(
+                "LogonAction: User '"
+                    + user.getUsername()
+                    + "' logged on in session "
+                    + session.getId());
+        }
+    }
 
     /**
      * <p>

Modified: struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/LogoffAction.java
URL: http://svn.apache.org/viewcvs/struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/LogoffAction.java?rev=354948&r1=354947&r2=354948&view=diff
==============================================================================
--- struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/LogoffAction.java (original)
+++ struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/LogoffAction.java Wed Dec  7 18:50:41 2005
@@ -29,9 +29,9 @@
 import org.apache.struts.apps.mailreader.dao.User;
 
 /**
- * Implementation of <strong>Action</strong> that processes a
- * user logoff.
- *
+ * <p>
+ * Log user out of the current session.
+ * </p>
  * @version $Rev$ $Date$
  */
 public final class LogoffAction extends BaseAction {
@@ -46,11 +46,9 @@
         HttpServletResponse response)
         throws Exception {
 
-        // Extract attributes we will need
+        // Log event
         HttpSession session = request.getSession();
-        User user = (User) session.getAttribute(Constants.USER_KEY);
-
-        // Process this user logoff
+        User user = doGetUser(session);
         if (user != null) {
             if (log.isDebugEnabled()) {
                 log.debug(
@@ -65,10 +63,13 @@
                     "LogoffActon: User logged off in session " + session.getId());
             }
         }
+
+        // Process user logoff by removing session attributes
         session.removeAttribute(Constants.SUBSCRIPTION_KEY);
         session.removeAttribute(Constants.USER_KEY);
         session.invalidate();
 
+        // Done
         return doFindSuccess(mapping);
 
     }

Modified: struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/LogonAction.java
URL: http://svn.apache.org/viewcvs/struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/LogonAction.java?rev=354948&r1=354947&r2=354948&view=diff
==============================================================================
--- struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/LogonAction.java (original)
+++ struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/LogonAction.java Wed Dec  7 18:50:41 2005
@@ -19,16 +19,11 @@
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
 
-import org.apache.commons.beanutils.PropertyUtils;
 import org.apache.struts.action.ActionForm;
 import org.apache.struts.action.ActionForward;
 import org.apache.struts.action.ActionMapping;
-import org.apache.struts.action.ActionMessage;
 import org.apache.struts.action.ActionMessages;
-import org.apache.struts.apps.mailreader.Constants;
-import org.apache.struts.apps.mailreader.dao.ExpiredPasswordException;
 import org.apache.struts.apps.mailreader.dao.User;
 import org.apache.struts.apps.mailreader.dao.UserDatabase;
 
@@ -42,76 +37,14 @@
     /**
      * Name of username field ["username"].
      */
-    static String USERNAME = "username";
+    public static String USERNAME = "username";
 
     /**
      * Name of password field ["password"].
      */
-    static String PASSWORD = "password";
+    public static String PASSWORD = "password";
 
-    // ------------------------------------------------------ Protected Methods
-
-    /**
-     * <p>Confirm user credentials. Post any errors and return User object
-     * (or null).</p>
-     *
-     * @param database Database in which to look up the user
-     * @param username Username specified on the logon form
-     * @param password Password specified on the logon form
-     * @param errors ActionMessages queue to passback errors
-     *
-     * @return Validated User object or null
-     * @throws ExpiredPasswordException to be handled by Struts exception
-     * processor via the action-mapping
-     */
-    User getUser(UserDatabase database, String username,
-                           String password, ActionMessages errors) throws ExpiredPasswordException {
-
-        User user = null;
-        if (database == null){
-            errors.add(
-                ActionMessages.GLOBAL_MESSAGE,
-                new ActionMessage("error.database.missing"));
-        }
-        else {
-            user = database.findUser(username);
-            if ((user != null) && !user.getPassword().equals(password)) {
-                user = null;
-            }
-            if (user == null) {
-                errors.add(
-                    ActionMessages.GLOBAL_MESSAGE,
-                    new ActionMessage("error.password.mismatch"));
-            }
-        }
-
-        return user;
-
-    }
-
-
-    /**
-     * <p>Store User object in client session.
-     * If user object is null, any existing user object is removed.</p>
-     *
-     * @param request The request we are processing
-     * @param user The user object returned from the database
-     */
-    void SaveUser(HttpServletRequest request, User user) {
-
-        HttpSession session = request.getSession();
-        session.setAttribute(Constants.USER_KEY, user);
-        if (log.isDebugEnabled()) {
-            log.debug(
-                "LogonAction: User '"
-                    + user.getUsername()
-                    + "' logged on in session "
-                    + session.getId());
-        }
-
-    }
-
-    // --------------------------------------------------------- Public Methods
+    // ---- Public Methods ----
 
     /**
      * Use "username" and "password" fields from ActionForm to retrieve a User
@@ -133,16 +66,12 @@
         HttpServletResponse response)
         throws Exception {
 
-        // Local variables
+        // Retrieve user
         UserDatabase database = doGetUserDatabase();
-        String username = (String) PropertyUtils.getSimpleProperty(form,
-                USERNAME);
-        String password = (String) PropertyUtils.getSimpleProperty(form,
-                PASSWORD);
+        String username = doGet(form, USERNAME);
+        String password = doGet(form, PASSWORD);
         ActionMessages errors = new ActionMessages();
-
-        // Retrieve user
-        User user = getUser(database,username,password,errors);
+        User user = doGetUser(database,username,password,errors);
 
         // Report back any errors, and exit if any
         if (!errors.isEmpty()) {
@@ -150,8 +79,10 @@
             return (mapping.getInputForward());
         }
 
-        SaveUser(request,user);
+        // Cache user object in session to signify logon
+        doCacheUser(request,user);
 
+        // Done
         return doFindSuccess(mapping);
 
     }

Modified: struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/RegistrationAction.java
URL: http://svn.apache.org/viewcvs/struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/RegistrationAction.java?rev=354948&r1=354947&r2=354948&view=diff
==============================================================================
--- struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/RegistrationAction.java (original)
+++ struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/RegistrationAction.java Wed Dec  7 18:50:41 2005
@@ -37,13 +37,40 @@
 
     // --- Public Constants --
 
-    public final static String ACTION = "action";
+    /**
+     * Name of task field ["task"].
+     */
+    public final static String TASK = "task";
+
+    /**
+     * Name of fromAddress field ["fromAddress"].
+     */
     public final static String FROM_ADDRESS = "fromAddress";
+
+    /**
+     * Name of fullName field ["fullName"].
+     */
     public final static String FULL_NAME = "fullName";
+
+    /**
+     * Name of password field ["password"].
+     */
     public final static String PASSWORD = "password";
+
+    /**
+     * Name of password2 field ["password2"].
+     */
     public final static String PASSWORD2 = "password2";
+
+    /**
+     * Name of replyToAddress field ["replyToAddress"].
+     */
     public final static String REPLY_TO_ADDRESS = "replyToAddress";
-    public final static String USERNAME = "username";
+
+    /**
+      * Name of username field ["username"].
+      */
+     public final static String USERNAME = "username";
 
     // ---- Private Methods ----
 
@@ -145,7 +172,7 @@
        try {
            PropertyUtils.copyProperties(form, user);
            DynaActionForm dyna = (DynaActionForm) form;
-           dyna.set(ACTION,title);
+           dyna.set(TASK,title);
            dyna.set(PASSWORD,null);
            dyna.set(PASSWORD2,null);
        } catch (InvocationTargetException e) {

Modified: struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/SubscriptionAction.java
URL: http://svn.apache.org/viewcvs/struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/SubscriptionAction.java?rev=354948&r1=354947&r2=354948&view=diff
==============================================================================
--- struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/SubscriptionAction.java (original)
+++ struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/SubscriptionAction.java Wed Dec  7 18:50:41 2005
@@ -24,11 +24,34 @@
 
     // --- Public Constants --
 
-    public final static String ACTION = "action";
+    /**
+     * Name of task field ["task"].
+     */
+    public final static String TASK = "task";
+
+    /**
+     * Name of autoConnect field ["autoConnect"].
+     */
     public final static String AUTO_CONNECT = "autoConnect";
+
+    /**
+     * Name of host field ["host"].
+     */
     public final static String HOST = "host";
+
+    /**
+     * Name of password field ["password"].
+     */
     public final static String PASSWORD = "password";
+
+    /**
+     * Name of type field ["type"].
+     */
     public final static String TYPE = "type";
+
+    /**
+     * Name of username field ["username"].
+     */
     public final static String USERNAME = "username";
 
     // ---- Private Methods ----
@@ -103,7 +126,7 @@
 
         try {
             PropertyUtils.copyProperties(form, subscription);
-            doSet(form,ACTION,title);
+            doSet(form,TASK,title);
         } catch (InvocationTargetException e) {
             Throwable t = e.getTargetException();
             if (t == null) t = e;
@@ -181,7 +204,7 @@
 
         ActionForward result = Edit(mapping,form,request,response);
 
-        doSet(form,ACTION,method);
+        doSet(form,TASK,method);
         return result;
     }
 
@@ -224,7 +247,7 @@
             if (subscription==null) return doFindFailure(mapping);
             session.setAttribute(Constants.SUBSCRIPTION_KEY, subscription);
             doPopulate(form,subscription);
-            doSet(form,ACTION,method);
+            doSet(form,TASK,method);
         }
 
         return doFindSuccess(mapping);
@@ -262,7 +285,7 @@
             return doFindSuccess(mapping);
         }
 
-        String action = doGet(form,ACTION);
+        String action = doGet(form,TASK);
         Subscription subscription = doGetSubscription(request);
         boolean isDelete = action.equals("Delete");
         if (isDelete) {

Modified: struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/WelcomeAction.java
URL: http://svn.apache.org/viewcvs/struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/WelcomeAction.java?rev=354948&r1=354947&r2=354948&view=diff
==============================================================================
--- struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/WelcomeAction.java (original)
+++ struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/WelcomeAction.java Wed Dec  7 18:50:41 2005
@@ -32,7 +32,10 @@
 
 /**
  * <p>
- * Confirm required resources are available. If a resource is missing,
+ * Confirm required resources are available before displaying initial page.
+ * </p>
+ * <p>
+ * If a resource is missing,
  * forward to "failure". Otherwise, forward to "success", where
  * success is usually the "welcome" page.
  * </p>

Modified: struts/apps/trunk/mailreader/src/webapp/Registration.jsp
URL: http://svn.apache.org/viewcvs/struts/apps/trunk/mailreader/src/webapp/Registration.jsp?rev=354948&r1=354947&r2=354948&view=diff
==============================================================================
--- struts/apps/trunk/mailreader/src/webapp/Registration.jsp (original)
+++ struts/apps/trunk/mailreader/src/webapp/Registration.jsp Wed Dec  7 18:50:41 2005
@@ -5,11 +5,11 @@
 
 <html:html>
 <head>
-<logic:equal name="RegistrationForm" property="action"
+<logic:equal name="RegistrationForm" property="task"
             scope="request" value="Create">
   <title><bean:message key="registration.title.create"/></title>
 </logic:equal>
-<logic:equal name="RegistrationForm" property="action"
+<logic:equal name="RegistrationForm" property="task"
             scope="request" value="Edit">
   <title><bean:message key="registration.title.edit"/></title>
 </logic:equal>
@@ -21,7 +21,7 @@
 
 <html:form action="/SaveRegistration" focus="username"
          onsubmit="return validateRegistrationForm(this);">
-<html:hidden property="action"/>
+<html:hidden property="task"/>
 <table border="0" width="100%">
 
   <tr>
@@ -29,16 +29,12 @@
       <bean:message key="prompt.username"/>:
     </th>
     <td align="left">
-      <logic:equal name="RegistrationForm" property="action"
+      <logic:equal name="RegistrationForm" property="task"
                   scope="request" value="Create">
         <html:text property="username" size="16" maxlength="16"/>
       </logic:equal>
-      <logic:equal name="RegistrationForm" property="action"
+      <logic:equal name="RegistrationForm" property="task"
                   scope="request" value="Edit">
-<%--
-        <bean:write name="RegistrationForm" property="username"
-                   scope="request" filter="true"/>
---%>
 	<html:hidden property="username" write="true"/>
       </logic:equal>
     </td>
@@ -109,7 +105,7 @@
 </table>
 </html:form>
 
-<logic:equal name="RegistrationForm" property="action"
+<logic:equal name="RegistrationForm" property="task"
             scope="request" value="Edit">
 
 <div align="center">

Modified: struts/apps/trunk/mailreader/src/webapp/Subscription.jsp
URL: http://svn.apache.org/viewcvs/struts/apps/trunk/mailreader/src/webapp/Subscription.jsp?rev=354948&r1=354947&r2=354948&view=diff
==============================================================================
--- struts/apps/trunk/mailreader/src/webapp/Subscription.jsp (original)
+++ struts/apps/trunk/mailreader/src/webapp/Subscription.jsp Wed Dec  7 18:50:41 2005
@@ -5,15 +5,15 @@
 
 <html:html>
 <head>
-<logic:equal name="SubscriptionForm" property="action"
+<logic:equal name="SubscriptionForm" property="task"
             scope="request" value="Create">
   <title><bean:message key="subscription.title.create"/></title>
 </logic:equal>
-<logic:equal name="SubscriptionForm" property="action"
+<logic:equal name="SubscriptionForm" property="task"
             scope="request" value="Delete">
   <title><bean:message key="subscription.title.delete"/></title>
 </logic:equal>
-<logic:equal name="SubscriptionForm" property="action"
+<logic:equal name="SubscriptionForm" property="task"
             scope="request" value="Edit">
   <title><bean:message key="subscription.title.edit"/></title>
 </logic:equal>
@@ -24,7 +24,7 @@
 <html:errors/>
 
 <html:form action="/SaveSubscription" focus="host">
-<html:hidden property="action"/>
+<html:hidden property="task"/>
 <table border="0" width="100%">
 
   <tr>
@@ -41,11 +41,11 @@
       <bean:message key="prompt.mailHostname"/>:
     </th>
     <td align="left">
-      <logic:equal name="SubscriptionForm" property="action"
+      <logic:equal name="SubscriptionForm" property="task"
                   scope="request" value="Create">
         <html:text property="host" size="50"/>
       </logic:equal>
-      <logic:notEqual name="SubscriptionForm" property="action"
+      <logic:notEqual name="SubscriptionForm" property="task"
                      scope="request" value="Create">
         <html:hidden property="host" write="true"/>
       </logic:notEqual>
@@ -93,19 +93,19 @@
 
   <tr>
     <td align="right">
-      <logic:equal name="SubscriptionForm" property="action"
+      <logic:equal name="SubscriptionForm" property="task"
                   scope="request" value="Create">
        <html:submit property="DO_SUBMIT">
           <bean:message key="button.save"/>
         </html:submit>
       </logic:equal>
-      <logic:equal name="SubscriptionForm" property="action"
+      <logic:equal name="SubscriptionForm" property="task"
                   scope="request" value="Delete">
        <html:submit property="DO_SUBMIT">
           <bean:message key="button.confirm"/>
         </html:submit>
       </logic:equal>
-      <logic:equal name="SubscriptionForm" property="action"
+      <logic:equal name="SubscriptionForm" property="task"
                   scope="request" value="Edit">
         <html:submit property="DO_SUBMIT">
           <bean:message key="button.save"/>
@@ -113,7 +113,7 @@
       </logic:equal>
     </td>
     <td align="left">
-      <logic:notEqual name="SubscriptionForm" property="action"
+      <logic:notEqual name="SubscriptionForm" property="task"
                      scope="request" value="Delete">
         <html:reset property="DO_RESET">
           <bean:message key="button.reset"/>

Modified: struts/apps/trunk/mailreader/src/webapp/WEB-INF/struts-config.xml
URL: http://svn.apache.org/viewcvs/struts/apps/trunk/mailreader/src/webapp/WEB-INF/struts-config.xml?rev=354948&r1=354947&r2=354948&view=diff
==============================================================================
--- struts/apps/trunk/mailreader/src/webapp/WEB-INF/struts-config.xml (original)
+++ struts/apps/trunk/mailreader/src/webapp/WEB-INF/struts-config.xml Wed Dec  7 18:50:41 2005
@@ -44,7 +44,7 @@
     <!-- RegistrationAction form bean -->
     <form-bean      name="RegistrationForm"
                     type="org.apache.struts.validator.DynaValidatorForm">
-        <form-property name="action" type="java.lang.String" initial="Create"/>
+        <form-property name="task" type="java.lang.String" initial="Create"/>
         <form-property name="fromAddress" type="java.lang.String"/>
         <form-property name="fullName" type="java.lang.String"/>
         <form-property name="password" type="java.lang.String"/>
@@ -56,7 +56,7 @@
     <!-- Subscription form bean -->
     <form-bean      name="SubscriptionForm"
                     type="org.apache.struts.validator.DynaValidatorForm">
-        <form-property name="action" type="java.lang.String" initial="Create"/>
+        <form-property name="task" type="java.lang.String" initial="Create"/>
         <form-property name="autoConnect" type="java.lang.Boolean" initial="FALSE" reset="true"/>
         <form-property name="host" type="java.lang.String" />
         <form-property name="password" type="java.lang.String" />
@@ -109,6 +109,12 @@
            <forward name="Success"              path="/MainMenu.do"/>
        </action>
 
+      <!-- Display MainMenu -->
+      <action    path="/MainMenu"
+                 type="org.apache.struts.apps.mailreader.actions.MainMenuAction">
+          <forward name="Success" path="/MainMenu.jsp" />
+      </action>
+
       <!-- Process a user logoff -->
        <action    path="/Logoff"
                   type="org.apache.struts.apps.mailreader.actions.LogoffAction">
@@ -141,7 +147,7 @@
            extends="//BaseAction"
            parameter="Save"
           validate="true">
-          <forward name="Success"              path="/MainMenu.jsp"/>
+          <forward name="Success"              path="/MainMenu.do"/>
       </action>
 
       <!-- Matches SaveSubscription action -->



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