naz-mul
7/4/2012 - 1:59 AM

Spring Best Practices Maven Pom

Spring Best Practices Maven Pom

<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>com.gordondickens.sample</groupId>
  <artifactId>sample-parent</artifactId>
  <version>1.0.0</version>

  <packaging>pom</packaging>
  <name>*** Gordon's Super Pom ***</name>

  <description>Spring Project Best Practices Pom</description>

  <developers>
    <developer>
      <id>gordon.dickens</id>
      <name>Gordon Dickens</name>
      <email>gordondickens@gmail.com</email>
      <roles>
        <role>Author</role>
      </roles>
      <organization>http://www.gordondickens.com</organization>
    </developer>
  </developers>

  <properties>
    <activation.version>1.1.1</activation.version>
    <activemq.version>5.6.0</activemq.version>
    <antlr.version>2.7.7</antlr.version>
    <asm.version>3.3.1</asm.version>
    <aspectj.version>1.7.0</aspectj.version>
    <cglib.version>2.2.2</cglib.version>
    <commons.beanutils.version>1.8.3</commons.beanutils.version>
    <commons.cli.version>1.2</commons.cli.version>
    <commons.codec.version>1.6</commons.codec.version>
    <commons.collections.version>3.2.1</commons.collections.version>
    <commons.dbcp.version>1.4</commons.dbcp.version>
    <commons.digester3.version>3.2</commons.digester3.version>
    <commons.digester2.version>2.1</commons.digester2.version>
    <commons.exec.version>1.1</commons.exec.version>
    <commons.fileupload.version>1.2.2</commons.fileupload.version>
    <commons.httpclient.version>3.1</commons.httpclient.version>
    <commons.io.version>2.4</commons.io.version>
    <commons.lang3.version>3.1</commons.lang3.version>
    <commons.lang2.version>2.6</commons.lang2.version>
    <commons.net.version>3.1</commons.net.version>
    <commons.pool.version>1.6</commons.pool.version>
    <derby.version>10.9.1.0</derby.version>
    <dom4j.version>1.6.1</dom4j.version>
    <ehcache.version>2.6.0</ehcache.version>
    <geronimo.jee.version>1.0.1</geronimo.jee.version>
    <geronimo.jta.version>1.1.1</geronimo.jta.version>
    <geronimo.ws.version>1.1.3</geronimo.ws.version>
    <hamcrest.version>1.3</hamcrest.version>
    <h2database.version>1.3.167</h2database.version>
    <hibernate.jmx.version>3.5.6-Final</hibernate.jmx.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.5.SP1</hibernate.version>-->
    <hibernate.version>3.6.10.Final</hibernate.version>
    <hsqldb.version>2.2.8</hsqldb.version>
    <jackson.version>1.9.9</jackson.version>
    <jamon.version>2.4</jamon.version>
    <jasypt.version>1.9.0</jasypt.version>
    <javamail.version>1.4.5</javamail.version>
    <javassist.version>3.16.1-GA</javassist.version>
    <java.version>1.6</java.version>
    <javaws.version>2.1-1</javaws.version>
    <jaxb.version>2.2.4</jaxb.version>
    <jettison.version>1.3.2</jettison.version>
    <jms.version>1.1.1</jms.version>
    <jodatime.hibernate.version>1.3</jodatime.hibernate.version>
    <jodatime.version>2.1</jodatime.version>
    <jstl.version>1.2</jstl.version>
    <jta.version>1.1</jta.version>
    <junit.version>4.10</junit.version>
    <logback.version>1.0.6</logback.version>
    <maven.ant.plugin>1.7</maven.ant.plugin>
    <maven.aspectj.plugin>1.4</maven.aspectj.plugin>
    <maven.assembly.plugin>2.3</maven.assembly.plugin>
    <maven.checkstyle.plugin>2.7</maven.checkstyle.plugin>
    <maven.clean.plugin>2.5</maven.clean.plugin>
    <maven.cobertura.plugin>2.5.1</maven.cobertura.plugin>
    <maven.compiler.plugin>2.5.1</maven.compiler.plugin>
    <maven.dependency.plugin>2.4</maven.dependency.plugin>
    <maven.deploy.plugin>2.7</maven.deploy.plugin>
    <maven.doxia.module.markdown.version>1.3</maven.doxia.module.markdown.version>
    <maven.eclipse.plugin>2.9</maven.eclipse.plugin>
    <maven.enforcer.plugin>1.1.1</maven.enforcer.plugin>
    <maven.exec.plugin>1.2.1</maven.exec.plugin>
    <maven.failsafe.plugin>2.12</maven.failsafe.plugin>
    <maven.findbugs.plugin>2.5.1</maven.findbugs.plugin>
    <maven.help.plugin>2.1.1</maven.help.plugin>
    <maven.install.plugin>2.3.1</maven.install.plugin>
    <maven.jar.plugin>2.4</maven.jar.plugin>
    <maven.javadoc.plugin>2.8.1</maven.javadoc.plugin>
    <maven.jetty.plugin>8.1.5.v20120716</maven.jetty.plugin>
    <maven.jxr.plugin>2.3</maven.jxr.plugin>
    <maven.plugin.plugin>3.1</maven.plugin.plugin>
    <maven.pmd.plugin>2.7.1</maven.pmd.plugin>
    <maven.project.info.reports.plugin>2.4</maven.project.info.reports.plugin>
    <maven.release.plugin>2.3.2</maven.release.plugin>
    <maven.resources.plugin>2.5</maven.resources.plugin>
    <maven.site.plugin>3.1</maven.site.plugin>
    <maven.sonar.plugin>3.2-RC3</maven.sonar.plugin>
    <maven.source.plugin>2.1.2</maven.source.plugin>
    <maven.surefire.plugin>2.12</maven.surefire.plugin>
    <maven.taglist.plugin>2.4</maven.taglist.plugin>
    <maven.tomcat.plugin>2.0-beta-1</maven.tomcat.plugin>
    <maven.version.range>[2.2.1,3.1.0)</maven.version.range>
    <maven.versions.plugin>1.3.1</maven.versions.plugin>
    <maven.war.plugin>2.2</maven.war.plugin>
    <mockito.version>1.9.5-rc1</mockito.version>
    <mysql.version>5.1.21</mysql.version>
    <postgres.version>9.1-901-1.jdbc4</postgres.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <rome.version>1.0</rome.version>
    <servlet.version>2.5</servlet.version>
    <slf4j.version>1.6.6</slf4j.version>
    <sysout.slf4j.version>1.0.2</sysout.slf4j.version>
    <sonar.dynamicAnalysis>false</sonar.dynamicAnalysis>
    <sonar.phase>generate-sources</sonar.phase>
    <spring.data.jpa.version>1.2.0.M1</spring.data.jpa.version>
    <spring.security.version>3.1.1.RELEASE</spring.security.version>
    <spring.version>3.2.0.M1</spring.version>
    <spring.ws.version>2.1.0.RELEASE</spring.ws.version>
    <stax.version>1.0.1</stax.version>
    <validation.version>1.0.0.GA</validation.version>
    <wsdl4j.version>1.6.2</wsdl4j.version>
    <wss4j.version>1.5.10</wss4j.version>
    <wtp.version>2.0</wtp.version>
    <xalan.version>2.7.1</xalan.version>
    <xbean.version>3.11.1</xbean.version>
    <xerces.version>2.10.0</xerces.version>
  </properties>

  <modules>
    <!--<module>project1</module>-->
    <!--<module>project2</module>-->
    <!--<module>project3</module>-->
  </modules>

  <dependencies>
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-ehcache</artifactId>
      <version>${hibernate.version}</version>
    </dependency>

    <dependency>
      <groupId>org.hsqldb</groupId>
      <artifactId>hsqldb</artifactId>
    </dependency>
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-entitymanager</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aspects</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-orm</artifactId>
    </dependency>
    <!-- Testing Goodness -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-all</artifactId>
    </dependency>
    <dependency>
      <groupId>org.hamcrest</groupId>
      <artifactId>hamcrest-all</artifactId>
    </dependency>
    <!-- logging Goodness -->
    <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>uk.org.lidalia</groupId>
      <artifactId>sysout-over-slf4j</artifactId>
    </dependency>
  </dependencies>

  <!-- Centrally manage all versions & transitive dependency versions -->
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-core-asl</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <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-jmx</artifactId>
        <version>${hibernate.jmx.version}</version>
      </dependency>
      <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>${hibernate.version}</version>
        <exclusions>
          <exclusion>
            <groupId>javassist</groupId>
            <artifactId>javassist</artifactId>
          </exclusion>
        </exclusions>
      </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>dom4j</groupId>
        <artifactId>dom4j</artifactId>
        <version>${dom4j.version}</version>
      </dependency>
      <dependency>
        <groupId>xerces</groupId>
        <artifactId>xercesImpl</artifactId>
        <version>${xerces.version}</version>
      </dependency>
      <dependency>
        <groupId>xalan</groupId>
        <artifactId>xalan</artifactId>
        <version>${xalan.version}</version>
      </dependency>
      <dependency>
        <groupId>xalan</groupId>
        <artifactId>serializer</artifactId>
        <version>${xalan.version}</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.version}</version>
      </dependency>
      <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-impl</artifactId>
        <version>${jaxb.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-ws-metadata_2.0_spec</artifactId>
        <version>${geronimo.ws.version}</version>
      </dependency>
      <dependency>
        <groupId>stax</groupId>
        <artifactId>stax-api</artifactId>
        <version>${stax.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-j2ee-management_1.1_spec</artifactId>
        <version>${geronimo.jee.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.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-expression</artifactId>
        <version>${spring.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.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-asm</artifactId>
        <version>${spring.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.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>${spring.version}</version>
        <exclusions>
          <exclusion>
            <groupId>quartz</groupId>
            <artifactId>quartz</artifactId>
          </exclusion>
        </exclusions>
      </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>
        <exclusions>
          <exclusion>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jms</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-core</artifactId>
        <version>${spring.security.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>${spring.security.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-taglibs</artifactId>
        <version>${spring.security.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-acl</artifactId>
        <version>${spring.security.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-ldap</artifactId>
        <version>${spring.security.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.ws</groupId>
        <artifactId>spring-ws-core</artifactId>
        <version>${spring.ws.version}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.springframework.ws</groupId>
        <artifactId>spring-ws-security</artifactId>
        <version>${spring.ws.version}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.ws.security</groupId>
        <artifactId>wss4j</artifactId>
        <version>${wss4j.version}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.springframework.ws</groupId>
        <artifactId>spring-xml</artifactId>
        <version>${spring.ws.version}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>wsdl4j</groupId>
        <artifactId>wsdl4j</artifactId>
        <version>${wsdl4j.version}</version>
      </dependency>
      <dependency>
        <groupId>javax.transaction</groupId>
        <artifactId>jta</artifactId>
        <version>${jta.version}</version>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-all</artifactId>
        <version>${mockito.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-all</artifactId>
        <version>${hamcrest.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-jms_1.1_spec</artifactId>
        <version>${jms.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-jta_1.1_spec</artifactId>
        <version>${geronimo.jta.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-core</artifactId>
        <version>${activemq.version}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javassist</groupId>
            <artifactId>javassist</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.xbean</groupId>
        <artifactId>xbean-spring</artifactId>
        <version>${xbean.version}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>cglib</groupId>
        <artifactId>cglib</artifactId>
        <version>${cglib.version}</version>
        <exclusions>
          <exclusion>
            <groupId>asm</groupId>
            <artifactId>asm</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>cglib</groupId>
        <artifactId>cglib-nodep</artifactId>
        <version>${cglib.version}</version>
      </dependency>
      <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>${javamail.version}</version>
      </dependency>
      <dependency>
        <groupId>org.javassist</groupId>
        <artifactId>javassist</artifactId>
        <version>${javassist.version}</version>
      </dependency>
      <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-httpclient</groupId>
        <artifactId>commons-httpclient</artifactId>
        <version>${commons.httpclient.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>uk.org.lidalia</groupId>
        <artifactId>sysout-over-slf4j</artifactId>
        <version>${sysout.slf4j.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.codehaus.jettison</groupId>
        <artifactId>jettison</artifactId>
        <version>${jettison.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>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>postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>${postgres.version}</version>
      </dependency>
      <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>org.apache.derby</groupId>
        <artifactId>derby</artifactId>
        <version>${derby.version}</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>${h2database.version}</version>
        <scope>runtime</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <pluginRepositories>
    <pluginRepository>
      <id>spring-maven-release</id>
      <name>Spring Maven Release Repository</name>
      <url>http://repo.springframework.org/release</url>
    </pluginRepository>
    <pluginRepository>
      <id>spring-maven-milestone</id>
      <name>Spring Maven Milestone Repository</name>
      <url>http://repo.springframework.org/milestone</url>
    </pluginRepository>
    <pluginRepository>
      <id>spring.maven.snapshot</id>
      <name>Spring Snapshot Repository</name>
      <url>http://repo.springframework.org/snapshot</url>
    </pluginRepository>
  </pluginRepositories>

  <repositories>
    <repository>
      <id>spring.maven.release</id>
      <name>Spring Release Repository</name>
      <url>http://repo.springframework.org/release</url>
    </repository>
    <repository>
      <id>spring.maven.milestone</id>
      <name>Spring Milestone Repository</name>
      <url>http://repo.springframework.org/milestone</url>
    </repository>
    <repository>
      <id>spring.maven.snapshot</id>
      <name>Spring Snapshot Repository</name>
      <url>http://repo.springframework.org/snapshot</url>
    </repository>
    <!-- JBoss repo only needed for Spring Security Dependency
  of com.sun.xml.wsit:xws-security:jar:1.3.1 -->
    <repository>
      <id>jboss.repository.releases.public</id>
      <name>JBoss Repo Public</name>
      <url>http://repository.jboss.org/nexus/content/groups/public-jboss</url>
    </repository>
  </repositories>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>${maven.ant.plugin}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>${maven.deploy.plugin}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>${maven.jar.plugin}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>${maven.site.plugin}</version>
          <executions>
            <execution>
              <id>attach-descriptor</id>
              <goals>
                <goal>attach-descriptor</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <reportPlugins>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-report-plugin</artifactId>
                <version>${maven.surefire.plugin}</version>
                <configuration>
                  <outputDirectory>${project.reporting.outputDirectory}/testresults</outputDirectory>
                </configuration>
              </plugin>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>${maven.javadoc.plugin}</version>
                <configuration>
                  <aggregate>true</aggregate>
                </configuration>
              </plugin>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>${maven.checkstyle.plugin}</version>
              </plugin>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>${maven.project.info.reports.plugin}</version>
              </plugin>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jxr-plugin</artifactId>
                <version>${maven.jxr.plugin}</version>
                <configuration>
                  <aggregate>true</aggregate>
                </configuration>
              </plugin>
              <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>cobertura-maven-plugin</artifactId>
                <version>${maven.cobertura.plugin}</version>
                <configuration>
                  <aggregate>true</aggregate>
                  <outputDirectory>%{project.reporting.outputDirectory}/cobertura</outputDirectory>
                </configuration>
              </plugin>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <version>${maven.pmd.plugin}</version>
                <configuration>
                  <aggregate>true</aggregate>
                  <rulesets>
                    <ruleset>/rulesets/maven.xml</ruleset>
                    <ruleset>/rulesets/migrating_to_junit4.xml</ruleset>
                    <ruleset>/rulesets/design.xml</ruleset>
                    <ruleset>/rulesets/unusedcode.xml</ruleset>
                    <ruleset>/rulesets/typeresolution.xml</ruleset>
                  </rulesets>
                  <sourceEncoding>${project.build.sourceEncoding}</sourceEncoding>
                  <!-- The minimum tokens before a violation -->
                  <minimumTokens>100</minimumTokens>
                  <!-- Turn on if building xref report -->
                  <linkXRef>false</linkXRef>
                  <verbose>true</verbose>
                  <targetJdk>${java.version}</targetJdk>
                </configuration>
              </plugin>

              <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>findbugs-maven-plugin</artifactId>
                <version>${maven.findbugs.plugin}</version>
              </plugin>
              <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>taglist-maven-plugin</artifactId>
                <version>${maven.taglist.plugin}</version>
                <configuration>
                  <aggregate>true</aggregate>
                </configuration>
              </plugin>
              <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>versions-maven-plugin</artifactId>
                <version>${maven.versions.plugin}</version>
              </plugin>
            </reportPlugins>
            <locales>en</locales>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>org.apache.maven.doxia</groupId>
              <artifactId>doxia-module-markdown</artifactId>
              <version>${maven.doxia.module.markdown.version}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>cobertura-maven-plugin</artifactId>
          <version>${maven.cobertura.plugin}</version>
          <configuration>
            <aggregate>true</aggregate>
            <check>
              <branchRate>85</branchRate>
              <lineRate>85</lineRate>
              <haltOnFailure>true</haltOnFailure>
              <totalBranchRate>85</totalBranchRate>
              <totalLineRate>85</totalLineRate>
              <packageLineRate>85</packageLineRate>
              <packageBranchRate>85</packageBranchRate>
            </check>
            <instrumentation>
              <ignores>
                <ignore>org.aspectj.runtime.*</ignore>
              </ignores>
              <excludes>
                <exclude>**/aspects/*.class</exclude>
                <exclude>**/*$AjcClosure*</exclude>
              </excludes>
            </instrumentation>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>${maven.pmd.plugin}</version>
          <configuration>
            <rulesets>
              <ruleset>/rulesets/maven.xml</ruleset>
              <ruleset>/rulesets/migrating_to_junit4.xml</ruleset>
              <ruleset>/rulesets/design.xml</ruleset>
              <ruleset>/rulesets/unusedcode.xml</ruleset>
              <ruleset>/rulesets/typeresolution.xml</ruleset>
            </rulesets>
            <sourceEncoding>${project.build.sourceEncoding}</sourceEncoding>
            <!-- The minimum tokens before a violation -->
            <minimumTokens>100</minimumTokens>
            <!-- Turn on if building xref report -->
            <linkXRef>false</linkXRef>
            <verbose>true</verbose>
            <targetJdk>${java.version}</targetJdk>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>${maven.install.plugin}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>${maven.release.plugin}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>${maven.assembly.plugin}</version>
          <configuration>
            <descriptorRefs>
              <descriptorRef>jar-with-dependencies</descriptorRef>
            </descriptorRefs>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>${maven.exec.plugin}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${maven.compiler.plugin}</version>
          <configuration>
            <source>${java.version}</source>
            <target>${java.version}</target>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>${maven.source.plugin}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>${maven.clean.plugin}</version>
          <configuration>
            <filesets>
              <fileset>
                <directory>${project.basedir}</directory>
                <includes>
                  <include>target</include>
                  <include>activemq-data</include>
                  <include>derby-home</include>
                  <include>amqstore</include>
                  <include>.clover</include>
                  <include>surefire*</include>
                  <include>derby.log</include>
                </includes>
                <followSymlinks>false</followSymlinks>
              </fileset>
            </filesets>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-eclipse-plugin</artifactId>
          <version>${maven.eclipse.plugin}</version>
          <configuration>
            <downloadSources>true</downloadSources>
            <downloadJavadocs>false</downloadJavadocs>
            <wtpversion>${wtp.version}</wtpversion>
            <additionalBuildcommands>
              <buildCommand>
                <name>org.springframework.ide.eclipse.core.springbuilder</name>
                <name>org.eclipse.m2e.core.maven2Builder</name>
              </buildCommand>
              <buildCommand>
                <name>org.eclipse.ajdt.core.ajbuilder</name>
                <arguments>
                  <aspectPath>org.springframework.aspects</aspectPath>
                </arguments>
              </buildCommand>
            </additionalBuildcommands>
            <additionalProjectnatures>
              <projectnature>org.eclipse.jdt.core.javanature</projectnature>
              <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
              <projectnature>org.eclipse.ajdt.ui.ajnature</projectnature>
              <projectnature>org.eclipse.m2e.core.maven2Nature</projectnature>
            </additionalProjectnatures>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat6-maven-plugin</artifactId>
          <version>${maven.tomcat.plugin}</version>
          <configuration>
            <systemProperties>
              <com.sun.management.jmxremote>true</com.sun.management.jmxremote>
              <com.sun.management.jmxremote.port>8050</com.sun.management.jmxremote.port>
              <com.sun.management.jmxremote.ssl>false</com.sun.management.jmxremote.ssl>
              <com.sun.management.jmxremote.authenticate>false</com.sun.management.jmxremote.authenticate>
              <java.util.logging.manager>org.apache.juli.ClassLoaderLogManager</java.util.logging.manager>
              <logback.ContextSelector>JNDI</logback.ContextSelector>
            </systemProperties>
            <!--<path>/</path> -->
          </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>
        <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>${maven.tomcat.plugin}</version>
          <configuration>
            <systemProperties>
              <com.sun.management.jmxremote>true</com.sun.management.jmxremote>
              <com.sun.management.jmxremote.port>8050</com.sun.management.jmxremote.port>
              <com.sun.management.jmxremote.ssl>false</com.sun.management.jmxremote.ssl>
              <com.sun.management.jmxremote.authenticate>false</com.sun.management.jmxremote.authenticate>
              <java.util.logging.manager>org.apache.juli.ClassLoaderLogManager</java.util.logging.manager>
              <logback.ContextSelector>JNDI</logback.ContextSelector>
            </systemProperties>
            <!--<path>/</path> -->
          </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>
        <plugin>
          <groupId>org.mortbay.jetty</groupId>
          <artifactId>jetty-maven-plugin</artifactId>
          <version>${maven.jetty.plugin}</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>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>${maven.failsafe.plugin}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${maven.surefire.plugin}</version>
          <configuration>
            <parallel>methods</parallel>
            <threadCount>10</threadCount>
            <!-- Show the test errors on console -->
            <useFile>false</useFile>
            <printSummary>false</printSummary>
            <includes>
              <include>**/*Tests.java</include>
            </includes>
            <excludes>
              <exclude>**/Abstract*.java</exclude>
            </excludes>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>${maven.dependency.plugin}</version>
          <executions>
            <execution>
              <phase>generate-sources</phase>
              <goals>
                <goal>sources</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <verbose>true</verbose>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>junit</groupId>
              <artifactId>junit</artifactId>
              <version>${junit.version}</version>
            </dependency>
            <dependency>
              <groupId>commons-io</groupId>
              <artifactId>commons-io</artifactId>
              <version>${commons.io.version}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>${maven.resources.plugin}</version>
          <configuration>
            <encoding>${project.build.sourceEncoding}</encoding>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>${maven.enforcer.plugin}</version>
          <executions>
            <execution>
              <id>enforce-banned-dependencies</id>
              <goals>
                <goal>enforce</goal>
              </goals>
              <configuration>
                <rules>
                  <bannedDependencies>
                    <searchTransitive>true</searchTransitive>
                    <excludes>
                      <exclude>javassist:javassist</exclude>
                      <!--<exclude>commons-lang</exclude>-->
                      <!--<exclude>commons-digester</exclude>-->
                      <exclude>commons-logging</exclude>
                      <exclude>aspectj:aspectj*</exclude>
                      <exclude>hsqldb:hsqldb</exclude>
                      <exclude>log4j:log4j</exclude>
                      <exclude>org.slf4j:1.5*</exclude>
                      <exclude>org.springframework:2.*</exclude>
                      <exclude>org.springframework:3.0.*</exclude>
                    </excludes>
                  </bannedDependencies>
                  <requireMavenVersion>
                    <version>${maven.version.range}</version>
                  </requireMavenVersion>
                  <requireJavaVersion>
                    <version>${java.version}</version>
                  </requireJavaVersion>
                </rules>
                <fail>true</fail>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>versions-maven-plugin</artifactId>
          <version>${maven.versions.plugin}</version>
          <dependencies>
            <dependency>
              <groupId>junit</groupId>
              <artifactId>junit</artifactId>
              <version>${junit.version}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-help-plugin</artifactId>
          <version>${maven.help.plugin}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.sonar</groupId>
          <artifactId>sonar-maven3-plugin</artifactId>
          <version>${maven.sonar.plugin}</version>
          <dependencies>
            <dependency>
              <groupId>commons-io</groupId>
              <artifactId>commons-io</artifactId>
              <version>${commons.io.version}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>aspectj-maven-plugin</artifactId>
          <version>${maven.aspectj.plugin}</version>
          <dependencies>
            <dependency>
              <groupId>org.aspectj</groupId>
              <artifactId>aspectjrt</artifactId>
              <version>${aspectj.version}</version>
            </dependency>
            <dependency>
              <groupId>org.aspectj</groupId>
              <artifactId>aspectjtools</artifactId>
              <version>${aspectj.version}</version>
            </dependency>
          </dependencies>
          <executions>
            <execution>
              <goals>
                <goal>compile</goal>
                <goal>test-compile</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <outxml>true</outxml>
            <aspectLibraries>
              <aspectLibrary>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aspects</artifactId>
              </aspectLibrary>
            </aspectLibraries>
            <source>${java.version}</source>
            <target>${java.version}</target>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-plugin-plugin</artifactId>
          <version>${maven.plugin.plugin}</version>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-deploy-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-install-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-clean-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-eclipse-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>versions-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-help-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.codehaus.sonar</groupId>
        <artifactId>sonar-maven3-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
</project>