From 7d483e9d10ec3f8af31612ee8f1916e32dda1d81 Mon Sep 17 00:00:00 2001 From: Patrick Huang Date: Tue, 17 Dec 2013 10:54:48 +1000 Subject: [PATCH] functional test use mysql --- functional-test/pom.xml | 80 ++++++++++++++++--- .../util/EntityManagerFactoryHolder.java | 8 ++ .../org/zanata/util/SampleProjectProfile.java | 3 +- .../test/resources/datasource/zanata-ds.xml | 4 +- .../src/test/resources/setup.properties | 4 +- pom.xml | 71 ++++++++++++++++ 6 files changed, 157 insertions(+), 13 deletions(-) diff --git a/functional-test/pom.xml b/functional-test/pom.xml index bd63b95f2a..72fe9bb5fe 100644 --- a/functional-test/pom.xml +++ b/functional-test/pom.xml @@ -28,17 +28,18 @@ zanata - com.h2database - h2 + mysql + mysql-connector-java - 1.3.168 + 5.1.9 zanataDatasource + zanata_functional - org.h2.Driver - jdbc:h2:file:${project.build.directory}/h2/zanata;AUTO_SERVER=TRUE; - sa - + jdbc:mysql://localhost:${mysql.port}/${ds.database}?characterEncoding=UTF-8 + com.mysql.jdbc.Driver + zanata + zanata ${project.parent.version} @@ -322,6 +323,62 @@ + + org.codehaus.mojo + build-helper-maven-plugin + + + maven-dependency-plugin + + + com.jcabi + jcabi-mysql-maven-plugin + + + org.codehaus.mojo + sql-maven-plugin + + + + ${jdbc.groupId} + ${jdbc.artifactId} + ${jdbc.version} + + + + + + ${ds.driver.class} + jdbc:mysql://localhost:${mysql.port}/test?characterEncoding=UTF-8 + ${ds.username} + ${ds.password} + + + + + drop-database + pre-integration-test + + execute + + + drop database if exists ${ds.database} + continue + + + + create-database + pre-integration-test + + execute + + + create database ${ds.database} + + + + + org.codehaus.cargo cargo-maven2-plugin @@ -358,7 +415,7 @@ war ${zanata.target.war} http://${cargo.host}:${cargo.servlet.port}/${context.path}/ - 60000 + 120000 ${context.path} @@ -410,6 +467,11 @@ ${settings.localRepository}/org/hibernate/hibernate-envers/${hibernate.version}/hibernate-envers-${hibernate.version}.jar ${cargo.install.relative.to.container.home}/modules/system/layers/base/org/hibernate/envers/main/hibernate-envers-4.2.0.CR1.jar + + + ${settings.localRepository}/${jdbc.groupId}/${jdbc.artifactId}/${jdbc.version}/${jdbc.artifactId}-${jdbc.version}.jar + deployments/${jdbc.artifactId}.jar + @@ -560,7 +622,7 @@ true - com.h2database:h2 + mysql:mysql-connector-java org.apache.solr:solr-core org.apache.solr:solr-solrj org.hibernate:hibernate-core diff --git a/functional-test/src/test/java/org/zanata/util/EntityManagerFactoryHolder.java b/functional-test/src/test/java/org/zanata/util/EntityManagerFactoryHolder.java index f855caf811..9637f942ce 100644 --- a/functional-test/src/test/java/org/zanata/util/EntityManagerFactoryHolder.java +++ b/functional-test/src/test/java/org/zanata/util/EntityManagerFactoryHolder.java @@ -24,6 +24,14 @@ private EntityManagerFactoryHolder() { overrideProps .put("hibernate.connection.provider_class", "org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl"); + overrideProps.put("hibernate.connection.driver_class", + "com.mysql.jdbc.Driver"); + overrideProps.put("hibernate.connection.username", + PropertiesHolder.getProperty("hibernate.connection.username")); + overrideProps.put("hibernate.connection.password", + PropertiesHolder.getProperty("hibernate.connection.password")); + overrideProps.put("hibernate.dialect", + "org.zanata.util.ZanataMySQL5InnoDBDialect"); overrideProps.put("hibernate.connection.url", PropertiesHolder.getProperty("hibernate.connection.url")); overrideProps.put("hibernate.search.default.indexBase", diff --git a/functional-test/src/test/java/org/zanata/util/SampleProjectProfile.java b/functional-test/src/test/java/org/zanata/util/SampleProjectProfile.java index 9b7b984ea9..2b7cee9438 100644 --- a/functional-test/src/test/java/org/zanata/util/SampleProjectProfile.java +++ b/functional-test/src/test/java/org/zanata/util/SampleProjectProfile.java @@ -27,6 +27,7 @@ import org.zanata.model.HPerson; import org.zanata.model.HProject; import org.zanata.model.HProjectIteration; +import org.zanata.model.HTermComment; import org.zanata.model.HTextFlow; import org.zanata.model.HTextFlowTarget; import org.zanata.model.HTextFlowTargetHistory; @@ -69,7 +70,7 @@ public void deleteExceptEssentialData() { EntityCleaner.deleteAll(entityManager, Lists.newArrayList( Activity.class, // glossary - HGlossaryEntry.class, HGlossaryTerm.class, + HTermComment.class, HGlossaryTerm.class, HGlossaryEntry.class, // tex flows and targets HPoTargetHeader.class, HTextFlowTargetHistory.class, HTextFlowTarget.class, HTextFlow.class, HDocument.class, diff --git a/functional-test/src/test/resources/datasource/zanata-ds.xml b/functional-test/src/test/resources/datasource/zanata-ds.xml index 87fb17f510..0b747fbebc 100644 --- a/functional-test/src/test/resources/datasource/zanata-ds.xml +++ b/functional-test/src/test/resources/datasource/zanata-ds.xml @@ -11,10 +11,10 @@ See http://jaitechwriteups.blogspot.com/2012/02/jboss-as-710final-thunder-releas enabled="true" use-java-context="true" pool-name="zanataDatasource" use-ccm="true"> ${ds.connection.url} - h2 + ${jdbc.artifactId}.jar ${ds.username} - + ${ds.password} diff --git a/functional-test/src/test/resources/setup.properties b/functional-test/src/test/resources/setup.properties index dee54777a3..87609e10c4 100644 --- a/functional-test/src/test/resources/setup.properties +++ b/functional-test/src/test/resources/setup.properties @@ -12,5 +12,7 @@ zanata.sample.projects.basedir=${zanata.sample.projects.basedir} zanata.apikey=${zanata.apikey} #persistence.xml -hibernate.connection.url=${ds.connection.url};DB_CLOSE_ON_EXIT=FALSE +hibernate.connection.url=${ds.connection.url} +hibernate.connection.username=${ds.username} +hibernate.connection.password=${ds.password} hibernate.search.default.indexBase=${hibernate.search.default.indexBase} diff --git a/pom.xml b/pom.xml index c7d2c122d0..a5db8b47fa 100644 --- a/pom.xml +++ b/pom.xml @@ -53,6 +53,10 @@ 7.2.0.Final + + + linux-amd64 + 13306 @@ -706,6 +710,73 @@ true + + + org.codehaus.mojo + build-helper-maven-plugin + 1.8 + + + + reserve-network-port + + + + mysql.port + + + + + + + maven-dependency-plugin + 2.8 + + + + unpack + + + + + com.jcabi + mysql-dist + 5.5.34 + ${mysql.classifier} + zip + false + ${project.build.directory}/mysql-dist + + + + + + + + com.jcabi + jcabi-mysql-maven-plugin + 0.3 + + + mysql-test + + classify + start + stop + + + mysql.classifier + ${mysql.port} + ${project.build.directory}/mdb + + + + + + org.codehaus.mojo + sql-maven-plugin + 1.5 +