Author: husted Date: Fri Apr 7 13:11:07 2006 New Revision: 392376 URL: http://svn.apache.org/viewcvs?rev=392376&view=rev Log: MailReader Course * Add lab 3-3
Added: struts/sandbox/trunk/mailreader-course/action2/lab-3-2/lab-3-2.iml struts/sandbox/trunk/mailreader-course/action2/lab-3-3/ - copied from r392338, struts/sandbox/trunk/mailreader-course/action2/lab-3-2/ struts/sandbox/trunk/mailreader-course/action2/lab-3-3/lab-3-3.iml struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/RegisterSave-validation.xml (with props) struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/RegisterSave.java (with props) struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/Subscribe-validation.xml (with props) struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/Subscribe.java (with props) struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/SubscribeSave-validation.xml (with props) struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/SubscribeSave.java (with props) struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/webapp/pages/Subscribe.jsp (with props) Removed: struts/sandbox/trunk/mailreader-course/action2/lab-3-2/lab-3-1.iml struts/sandbox/trunk/mailreader-course/action2/lab-3-3/lab-3-1.iml Modified: struts/sandbox/trunk/mailreader-course/action2/lab-3-2/src/java/Register-validation.xml struts/sandbox/trunk/mailreader-course/action2/lab-3-2/src/webapp/pages/Register.jsp struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/MailReaderSupport.java struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/Register-validation.xml struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/resources.properties struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/xwork.xml struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/webapp/pages/Register.jsp struts/sandbox/trunk/mailreader-course/action2/mailreader-course-action2.ipr Added: struts/sandbox/trunk/mailreader-course/action2/lab-3-2/lab-3-2.iml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-3-2/lab-3-2.iml?rev=392376&view=auto ============================================================================== --- struts/sandbox/trunk/mailreader-course/action2/lab-3-2/lab-3-2.iml (added) +++ struts/sandbox/trunk/mailreader-course/action2/lab-3-2/lab-3-2.iml Fri Apr 7 13:11:07 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-3-2/WEB-INF/classes" /> + <exclude-output /> + <exploded url="file://C:/opt/Apache/Tomcat-5.0/webapps/lab-3-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://$APPLICATION_HOME_DIR$/lib/junit.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/spring-core.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/spring-web.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/rife-continuations.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/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-beans.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/commons-digester-1.6.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/oscore.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://$MODULE_DIR$/../../lib/freemarker.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-3-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> + Modified: struts/sandbox/trunk/mailreader-course/action2/lab-3-2/src/java/Register-validation.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-3-2/src/java/Register-validation.xml?rev=392376&r1=392375&r2=392376&view=diff ============================================================================== --- struts/sandbox/trunk/mailreader-course/action2/lab-3-2/src/java/Register-validation.xml (original) +++ struts/sandbox/trunk/mailreader-course/action2/lab-3-2/src/java/Register-validation.xml Fri Apr 7 13:11:07 2006 @@ -8,13 +8,13 @@ </field-validator> </field> - <field name="user.fullName"> + <field name="fullName"> <field-validator type="requiredstring"> <message key="error.fullName.required"/> </field-validator> </field> - <field name="user.fromAddress"> + <field name="fromAddress"> <field-validator type="requiredstring"> <message key="error.fromAddress.required"/> </field-validator> @@ -23,7 +23,7 @@ </field-validator> </field> - <field name="user.replyToAddress"> + <field name="replyToAddress"> <field-validator type="email"> <message key="errors.email"/> </field-validator> Modified: struts/sandbox/trunk/mailreader-course/action2/lab-3-2/src/webapp/pages/Register.jsp URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-3-2/src/webapp/pages/Register.jsp?rev=392376&r1=392375&r2=392376&view=diff ============================================================================== --- struts/sandbox/trunk/mailreader-course/action2/lab-3-2/src/webapp/pages/Register.jsp (original) +++ struts/sandbox/trunk/mailreader-course/action2/lab-3-2/src/webapp/pages/Register.jsp Fri Apr 7 13:11:07 2006 @@ -30,13 +30,13 @@ <ww:password label="%{getText('password2')}" name="password2"/> <ww:textfield label="%{getText('fullName')}" - name="user.fullName"/> + name="fullName"/> <ww:textfield label="%{getText('fromAddress')}" - name="user.fromAddress"/> + name="fromAddress"/> <ww:textfield label="%{getText('replyToAddress')}" - name="user.replyToAddress"/> + name="replyToAddress"/> <ww:if test="task == 'Create'"> <ww:submit value="%{getText('button.save')}" action="RegisterSave"/> Added: struts/sandbox/trunk/mailreader-course/action2/lab-3-3/lab-3-3.iml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-3-3/lab-3-3.iml?rev=392376&view=auto ============================================================================== --- struts/sandbox/trunk/mailreader-course/action2/lab-3-3/lab-3-3.iml (added) +++ struts/sandbox/trunk/mailreader-course/action2/lab-3-3/lab-3-3.iml Fri Apr 7 13:11:07 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-3-3/WEB-INF/classes" /> + <exclude-output /> + <exploded url="file://C:/opt/Apache/Tomcat-5.0/webapps/lab-3-3" /> + <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://$APPLICATION_HOME_DIR$/lib/junit.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/oscore.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/commons-collections-3.1.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/struts-taglib-1.3.0.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/spring-core.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/commons-logging-1.0.4.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-web.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/rife-continuations.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> + <orderEntryProperties /> + </component> + <component name="WebModuleBuildComponent"> + <setting name="EXPLODED_URL" value="file://C:/opt/Apache/Tomcat-5.0/webapps/lab-3-3" /> + <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> + Modified: struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/MailReaderSupport.java URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/MailReaderSupport.java?rev=392376&r1=392338&r2=392376&view=diff ============================================================================== --- struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/MailReaderSupport.java (original) +++ struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/MailReaderSupport.java Fri Apr 7 13:11:07 2006 @@ -5,6 +5,8 @@ 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 org.apache.struts.apps.mailreader.dao.Subscription; +import org.apache.struts.apps.mailreader.dao.impl.memory.MemorySubscription; import java.util.Map; @@ -73,6 +75,18 @@ replyToAddress = value; } + // ---- Subscription form properties ---- + + private String host; + + public String getHost() { + return host; + } + + public void setHost(String value) { + host = value; + } + // ---- Task property (utilized by UI) ---- private String task = null; @@ -89,8 +103,12 @@ public static final String DATABASE_KEY = "database"; + public static final String SUBSCRIPTION_KEY = "subscription"; + public static final String USER_KEY = "user"; + public static final String HOST = "host"; + public static final String PASSWORD_MISMATCH_FIELD = "password"; public static final String CANCEL = "cancel"; @@ -99,6 +117,8 @@ public static final String EDIT = "Edit"; + public static final String DELETE = "Delete"; + // ---- Message Keys ---- public static final String ERROR_DATABASE_MISSING = @@ -113,6 +133,9 @@ public static final String ERROR_PASSWORD_MATCH = "error.password.match"; + public static final String ERROR_HOST_UNIQUE + = "That hostname is already defined"; + // ---- ApplicationAware ---- private Map application; @@ -164,6 +187,25 @@ return session; } + // ---- Subscription property ---- + + public Subscription getSubscription() { + return (Subscription) getSession().get(SUBSCRIPTION_KEY); + } + + public void setSubscription(Subscription subscription) { + getSession().put(SUBSCRIPTION_KEY, subscription); + } + + + public String getSubscriptionHost() { + Subscription sub = getSubscription(); + if (null == sub) { + return null; + } + return sub.getHost(); + } + // ---- User property ---- /** @@ -223,6 +265,57 @@ public void saveUser() throws Exception { getDatabase().save(); } + + /** + * <p>Provide a "temporary" User Subscription object + * that can be used tocapture input values.</p> + */ + public void createInputSubscription() { + Subscription sub = new MemorySubscription(getUser(), null); + setSubscription(sub); + setHost(sub.getHost()); + } + + public Subscription findSubscription(String host) { + Subscription subscription; + subscription = getUser().findSubscription(host); + return subscription; + } + + public Subscription findSubscription() { + return findSubscription(getHost()); + } + + public void removeSubscription() { + getUser().removeSubscription(getSubscription()); + getSession().remove(SUBSCRIPTION_KEY); + } + + public void copySubscription(String host) { + Subscription input = getSubscription(); + Subscription sub = createSubscription(host); + if (null != sub) { + BeanUtils.setValues(sub, input, null); + setSubscription(sub); + setHost(sub.getHost()); + } + } + + public Subscription createSubscription(String host) { + + Subscription sub; + + sub = findSubscription(host); + + if (null != sub) { + // FIXME - localization - "error.host.unique") + addFieldError(HOST,ERROR_HOST_UNIQUE); + return null; + } + + return getUser().createSubscription(host); + } + // ---- Alias ---- Modified: struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/Register-validation.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/Register-validation.xml?rev=392376&r1=392338&r2=392376&view=diff ============================================================================== --- struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/Register-validation.xml (original) +++ struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/Register-validation.xml Fri Apr 7 13:11:07 2006 @@ -8,13 +8,13 @@ </field-validator> </field> - <field name="user.fullName"> + <field name="fullName"> <field-validator type="requiredstring"> <message key="error.fullName.required"/> </field-validator> </field> - <field name="user.fromAddress"> + <field name="fromAddress"> <field-validator type="requiredstring"> <message key="error.fromAddress.required"/> </field-validator> @@ -23,7 +23,7 @@ </field-validator> </field> - <field name="user.replyToAddress"> + <field name="replyToAddress"> <field-validator type="email"> <message key="errors.email"/> </field-validator> Added: struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/RegisterSave-validation.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/RegisterSave-validation.xml?rev=392376&view=auto ============================================================================== --- struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/RegisterSave-validation.xml (added) +++ struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/RegisterSave-validation.xml Fri Apr 7 13:11:07 2006 @@ -0,0 +1,28 @@ +<!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="password"> + <field-validator type="requiredstring"> + <message key="error.password.required"/> + </field-validator> + <field-validator type="stringlength"> + <param name="trim">true</param> + <param name="minLength">4</param> + <param name="maxLength">10</param> + <message key="errors.range"/> + </field-validator> + </field> + + <field name="password2"> + <field-validator type="requiredstring"> + <message key="error.password2.required"/> + </field-validator> + </field> + + <validator type="expression"> + <param name="expression">password eq password2</param> + <message key="error.password.match"/> + </validator> + +</validators> Propchange: struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/RegisterSave-validation.xml ------------------------------------------------------------------------------ svn:eol-style = native Added: struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/RegisterSave.java URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/RegisterSave.java?rev=392376&view=auto ============================================================================== --- struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/RegisterSave.java (added) +++ struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/RegisterSave.java Fri Apr 7 13:11:07 2006 @@ -0,0 +1,5 @@ +/** + * <p>Stub class to allow extra validation on initial Save.</p> + */ +public class RegisterSave extends Register { +} Propchange: struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/RegisterSave.java ------------------------------------------------------------------------------ svn:eol-style = native Added: struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/Subscribe-validation.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/Subscribe-validation.xml?rev=392376&view=auto ============================================================================== --- struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/Subscribe-validation.xml (added) +++ struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/Subscribe-validation.xml Fri Apr 7 13:11:07 2006 @@ -0,0 +1,11 @@ +<!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="host"> + <field-validator type="requiredstring"> + <message key="error.host.required"/> + </field-validator> + </field> + +</validators> Propchange: struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/Subscribe-validation.xml ------------------------------------------------------------------------------ svn:eol-style = native Added: struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/Subscribe.java URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/Subscribe.java?rev=392376&view=auto ============================================================================== --- struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/Subscribe.java (added) +++ struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/Subscribe.java Fri Apr 7 13:11:07 2006 @@ -0,0 +1,74 @@ +import com.opensymphony.xwork.Preparable; + +import java.util.LinkedHashMap; +import java.util.Map; + +public class Subscribe extends MailReaderSupport + implements Preparable { + + private Map types = null; + + public Map getTypes() { + return types; + } + + public void prepare() { + + Map m = new LinkedHashMap(); + m.put("imap", "IMAP Protocol"); + m.put("pop3", "POP3 Protocol"); + types = m; + + setHost(getSubscriptionHost()); + } + + public String input() { + createInputSubscription(); + setTask(CREATE); + return INPUT; + } + + public String find() { + + org.apache.struts.apps.mailreader.dao.Subscription + sub = findSubscription(); + + if (sub == null) { + return ERROR; + } + + setSubscription(sub); + + return INPUT; + + } + + public String delete() { + + setTask(DELETE); + return find(); + } + + public String edit() { + + setTask(EDIT); + return find(); + } + + public String save() throws Exception { + + if (DELETE.equals(getTask())) { + removeSubscription(); + } + + if (CREATE.equals(getTask())) { + copySubscription(getHost()); + } + + if (hasErrors()) return INPUT; + + saveUser(); + return SUCCESS; + } + +} Propchange: struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/Subscribe.java ------------------------------------------------------------------------------ svn:eol-style = native Added: struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/SubscribeSave-validation.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/SubscribeSave-validation.xml?rev=392376&view=auto ============================================================================== --- struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/SubscribeSave-validation.xml (added) +++ struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/SubscribeSave-validation.xml Fri Apr 7 13:11:07 2006 @@ -0,0 +1,23 @@ +<!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="subscription.username"> + <field-validator type="requiredstring"> + <message key="error.username.required"/> + </field-validator> + </field> + + <field name="subscription.password"> + <field-validator type="requiredstring"> + <message key="error.password.required"/> + </field-validator> + </field> + + <field name="subscription.type"> + <field-validator type="requiredstring"> + <message key="error.type.invalid"/> + </field-validator> + </field> + +</validators> Propchange: struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/SubscribeSave-validation.xml ------------------------------------------------------------------------------ svn:eol-style = native Added: struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/SubscribeSave.java URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/SubscribeSave.java?rev=392376&view=auto ============================================================================== --- struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/SubscribeSave.java (added) +++ struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/SubscribeSave.java Fri Apr 7 13:11:07 2006 @@ -0,0 +1,12 @@ +public final class SubscribeSave extends Subscribe { + + public void prepare() { + super.prepare(); + // checkbox workaround + getSubscription().setAutoConnect(false); + } + + public String execute() throws Exception { + return save(); + } +} Propchange: struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/SubscribeSave.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/resources.properties URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/resources.properties?rev=392376&r1=392338&r2=392376&view=diff ============================================================================== --- struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/resources.properties (original) +++ struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/resources.properties Fri Apr 7 13:11:07 2006 @@ -16,6 +16,8 @@ button.cancel=Cancel button.save=Save +button.reset=Reset +button.confirm=Confirm menu.title=MailReader - Main Menu menu.heading=Menu Options for @@ -42,11 +44,9 @@ error.type.required=Server Type is required # Future use -button.confirm=Confirm button.doSubmit=DO_SUBMIT button.doReset=DO_RESULT button.doCancel=org.apache.struts.taglib.html.CANCEL -button.reset=Reset change.message=Your password has expired. Please ask the system administrator to change it. change.try=Try Again change.title=Password Has Expired Modified: struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/xwork.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/xwork.xml?rev=392376&r1=392338&r2=392376&view=diff ============================================================================== --- struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/xwork.xml (original) +++ struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/java/xwork.xml Fri Apr 7 13:11:07 2006 @@ -44,5 +44,15 @@ <result type="redirect-action">Menu</result> </action> + <action name="Subscribe" class="Subscribe"> + <result name="input">/pages/Subscribe.jsp</result> + <result type="redirect-action">Register!input</result> + </action> + + <action name="SubscribeSave" class="SubscribeSave"> + <result name="input">/pages/Subscribe.jsp</result> + <result type="redirect-action">Register!input</result> + </action> + </package> </xwork> Modified: struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/webapp/pages/Register.jsp URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/webapp/pages/Register.jsp?rev=392376&r1=392338&r2=392376&view=diff ============================================================================== --- struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/webapp/pages/Register.jsp (original) +++ struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/webapp/pages/Register.jsp Fri Apr 7 13:11:07 2006 @@ -30,13 +30,13 @@ <ww:password label="%{getText('password2')}" name="password2"/> <ww:textfield label="%{getText('fullName')}" - name="user.fullName"/> + name="fullName"/> <ww:textfield label="%{getText('fromAddress')}" - name="user.fromAddress"/> + name="fromAddress"/> <ww:textfield label="%{getText('replyToAddress')}" - name="user.replyToAddress"/> + name="replyToAddress"/> <ww:if test="task == 'Create'"> <ww:submit value="%{getText('button.save')}" action="RegisterSave"/> @@ -56,6 +56,66 @@ </ww:else> </ww:form> + +<ww:if test="task == 'Edit'"> + <div align="center"> + <h3><ww:text name="heading.subscriptions"/></h3> + </div> + + <table border="1" width="100%"> + + <tr> + <th align="center" width="30%"> + <ww:text name="heading.host"/> + </th> + <th align="center" width="25%"> + <ww:text name="heading.user"/> + </th> + <th align="center" width="10%"> + <ww:text name="heading.type"/> + </th> + <th align="center" width="10%"> + <ww:text name="heading.autoConnect"/> + </th> + <th align="center" width="15%"> + <ww:text name="heading.action"/> + </th> + </tr> + + <ww:iterator value="user.subscriptions"> + <tr> + <td align="left"> + <ww:property value="host"/> + </td> + <td align="left"> + <ww:property value="username"/> + </td> + <td align="center"> + <ww:property value="type"/> + </td> + <td align="center"> + <ww:property value="autoConnect"/> + </td> + <td align="center"> + + <a href="<ww:url action="Subscribe!delete"><ww:param name="host" value="host"/></ww:url>"> + <ww:text name="registration.deleteSubscription"/> + </a> + + <a href="<ww:url action="Subscribe!edit"><ww:param name="host" value="host"/></ww:url>"> + <ww:text name="registration.editSubscription"/> + </a> + + </td> + </tr> + </ww:iterator> + + </table> + + <a href="<ww:url action="Subscribe!input"/>"><ww:text + name="registration.addSubscription"/></a> + +</ww:if> </body> </html> Added: struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/webapp/pages/Subscribe.jsp URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/webapp/pages/Subscribe.jsp?rev=392376&view=auto ============================================================================== --- struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/webapp/pages/Subscribe.jsp (added) +++ struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/webapp/pages/Subscribe.jsp Fri Apr 7 13:11:07 2006 @@ -0,0 +1,63 @@ +<%@ page contentType="text/html; charset=UTF-8" %> +<%@ taglib uri="/webwork" prefix="ww" %> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + <ww:if test="task=='Create'"> + <title><ww:text name="subscription.title.create"/></title> + </ww:if> + <ww:if test="task=='Edit'"> + <title><ww:text name="subscription.title.edit"/></title> + </ww:if> + <ww:if test="task=='Delete'"> + <title><ww:text name="subscription.title.delete"/></title> + </ww:if> +</head> + +<body onLoad="self.focus();document.Subscribe.username.focus()"> + +<ww:actionerror/> +<ww:form method="POST" action="SubscribeSave" validate="true"> + <ww:hidden name="task"/> + <ww:label label="%{getText('username')}" name="user.username"/> + + <ww:if test="task == 'Create'"> + <ww:textfield label="%{getText('mailHostname')}" name="host"/> + </ww:if> + <ww:else> + <ww:label label="%{getText('mailHostname')}" name="host"/> + <ww:hidden name="host"/> + </ww:else> + + <ww:if test="task == 'Delete'"> + <ww:label label="%{getText('mailUsername')}" + name="subscription.username"/> + <ww:label label="%{getText('mailPassword')}" + name="subscription.password"/> + <ww:label label="%{getText('mailServerType')}" + name="subscription.type"/> + <ww:label label="%{getText('autoConnect')}" + name="subscription.autoConnect"/> + <ww:submit value="%{getText('button.confirm')}"/> + </ww:if> + <ww:else> + <ww:textfield label="%{getText('mailUsername')}" + name="subscription.username"/> + <ww:textfield label="%{getText('mailPassword')}" + name="subscription.password"/> + <ww:select label="%{getText('mailServerType')}" + name="subscription.type" list="types"/> + <ww:checkbox label="%{getText('autoConnect')}" + name="subscription.autoConnect"/> + <ww:submit value="%{getText('button.save')}"/> + <ww:reset value="%{getText('button.reset')}"/> + </ww:else> + + <ww:submit action="Register!input" + value="%{getText('button.cancel')}" + onclick="form.onsubmit=null"/> +</ww:form> + +</body> +</html> Propchange: struts/sandbox/trunk/mailreader-course/action2/lab-3-3/src/webapp/pages/Subscribe.jsp ------------------------------------------------------------------------------ svn:eol-style = native Modified: struts/sandbox/trunk/mailreader-course/action2/mailreader-course-action2.ipr URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/mailreader-course/action2/mailreader-course-action2.ipr?rev=392376&r1=392375&r2=392376&view=diff ============================================================================== --- struts/sandbox/trunk/mailreader-course/action2/mailreader-course-action2.ipr (original) +++ struts/sandbox/trunk/mailreader-course/action2/mailreader-course-action2.ipr Fri Apr 7 13:11:07 2006 @@ -201,6 +201,7 @@ <module fileurl="file://$PROJECT_DIR$/lab-2-3/lab-2-3.iml" filepath="$PROJECT_DIR$/lab-2-3/lab-2-3.iml" /> <module fileurl="file://$PROJECT_DIR$/lab-3-1/lab-3-1.iml" filepath="$PROJECT_DIR$/lab-3-1/lab-3-1.iml" /> <module fileurl="file://$PROJECT_DIR$/lab-3-2/lab-3-2.iml" filepath="$PROJECT_DIR$/lab-3-2/lab-3-2.iml" /> + <module fileurl="file://$PROJECT_DIR$/lab-3-3/lab-3-3.iml" filepath="$PROJECT_DIR$/lab-3-3/lab-3-3.iml" /> <module fileurl="file://$PROJECT_DIR$/mailreader-course-action2.iml" filepath="$PROJECT_DIR$/mailreader-course-action2.iml" /> </modules> </component> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]