Author: husted
Date: Sun Jul 30 12:02:23 2006
New Revision: 426917
URL: http://svn.apache.org/viewvc?rev=426917&view=rev
Log:
WW-1399 Add initial support for HSQLDB and iBATIS
Added:
struts/struts2/trunk/apps/mailreader/src/main/java/mailreader2/AppData.java
struts/struts2/trunk/apps/mailreader/src/main/resources/sql/
struts/struts2/trunk/apps/mailreader/src/main/resources/sql-map-config.xml
struts/struts2/trunk/apps/mailreader/src/main/resources/sql/mailreader-schema.sql
struts/struts2/trunk/apps/mailreader/src/main/resources/sql/sql-map-config-derby.properties
struts/struts2/trunk/apps/mailreader/src/main/resources/sql/sql-map-config-hsql.properties
struts/struts2/trunk/apps/mailreader/src/main/resources/sql/sql-map.xml
struts/struts2/trunk/apps/mailreader/src/test/java/
struts/struts2/trunk/apps/mailreader/src/test/java/mailreader2/
struts/struts2/trunk/apps/mailreader/src/test/java/mailreader2/BaseSqlMapTest.java
struts/struts2/trunk/apps/mailreader/src/test/java/mailreader2/MailreaderTest.java
struts/struts2/trunk/apps/mailreader/src/test/resources/
struts/struts2/trunk/apps/mailreader/src/test/resources/sql/
struts/struts2/trunk/apps/mailreader/src/test/resources/sql/mailreader-sample.sql
Modified:
struts/struts2/trunk/apps/mailreader/pom.xml
Modified: struts/struts2/trunk/apps/mailreader/pom.xml
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/apps/mailreader/pom.xml?rev=426917&r1=426916&r2=426917&view=diff
==============================================================================
--- struts/struts2/trunk/apps/mailreader/pom.xml (original)
+++ struts/struts2/trunk/apps/mailreader/pom.xml Sun Jul 30 12:02:23 2006
@@ -19,12 +19,23 @@
<version>2.4</version>
<scope>provided</scope>
</dependency>
+
+ <dependency>
+ <groupId>hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <version>1.8.0.4</version>
+ </dependency>
+ <dependency>
+ <groupId>com.ibatis</groupId>
+ <artifactId>ibatis2-sqlmap</artifactId>
+ <version>2.1.7.597</version>
+ </dependency>
+
<dependency>
<groupId>${pom.groupId}</groupId>
<artifactId>struts-mailreader-dao</artifactId>
- <version>1.3.5-SNAPSHOT</version>
+ <version>1.3.5</version>
</dependency>
-
</dependencies>
<build>
Added:
struts/struts2/trunk/apps/mailreader/src/main/java/mailreader2/AppData.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/apps/mailreader/src/main/java/mailreader2/AppData.java?rev=426917&view=auto
==============================================================================
--- struts/struts2/trunk/apps/mailreader/src/main/java/mailreader2/AppData.java
(added)
+++ struts/struts2/trunk/apps/mailreader/src/main/java/mailreader2/AppData.java
Sun Jul 30 12:02:23 2006
@@ -0,0 +1,202 @@
+package mailreader2;
+
+/**
+ * <p/>
+ * Provide properties to transfer data values between
+ * the view and model layers (data transfer object).
+ * </p>
+ *
+ * @author Ted Husted
+ * @version $Revision: 1.0 $ $Date: Jul 30, 2006 9:29:50 AM $
+ */
+public class AppData {
+
+ private boolean nominal;
+
+ private String locale_key;
+ private String locale_code;
+ private String locale_name;
+
+ private String account_key;
+ private String username;
+ private String password;
+ private String password2;
+ private String fullname;
+ private String email_from;
+ private String email_replyto;
+
+ private String protocol_key;
+ private String protocol_code;
+ private String protocol_name;
+
+ private String host_key;
+ private String host_name;
+ private String host_user;
+ private String host_pass;
+ private Integer host_auto;
+
+ public boolean isNominal() {
+ return nominal;
+ }
+
+ public void setNominal(boolean nominal) {
+ this.nominal = nominal;
+ }
+
+ public String getLocale_key() {
+ return locale_key;
+ }
+
+ public void setLocale_key(String locale_key) {
+ this.locale_key = locale_key;
+ }
+
+ public String getLocale_code() {
+ return locale_code;
+ }
+
+ public void setLocale_code(String locale_code) {
+ this.locale_code = locale_code;
+ }
+
+ public String getLocale_name() {
+ return locale_name;
+ }
+
+ public void setLocale_name(String locale_name) {
+ this.locale_name = locale_name;
+ }
+
+ public String getAccount_key() {
+ return account_key;
+ }
+
+ public void setAccount_key(String account_key) {
+ this.account_key = account_key;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getPassword2() {
+ return password2;
+ }
+
+ public void setPassword2(String password2) {
+ this.password2 = password2;
+ }
+
+ public String getFullname() {
+ return fullname;
+ }
+
+ public void setFullname(String fullname) {
+ this.fullname = fullname;
+ }
+
+ public String getEmail_from() {
+ return email_from;
+ }
+
+ public void setEmail_from(String email_from) {
+ this.email_from = email_from;
+ }
+
+ public String getEmail_replyto() {
+ return email_replyto;
+ }
+
+ public void setEmail_replyto(String email_replyto) {
+ this.email_replyto = email_replyto;
+ }
+
+ public String getProtocol_key() {
+ return protocol_key;
+ }
+
+ public void setProtocol_key(String protocol_key) {
+ this.protocol_key = protocol_key;
+ }
+
+ public String getProtocol_code() {
+ return protocol_code;
+ }
+
+ public void setProtocol_code(String protocol_code) {
+ this.protocol_code = protocol_code;
+ }
+
+ public String getHost_key() {
+ return host_key;
+ }
+
+ public void setHost_key(String host_key) {
+ this.host_key = host_key;
+ }
+
+ public String getHost_name() {
+ return host_name;
+ }
+
+ public void setHost_name(String host_name) {
+ this.host_name = host_name;
+ }
+
+ public String getHost_user() {
+ return host_user;
+ }
+
+ public void setHost_user(String host_user) {
+ this.host_user = host_user;
+ }
+
+ public String getHost_pass() {
+ return host_pass;
+ }
+
+ public void setHost_pass(String host_pass) {
+ this.host_pass = host_pass;
+ }
+
+ public String getProtocol_name() {
+ return protocol_name;
+ }
+
+ public void setProtocol_name(String protocol_name) {
+ this.protocol_name = protocol_name;
+ }
+
+ public Integer getHost_auto() {
+ return host_auto;
+ }
+
+ public void setHost_auto(Integer host_auto) {
+ this.host_auto = host_auto;
+ }
+
+ public boolean isHost_auto_checkbox() {
+ Integer _host_auto = getHost_auto();
+ if (_host_auto == null) _host_auto = 0;
+ return (_host_auto == 0);
+ }
+
+ public void setHost_auto_checkbox(boolean host_auto_checkbox) {
+ if (host_auto_checkbox)
+ setHost_auto(1);
+ else setHost_auto(0);
+ }
+
+}
Added:
struts/struts2/trunk/apps/mailreader/src/main/resources/sql-map-config.xml
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/apps/mailreader/src/main/resources/sql-map-config.xml?rev=426917&view=auto
==============================================================================
--- struts/struts2/trunk/apps/mailreader/src/main/resources/sql-map-config.xml
(added)
+++ struts/struts2/trunk/apps/mailreader/src/main/resources/sql-map-config.xml
Sun Jul 30 12:02:23 2006
@@ -0,0 +1,25 @@
+<!DOCTYPE sqlMapConfig PUBLIC
+ "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
+ "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
+
+<sqlMapConfig>
+
+ <properties resource="sql/sql-map-config-hsql.properties"/>
+
+ <settings cacheModelsEnabled="true" enhancementEnabled="false"
+ maxSessions="64" maxTransactions="8" maxRequests="128"/>
+
+ <transactionManager type="JDBC">
+ <dataSource type="SIMPLE">
+ <property value="${driver}" name="JDBC.Driver"/>
+ <property value="${url}" name="JDBC.ConnectionURL"/>
+ <property value="${username}" name="JDBC.Username"/>
+ <property value="${password}" name="JDBC.Password"/>
+ <property value="15" name="Pool.MaximumActiveConnections"/>
+ <property value="15" name="Pool.MaximumIdleConnections"/>
+ <property value="1000" name="Pool.MaximumWait"/>
+ </dataSource>
+ </transactionManager>
+
+ <sqlMap resource="sql/sql-map.xml"/>
+</sqlMapConfig>
\ No newline at end of file
Added:
struts/struts2/trunk/apps/mailreader/src/main/resources/sql/mailreader-schema.sql
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/apps/mailreader/src/main/resources/sql/mailreader-schema.sql?rev=426917&view=auto
==============================================================================
---
struts/struts2/trunk/apps/mailreader/src/main/resources/sql/mailreader-schema.sql
(added)
+++
struts/struts2/trunk/apps/mailreader/src/main/resources/sql/mailreader-schema.sql
Sun Jul 30 12:02:23 2006
@@ -0,0 +1,35 @@
+CREATE TABLE locale
+(
+ pk_locale char(36),
+ locale_code char(9),
+ locale_name char(36)
+);
+
+CREATE TABLE registration
+(
+ pk_registration char(36),
+ fk_locale char(36),
+ username char(18),
+ password char(18),
+ fullname varchar(36),
+ email_from varchar(72),
+ email_replyto varchar(72)
+);
+
+CREATE TABLE protocol
+(
+ pk_protocol char(36),
+ protocol_code char(9),
+ protocol_name char(36)
+);
+
+CREATE TABLE subscription
+(
+ pk_subscription char(36),
+ fk_registration char(36),
+ fk_protocol char(36),
+ subscription_host char(36),
+ subscription_user char(18),
+ subscription_pass char(18),
+ subscription_auto int
+);
Added:
struts/struts2/trunk/apps/mailreader/src/main/resources/sql/sql-map-config-derby.properties
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/apps/mailreader/src/main/resources/sql/sql-map-config-derby.properties?rev=426917&view=auto
==============================================================================
---
struts/struts2/trunk/apps/mailreader/src/main/resources/sql/sql-map-config-derby.properties
(added)
+++
struts/struts2/trunk/apps/mailreader/src/main/resources/sql/sql-map-config-derby.properties
Sun Jul 30 12:02:23 2006
@@ -0,0 +1,12 @@
+##############################################################
+# Database Connectivity Properties
+# (derby - http://db.apache.org/derby/)
+##############################################################
+
+driver=org.apache.derby.jdbc.EmbeddedDriver
+url=jdbc:derby:mailreader;create=true
+username=
+password=
+SqlMapPath=mailreader2
+dataSourceType=SIMPLE
+
Added:
struts/struts2/trunk/apps/mailreader/src/main/resources/sql/sql-map-config-hsql.properties
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/apps/mailreader/src/main/resources/sql/sql-map-config-hsql.properties?rev=426917&view=auto
==============================================================================
---
struts/struts2/trunk/apps/mailreader/src/main/resources/sql/sql-map-config-hsql.properties
(added)
+++
struts/struts2/trunk/apps/mailreader/src/main/resources/sql/sql-map-config-hsql.properties
Sun Jul 30 12:02:23 2006
@@ -0,0 +1,9 @@
+##############################################################
+# Database Connectivity Properties
+# (HSQL - http://hsql.org/)
+##############################################################
+
+driver=org.hsqldb.jdbcDriver
+url=jdbc:hsqldb:mem:mailreader
+username=sa
+password=
Added: struts/struts2/trunk/apps/mailreader/src/main/resources/sql/sql-map.xml
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/apps/mailreader/src/main/resources/sql/sql-map.xml?rev=426917&view=auto
==============================================================================
--- struts/struts2/trunk/apps/mailreader/src/main/resources/sql/sql-map.xml
(added)
+++ struts/struts2/trunk/apps/mailreader/src/main/resources/sql/sql-map.xml Sun
Jul 30 12:02:23 2006
@@ -0,0 +1,26 @@
+<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
+ "http://ibatis.apache.org/dtd/sql-map-2.dtd">
+
+<sqlMap namespace="mailreader">
+
+ <typeAlias alias="data"
+ type="mailreader2.AppData"/>
+
+ <update id="registration_update" parameterClass="data">
+ </update>
+
+ <select id="subscription_list" parameterClass="data">
+ </select>
+
+ <insert id="registration_insert" parameterClass="data">
+ </insert>
+
+ <select id="registration_fullname" parameterClass="data" resultClass="data">
+ SELECT username, fullname FROM registration WHERE username=#username#;
+ </select>
+
+ <select id="locale_list" parameterClass="data" resultClass="data">
+ SELECT locale_code, locale_name FROM locale;
+ </select>
+
+</sqlMap>
Added:
struts/struts2/trunk/apps/mailreader/src/test/java/mailreader2/BaseSqlMapTest.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/apps/mailreader/src/test/java/mailreader2/BaseSqlMapTest.java?rev=426917&view=auto
==============================================================================
---
struts/struts2/trunk/apps/mailreader/src/test/java/mailreader2/BaseSqlMapTest.java
(added)
+++
struts/struts2/trunk/apps/mailreader/src/test/java/mailreader2/BaseSqlMapTest.java
Sun Jul 30 12:02:23 2006
@@ -0,0 +1,60 @@
+package mailreader2;
+
+import com.ibatis.common.jdbc.ScriptRunner;
+import com.ibatis.common.resources.Resources;
+import com.ibatis.sqlmap.client.SqlMapClient;
+import com.ibatis.sqlmap.client.SqlMapClientBuilder;
+import junit.framework.TestCase;
+
+import javax.sql.DataSource;
+import java.io.Reader;
+import java.sql.Connection;
+import java.util.Properties;
+
+/**
+ * @author Ted Husted
+ * @version $Revision: 1.0 $ $Date: Jul 29, 2006 4:59:19 PM $
+ */
+public class BaseSqlMapTest extends TestCase {
+
+ protected static SqlMapClient sqlMap;
+
+ protected static void initSqlMap(String configFile, Properties props)
throws Exception {
+ Reader reader = Resources.getResourceAsReader(configFile);
+ sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader, props);
+ reader.close();
+ }
+
+ protected static void initScript(String script) throws Exception {
+ DataSource ds = sqlMap.getDataSource();
+
+ Connection conn = ds.getConnection();
+
+ Reader reader = Resources.getResourceAsReader(script);
+
+ ScriptRunner runner = new ScriptRunner(conn, false, false);
+ runner.setLogWriter(null);
+ runner.setErrorLogWriter(null);
+
+ runner.runScript(reader);
+ conn.commit();
+ conn.close();
+ reader.close();
+ }
+
+
+ protected void setUp() throws Exception {
+ if (sqlMap==null) {
+ initSqlMap("sql-map-config.xml", null);
+ initScript("sql/mailreader-schema.sql");
+ initScript("sql/mailreader-sample.sql");
+ }
+ }
+
+ protected void tearDown() throws Exception {
+ }
+
+ public void testInit() throws Exception {
+ assertNotNull(sqlMap);
+ }
+}
Added:
struts/struts2/trunk/apps/mailreader/src/test/java/mailreader2/MailreaderTest.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/apps/mailreader/src/test/java/mailreader2/MailreaderTest.java?rev=426917&view=auto
==============================================================================
---
struts/struts2/trunk/apps/mailreader/src/test/java/mailreader2/MailreaderTest.java
(added)
+++
struts/struts2/trunk/apps/mailreader/src/test/java/mailreader2/MailreaderTest.java
Sun Jul 30 12:02:23 2006
@@ -0,0 +1,22 @@
+package mailreader2;
+
+/**
+ * @author Ted Husted
+ * @version $Revision: 1.0 $ $Date: Jul 29, 2006 5:34:31 PM $
+ */
+public class MailreaderTest extends BaseSqlMapTest {
+
+ // SETUP & TEARDOWN
+
+ public void testUser_locale() throws Exception {
+ AppData output = (AppData) sqlMap.queryForObject("locale_list",null);
+ assertNotNull(output);
+ }
+
+ public void testUser_fullname() throws Exception {
+ AppData input = new AppData();
+ input.setUsername("user");
+ AppData output = (AppData)
sqlMap.queryForObject("registration_fullname", input);
+ assertEquals("John Q. User", output.getFullname());
+ }
+}
Added:
struts/struts2/trunk/apps/mailreader/src/test/resources/sql/mailreader-sample.sql
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/apps/mailreader/src/test/resources/sql/mailreader-sample.sql?rev=426917&view=auto
==============================================================================
---
struts/struts2/trunk/apps/mailreader/src/test/resources/sql/mailreader-sample.sql
(added)
+++
struts/struts2/trunk/apps/mailreader/src/test/resources/sql/mailreader-sample.sql
Sun Jul 30 12:02:23 2006
@@ -0,0 +1,8 @@
+INSERT INTO locale (pk_locale, locale_code, locale_name) VALUES
('01-en','en','English'), ('02-ru','ru','Russian'), ('03-ja','ja','Japanese');
+
+INSERT INTO protocol (pk_protocol, protocol_code, protocol_name) VALUES
('01-pop3','pop3','POP3 Protoocol'), ('02-smtp','smtp','SMTP Protocol');
+
+INSERT INTO registration (pk_registration, fk_locale, username, password,
fullname, email_from, email_replyto) VALUES
('01-user','01-en','user','pass','John Q. User','[EMAIL PROTECTED]','');
+
+INSERT INTO subscription (pk_subscription, fk_registration, fk_protocol,
subscription_host, subscription_user, subscription_pass, subscription_auto)
VALUES
+('01-subscription','01-user','01-pop3','mail.hotmail.com','user1234','bar',0),
('02-subscription','01-user','02-smtp','mail.yahoo.com','jquser','foo',1);