From 6e882b78b5a083659b0e5dd50c0482f8839213b7 Mon Sep 17 00:00:00 2001 From: "yihua.huang" Date: Sat, 15 Mar 2014 20:19:39 +0800 Subject: [PATCH] add DynamicClassDao and UT --- webmagic-avalon/pom.xml | 182 ++++++++++-------- webmagic-avalon/sql/create-tables.sql | 9 + webmagic-avalon/webmagic-admin/pom.xml | 74 +------ .../webmagic-avalon-common/pom.xml | 128 ++++++++++++ .../webmagic/dao/DynamicClassDao.java | 13 ++ .../webmagic/model/DynamicClass.java | 49 +++++ .../src/main/resources/freemarker.properties | 7 + .../src/main/resources/log/log4j.xml | 21 ++ .../spring/applicationContext-freemarker.xml | 34 ++++ .../spring/applicationContext-myBatis.xml | 23 +++ .../resources/spring/applicationContext.xml | 44 +++++ .../us/codecraft/dao/DynamicClassDaoTest.java | 33 ++++ .../spring/applicationContext-freemarker.xml | 34 ++++ .../spring/applicationContext-myBatis.xml | 23 +++ .../spring/applicationContext-tx.xml | 18 ++ .../resources/spring/applicationContext.xml | 44 +++++ webmagic-avalon/webmagic-worker/pom.xml | 74 +------ 17 files changed, 585 insertions(+), 225 deletions(-) create mode 100644 webmagic-avalon/sql/create-tables.sql create mode 100644 webmagic-avalon/webmagic-avalon-common/pom.xml create mode 100644 webmagic-avalon/webmagic-avalon-common/src/main/java/us/codecraft/webmagic/dao/DynamicClassDao.java create mode 100644 webmagic-avalon/webmagic-avalon-common/src/main/java/us/codecraft/webmagic/model/DynamicClass.java create mode 100644 webmagic-avalon/webmagic-avalon-common/src/main/resources/freemarker.properties create mode 100644 webmagic-avalon/webmagic-avalon-common/src/main/resources/log/log4j.xml create mode 100644 webmagic-avalon/webmagic-avalon-common/src/main/resources/spring/applicationContext-freemarker.xml create mode 100644 webmagic-avalon/webmagic-avalon-common/src/main/resources/spring/applicationContext-myBatis.xml create mode 100644 webmagic-avalon/webmagic-avalon-common/src/main/resources/spring/applicationContext.xml create mode 100644 webmagic-avalon/webmagic-avalon-common/src/test/java/us/codecraft/dao/DynamicClassDaoTest.java create mode 100644 webmagic-avalon/webmagic-avalon-common/src/test/resources/spring/applicationContext-freemarker.xml create mode 100644 webmagic-avalon/webmagic-avalon-common/src/test/resources/spring/applicationContext-myBatis.xml create mode 100644 webmagic-avalon/webmagic-avalon-common/src/test/resources/spring/applicationContext-tx.xml create mode 100644 webmagic-avalon/webmagic-avalon-common/src/test/resources/spring/applicationContext.xml diff --git a/webmagic-avalon/pom.xml b/webmagic-avalon/pom.xml index 21a4ca6..e74af11 100644 --- a/webmagic-avalon/pom.xml +++ b/webmagic-avalon/pom.xml @@ -1,5 +1,6 @@ - + webmagic-parent us.codecraft @@ -15,95 +16,118 @@ forger webmagic-admin webmagic-worker + webmagic-avalon-common - - - us.codecraft - webmagic-scripts - ${project.version} - + + - - org.mybatis - mybatis - 3.1.1 - + + us.codecraft + webmagic-scripts + ${project.version} + - - org.mybatis - mybatis-spring - 1.1.1 - + + org.mybatis + mybatis + 3.1.1 + - - us.codecraft - forger - 0.1.0-SNAPSHOT - + + org.mybatis + mybatis-spring + 1.1.1 + - - org.freemarker - freemarker - 2.3.19 - + + us.codecraft + forger + 0.1.0-SNAPSHOT + - - org.springframework - spring-test - ${spring-version} - test - + + org.freemarker + freemarker + 2.3.19 + - - org.springframework - spring-aop - ${spring-version} - + + org.springframework + spring-test + ${spring-version} + test + - - org.aspectj - aspectjrt - 1.7.2 - - - org.aspectj - aspectjweaver - 1.7.2 - - - org.springframework - spring-core - ${spring-version} - - - org.springframework - spring-webmvc - ${spring-version} - + + org.assertj + assertj-core + 1.5.0 + test + - - javax.servlet - javax.servlet-api - 3.0.1 - - - org.springframework - spring-context - ${spring-version} - - - org.springframework - spring-context-support - ${spring-version} - - - com.alibaba - fastjson - 1.1.37 - + + mysql + mysql-connector-java + 5.1.18 + - + + commons-dbcp + commons-dbcp + 1.3 + + + + org.springframework + spring-aop + ${spring-version} + + + + org.aspectj + aspectjrt + 1.7.2 + + + org.aspectj + aspectjweaver + 1.7.2 + + + org.springframework + spring-core + ${spring-version} + + + org.springframework + spring-webmvc + ${spring-version} + + + + javax.servlet + javax.servlet-api + 3.0.1 + + + org.springframework + spring-context + ${spring-version} + + + org.springframework + spring-context-support + ${spring-version} + + + com.alibaba + fastjson + 1.1.37 + + + + diff --git a/webmagic-avalon/sql/create-tables.sql b/webmagic-avalon/sql/create-tables.sql new file mode 100644 index 0000000..9312e01 --- /dev/null +++ b/webmagic-avalon/sql/create-tables.sql @@ -0,0 +1,9 @@ +CREATE TABLE `DynamicClass` ( + `Id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `ClassName` varchar(20) NOT NULL, + `SourceCode` text NOT NULL, + `AddTime` datetime NOT NULL, + `UpdateTime` datetime NOT NULL, + PRIMARY KEY (`Id`), + UNIQUE KEY `un_class_name` (`ClassName`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; \ No newline at end of file diff --git a/webmagic-avalon/webmagic-admin/pom.xml b/webmagic-avalon/webmagic-admin/pom.xml index e989782..b3a05b8 100644 --- a/webmagic-avalon/webmagic-admin/pom.xml +++ b/webmagic-avalon/webmagic-admin/pom.xml @@ -14,82 +14,10 @@ us.codecraft - webmagic-scripts + webmagic-avalon-common ${project.version} - - org.mybatis - mybatis - 3.1.1 - - - - org.mybatis - mybatis-spring - 1.1.1 - - - - org.freemarker - freemarker - 2.3.19 - - - org.springframework - spring-test - ${spring-version} - test - - - - org.springframework - spring-aop - ${spring-version} - - - - org.aspectj - aspectjrt - 1.7.2 - - - org.aspectj - aspectjweaver - 1.7.2 - - - org.springframework - spring-core - ${spring-version} - - - org.springframework - spring-webmvc - ${spring-version} - - - - javax.servlet - javax.servlet-api - 3.0.1 - - - org.springframework - spring-context - ${spring-version} - - - org.springframework - spring-context-support - ${spring-version} - - - com.alibaba - fastjson - 1.1.37 - - diff --git a/webmagic-avalon/webmagic-avalon-common/pom.xml b/webmagic-avalon/webmagic-avalon-common/pom.xml new file mode 100644 index 0000000..e7c6380 --- /dev/null +++ b/webmagic-avalon/webmagic-avalon-common/pom.xml @@ -0,0 +1,128 @@ + + + + webmagic-avalon + us.codecraft + 0.5.0-SNAPSHOT + + 4.0.0 + + webmagic-avalon-common + jar + + + + us.codecraft + webmagic-extension + ${project.version} + + + + org.mybatis + mybatis + + + + org.mybatis + mybatis-spring + + + + org.freemarker + freemarker + + + + org.springframework + spring-test + test + + + + org.assertj + assertj-core + test + + + + junit + junit + + + + mysql + mysql-connector-java + + + + commons-dbcp + commons-dbcp + + + + org.springframework + spring-aop + ${spring-version} + + + + org.aspectj + aspectjrt + + + org.aspectj + aspectjweaver + + + org.springframework + spring-core + + + org.springframework + spring-webmvc + + + + javax.servlet + javax.servlet-api + + + org.springframework + spring-context + + + org.springframework + spring-context-support + + + com.alibaba + fastjson + + + + + + + maven-deploy-plugin + + true + + + + org.apache.maven.plugins + maven-jar-plugin + 2.4 + + + + true + ./lib/ + us.codecraft.webmagic.main.QuickStarter + + + + + + + + diff --git a/webmagic-avalon/webmagic-avalon-common/src/main/java/us/codecraft/webmagic/dao/DynamicClassDao.java b/webmagic-avalon/webmagic-avalon-common/src/main/java/us/codecraft/webmagic/dao/DynamicClassDao.java new file mode 100644 index 0000000..1e7a6e3 --- /dev/null +++ b/webmagic-avalon/webmagic-avalon-common/src/main/java/us/codecraft/webmagic/dao/DynamicClassDao.java @@ -0,0 +1,13 @@ +package us.codecraft.webmagic.dao; + +import org.apache.ibatis.annotations.Insert; +import us.codecraft.webmagic.model.DynamicClass; + +/** + * @author code4crafter@gmail.com + */ +public interface DynamicClassDao { + + @Insert("insert into DynamicClass (`ClassName`,`SourceCode`,`AddTime`,`UpdateTime`) values (#{className},#{sourceCode},now(),now())") + public int add(DynamicClass dynamicClass); +} diff --git a/webmagic-avalon/webmagic-avalon-common/src/main/java/us/codecraft/webmagic/model/DynamicClass.java b/webmagic-avalon/webmagic-avalon-common/src/main/java/us/codecraft/webmagic/model/DynamicClass.java new file mode 100644 index 0000000..4809128 --- /dev/null +++ b/webmagic-avalon/webmagic-avalon-common/src/main/java/us/codecraft/webmagic/model/DynamicClass.java @@ -0,0 +1,49 @@ +package us.codecraft.webmagic.model; + +import java.util.Date; + +/** + * @author code4crafter@gmail.com + */ +public class DynamicClass { + + private String className; + + private String sourceCode; + + private Date addTime; + + private Date updateTime; + + public String getClassName() { + return className; + } + + public void setClassName(String className) { + this.className = className; + } + + public String getSourceCode() { + return sourceCode; + } + + public void setSourceCode(String sourceCode) { + this.sourceCode = sourceCode; + } + + public Date getAddTime() { + return addTime; + } + + public void setAddTime(Date addTime) { + this.addTime = addTime; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } +} diff --git a/webmagic-avalon/webmagic-avalon-common/src/main/resources/freemarker.properties b/webmagic-avalon/webmagic-avalon-common/src/main/resources/freemarker.properties new file mode 100644 index 0000000..dbed67f --- /dev/null +++ b/webmagic-avalon/webmagic-avalon-common/src/main/resources/freemarker.properties @@ -0,0 +1,7 @@ +number_format=# +classic_compatible=true + +default_encoding=UTF-8 +template_update_delay=0 +######################### +template_exception_handler=rethrow diff --git a/webmagic-avalon/webmagic-avalon-common/src/main/resources/log/log4j.xml b/webmagic-avalon/webmagic-avalon-common/src/main/resources/log/log4j.xml new file mode 100644 index 0000000..c2b5a2f --- /dev/null +++ b/webmagic-avalon/webmagic-avalon-common/src/main/resources/log/log4j.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/webmagic-avalon/webmagic-avalon-common/src/main/resources/spring/applicationContext-freemarker.xml b/webmagic-avalon/webmagic-avalon-common/src/main/resources/spring/applicationContext-freemarker.xml new file mode 100644 index 0000000..e7b98aa --- /dev/null +++ b/webmagic-avalon/webmagic-avalon-common/src/main/resources/spring/applicationContext-freemarker.xml @@ -0,0 +1,34 @@ + + + + + + + + + 0 + zh_CN + yyyy-MM-dd HH:mm:ss + yyyy-MM-dd + #.## + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/webmagic-avalon/webmagic-avalon-common/src/main/resources/spring/applicationContext-myBatis.xml b/webmagic-avalon/webmagic-avalon-common/src/main/resources/spring/applicationContext-myBatis.xml new file mode 100644 index 0000000..bf54793 --- /dev/null +++ b/webmagic-avalon/webmagic-avalon-common/src/main/resources/spring/applicationContext-myBatis.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/webmagic-avalon/webmagic-avalon-common/src/main/resources/spring/applicationContext.xml b/webmagic-avalon/webmagic-avalon-common/src/main/resources/spring/applicationContext.xml new file mode 100644 index 0000000..3296bdd --- /dev/null +++ b/webmagic-avalon/webmagic-avalon-common/src/main/resources/spring/applicationContext.xml @@ -0,0 +1,44 @@ + + + + + + + + web_messages + + + + + + + + + + + + + text/html;charset=UTF-8 + + + + + + + + + + + + + \ No newline at end of file diff --git a/webmagic-avalon/webmagic-avalon-common/src/test/java/us/codecraft/dao/DynamicClassDaoTest.java b/webmagic-avalon/webmagic-avalon-common/src/test/java/us/codecraft/dao/DynamicClassDaoTest.java new file mode 100644 index 0000000..b5008bd --- /dev/null +++ b/webmagic-avalon/webmagic-avalon-common/src/test/java/us/codecraft/dao/DynamicClassDaoTest.java @@ -0,0 +1,33 @@ +package us.codecraft.dao; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.annotation.Rollback; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.transaction.annotation.Transactional; +import us.codecraft.webmagic.dao.DynamicClassDao; +import us.codecraft.webmagic.model.DynamicClass; + +/** + * @author code4crafter@gmail.com + */ +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(locations = {"classpath:/spring/applicationContext-*.xml"}) +@Transactional +public class DynamicClassDaoTest { + + @Autowired + private DynamicClassDao dynamicClassDao; + + @Test + @Transactional + @Rollback(true) + public void testAdd() throws Exception { + DynamicClass dynamicClass = new DynamicClass(); + dynamicClass.setClassName("test"); + dynamicClass.setSourceCode("testSource"); + dynamicClassDao.add(dynamicClass); + } +} diff --git a/webmagic-avalon/webmagic-avalon-common/src/test/resources/spring/applicationContext-freemarker.xml b/webmagic-avalon/webmagic-avalon-common/src/test/resources/spring/applicationContext-freemarker.xml new file mode 100644 index 0000000..e7b98aa --- /dev/null +++ b/webmagic-avalon/webmagic-avalon-common/src/test/resources/spring/applicationContext-freemarker.xml @@ -0,0 +1,34 @@ + + + + + + + + + 0 + zh_CN + yyyy-MM-dd HH:mm:ss + yyyy-MM-dd + #.## + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/webmagic-avalon/webmagic-avalon-common/src/test/resources/spring/applicationContext-myBatis.xml b/webmagic-avalon/webmagic-avalon-common/src/test/resources/spring/applicationContext-myBatis.xml new file mode 100644 index 0000000..bf54793 --- /dev/null +++ b/webmagic-avalon/webmagic-avalon-common/src/test/resources/spring/applicationContext-myBatis.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/webmagic-avalon/webmagic-avalon-common/src/test/resources/spring/applicationContext-tx.xml b/webmagic-avalon/webmagic-avalon-common/src/test/resources/spring/applicationContext-tx.xml new file mode 100644 index 0000000..79421a2 --- /dev/null +++ b/webmagic-avalon/webmagic-avalon-common/src/test/resources/spring/applicationContext-tx.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/webmagic-avalon/webmagic-avalon-common/src/test/resources/spring/applicationContext.xml b/webmagic-avalon/webmagic-avalon-common/src/test/resources/spring/applicationContext.xml new file mode 100644 index 0000000..3296bdd --- /dev/null +++ b/webmagic-avalon/webmagic-avalon-common/src/test/resources/spring/applicationContext.xml @@ -0,0 +1,44 @@ + + + + + + + + web_messages + + + + + + + + + + + + + text/html;charset=UTF-8 + + + + + + + + + + + + + \ No newline at end of file diff --git a/webmagic-avalon/webmagic-worker/pom.xml b/webmagic-avalon/webmagic-worker/pom.xml index fd8edd5..f7833a0 100644 --- a/webmagic-avalon/webmagic-worker/pom.xml +++ b/webmagic-avalon/webmagic-worker/pom.xml @@ -13,81 +13,9 @@ us.codecraft - webmagic-scripts + webmagic-avalon-common ${project.version} - - - org.mybatis - mybatis - 3.1.1 - - - - org.mybatis - mybatis-spring - 1.1.1 - - - - org.freemarker - freemarker - 2.3.19 - - - org.springframework - spring-test - ${spring-version} - test - - - - org.springframework - spring-aop - ${spring-version} - - - - org.aspectj - aspectjrt - 1.7.2 - - - org.aspectj - aspectjweaver - 1.7.2 - - - org.springframework - spring-core - ${spring-version} - - - org.springframework - spring-webmvc - ${spring-version} - - - - javax.servlet - javax.servlet-api - 3.0.1 - - - org.springframework - spring-context - ${spring-version} - - - org.springframework - spring-context-support - ${spring-version} - - - com.alibaba - fastjson - 1.1.37 -