struts-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hus...@apache.org
Subject svn commit: r392051 [1/3] - in /struts/sandbox/trunk/mailreader-course/action2: ./ lab-1-3/src/java/ lab-1-3/src/test/ lab-1-3/src/webapp/pages/ lab-2-1/src/java/ lab-2-1/src/test/ lab-2-1/src/webapp/pages/ lab-2-2/ lab-2-2/src/java/ lab-2-2/src/test/ ...
Date Thu, 06 Apr 2006 19:42:26 GMT
Author: husted
Date: Thu Apr  6 12:42:22 2006
New Revision: 392051

URL: http://svn.apache.org/viewcvs?rev=392051&view=rev
Log:
MailReader Course
* Add lab 2-2
* Add missing files from other labs. 


Added:
    struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/java/MailReaderSupport.java   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/java/Register.java   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/java/database.xml   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/test/RegisterTest.java   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/webapp/pages/Register.jsp   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/java/MailReaderSupport.java   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/java/Register-validation.xml   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/java/Register.java   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/java/database.xml   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/test/RegisterTest.java   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/webapp/pages/Register.jsp   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-2-2/
      - copied from r392023, struts/sandbox/trunk/mailreader-course/action2/lab-2-1/
    struts/sandbox/trunk/mailreader-course/action2/lab-2-2/lab-2-2.iml
    struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/MailReaderSupport.java   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/Register-validation.xml   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/Register.java   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/database.xml   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/test/RegisterTest.java   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/webapp/WEB-INF/entities/
    struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/webapp/WEB-INF/entities/WebTest.dtd   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/webapp/WEB-INF/entities/config.xml   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/webapp/WEB-INF/entities/register-open.xml   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/webapp/WEB-INF/entities/register-page.xml   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/webapp/WEB-INF/entities/register-trillian.xml   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/webapp/WEB-INF/entities/save-click.xml   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/webapp/WEB-INF/entities/taskdef.xml   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/webapp/WEB-INF/entities/welcome-open.xml   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/webapp/WEB-INF/webtest.xml   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/webapp/pages/Menu.jsp   (with props)
    struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/webapp/pages/Register.jsp   (with props)
Removed:
    struts/sandbox/trunk/mailreader-course/action2/lab-2-2/lab-2-1.iml
Modified:
    struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/xwork.xml
    struts/sandbox/trunk/mailreader-course/action2/mailreader-course-action2.ipr

Added: struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/java/MailReaderSupport.java
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/java/MailReaderSupport.java?rev=392051&view=auto
==============================================================================
--- struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/java/MailReaderSupport.java (added)
+++ struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/java/MailReaderSupport.java Thu Apr  6 12:42:22 2006
@@ -0,0 +1,139 @@
+import com.opensymphony.util.BeanUtils;
+import com.opensymphony.webwork.interceptor.ApplicationAware;
+import com.opensymphony.xwork.ActionSupport;
+import org.apache.struts.apps.mailreader.dao.ExpiredPasswordException;
+import org.apache.struts.apps.mailreader.dao.User;
+import org.apache.struts.apps.mailreader.dao.UserDatabase;
+
+import java.util.Map;
+
+public class MailReaderSupport extends ActionSupport implements ApplicationAware {
+
+    // ---- Register form properties ----
+
+    private String username = null;
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String value) {
+        username = value;
+    }
+
+    private String password = null;
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String value) {
+        password = value;
+    }
+
+    private String password2 = null;
+
+    public String getPassword2() {
+        return password2;
+    }
+
+    public void setPassword2(String value) {
+        password2 = value;
+    }
+
+    private String fullName = null;
+
+    public String getFullName() {
+        return fullName;
+    }
+
+    public void setFullName(String value) {
+        fullName = value;
+    }
+
+    private String fromAddress = null;
+
+    public String getFromAddress() {
+        return fromAddress;
+    }
+
+    public void setFromAddress(String value) {
+        fromAddress = value;
+    }
+
+    private String replyToAddress = null;
+
+    public String getReplyToAddress() {
+        return replyToAddress;
+    }
+
+    public void setReplyToAddress(String value) {
+        replyToAddress = value;
+    }
+
+    // ---- Messages ----
+
+    public static final String DATABASE_KEY = "database";
+
+    public static final String ERROR_DATABASE_MISSING =
+            "Database is missing";
+
+    public static String ERROR_USERNAME_UNIQUE =
+            "That username is already in use - please select another";
+
+    public static final String USER_KEY = "user";
+
+    // ---- ApplicationAware ----
+
+    private Map application;
+
+    public void setApplication(Map value) {
+        application = value;
+    }
+
+    public Map getApplication() {
+        return application;
+    }
+
+    // ---- Database property ----
+
+    public UserDatabase getDatabase() {
+        Object db = getApplication().get(DATABASE_KEY);
+        if (db == null) {
+            this.addActionError(ERROR_DATABASE_MISSING);
+        }
+        return (UserDatabase) db;
+    }
+
+    public void setDatabase(UserDatabase database) {
+        getApplication().put(DATABASE_KEY, database);
+    }
+
+    // ---- Database methods ----
+
+    public User findUser(String username, String password)
+            throws ExpiredPasswordException {
+        return getDatabase().findUser(username);
+    }
+
+    public User createUser(String username, String password) throws Exception {
+
+        UserDatabase database = getDatabase();
+        User user = database.findUser(username);
+
+        if (user != null) {
+            addActionError(ERROR_USERNAME_UNIQUE);
+            return null;
+        }
+
+        user = database.createUser(username);
+        BeanUtils.setValues(user, this, null);
+
+        return user;
+    }
+
+    public void saveUser() throws Exception {
+        getDatabase().save();
+    }
+
+}

Propchange: struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/java/MailReaderSupport.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/java/Register.java
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/java/Register.java?rev=392051&view=auto
==============================================================================
--- struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/java/Register.java (added)
+++ struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/java/Register.java Thu Apr  6 12:42:22 2006
@@ -0,0 +1,24 @@
+import com.opensymphony.xwork.Action;
+import org.apache.struts.apps.mailreader.dao.User;
+
+public class Register extends MailReaderSupport {
+
+    public String execute()
+            throws Exception {
+
+        User user = findUser(getUsername(), getPassword());
+        boolean haveUser = (user != null);
+
+        if (haveUser) {
+            addActionError(ERROR_USERNAME_UNIQUE);
+            return Action.INPUT;
+        }
+
+        createUser(getUsername(), getPassword());
+
+        saveUser();
+
+        return Action.SUCCESS;
+    }
+
+}

Propchange: struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/java/Register.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/java/database.xml
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/java/database.xml?rev=392051&view=auto
==============================================================================
--- struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/java/database.xml (added)
+++ struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/java/database.xml Thu Apr  6 12:42:22 2006
@@ -0,0 +1,13 @@
+<?xml version='1.0'?>
+<database>
+    <user username="user" fromAddress="John.User@somewhere.com"
+          fullName="John Q. User" password="pass">
+        <subscription host="mail.hotmail.com" autoConnect="false"
+                      password="bar" type="pop3" username="user1234">
+        </subscription>
+        <subscription host="mail.yahoo.com" autoConnect="false" password="foo"
+                      type="imap" username="jquser">
+        </subscription>
+    </user>
+</database>
+        
\ No newline at end of file

Propchange: struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/java/database.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/test/RegisterTest.java
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/test/RegisterTest.java?rev=392051&view=auto
==============================================================================
--- struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/test/RegisterTest.java (added)
+++ struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/test/RegisterTest.java Thu Apr  6 12:42:22 2006
@@ -0,0 +1,34 @@
+import com.opensymphony.xwork.Action;
+import org.apache.struts.apps.mailreader.dao.User;
+
+import java.util.HashMap;
+
+public class RegisterTest extends RetainTest {
+
+    Register action = null;
+
+    public void setUp() throws Exception {
+        super.setUp();
+        action = new Register();
+        action.setApplication(new HashMap());
+        action.setDatabase(database);
+    }
+
+    public void testExecute() throws Exception {
+
+        action.setUsername("user");
+        action.setPassword("pass");
+        action.setFullName("John Q. User");
+        action.setFromAddress("John.User@somewhere.com");
+
+        String success = action.execute();
+        assertTrue("Expected SUCCESS", Action.SUCCESS.equals(success));
+
+        User user = database.findUser("user");
+        assertNotNull("Expected user", user);
+
+        String input = action.execute();
+        assertTrue("Expected INPUT", Action.INPUT.equals(input));
+    }
+
+}

Propchange: struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/test/RegisterTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/webapp/pages/Register.jsp
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/webapp/pages/Register.jsp?rev=392051&view=auto
==============================================================================
--- struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/webapp/pages/Register.jsp (added)
+++ struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/webapp/pages/Register.jsp Thu Apr  6 12:42:22 2006
@@ -0,0 +1,30 @@
+<%@ taglib uri="/webwork" prefix="ww" %>
+<html>
+<head>
+    <title>Register</title>
+</head>
+
+<body onLoad="self.focus();document.Register.username.focus()">
+
+<ww:actionerror/>
+<ww:form method="POST">
+
+    <ww:textfield label="UserName" name="username"/>
+
+    <ww:password label="Password" name="password"/>
+
+    <ww:password label="Confirm Password" name="password2"/>
+
+    <ww:textfield label="Full Name" name="fullName"/>
+
+    <ww:textfield label="From Address" name="fromAddress"/>
+
+    <ww:textfield label="Reply To Address" name="replyToAddress"/>
+
+    <ww:submit value="Save" name="Save"/>
+
+</ww:form>
+
+
+</body>
+</html>

Propchange: struts/sandbox/trunk/mailreader-course/action2/lab-1-3/src/webapp/pages/Register.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/java/MailReaderSupport.java
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/java/MailReaderSupport.java?rev=392051&view=auto
==============================================================================
--- struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/java/MailReaderSupport.java (added)
+++ struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/java/MailReaderSupport.java Thu Apr  6 12:42:22 2006
@@ -0,0 +1,139 @@
+import com.opensymphony.util.BeanUtils;
+import com.opensymphony.webwork.interceptor.ApplicationAware;
+import com.opensymphony.xwork.ActionSupport;
+import org.apache.struts.apps.mailreader.dao.ExpiredPasswordException;
+import org.apache.struts.apps.mailreader.dao.User;
+import org.apache.struts.apps.mailreader.dao.UserDatabase;
+
+import java.util.Map;
+
+public class MailReaderSupport extends ActionSupport implements ApplicationAware {
+
+    // ---- Register form properties ----
+
+    private String username = null;
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String value) {
+        username = value;
+    }
+
+    private String password = null;
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String value) {
+        password = value;
+    }
+
+    private String password2 = null;
+
+    public String getPassword2() {
+        return password2;
+    }
+
+    public void setPassword2(String value) {
+        password2 = value;
+    }
+
+    private String fullName = null;
+
+    public String getFullName() {
+        return fullName;
+    }
+
+    public void setFullName(String value) {
+        fullName = value;
+    }
+
+    private String fromAddress = null;
+
+    public String getFromAddress() {
+        return fromAddress;
+    }
+
+    public void setFromAddress(String value) {
+        fromAddress = value;
+    }
+
+    private String replyToAddress = null;
+
+    public String getReplyToAddress() {
+        return replyToAddress;
+    }
+
+    public void setReplyToAddress(String value) {
+        replyToAddress = value;
+    }
+
+    // ---- Messages ----
+
+    public static final String DATABASE_KEY = "database";
+
+    public static final String ERROR_DATABASE_MISSING =
+            "Database is missing";
+
+    public static String ERROR_USERNAME_UNIQUE =
+            "That username is already in use - please select another";
+
+    public static final String USER_KEY = "user";
+
+    // ---- ApplicationAware ----
+
+    private Map application;
+
+    public void setApplication(Map value) {
+        application = value;
+    }
+
+    public Map getApplication() {
+        return application;
+    }
+
+    // ---- Database property ----
+
+    public UserDatabase getDatabase() {
+        Object db = getApplication().get(DATABASE_KEY);
+        if (db == null) {
+            this.addActionError(ERROR_DATABASE_MISSING);
+        }
+        return (UserDatabase) db;
+    }
+
+    public void setDatabase(UserDatabase database) {
+        getApplication().put(DATABASE_KEY, database);
+    }
+
+    // ---- Database methods ----
+
+    public User findUser(String username, String password)
+            throws ExpiredPasswordException {
+        return getDatabase().findUser(username);
+    }
+
+    public User createUser(String username, String password) throws Exception {
+
+        UserDatabase database = getDatabase();
+        User user = database.findUser(username);
+
+        if (user != null) {
+            addActionError(ERROR_USERNAME_UNIQUE);
+            return null;
+        }
+
+        user = database.createUser(username);
+        BeanUtils.setValues(user, this, null);
+
+        return user;
+    }
+
+    public void saveUser() throws Exception {
+        getDatabase().save();
+    }
+
+}

Propchange: struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/java/MailReaderSupport.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/java/Register-validation.xml
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/java/Register-validation.xml?rev=392051&view=auto
==============================================================================
--- struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/java/Register-validation.xml (added)
+++ struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/java/Register-validation.xml Thu Apr  6 12:42:22 2006
@@ -0,0 +1,55 @@
+<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
+
+<validators>
+
+    <field name="username">
+        <field-validator type="requiredstring">
+            <message>Username is required</message>
+        </field-validator>
+    </field>
+
+    <field name="fullName">
+        <field-validator type="requiredstring">
+            <message>Full Name is required</message>
+        </field-validator>
+    </field>
+
+    <field name="fromAddress">
+        <field-validator type="requiredstring">
+            <message>From Address is required</message>
+        </field-validator>
+        <field-validator type="email">
+            <message>Invalid format for From Address</message>
+        </field-validator>
+    </field>
+
+    <field name="replyToAddress">
+        <field-validator type="email">
+            <message>Invalid format for Reply To Address</message>
+        </field-validator>
+    </field>
+
+    <field name="password">
+        <field-validator type="requiredstring">
+            <message>Password is required</message>
+        </field-validator>
+        <field-validator type="stringlength">
+            <param name="trim">true</param>
+            <param name="minLength">4</param>
+            <param name="maxLength">10</param>
+            <message>Password length is not in the range 4 through 10.</message>
+        </field-validator>
+    </field>
+
+    <field name="password2">
+        <field-validator type="requiredstring">
+            <message>Confirmation password is required</message>
+        </field-validator>
+    </field>
+
+    <validator type="expression">
+        <param name="expression">password eq password2</param>
+        <message>Invalid username and/or password, please try again</message>
+    </validator>
+
+</validators>

Propchange: struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/java/Register-validation.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/java/Register.java
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/java/Register.java?rev=392051&view=auto
==============================================================================
--- struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/java/Register.java (added)
+++ struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/java/Register.java Thu Apr  6 12:42:22 2006
@@ -0,0 +1,24 @@
+import com.opensymphony.xwork.Action;
+import org.apache.struts.apps.mailreader.dao.User;
+
+public class Register extends MailReaderSupport {
+
+    public String execute()
+            throws Exception {
+
+        User user = findUser(getUsername(), getPassword());
+        boolean haveUser = (user != null);
+
+        if (haveUser) {
+            addActionError(ERROR_USERNAME_UNIQUE);
+            return Action.INPUT;
+        }
+
+        createUser(getUsername(), getPassword());
+
+        saveUser();
+
+        return Action.SUCCESS;
+    }
+
+}

Propchange: struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/java/Register.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/java/database.xml
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/java/database.xml?rev=392051&view=auto
==============================================================================
--- struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/java/database.xml (added)
+++ struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/java/database.xml Thu Apr  6 12:42:22 2006
@@ -0,0 +1,13 @@
+<?xml version='1.0'?>
+<database>
+    <user username="user" fromAddress="John.User@somewhere.com"
+          fullName="John Q. User" password="pass">
+        <subscription host="mail.hotmail.com" autoConnect="false"
+                      password="bar" type="pop3" username="user1234">
+        </subscription>
+        <subscription host="mail.yahoo.com" autoConnect="false" password="foo"
+                      type="imap" username="jquser">
+        </subscription>
+    </user>
+</database>
+        
\ No newline at end of file

Propchange: struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/java/database.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/test/RegisterTest.java
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/test/RegisterTest.java?rev=392051&view=auto
==============================================================================
--- struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/test/RegisterTest.java (added)
+++ struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/test/RegisterTest.java Thu Apr  6 12:42:22 2006
@@ -0,0 +1,34 @@
+import com.opensymphony.xwork.Action;
+import org.apache.struts.apps.mailreader.dao.User;
+
+import java.util.HashMap;
+
+public class RegisterTest extends RetainTest {
+
+    Register action = null;
+
+    public void setUp() throws Exception {
+        super.setUp();
+        action = new Register();
+        action.setApplication(new HashMap());
+        action.setDatabase(database);
+    }
+
+    public void testExecute() throws Exception {
+
+        action.setUsername("user");
+        action.setPassword("pass");
+        action.setFullName("John Q. User");
+        action.setFromAddress("John.User@somewhere.com");
+
+        String success = action.execute();
+        assertTrue("Expected SUCCESS", Action.SUCCESS.equals(success));
+
+        User user = database.findUser("user");
+        assertNotNull("Expected user", user);
+
+        String input = action.execute();
+        assertTrue("Expected INPUT", Action.INPUT.equals(input));
+    }
+
+}

Propchange: struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/test/RegisterTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/webapp/pages/Register.jsp
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/webapp/pages/Register.jsp?rev=392051&view=auto
==============================================================================
--- struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/webapp/pages/Register.jsp (added)
+++ struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/webapp/pages/Register.jsp Thu Apr  6 12:42:22 2006
@@ -0,0 +1,30 @@
+<%@ taglib uri="/webwork" prefix="ww" %>
+<html>
+<head>
+    <title>Register</title>
+</head>
+
+<body onLoad="self.focus();document.Register.username.focus()">
+
+<ww:actionerror/>
+<ww:form method="POST" validate="true">
+
+    <ww:textfield label="UserName" name="username"/>
+
+    <ww:password label="Password" name="password"/>
+
+    <ww:password label="Confirm Password" name="password2"/>
+
+    <ww:textfield label="Full Name" name="fullName"/>
+
+    <ww:textfield label="From Address" name="fromAddress"/>
+
+    <ww:textfield label="Reply To Address" name="replyToAddress"/>
+
+    <ww:submit value="Save" name="Save"/>
+
+</ww:form>
+
+
+</body>
+</html>

Propchange: struts/sandbox/trunk/mailreader-course/action2/lab-2-1/src/webapp/pages/Register.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: struts/sandbox/trunk/mailreader-course/action2/lab-2-2/lab-2-2.iml
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-2-2/lab-2-2.iml?rev=392051&view=auto
==============================================================================
--- struts/sandbox/trunk/mailreader-course/action2/lab-2-2/lab-2-2.iml (added)
+++ struts/sandbox/trunk/mailreader-course/action2/lab-2-2/lab-2-2.iml Thu Apr  6 12:42:22 2006
@@ -0,0 +1,264 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module version="4" relativePaths="true" type="J2EE_WEB_MODULE" j2ee-integration="Tomcat Server">
+  <component name="ModuleRootManager" />
+  <component name="NewModuleRootManager">
+    <output url="file://C:/opt/Apache/Tomcat-5.0/webapps/lab-2-2/WEB-INF/classes" />
+    <exclude-output />
+    <exploded url="file://C:/opt/Apache/Tomcat-5.0/webapps/lab-2-2" />
+    <exclude-exploded />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test" isTestSource="true" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" name="Tomcat" level="application_server_libraries" />
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../lib/spring-web.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../lib/oscore.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../lib/struts-mailreader-dao-1.3.0-dev.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../lib/spring-context.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../lib/spring-core.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../lib/webwork-2.2.2.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../lib/xwork-1.1.2.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../lib/freemarker.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../lib/commons-digester-1.6.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../lib/rife-continuations.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../lib/commons-collections-3.1.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../lib/spring-beans.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../lib/ognl.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../lib/commons-logging-1.0.4.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../lib/struts-taglib-1.3.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$APPLICATION_HOME_DIR$/lib/junit.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntryProperties />
+  </component>
+  <component name="WebModuleBuildComponent">
+    <setting name="EXPLODED_URL" value="file://C:/opt/Apache/Tomcat-5.0/webapps/lab-2-2" />
+    <setting name="EXPLODED_ENABLED" value="true" />
+    <setting name="JAR_URL" value="file://" />
+    <setting name="JAR_ENABLED" value="false" />
+    <setting name="SYNC_EXPLODED_DIR" value="true" />
+    <setting name="BUILD_ON_FRAME_DEACTIVATION" value="false" />
+    <setting name="RUN_JASPER_VALIDATION" value="false" />
+  </component>
+  <component name="WebModuleProperties">
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/junit.jar" />
+      <url>jar://$APPLICATION_HOME_DIR$/lib/junit.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/commons-collections-3.1.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/commons-collections-3.1.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/commons-digester-1.6.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/commons-digester-1.6.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/commons-logging-1.0.4.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/commons-logging-1.0.4.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/freemarker.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/freemarker.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/ognl.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/ognl.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/oscore.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/oscore.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/rife-continuations.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/rife-continuations.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/spring-beans.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/spring-beans.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/spring-context.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/spring-context.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/spring-core.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/spring-core.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/spring-web.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/spring-web.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/struts-mailreader-dao-1.3.0-dev.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/struts-mailreader-dao-1.3.0-dev.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/struts-taglib-1.3.0.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/struts-taglib-1.3.0.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/webwork-2.2.2.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/webwork-2.2.2.jar!/</url>
+    </containerElement>
+    <containerElement type="library" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/xwork-1.1.2.jar" />
+      <url>jar://$MODULE_DIR$/../../lib/xwork-1.1.2.jar!/</url>
+    </containerElement>
+    <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/src/webapp/WEB-INF/web.xml" optional="false" version="2.3" />
+    <deploymentDescriptor name="context.xml" url="file://$MODULE_DIR$/META-INF/context.xml" optional="false" version="5.x" />
+    <webroots>
+      <root url="file://$MODULE_DIR$/src/webapp" relative="/" />
+      <root url="file://$MODULE_DIR$/src/java" relative="/WEB-INF/src/java" />
+      <root url="file://$MODULE_DIR$/src/test" relative="/WEB-INF/src/test" />
+    </webroots>
+  </component>
+  <component name="WeblogicWebModuleProperties">
+    <option name="IS_RUN_APPC" value="false" />
+  </component>
+</module>
+

Added: struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/MailReaderSupport.java
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/MailReaderSupport.java?rev=392051&view=auto
==============================================================================
--- struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/MailReaderSupport.java (added)
+++ struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/MailReaderSupport.java Thu Apr  6 12:42:22 2006
@@ -0,0 +1,139 @@
+import com.opensymphony.util.BeanUtils;
+import com.opensymphony.webwork.interceptor.ApplicationAware;
+import com.opensymphony.xwork.ActionSupport;
+import org.apache.struts.apps.mailreader.dao.ExpiredPasswordException;
+import org.apache.struts.apps.mailreader.dao.User;
+import org.apache.struts.apps.mailreader.dao.UserDatabase;
+
+import java.util.Map;
+
+public class MailReaderSupport extends ActionSupport implements ApplicationAware {
+
+    // ---- Register form properties ----
+
+    private String username = null;
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String value) {
+        username = value;
+    }
+
+    private String password = null;
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String value) {
+        password = value;
+    }
+
+    private String password2 = null;
+
+    public String getPassword2() {
+        return password2;
+    }
+
+    public void setPassword2(String value) {
+        password2 = value;
+    }
+
+    private String fullName = null;
+
+    public String getFullName() {
+        return fullName;
+    }
+
+    public void setFullName(String value) {
+        fullName = value;
+    }
+
+    private String fromAddress = null;
+
+    public String getFromAddress() {
+        return fromAddress;
+    }
+
+    public void setFromAddress(String value) {
+        fromAddress = value;
+    }
+
+    private String replyToAddress = null;
+
+    public String getReplyToAddress() {
+        return replyToAddress;
+    }
+
+    public void setReplyToAddress(String value) {
+        replyToAddress = value;
+    }
+
+    // ---- Messages ----
+
+    public static final String DATABASE_KEY = "database";
+
+    public static final String ERROR_DATABASE_MISSING =
+            "Database is missing";
+
+    public static String ERROR_USERNAME_UNIQUE =
+            "That username is already in use - please select another";
+
+    public static final String USER_KEY = "user";
+
+    // ---- ApplicationAware ----
+
+    private Map application;
+
+    public void setApplication(Map value) {
+        application = value;
+    }
+
+    public Map getApplication() {
+        return application;
+    }
+
+    // ---- Database property ----
+
+    public UserDatabase getDatabase() {
+        Object db = getApplication().get(DATABASE_KEY);
+        if (db == null) {
+            this.addActionError(ERROR_DATABASE_MISSING);
+        }
+        return (UserDatabase) db;
+    }
+
+    public void setDatabase(UserDatabase database) {
+        getApplication().put(DATABASE_KEY, database);
+    }
+
+    // ---- Database methods ----
+
+    public User findUser(String username, String password)
+            throws ExpiredPasswordException {
+        return getDatabase().findUser(username);
+    }
+
+    public User createUser(String username, String password) throws Exception {
+
+        UserDatabase database = getDatabase();
+        User user = database.findUser(username);
+
+        if (user != null) {
+            addActionError(ERROR_USERNAME_UNIQUE);
+            return null;
+        }
+
+        user = database.createUser(username);
+        BeanUtils.setValues(user, this, null);
+
+        return user;
+    }
+
+    public void saveUser() throws Exception {
+        getDatabase().save();
+    }
+
+}

Propchange: struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/MailReaderSupport.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/Register-validation.xml
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/Register-validation.xml?rev=392051&view=auto
==============================================================================
--- struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/Register-validation.xml (added)
+++ struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/Register-validation.xml Thu Apr  6 12:42:22 2006
@@ -0,0 +1,55 @@
+<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
+
+<validators>
+
+    <field name="username">
+        <field-validator type="requiredstring">
+            <message>Username is required</message>
+        </field-validator>
+    </field>
+
+    <field name="fullName">
+        <field-validator type="requiredstring">
+            <message>Full Name is required</message>
+        </field-validator>
+    </field>
+
+    <field name="fromAddress">
+        <field-validator type="requiredstring">
+            <message>From Address is required</message>
+        </field-validator>
+        <field-validator type="email">
+            <message>Invalid format for From Address</message>
+        </field-validator>
+    </field>
+
+    <field name="replyToAddress">
+        <field-validator type="email">
+            <message>Invalid format for Reply To Address</message>
+        </field-validator>
+    </field>
+
+    <field name="password">
+        <field-validator type="requiredstring">
+            <message>Password is required</message>
+        </field-validator>
+        <field-validator type="stringlength">
+            <param name="trim">true</param>
+            <param name="minLength">4</param>
+            <param name="maxLength">10</param>
+            <message>Password length is not in the range 4 through 10.</message>
+        </field-validator>
+    </field>
+
+    <field name="password2">
+        <field-validator type="requiredstring">
+            <message>Confirmation password is required</message>
+        </field-validator>
+    </field>
+
+    <validator type="expression">
+        <param name="expression">password eq password2</param>
+        <message>Invalid username and/or password, please try again</message>
+    </validator>
+
+</validators>

Propchange: struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/Register-validation.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/Register.java
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/Register.java?rev=392051&view=auto
==============================================================================
--- struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/Register.java (added)
+++ struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/Register.java Thu Apr  6 12:42:22 2006
@@ -0,0 +1,24 @@
+import com.opensymphony.xwork.Action;
+import org.apache.struts.apps.mailreader.dao.User;
+
+public class Register extends MailReaderSupport {
+
+    public String execute()
+            throws Exception {
+
+        User user = findUser(getUsername(), getPassword());
+        boolean haveUser = (user != null);
+
+        if (haveUser) {
+            addActionError(ERROR_USERNAME_UNIQUE);
+            return Action.INPUT;
+        }
+
+        createUser(getUsername(), getPassword());
+
+        saveUser();
+
+        return Action.SUCCESS;
+    }
+
+}

Propchange: struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/Register.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/database.xml
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/database.xml?rev=392051&view=auto
==============================================================================
--- struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/database.xml (added)
+++ struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/database.xml Thu Apr  6 12:42:22 2006
@@ -0,0 +1,13 @@
+<?xml version='1.0'?>
+<database>
+    <user username="user" fromAddress="John.User@somewhere.com"
+          fullName="John Q. User" password="pass">
+        <subscription host="mail.hotmail.com" autoConnect="false"
+                      password="bar" type="pop3" username="user1234">
+        </subscription>
+        <subscription host="mail.yahoo.com" autoConnect="false" password="foo"
+                      type="imap" username="jquser">
+        </subscription>
+    </user>
+</database>
+        
\ No newline at end of file

Propchange: struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/database.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/xwork.xml
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/xwork.xml?rev=392051&r1=392023&r2=392051&view=diff
==============================================================================
--- struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/xwork.xml (original)
+++ struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/java/xwork.xml Thu Apr  6 12:42:22 2006
@@ -21,7 +21,7 @@
 
         <action name="Register" class="Register">
             <result name="input">/pages/Register.jsp</result>
-            <result>/pages/Missing.jsp</result>
+            <result>/pages/Menu.jsp</result>
         </action>
 
     </package>

Added: struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/test/RegisterTest.java
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/test/RegisterTest.java?rev=392051&view=auto
==============================================================================
--- struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/test/RegisterTest.java (added)
+++ struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/test/RegisterTest.java Thu Apr  6 12:42:22 2006
@@ -0,0 +1,34 @@
+import com.opensymphony.xwork.Action;
+import org.apache.struts.apps.mailreader.dao.User;
+
+import java.util.HashMap;
+
+public class RegisterTest extends RetainTest {
+
+    Register action = null;
+
+    public void setUp() throws Exception {
+        super.setUp();
+        action = new Register();
+        action.setApplication(new HashMap());
+        action.setDatabase(database);
+    }
+
+    public void testExecute() throws Exception {
+
+        action.setUsername("user");
+        action.setPassword("pass");
+        action.setFullName("John Q. User");
+        action.setFromAddress("John.User@somewhere.com");
+
+        String success = action.execute();
+        assertTrue("Expected SUCCESS", Action.SUCCESS.equals(success));
+
+        User user = database.findUser("user");
+        assertNotNull("Expected user", user);
+
+        String input = action.execute();
+        assertTrue("Expected INPUT", Action.INPUT.equals(input));
+    }
+
+}

Propchange: struts/sandbox/trunk/mailreader-course/action2/lab-2-2/src/test/RegisterTest.java
------------------------------------------------------------------------------
    svn:eol-style = native



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


Mime
View raw message