diff --git a/pom.xml b/pom.xml index 803ccc6e29cbb8d6db40dbe538051748314e47f8..e3dafdc3f21b1ecb6f728d67955e19292d564997 100644 --- a/pom.xml +++ b/pom.xml @@ -1,318 +1,933 @@ <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>org.springframework.samples</groupId> - <artifactId>spring-petclinic</artifactId> - <name>petclinic</name> - <packaging>war</packaging> - <version>1.0.0-SNAPSHOT</version> - <properties> - <spring.version>3.2.1.RELEASE</spring.version> - <slf4j.version>1.7.0</slf4j.version> - <log4j.version>1.2.17</log4j.version> - <hibernate.version>4.1.4.Final</hibernate.version> - <aspectj.version>1.7.1</aspectj.version> - <hibernate.validator.version>4.2.0.Final</hibernate.validator.version> - <joda.version>2.0</joda.version> - <spring.data.jpa>1.1.0.RELEASE</spring.data.jpa> - <junit.version>4.10</junit.version> - </properties> - <dependencies> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>org.springframework.samples</groupId> + <artifactId>spring-petclinic</artifactId> + <version>1.0.0-SNAPSHOT</version> - <!-- Spring --> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-context</artifactId> - <version>${spring.version}</version> - <exclusions> - <!-- Exclude Commons Logging in favor of SLF4j --> - <exclusion> - <groupId>org.apache.commons</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-context-support</artifactId> - <version>${spring.version}</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-orm</artifactId> - <version>${spring.version}</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-oxm</artifactId> - <version>${spring.version}</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-webmvc</artifactId> - <version>${spring.version}</version> - </dependency> - - <!-- will be a transitive dependency from Spring 3.2.2 --> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-web</artifactId> - <version>${spring.version}</version> - </dependency> + <name>petclinic</name> + <packaging>war</packaging> - <!-- added because this dependency is missing in Spring 3.2.1 (can be removed from Spring 3.2.2) --> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-jdbc</artifactId> - <version>${spring.version}</version> - </dependency> + <properties> + <antlr.version>2.7.7</antlr.version> + <asm.version>3.3.1</asm.version> + <aspectj.version>1.7.1</aspectj.version> + <commons-beanutils.version>1.8.3</commons-beanutils.version> + <commons-cli.version>1.2</commons-cli.version> + <commons-codec.version>1.7</commons-codec.version> + <commons-collections.version>3.2.1</commons-collections.version> + <commons-dbcp.version>1.4</commons-dbcp.version> + <commons-digester2.version>2.1</commons-digester2.version> + <commons-digester3.version>3.2</commons-digester3.version> + <commons-exec.version>1.1</commons-exec.version> + <commons-fileupload.version>1.2.2</commons-fileupload.version> + <commons-io.version>2.4</commons-io.version> + <commons-lang2.version>2.6</commons-lang2.version> + <commons-lang3.version>3.1</commons-lang3.version> + <commons-net.version>3.1</commons-net.version> + <commons-pool.version>1.6</commons-pool.version> + <ehcache.version>2.6.3</ehcache.version> + <hamcrest.version>1.3</hamcrest.version> + <hibernate-jpa.version>1.0.1.Final</hibernate-jpa.version> + <hibernate-validator.version>4.3.0.Final</hibernate-validator.version> + <hibernate.version>4.1.9.Final</hibernate.version> + <hsqldb.version>2.2.9</hsqldb.version> + <jadira-usertype-core.version>3.1.0.CR1</jadira-usertype-core.version> + <javassist.version>3.17.1-GA</javassist.version> + <java.version>1.6</java.version> + <jaxb-api.version>2.2.7</jaxb-api.version> + <javax-el.version>2.2</javax-el.version> + <jaxb-impl.version>2.2.7-b53</jaxb-impl.version> + <jboss-logging.version>3.1.2.GA</jboss-logging.version> + <jdom.version>2.0.2</jdom.version> + <jodatime-hibernate.version>1.3</jodatime-hibernate.version> + <jodatime-jsptags.version>1.1.1</jodatime-jsptags.version> + <jodatime.version>2.1</jodatime.version> + <jsp.version>2.2</jsp.version> + <jstl.version>1.2</jstl.version> + <jta.version>1.1</jta.version> + <junit.version>4.11</junit.version> + <logback.version>1.0.9</logback.version> + <log4j.version>1.2.17</log4j.version> + <maven-assembly-plugin.version>2.4</maven-assembly-plugin.version> + <maven-clean-plugin.version>2.5</maven-clean-plugin.version> + <maven-compiler-plugin.version>3.0</maven-compiler-plugin.version> + <maven-dependency-plugin.version>2.6</maven-dependency-plugin.version> + <maven-deploy-plugin.version>2.7</maven-deploy-plugin.version> + <maven-eclipse-plugin.version>2.9</maven-eclipse-plugin.version> + <maven-enforcer-plugin.version>1.2</maven-enforcer-plugin.version> + <maven-help-plugin.version>2.1.1</maven-help-plugin.version> + <maven-install-plugin.version>2.4</maven-install-plugin.version> + <maven-jar-plugin.version>2.4</maven-jar-plugin.version> + <maven-jetty-plugin.version>8.1.9.v20130131</maven-jetty-plugin.version> + <maven-m2e-lifecycle-plugin.version>1.0.0</maven-m2e-lifecycle-plugin.version> + <maven-plugin-plugin.version>3.2</maven-plugin-plugin.version> + <maven-project-info-reports-plugin.version>2.6</maven-project-info-reports-plugin.version> + <maven-release-plugin.version>2.4</maven-release-plugin.version> + <maven-resources-plugin.version>2.6</maven-resources-plugin.version> + <maven-site-plugin.version>3.2</maven-site-plugin.version> + <maven-source-plugin.version>2.2.1</maven-source-plugin.version> + <maven-surefire-plugin.version>2.13</maven-surefire-plugin.version> + <maven-taglist-plugin.version>2.4</maven-taglist-plugin.version> + <maven.version.range>[2.2.1,3.1.0)</maven.version.range> + <maven-war-plugin.version>2.3</maven-war-plugin.version> + <mysql.version>5.1.22</mysql.version> + <rome.version>1.0</rome.version> + <servlet.version>2.5</servlet.version> + <slf4j.version>1.7.2</slf4j.version> + <spring-data-jpa.version>1.3.0.RELEASE</spring-data-jpa.version> + <spring-framework.version>3.2.1.RELEASE</spring-framework.version> + <validation.version>1.0.0.GA</validation.version> + <webjars-bootstrap.version>2.3.0</webjars-bootstrap.version> + <webjars-jquery-ui.version>1.9.2</webjars-jquery-ui.version> + <webjars-jquery.version>1.9.0</webjars-jquery.version> + </properties> - <!-- Logging --> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>jcl-over-slf4j</artifactId> - <version>${slf4j.version}</version> - <scope>runtime</scope> - </dependency> - - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-api</artifactId> - <version>${slf4j.version}</version> - <scope>runtime</scope> - </dependency> - - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-log4j12</artifactId> - <version>${slf4j.version}</version> - <scope>runtime</scope> - </dependency> - - <dependency> - <groupId>log4j</groupId> - <artifactId>log4j</artifactId> - <version>${log4j.version}</version> - <scope>runtime</scope> - </dependency> - <!-- DataSource --> - <dependency> - <groupId>commons-dbcp</groupId> - <artifactId>commons-dbcp</artifactId> - <version>1.4</version> - <scope>runtime</scope> - </dependency> + <dependencies> + <!-- Spring --> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-context-support</artifactId> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-orm</artifactId> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-oxm</artifactId> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-webmvc</artifactId> + </dependency> + <!-- will be a transitive dependency from Spring 3.2.2 --> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-web</artifactId> + </dependency> + <!-- added because this dependency is missing in Spring 3.2.1 + (can be removed from Spring 3.2.2) --> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-jdbc</artifactId> + </dependency> + <!-- Logging --> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>jcl-over-slf4j</artifactId> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>jul-to-slf4j</artifactId> + </dependency> + <dependency> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + </dependency> - <dependency> - <groupId>org.hsqldb</groupId> - <artifactId>hsqldb</artifactId> - <version>2.2.8</version> - <scope>runtime</scope> - </dependency> - <!-- MySQL JDBC Connector --> - <!-- - <dependency> <groupId>com.mysql.jdbc</groupId> - <artifactId>com.springsource.com.mysql.jdbc</artifactId> - <version>5.1.6</version> </dependency> - --> - - <!-- AOP --> - <dependency> - <groupId>org.aspectj</groupId> - <artifactId>aspectjrt</artifactId> - <version>${aspectj.version}</version> - </dependency> - - <dependency> - <groupId>org.aspectj</groupId> - <artifactId>aspectjweaver</artifactId> - <version>${aspectj.version}</version> - </dependency> + <!-- DataSource --> + <dependency> + <groupId>commons-dbcp</groupId> + <artifactId>commons-dbcp</artifactId> + </dependency> + <dependency> + <groupId>org.hsqldb</groupId> + <artifactId>hsqldb</artifactId> + </dependency> + <!-- MySQL JDBC Connector --> + <!-- + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + <version>${mysql.version}</version> + </dependency> + --> + <!-- Hibernate --> + <!-- JPA --> + <!-- Hibernate JPA Provider --> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-entitymanager</artifactId> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-validator</artifactId> + </dependency> + <!-- ********************************************************************** + ** SPRING DATA ** + ********************************************************************** --> + <dependency> + <groupId>org.springframework.data</groupId> + <artifactId>spring-data-jpa</artifactId> + </dependency> + <!-- Servlet --> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + </dependency> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>jstl</artifactId> + </dependency> + <!-- Webjars (static dependencies distributed as JAR files) --> + <dependency> + <groupId>org.webjars</groupId> + <artifactId>bootstrap</artifactId> + </dependency> + <dependency> + <groupId>org.webjars</groupId> + <artifactId>jquery-ui</artifactId> + </dependency> + <!-- Rome RSS --> + <dependency> + <groupId>rome</groupId> + <artifactId>rome</artifactId> + </dependency> + <dependency> + <groupId>org.jdom</groupId> + <artifactId>jdom</artifactId> + </dependency> + <!-- JAXB --> + <dependency> + <groupId>com.sun.xml.bind</groupId> + <artifactId>jaxb-impl</artifactId> + </dependency> + <!-- Test dependencies --> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-test</artifactId> + </dependency> + <dependency> + <groupId>javax.transaction</groupId> + <artifactId>jta</artifactId> + </dependency> + <dependency> + <groupId>joda-time</groupId> + <artifactId>joda-time</artifactId> + </dependency> + <dependency> + <groupId>org.jadira.usertype</groupId> + <artifactId>usertype.core</artifactId> + </dependency> + <dependency> + <groupId>joda-time</groupId> + <artifactId>joda-time-jsptags</artifactId> + </dependency> + <dependency> + <groupId>joda-time</groupId> + <artifactId>joda-time-hibernate</artifactId> + </dependency> + <!-- used for Spring MVC Test framework --> + <!-- Do not use hamcrest-all, hamcrest-library + (hamcrest-core in dep mgmt, is used by junit) --> + <dependency> + <groupId>org.hamcrest</groupId> + <artifactId>hamcrest-library</artifactId> + </dependency> + </dependencies> - <!-- Hibernate --> + <!-- Best Practice to ALWAYS include the Maven plugin versions --> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>${maven-compiler-plugin.version}</version> + <configuration> + <verbose>true</verbose> + <source>${java.version}</source> + <target>${java.version}</target> + <showWarnings>true</showWarnings> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>${maven-surefire-plugin.version}</version> + <configuration> + <includes> + <include>**/*Tests.java</include> + </includes> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-war-plugin</artifactId> + <version>${maven-war-plugin.version}</version> + <configuration> + <warName>petclinic</warName> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-eclipse-plugin</artifactId> + <version>${maven-eclipse-plugin.version}</version> + <configuration> + <downloadSources>true</downloadSources> + <downloadJavadocs>true</downloadJavadocs> + <wtpversion>2.0</wtpversion> + <sourceIncludes> + <sourceInclude>**/*.*</sourceInclude> + </sourceIncludes> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <version>${maven-dependency-plugin.version}</version> + <executions> + <execution> + <id>install</id> + <phase>install</phase> + <goals> + <goal>sources</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-deploy-plugin</artifactId> + <version>${maven-deploy-plugin.version}</version> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-install-plugin</artifactId> + <version>${maven-install-plugin.version}</version> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-release-plugin</artifactId> + <version>${maven-release-plugin.version}</version> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-assembly-plugin</artifactId> + <version>${maven-assembly-plugin.version}</version> + <configuration> + <descriptorRefs> + <descriptorRef>jar-with-dependencies</descriptorRef> + </descriptorRefs> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-clean-plugin</artifactId> + <version>${maven-clean-plugin.version}</version> + <configuration> + <filesets> + <fileset> + <directory>${project.basedir}</directory> + <includes> + <include>target</include> + <include>surefire*</include> + </includes> + <followSymlinks>false</followSymlinks> + </fileset> + </filesets> + </configuration> + </plugin> + <plugin> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jetty-maven-plugin</artifactId> + <version>${maven-jetty-plugin.version}</version> + <configuration> + <webAppConfig> + <contextPath>/${project.name}</contextPath> + </webAppConfig> + <!-- + "stopPort" - Port number to receive a stop command and shutdown - use "mvn jetty:stop" + "stopKey" - String value that must be sent to the stopPort to validate the stop command + --> + <stopPort>9966</stopPort> + <stopKey>shutterdown</stopKey> + <requestLog implementation="ch.qos.logback.access.jetty.RequestLogImpl"> + <fileName>./src/main/resources/logback-access.xml</fileName> + </requestLog> + <systemProperties> + <systemProperty> + <name>logback.configurationFile</name> + <value>./src/main/resources/logback.xml</value> + </systemProperty> + <systemProperty> + <name>com.sun.management.jmxremote</name> + <value>true</value> + </systemProperty> + <systemProperty> + <name>com.sun.management.jmxremote.port</name> + <value>8050</value> + </systemProperty> + <systemProperty> + <name>com.sun.management.jmxremote.ssl</name> + <value>false</value> + </systemProperty> + <systemProperty> + <name>com.sun.management.jmxremote.authenticate</name> + <value>false</value> + </systemProperty> + </systemProperties> + </configuration> + <dependencies> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>jcl-over-slf4j</artifactId> + <version>${slf4j.version}</version> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + <version>${slf4j.version}</version> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>jul-to-slf4j</artifactId> + <version>${slf4j.version}</version> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + <version>${logback.version}</version> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-access</artifactId> + <version>${logback.version}</version> + <scope>runtime</scope> + </dependency> + </dependencies> + </plugin> + <!-- ******************************************************* + For reliable builds, ensure: + * NO duplicate jars of differing versions + * NO old versions of logging and Spring are included directly or Transitively + * All plugins have the version included as per Maven + * Legacy jars that have been replaced (javassist, should be org.javassist, etc) + ************************************************************ --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-enforcer-plugin</artifactId> + <version>${maven-enforcer-plugin.version}</version> + <executions> + <execution> + <id>enforce-banned-dependencies</id> + <goals> + <goal>enforce</goal> + </goals> + <configuration> + <rules> + <!-- Ensure no conflicting jar versions --> + <requireUpperBoundDeps/> + <requirePluginVersions/> + <dependencyConvergence/> + <bannedDependencies> + <searchTransitive>true</searchTransitive> + <excludes> + <exclude>javassist</exclude> + <exclude>commons-logging</exclude> + <exclude>aspectj</exclude> + <exclude>asm</exclude> + <exclude>hsqldb</exclude> + <exclude>log4j</exclude> + <exclude>org.slf4j:1.5*</exclude> + <exclude>org.slf4j:1.6*</exclude> + <exclude>org.springframework:spring:2.*</exclude> + <exclude>org.springframework:spring*:3.0.*</exclude> + <exclude>org.springframework:spring*:3.1.*</exclude> + </excludes> + </bannedDependencies> + <requireMavenVersion> + <version>${maven.version.range}</version> + </requireMavenVersion> + <requireJavaVersion> + <version>${java.version}</version> + </requireJavaVersion> + </rules> + <fail>true</fail> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> - <!-- JPA --> - <!-- Hibernate JPA Provider --> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-entitymanager</artifactId> - <version>${hibernate.version}</version> - </dependency> - - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-validator</artifactId> - <version>${hibernate.validator.version}</version> - </dependency> - - <!-- ********************************************************************** - ** SPRING DATA ** - ********************************************************************** --> - - <dependency> - <groupId>org.springframework.data</groupId> - <artifactId>spring-data-jpa</artifactId> - <version>${spring.data.jpa}</version> - </dependency> - <!-- Servlet --> - <dependency> - <groupId>javax.servlet</groupId> - <artifactId>servlet-api</artifactId> - <version>2.5</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>javax.servlet</groupId> - <artifactId>jstl</artifactId> - <version>1.2</version> - </dependency> - - <!-- Webjars (static dependencies distributed as JAR files) --> - <dependency> - <groupId>org.webjars</groupId> - <artifactId>bootstrap</artifactId> - <version>2.2.1</version> - </dependency> - - <dependency> - <groupId>org.webjars</groupId> - <artifactId>jquery-ui</artifactId> - <version>1.9.1</version> - </dependency> - - <!-- Rome RSS --> - <dependency> - <groupId>rome</groupId> - <artifactId>rome</artifactId> - <version>1.0</version> - </dependency> - - <dependency> - <groupId>org.jdom</groupId> - <artifactId>jdom</artifactId> - <version>2.0.2</version> - <scope>runtime</scope> - </dependency> - - <!-- JAXB --> - <dependency> - <groupId>com.sun.xml.bind</groupId> - <artifactId>jaxb-impl</artifactId> - <version>2.2.6</version> - <scope>provided</scope> - </dependency> + <!-- Best Practice: Specify the transitive dependency versions, to ensure that older versions + of projects are NOT included. + + This is particularly important to Spring projects where projects such as Spring-Data, may + include previous Spring libraries. + --> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.aspectj</groupId> + <artifactId>aspectjrt</artifactId> + <version>${aspectj.version}</version> + </dependency> + <dependency> + <groupId>org.aspectj</groupId> + <artifactId>aspectjweaver</artifactId> + <version>${aspectj.version}</version> + </dependency> + <dependency> + <groupId>org.aspectj</groupId> + <artifactId>aspectjtools</artifactId> + <version>${aspectj.version}</version> + </dependency> + <!-- HIBERNATE --> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-core</artifactId> + <version>${hibernate.version}</version> + <exclusions> + <exclusion> + <groupId>asm</groupId> + <artifactId>asm-attrs</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-entitymanager</artifactId> + <version>${hibernate.version}</version> + </dependency> + <dependency> + <groupId>org.hibernate.javax.persistence</groupId> + <artifactId>hibernate-jpa-2.0-api</artifactId> + <version>${hibernate-jpa.version}</version> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-validator</artifactId> + <version>${hibernate-validator.version}</version> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-ehcache</artifactId> + <version>${hibernate.version}</version> + </dependency> + <dependency> + <groupId>org.jadira.usertype</groupId> + <artifactId>usertype.core</artifactId> + <version>${jadira-usertype-core.version}</version> + </dependency> - <!-- Test dependencies --> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>${junit.version}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-test</artifactId> - <version>${spring.version}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>javax.transaction</groupId> - <artifactId>jta</artifactId> - <version>1.1</version> - <scope>test</scope> - </dependency> - - <dependency> - <groupId>net.sf.ehcache</groupId> - <artifactId>ehcache</artifactId> - <version>2.5.2</version> - <type>pom</type> - </dependency> - - <dependency> - <groupId>joda-time</groupId> - <artifactId>joda-time</artifactId> - <version>${joda.version}</version> - </dependency> - - <dependency> - <groupId>org.jadira.usertype</groupId> - <artifactId>usertype.core</artifactId> - <version>3.0.0.CR1</version> - </dependency> + <dependency> + <groupId>net.sf.ehcache</groupId> + <artifactId>ehcache-core</artifactId> + <version>${ehcache.version}</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>javax.validation</groupId> + <artifactId>validation-api</artifactId> + <version>${validation.version}</version> + </dependency> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>jstl</artifactId> + <version>${jstl.version}</version> + </dependency> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + <version>${servlet.version}</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>javax.xml.bind</groupId> + <artifactId>jaxb-api</artifactId> + <version>${jaxb-api.version}</version> + </dependency> + <dependency> + <groupId>com.sun.xml.bind</groupId> + <artifactId>jaxb-impl</artifactId> + <version>${jaxb-impl.version}</version> + </dependency> + <!-- SPRING, SPRING, SPRINGITY SPRING --> + <dependency> + <groupId>org.springframework.data</groupId> + <artifactId>spring-data-jpa</artifactId> + <version>${spring-data-jpa.version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-test</artifactId> + <version>${spring-framework.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-beans</artifactId> + <version>${spring-framework.version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + <version>${spring-framework.version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-jdbc</artifactId> + <version>${spring-framework.version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-aop</artifactId> + <version>${spring-framework.version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-web</artifactId> + <version>${spring-framework.version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-webmvc</artifactId> + <version>${spring-framework.version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-expression</artifactId> + <version>${spring-framework.version}</version> + </dependency> + <!--<dependency>--> + <!--<groupId>org.springframework</groupId>--> + <!--<artifactId>spring-instrument</artifactId>--> + <!--<version>${spring.version}</version>--> + <!--</dependency>--> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-tx</artifactId> + <version>${spring-framework.version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-core</artifactId> + <version>${spring-framework.version}</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-aspects</artifactId> + <version>${spring-framework.version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-context-support</artifactId> + <version>${spring-framework.version}</version> + <exclusions> + <exclusion> + <groupId>quartz</groupId> + <artifactId>quartz</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-orm</artifactId> + <version>${spring-framework.version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-oxm</artifactId> + <version>${spring-framework.version}</version> + <exclusions> + <exclusion> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-jms</artifactId> + <version>${spring-framework.version}</version> + </dependency> + <dependency> + <groupId>javax.transaction</groupId> + <artifactId>jta</artifactId> + <version>${jta.version}</version> + </dependency> + <dependency> + <groupId>org.javassist</groupId> + <artifactId>javassist</artifactId> + <version>${javassist.version}</version> + </dependency> + + <!-- Apache Commons + --> + <dependency> + <groupId>commons-dbcp</groupId> + <artifactId>commons-dbcp</artifactId> + <version>${commons-dbcp.version}</version> + </dependency> + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + <version>${commons-io.version}</version> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>${commons-lang2.version}</version> + </dependency> + <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-lang3</artifactId> + <version>${commons-lang3.version}</version> + </dependency> + <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-exec</artifactId> + <version>${commons-exec.version}</version> + </dependency> + <dependency> + <groupId>commons-collections</groupId> + <artifactId>commons-collections</artifactId> + <version>${commons-collections.version}</version> + </dependency> + <dependency> + <groupId>commons-codec</groupId> + <artifactId>commons-codec</artifactId> + <version>${commons-codec.version}</version> + </dependency> + <dependency> + <groupId>commons-net</groupId> + <artifactId>commons-net</artifactId> + <version>${commons-net.version}</version> + </dependency> + <dependency> + <groupId>commons-fileupload</groupId> + <artifactId>commons-fileupload</artifactId> + <version>${commons-fileupload.version}</version> + </dependency> + <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-digester3</artifactId> + <version>${commons-digester3.version}</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>commons-digester</groupId> + <artifactId>commons-digester</artifactId> + <version>${commons-digester2.version}</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>commons-beanutils</groupId> + <artifactId>commons-beanutils</artifactId> + <version>${commons-beanutils.version}</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>commons-pool</groupId> + <artifactId>commons-pool</artifactId> + <version>${commons-pool.version}</version> + </dependency> + <dependency> + <groupId>commons-cli</groupId> + <artifactId>commons-cli</artifactId> + <version>${commons-cli.version}</version> + <exclusions> + <exclusion> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </exclusion> + </exclusions> + </dependency> + <!-- Logging with SLF4J & LogBack --> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>jcl-over-slf4j</artifactId> + <version>${slf4j.version}</version> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + <version>${slf4j.version}</version> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>jul-to-slf4j</artifactId> + <version>${slf4j.version}</version> + </dependency> + <dependency> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + <version>${logback.version}</version> + </dependency> + <dependency> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-core</artifactId> + <version>${logback.version}</version> + </dependency> + <dependency> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-access</artifactId> + <version>${logback.version}</version> + </dependency> + <dependency> + <groupId>rome</groupId> + <artifactId>rome</artifactId> + <version>${rome.version}</version> + </dependency> + <!--<dependency>--> + <!--<groupId>javax.activation</groupId>--> + <!--<artifactId>activation</artifactId>--> + <!--<version>${activation.version}</version>--> + <!--</dependency>--> + <!--<dependency>--> + <!--<groupId>org.jasypt</groupId>--> + <!--<artifactId>jasypt</artifactId>--> + <!--<version>${jasypt.version}</version>--> + <!--</dependency>--> + <dependency> + <groupId>joda-time</groupId> + <artifactId>joda-time</artifactId> + <version>${jodatime.version}</version> + </dependency> + <dependency> + <groupId>joda-time</groupId> + <artifactId>joda-time-hibernate</artifactId> + <version>${jodatime-hibernate.version}</version> + </dependency> + <dependency> + <groupId>joda-time</groupId> + <artifactId>joda-time-jsptags</artifactId> + <version>${jodatime-jsptags.version}</version> + </dependency> + <dependency> + <groupId>antlr</groupId> + <artifactId>antlr</artifactId> + <version>${antlr.version}</version> + </dependency> + <dependency> + <groupId>asm</groupId> + <artifactId>asm</artifactId> + <version>${asm.version}</version> + </dependency> + + + <!-- Databases --> + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + <version>${mysql.version}</version> + </dependency> + <dependency> + <groupId>org.hsqldb</groupId> + <artifactId>hsqldb</artifactId> + <version>${hsqldb.version}</version> + </dependency> + <dependency> + <groupId>javax.servlet.jsp.jstl</groupId> + <artifactId>jstl-api</artifactId> + <version>${jstl.version}</version> + </dependency> + <dependency> + <groupId>org.glassfish.web</groupId> + <artifactId>jstl-impl</artifactId> + <version>${jstl.version}</version> + </dependency> + <dependency> + <groupId>javax.el</groupId> + <artifactId>el-api</artifactId> + <version>${javax-el.version}</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>javax.servlet.jsp</groupId> + <artifactId>jsp-api</artifactId> + <version>${jsp.version}</version> + <scope>provided</scope> + </dependency> + <!-- Webjars (static dependencies distributed as JAR files) --> + <dependency> + <groupId>org.webjars</groupId> + <artifactId>bootstrap</artifactId> + <version>${webjars-bootstrap.version}</version> + </dependency> + <dependency> + <groupId>org.webjars</groupId> + <artifactId>jquery-ui</artifactId> + <version>${webjars-jquery-ui.version}</version> + </dependency> + <dependency> + <groupId>org.webjars</groupId> + <artifactId>jquery</artifactId> + <version>${webjars-jquery.version}</version> + </dependency> + <dependency> + <groupId>org.jboss.logging</groupId> + <artifactId>jboss-logging</artifactId> + <version>${jboss-logging.version}</version> + </dependency> + <dependency> + <groupId>org.jdom</groupId> + <artifactId>jdom</artifactId> + <version>${jdom.version}</version> + </dependency> + <!-- Test Artifacts --> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>${junit.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.hamcrest</groupId> + <artifactId>hamcrest-library</artifactId> + <version>${hamcrest.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.hamcrest</groupId> + <artifactId>hamcrest-core</artifactId> + <version>${hamcrest.version}</version> + <scope>test</scope> + </dependency> + </dependencies> + </dependencyManagement> - <dependency> - <groupId>joda-time</groupId> - <artifactId>joda-time-jsptags</artifactId> - <version>1.1</version> - </dependency> - - <!-- used for Spring MVC Test framework --> - <dependency> - <groupId>org.hamcrest</groupId> - <artifactId>hamcrest-all</artifactId> - <version>1.3</version> - </dependency> - - - </dependencies> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <configuration> - <verbose>true</verbose> - <source>1.6</source> - <target>1.6</target> - <showWarnings>true</showWarnings> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <includes> - <include>**/*Tests.java</include> - </includes> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-war-plugin</artifactId> - <configuration> - <warName>petclinic</warName> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-eclipse-plugin</artifactId> - <version>2.8</version> - <configuration> - <downloadSources>true</downloadSources> - <downloadJavadocs>true</downloadJavadocs> - <wtpversion>2.0</wtpversion> - <sourceIncludes> - <sourceInclude>**/*.*</sourceInclude> - </sourceIncludes> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-dependency-plugin</artifactId> - <executions> - <execution> - <id>install</id> - <phase>install</phase> - <goals> - <goal>sources</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> </project> \ No newline at end of file diff --git a/src/main/resources/logback-access.xml b/src/main/resources/logback-access.xml new file mode 100644 index 0000000000000000000000000000000000000000..c3f77ffaef56f3feecef0941477306118a7393b6 --- /dev/null +++ b/src/main/resources/logback-access.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<configuration> + <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" /> + + <appender name="FILE" class="ch.qos.logback.coreFileAppender"> + <file>${user.dir}/logs/petclinic-access.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${user.dir}/logs/petclinic-access.%d{yyyy-MM-dd}.log.zip</fileNamePattern> + </rollingPolicy> + + <encoder> + <pattern>combined</pattern> + </encoder> + </appender> + + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <pattern>%n%fullRequest%n%fullResponse%n</pattern> + </encoder> + </appender> + + <appender-ref ref="FILE" /> + <appender-ref ref="STDOUT" /> +</configuration> + + diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml new file mode 100644 index 0000000000000000000000000000000000000000..1db083f84c398a87fa1257f5cfa84be867e974ba --- /dev/null +++ b/src/main/resources/logback.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<configuration debug="true" scan="true" scanPeriod="30 seconds"> + + <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"> + <resetJUL>true</resetJUL> + </contextListener> + + <!-- To enable JMX Management --> + <jmxConfigurator/> + + <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <pattern>%-5level %logger{0} - %msg%n</pattern> + </encoder> + </appender> + + <logger name="accounts" level="debug" /> + <logger name="rewards" level="debug" /> + <logger name="org.springframework.beans" level="trace" /> + <logger name="org.springframework.web.servlet" level="trace" /> + <logger name="org.springframework.core.env" level="trace" /> + + <root level="warn"> + <appender-ref ref="console" /> + </root> +</configuration>