Commit b45f3656 authored by Administrator's avatar Administrator

POM review and improvement, and project cleaning.

POM was reviewed to update the dependencies of the project to the last
version and to improve the test execution.

Now it is possible to run the project with the testing database in a
Tomcat Server v7.0 using the mvn tomcat7:run goal. In addition, Selenium
tests now are executed as integration tests, starting the web server
before the test execution and stoping it after the tests end. Finally,
support for generating regular and cobertura test reports in HTML format
was also added.

The project was also cleaned by removing the MANIFEST.MF files and by
reallocating the SQL files.
parent 8b9eed22
...@@ -16,72 +16,110 @@ ...@@ -16,72 +16,110 @@
</licenses> </licenses>
<properties> <properties>
<maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target> <maven.compiler.target>1.8</maven.compiler.target>
<jersey.version>2.15</jersey.version>
<mysql.version>5.1.34</mysql.version>
<commons.codec.version>1.10</commons.codec.version>
<commons.dbcp.version>1.4</commons.dbcp.version>
<java.servlet.version>3.0.1</java.servlet.version>
<junit.version>4.12</junit.version>
<selenium.java.version>2.44.0</selenium.java.version>
<spring.test.version>4.1.4.RELEASE</spring.test.version>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.glassfish.jersey.test-framework.providers</groupId> <groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-test-framework-provider-grizzly2</artifactId> <artifactId>jersey-container-servlet</artifactId>
<version>2.5.1</version> <version>${jersey.version}</version>
<scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.glassfish.jersey.containers</groupId> <groupId>javax.servlet</groupId>
<artifactId>jersey-container-servlet</artifactId> <artifactId>javax.servlet-api</artifactId>
<version>2.5.1</version> <version>${java.servlet.version}</version>
<scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.glassfish.jersey.media</groupId> <groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId> <artifactId>jersey-media-json-jackson</artifactId>
<version>2.5.1</version> <version>${jersey.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId> <artifactId>mysql-connector-java</artifactId>
<version>5.1.28</version> <version>${mysql.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>commons-codec</groupId> <groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId> <artifactId>commons-codec</artifactId>
<version>1.9</version> <version>${commons.codec.version}</version>
</dependency> </dependency>
<!-- Test Scope --> <!-- Test Scope -->
<dependency> <dependency>
<groupId>junit</groupId> <groupId>junit</groupId>
<artifactId>junit</artifactId> <artifactId>junit</artifactId>
<version>4.11</version> <version>${junit.version}</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>org.glassfish.jersey.test-framework.providers</groupId>
<artifactId>jersey-test-framework-provider-grizzly2</artifactId>
<version>${jersey.version}</version>
</dependency>
<dependency> <dependency>
<groupId>commons-dbcp</groupId> <groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId> <artifactId>commons-dbcp</artifactId>
<version>1.4</version> <version>${commons.dbcp.version}</version>
<scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.seleniumhq.selenium</groupId> <groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId> <artifactId>selenium-java</artifactId>
<version>2.39.0</version> <version>${selenium.java.version}</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework</groupId> <groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId> <artifactId>spring-test</artifactId>
<version>4.0.0.RELEASE</version> <version>${spring.test.version}</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
</dependencies> </dependencies>
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.6</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.18.1</version>
<reportSets>
<reportSet>
<id>integration-tests</id>
<reports>
<report>failsafe-report-only</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
<build> <build>
<finalName>DAAExample</finalName> <finalName>DAAExample</finalName>
<plugins> <plugins>
...@@ -89,39 +127,95 @@ ...@@ -89,39 +127,95 @@
<plugin> <plugin>
<artifactId>maven-war-plugin</artifactId> <artifactId>maven-war-plugin</artifactId>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<version>2.1.1</version> <version>2.6</version>
<configuration> <configuration>
<warName>DAAExample</warName> <warName>DAAExample</warName>
</configuration> </configuration>
</plugin> </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<excludes>
<exclude>**/*WebTest*</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<includes>
<include>**/*WebTest*</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin> <plugin>
<artifactId>maven-antrun-plugin</artifactId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.18.1</version>
<executions> <executions>
<execution> <execution>
<id>test-reports</id> <id>test-report</id>
<phase>test</phase> <phase>test</phase>
<goals>
<goal>report-only</goal>
</goals>
</execution>
<execution>
<id>integration-test-report</id>
<phase>integration-test</phase>
<goals>
<goal>report-only</goal>
<goal>failsafe-report-only</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration> <configuration>
<tasks> <port>9080</port>
<junitreport todir="target/surefire-reports"> <path>/DAAExample</path>
<fileset dir="target/surefire-reports"> <contextFile>src/test/webapp/META-INF/context.xml</contextFile>
<include name="**/*.xml" /> <useTestClasspath>false</useTestClasspath>
</fileset>
<!-- report format="noframes" todir="target/surefire-reports" /-->
</junitreport>
</tasks>
</configuration> </configuration>
<executions>
<execution>
<id>start-tomcat7</id>
<phase>pre-integration-test</phase>
<goals> <goals>
<goal>run</goal> <goal>run</goal>
</goals> </goals>
<configuration>
<fork>true</fork>
</configuration>
</execution>
<execution>
<id>stop-tomcat7</id>
<phase>post-integration-test</phase>
<goals>
<goal>shutdown</goal>
</goals>
</execution> </execution>
</executions> </executions>
<dependencies>
<dependency>
<groupId>ant</groupId>
<artifactId>ant-junit</artifactId>
<version>1.6.2</version>
</dependency>
</dependencies>
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
......
...@@ -27,13 +27,4 @@ ...@@ -27,13 +27,4 @@
driverClassName="com.mysql.jdbc.Driver" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/daaexample" url="jdbc:mysql://localhost:3306/daaexample"
/> />
<Resource name="jdbc/daaexampletest"
auth="Container"
type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="daa" password="daa"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/daaexampletest"
/>
</Context> </Context>
\ No newline at end of file
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0"> id="DAAExample" version="3.0">
<display-name>DAAExample</display-name> <display-name>DAAExample</display-name>
<welcome-file-list> <welcome-file-list>
...@@ -34,12 +34,12 @@ ...@@ -34,12 +34,12 @@
<url-pattern>/rest/*</url-pattern> <url-pattern>/rest/*</url-pattern>
</servlet-mapping> </servlet-mapping>
<!-- filter> <filter>
<filter-name>LoginFilter</filter-name> <filter-name>LoginFilter</filter-name>
<filter-class>es.uvigo.esei.daa.LoginFilter</filter-class> <filter-class>es.uvigo.esei.daa.LoginFilter</filter-class>
</filter> </filter>
<filter-mapping> <filter-mapping>
<filter-name>LoginFilter</filter-name> <filter-name>LoginFilter</filter-name>
<url-pattern>/*</url-pattern> <url-pattern>/*</url-pattern>
</filter-mapping--> </filter-mapping>
</web-app> </web-app>
\ No newline at end of file
...@@ -16,6 +16,7 @@ public class PeopleDAOTest { ...@@ -16,6 +16,7 @@ public class PeopleDAOTest {
@BeforeClass @BeforeClass
public static void setUpBeforeClass() throws Exception { public static void setUpBeforeClass() throws Exception {
TestUtils.createFakeContext(); TestUtils.createFakeContext();
TestUtils.clearTestDatabase();
} }
@Before @Before
......
package es.uvigo.esei.daa.rest; package es.uvigo.esei.daa.rest;
import static es.uvigo.esei.daa.TestUtils.assertOkStatus;
import static es.uvigo.esei.daa.TestUtils.assertBadRequestStatus; import static es.uvigo.esei.daa.TestUtils.assertBadRequestStatus;
import static es.uvigo.esei.daa.TestUtils.assertOkStatus;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import java.io.IOException; import java.io.IOException;
...@@ -14,7 +14,6 @@ import javax.ws.rs.core.GenericType; ...@@ -14,7 +14,6 @@ import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response; import javax.ws.rs.core.Response;
import org.codehaus.jackson.jaxrs.JacksonJsonProvider;
import org.glassfish.jersey.client.ClientConfig; import org.glassfish.jersey.client.ClientConfig;
import org.glassfish.jersey.server.ResourceConfig; import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.test.JerseyTest; import org.glassfish.jersey.test.JerseyTest;
...@@ -23,6 +22,8 @@ import org.junit.Before; ...@@ -23,6 +22,8 @@ import org.junit.Before;
import org.junit.BeforeClass; import org.junit.BeforeClass;
import org.junit.Test; import org.junit.Test;
import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
import es.uvigo.esei.daa.TestUtils; import es.uvigo.esei.daa.TestUtils;
import es.uvigo.esei.daa.entities.Person; import es.uvigo.esei.daa.entities.Person;
......
...@@ -26,6 +26,7 @@ public class PeopleWebTest { ...@@ -26,6 +26,7 @@ public class PeopleWebTest {
@BeforeClass @BeforeClass
public static void setUpBeforeClass() throws Exception { public static void setUpBeforeClass() throws Exception {
TestUtils.createFakeContext(); TestUtils.createFakeContext();
TestUtils.clearTestDatabase();
} }
@Before @Before
......
CREATE DATABASE `daaexampletest`;
CREATE TABLE `daaexampletest`.`people` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`surname` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `daaexampletest`.`users` (
`login` varchar(100) NOT NULL,
`password` varbinary(64) DEFAULT NULL,
PRIMARY KEY (`login`)
);
GRANT ALL ON `daaexampletest`.* TO 'daa'@'localhost' IDENTIFIED BY 'daa';
\ No newline at end of file
<Context>
<!-- maxActive: Maximum number of database connections in pool. Make sure
you configure your mysqld max_connections large enough to handle all of your
db connections. Set to -1 for no limit. -->
<!-- maxIdle: Maximum number of idle database connections to retain in pool.
Set to -1 for no limit. See also the DBCP documentation on this and the minEvictableIdleTimeMillis
configuration parameter. -->
<!-- maxWait: Maximum time to wait for a database connection to become available
in ms, in this example 10 seconds. An Exception is thrown if this timeout
is exceeded. Set to -1 to wait indefinitely. -->
<!-- username and password: MySQL username and password for database connections -->
<!-- driverClassName: Class name for the old mm.mysql JDBC driver is org.gjt.mm.mysql.Driver
- we recommend using Connector/J though. Class name for the official MySQL
Connector/J driver is com.mysql.jdbc.Driver. -->
<!-- url: The JDBC connection url for connecting to your MySQL database. -->
<Resource name="jdbc/daaexample"
auth="Container"
type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="daa" password="daa"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/daaexampletest"
/>
</Context>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment