<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements.  See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership.  The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License.  You may obtain a copy of the License at
  ~
  ~   http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied.  See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License.
  -->
<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>
  <parent>
    <groupId>org.apache.archiva</groupId>
    <artifactId>archiva-web</artifactId>
    <version>2.2.2</version>
  </parent>
  <artifactId>archiva-webapp</artifactId>
  <packaging>war</packaging>

  <name>Archiva Web :: Javascript Application</name>

  <properties>
    <tomcatContextXml>${basedir}/src/test/tomcat/tomcat-context-archiva.xml</tomcatContextXml>
    <tomcatRunPort>9091</tomcatRunPort>
    <tomcatRunPath>/archiva</tomcatRunPath>
    <archiva.devMode>true</archiva.devMode>
    <archiva.javascriptLog>true</archiva.javascriptLog>
    <archiva.logMissingI18n>true</archiva.logMissingI18n>
    <archivaAppServerBase>${project.build.directory}/appserver-base</archivaAppServerBase>
    <archiva.baseRestUrl />
    <rest.admin.pwd />
    <test.useTomcat>false</test.useTomcat>
    <archiva.groupIndexTtl>30</archiva.groupIndexTtl>
    <archiva.sirona.configuration />
    <archiva.repositorySessionFactory.id>jcr</archiva.repositorySessionFactory.id>
    <cassandra.host>localhost</cassandra.host>
    <cassandra.port>9160</cassandra.port>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>generic-metadata-support</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>repository-statistics</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>problem-reports</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>audit</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-scheduler-repository</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-indexer</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-filelock</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-repository-admin-api</artifactId>
    </dependency>

    <dependency>
      <groupId>com.lmax</groupId>
      <artifactId>disruptor</artifactId>
    </dependency>

    <dependency>
      <groupId>org.eclipse.sisu</groupId>
      <artifactId>org.eclipse.sisu.plexus</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.sonatype.sisu</groupId>
          <artifactId>sisu-guice</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>com.google.inject</groupId>
      <artifactId>guice</artifactId>
      <classifier>no_aop</classifier>
    </dependency>

    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-repository-admin-default</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>metadata-repository-api</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>metadata-store-jcr</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>metadata-store-file</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>metadata-store-cassandra</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.jackrabbit</groupId>
      <artifactId>jackrabbit-jcr-commons</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.jackrabbit</groupId>
      <artifactId>jackrabbit-core</artifactId>
      <exclusions>
        <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.slf4j</groupId>
          <artifactId>jcl-over-slf4j</artifactId>
        </exclusion>
        <exclusion>
          <groupId>commons-dbcp</groupId>
          <artifactId>commons-dbcp</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>commons-configuration</groupId>
      <artifactId>commons-configuration</artifactId>
      <exclusions>
        <exclusion>
          <groupId>commons-beanutils</groupId>
          <artifactId>commons-beanutils-core</artifactId>
        </exclusion>
        <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>commons-digester</groupId>
      <artifactId>commons-digester</artifactId>
      <exclusions>
        <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>commons-beanutils</groupId>
      <artifactId>commons-beanutils</artifactId>
      <exclusions>
        <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.velocity</groupId>
      <artifactId>velocity</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.velocity</groupId>
      <artifactId>velocity-tools</artifactId>
      <version>1.3</version>
      <scope>runtime</scope>
      <exclusions>
        <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
        </exclusion>
        <exclusion>
          <groupId>velocity</groupId>
          <artifactId>velocity-dep</artifactId>
        </exclusion>
        <exclusion>
          <groupId>velocity</groupId>
          <artifactId>velocity</artifactId>
        </exclusion>
        <exclusion>
          <groupId>struts</groupId>
          <artifactId>struts</artifactId>
        </exclusion>
        <exclusion>
          <groupId>javax.servlet</groupId>
          <artifactId>servlet-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva</groupId>
      <!--  FIXME: temporary coupling to plugin, should be runtime -->
      <artifactId>maven2-repository</artifactId>
      <exclusions>
        <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.codehaus.plexus</groupId>
      <artifactId>plexus-slf4j-logging</artifactId>
      <scope>runtime</scope>
      <exclusions>
        <exclusion>
          <groupId>org.codehaus.plexus</groupId>
          <artifactId>plexus-component-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.codehaus.plexus</groupId>
      <artifactId>plexus-utils</artifactId>
    </dependency>
    <!-- normally not needed as we are 1.6 required
      but due to http://jira.codehaus.org/browse/MODELLO-266
      and we use stax reader produced by modello
      ibm jdk stax impl won't work with
     -->
    <dependency>
      <groupId>org.codehaus.woodstox</groupId>
      <artifactId>woodstox-core-asl</artifactId>
    </dependency>
    <!-- to help was8 to find dom parser impl -->
    <dependency>
      <groupId>xerces</groupId>
      <artifactId>xercesImpl</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.ant</groupId>
      <artifactId>ant</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.indexer</groupId>
      <artifactId>indexer-core</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.codehaus.plexus</groupId>
          <artifactId>plexus-container-default</artifactId>
        </exclusion>
        <exclusion>
          <groupId>classworlds</groupId>
          <artifactId>classworlds</artifactId>
        </exclusion>
        <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
        </exclusion>
        <exclusion>
          <groupId>velocity</groupId>
          <artifactId>velocity-dep</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.maven</groupId>
          <artifactId>maven-plugin-registry</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.maven</groupId>
          <artifactId>maven-settings</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.google.code.atinject</groupId>
          <artifactId>atinject</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-proxy</artifactId>
      <exclusions>
        <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.wagon</groupId>
      <artifactId>wagon-http</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.wagon</groupId>
      <artifactId>wagon-http-lightweight</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.wagon</groupId>
      <artifactId>wagon-file</artifactId>
      <scope>runtime</scope>
    </dependency>

    <dependency>
      <groupId>org.sonatype.aether</groupId>
      <artifactId>aether-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.sonatype.aether</groupId>
      <artifactId>aether-impl</artifactId>
    </dependency>
    <dependency>
      <groupId>org.sonatype.aether</groupId>
      <artifactId>aether-util</artifactId>
    </dependency>
    <dependency>
      <groupId>org.sonatype.aether</groupId>
      <artifactId>aether-connector-file</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <exclusions>
        <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpcore</artifactId>
      <exclusions>
        <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-repository-layer</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-xml-tools</artifactId>
      <exclusions>
        <exclusion>
          <groupId>xerces</groupId>
          <artifactId>xercesImpl</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-security</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-core-consumers</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-configuration</artifactId>
      <!-- TODO uncomment when repository admin will be finished
      <scope>runtime</scope>
      -->
    </dependency>
    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-metadata-consumer</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-lucene-consumers</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.lucene</groupId>
      <artifactId>lucene-core</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.lucene</groupId>
      <artifactId>lucene-queries</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.lucene</groupId>
      <artifactId>lucene-memory</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.lucene</groupId>
      <artifactId>lucene-highlighter</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>stage-repository-merge</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-signature-consumers</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-rss</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-rest-services</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-server</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-continuation</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-http</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-io</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-util</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-security</artifactId>
        </exclusion>
        <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.geronimo.specs</groupId>
          <artifactId>geronimo-servlet_3.0_spec</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.geronimo.specs</groupId>
          <artifactId>geronimo-javamail_1.4_spec</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.geronimo.specs</groupId>
          <artifactId>geronimo-servlet_2.5_spec</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.apache.archiva.redback.components.registry</groupId>
      <artifactId>spring-registry-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva.redback.components.registry</groupId>
      <artifactId>spring-registry-commons</artifactId>
      <exclusions>
        <exclusion>
          <groupId>ant</groupId>
          <artifactId>ant-optional</artifactId>
        </exclusion>
        <exclusion>
          <groupId>jdom</groupId>
          <artifactId>jdom</artifactId>
        </exclusion>
        <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-rest-api</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-server</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-continuation</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-http</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-io</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-util</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-security</artifactId>
        </exclusion>
        <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.geronimo.specs</groupId>
          <artifactId>geronimo-servlet_3.0_spec</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.geronimo.specs</groupId>
          <artifactId>geronimo-javamail_1.4_spec</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.geronimo.specs</groupId>
          <artifactId>geronimo-servlet_2.5_spec</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-web-common</artifactId>
      <exclusions>
        <exclusion>
          <groupId>javax.servlet</groupId>
          <artifactId>servlet-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-webdav</artifactId>
      <exclusions>
        <exclusion>
          <groupId>javax.servlet</groupId>
          <artifactId>servlet-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.slf4j</groupId>
          <artifactId>jcl-over-slf4j</artifactId>
        </exclusion>
      </exclusions>
    </dependency>


    <!-- sirona -->
    <!--
    FIXME for some reasons doesn't work with the jetty app see MRM-1792
    <dependency>
      <groupId>org.apache.sirona</groupId>
      <artifactId>sirona-core</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.sirona</groupId>
      <artifactId>sirona-jdbc</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.sirona</groupId>
      <artifactId>sirona-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.sirona</groupId>
      <artifactId>sirona-spring</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.sirona</groupId>
      <artifactId>sirona-reporting</artifactId>
      <classifier>classes</classifier>
    </dependency>
    -->
    <!--
    <dependency>
      <groupId>org.apache.sirona</groupId>
      <artifactId>sirona-ehcache-agent</artifactId>
    </dependency>


    <dependency>
      <groupId>org.apache.sirona</groupId>
      <artifactId>sirona-cassandra</artifactId>
    </dependency>
    -->

    <dependency>
      <groupId>cglib</groupId>
      <artifactId>cglib</artifactId>
    </dependency>

    <dependency>
      <groupId>jpox</groupId>
      <artifactId>jpox</artifactId>
      <exclusions>
        <exclusion>
          <groupId>javax.transaction</groupId>
          <artifactId>jta</artifactId>
        </exclusion>
        <exclusion>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>jpox</groupId>
      <artifactId>jpox-ehcache</artifactId>
      <exclusions>
        <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
        </exclusion>
        <exclusion>
          <groupId>ehcache</groupId>
          <artifactId>ehcache</artifactId>
        </exclusion>
        <exclusion>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.apache.archiva.redback.components.cache</groupId>
      <artifactId>spring-cache-ehcache</artifactId>
      <exclusions>
        <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>net.sf.ehcache</groupId>
      <artifactId>ehcache</artifactId>
      <exclusions>
        <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.apache.archiva.redback.components</groupId>
      <artifactId>spring-quartz</artifactId>
    </dependency>
    <dependency>
      <groupId>org.quartz-scheduler</groupId>
      <artifactId>quartz</artifactId>
      <exclusions>
        <exclusion>
          <groupId>c3p0</groupId>
          <artifactId>c3p0</artifactId>
        </exclusion>
        <exclusion>
          <groupId>javax.transaction</groupId>
          <artifactId>jta</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.apache.archiva.redback</groupId>
      <artifactId>redback-rbac-ldap</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.archiva.redback</groupId>
      <artifactId>redback-rest-services</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva.redback</groupId>
      <artifactId>redback-common-integrations</artifactId>
      <exclusions>
        <exclusion>
          <groupId>stax</groupId>
          <artifactId>stax-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva.redback</groupId>
      <artifactId>redback-integrations-security</artifactId>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>jcl-over-slf4j</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-ext</artifactId>
    </dependency>
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-1.2-api</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-jcl</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-rt-frontend-jaxrs</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-rt-rs-extension-providers</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
    </dependency>

    <dependency>
      <groupId>org.jsoup</groupId>
      <artifactId>jsoup</artifactId>
    </dependency>

    <!-- we need to force xalan version for IBM servers.. MRM-1803 -->
    <dependency>
      <groupId>xalan</groupId>
      <artifactId>xalan</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-test-mocks</artifactId>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.archiva.redback</groupId>
      <artifactId>redback-rest-services</artifactId>
      <classifier>tests</classifier>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>javax.mail</groupId>
      <artifactId>mail</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-test-utils</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-simple</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.springframework</groupId>
          <artifactId>spring-test</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <scope>test</scope>
    </dependency>


  </dependencies>

  <build>

    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
    </resources>

    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <configuration>
            <excludes>
              <exclude>nbactions.xml</exclude>  
              <exclude>src/main/webapp/css/*.css</exclude>
              <exclude>src/main/webapp/js/*.js</exclude>
              <exclude>src/site/resources/css/*.css</exclude>
              <exclude>src/site/resources/js/*.js</exclude>
              <exclude>src/test/repositories/test-repo/**</exclude>
              <exclude>src/main/resources/META-INF/services/*</exclude>
              <exclude>src/main/resources/META-INF/cxf/*</exclude>
            </excludes>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>

      <!-- commented as not needed now
      <plugin>
        <groupId>com.samaxes.maven</groupId>
        <artifactId>maven-minify-plugin</artifactId>
        <version>1.3.5</version>
        <executions>
          <execution>
            <id>startup-minify</id>
            <phase>generate-resources</phase>
            <configuration>
              <webappSourceDir>${basedir}/src/main/webapp</webappSourceDir>
              <cssSourceDir>css</cssSourceDir>
              <cssSourceFiles>
                <cssSourceFile>jquery-ui-1.8.16.custom.css</cssSourceFile>
                <cssSourceFile>jquery.ui.1.8.16.ie.css</cssSourceFile>
                <cssSourceFile>bootstrap.2.0.2.css</cssSourceFile>
                <cssSourceFile>archiva.css</cssSourceFile>
              </cssSourceFiles>
              <cssFinalFile>apache-archiva-${project.version}.css</cssFinalFile>
              <jsSourceDir>js</jsSourceDir>
              <jsSourceFiles>
                <jsSourceFile>jquery-1.7.2.js</jsSourceFile>
                <jsSourceFile>lab.js</jsSourceFile>
                <jsSourceFile>require.1.0.1.js</jsSourceFile>
              </jsSourceFiles>
              <jsFinalFile>apache-archiva-startup-${project.version}.js</jsFinalFile>
            </configuration>
            <goals>
              <goal>minify</goal>
            </goals>
          </execution>
          <execution>
            <id>main-minify</id>
            <phase>generate-resources</phase>
            <configuration>
              <webappSourceDir>${basedir}/src/main/webapp</webappSourceDir>
              <jsSourceDir>js</jsSourceDir>
              <jsSourceFiles>
                <jsSourceFile>jquery.tmpl.js</jsSourceFile>
                <jsSourceFile>archiva/utils.js</jsSourceFile>
                <jsSourceFile>jquery.i18n.properties-1.0.9.js</jsSourceFile>
                <jsSourceFile>archiva/i18nload.js</jsSourceFile>
                <jsSourceFile>jquery.cookie.1.0.0.js</jsSourceFile>
                <jsSourceFile>knockout-debug.js</jsSourceFile>
                <jsSourceFile>jquery-ui-1.8.16.custom.min.js</jsSourceFile>
                <jsSourceFile>jquery.validate.js</jsSourceFile>
                <jsSourceFile>jquery.json-2.3.min.js</jsSourceFile>
                <jsSourceFile>archiva/main-tmpl.js</jsSourceFile>
                <jsSourceFile>archiva/repositories.js</jsSourceFile>
                <jsSourceFile>archiva/network-proxies.js</jsSourceFile>
                <jsSourceFile>archiva/proxy-connectors.js</jsSourceFile>
                <jsSourceFile>redback/operation.js</jsSourceFile>
                <jsSourceFile>redback/redback-tmpl.js</jsSourceFile>
                <jsSourceFile>bootstrap.2.0.2.js</jsSourceFile>
                <jsSourceFile>knockout.simpleGrid.js</jsSourceFile>
                <jsSourceFile>redback/user.js</jsSourceFile>
                <jsSourceFile>redback/users.js</jsSourceFile>
                <jsSourceFile>redback/redback.js</jsSourceFile>
                <jsSourceFile>redback/register.js</jsSourceFile>
                <jsSourceFile>redback/permission.js</jsSourceFile>
                <jsSourceFile>redback/resource.js</jsSourceFile>
                <jsSourceFile>redback/roles.js</jsSourceFile>
                <jsSourceFile>archiva/main.js</jsSourceFile>
              </jsSourceFiles>
              <jsFinalFile>apache-archiva-main-${project.version}.js</jsFinalFile>
            </configuration>
            <goals>
              <goal>minify</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      -->
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <configuration>
          <port>${tomcatRunPort}</port>
          <path>${tomcatRunPath}</path>
          <contextFile>${tomcatContextXml}</contextFile>
          <useTestClasspath>false</useTestClasspath>

          <systemProperties>
            <plexus.home>${archivaAppServerBase}</plexus.home>
            <appserver.base>${archivaAppServerBase}</appserver.base>
            <appserver.home>${archivaAppServerBase}</appserver.home>
            <derby.system.home>${archivaAppServerBase}/logs</derby.system.home>
            <!-- remove admin auto creation that must be tested too -->
            <!--redback.admin.creation.file>${basedir}/target/auto-admin-creation.properties</redback.admin.creation.file-->
            <java.io.tmpdir>${project.build.directory}</java.io.tmpdir>
            <archiva.user.configFileName>${archivaAppServerBase}/conf/archiva.xml</archiva.user.configFileName>
            <archiva.devMode>${archiva.devMode}</archiva.devMode>
            <archiva.javascriptLog>${archiva.javascriptLog}</archiva.javascriptLog>
            <archiva.logMissingI18n>${archiva.logMissingI18n}</archiva.logMissingI18n>
            <cassandra.host>${cassandra.host}</cassandra.host>
            <cassandra.port>${cassandra.port}</cassandra.port>
            <archiva.repositorySessionFactory.id>${archiva.repositorySessionFactory.id}</archiva.repositorySessionFactory.id>
            <org.apache.sirona.configuration.sirona.properties>${archiva.sirona.configuration}</org.apache.sirona.configuration.sirona.properties>
            <AsyncLoggerConfig.WaitStrategy>Block</AsyncLoggerConfig.WaitStrategy>
            <AsyncLogger.WaitStrategy>Block</AsyncLogger.WaitStrategy>
          </systemProperties>
          <additionalClasspathDirs>
            <additionalClasspathDir>${basedir}/src/test/tomcat</additionalClasspathDir>
          </additionalClasspathDirs>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.apache.derby</groupId>
            <artifactId>derby</artifactId>
            <version>${derbyVersion}</version>
          </dependency>
          <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>${javaxMailVersion}</version>
          </dependency>
        </dependencies>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <phase>generate-resources</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <mkdir dir="${project.build.directory}/appserver-base/conf" />
              </target>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <systemPropertyVariables>
            <appserver.base>${project.build.directory}/appserver-base</appserver.base>
            <plexus.home>${project.build.directory}/appserver-base</plexus.home>
            <derby.system.home>${project.build.directory}/appserver-base</derby.system.home>
            <archiva.baseRestUrl>${archiva.baseRestUrl}</archiva.baseRestUrl>
            <rest.admin.pwd>${rest.admin.pwd}</rest.admin.pwd>
            <test.useTomcat>${test.useTomcat}</test.useTomcat>
            <redback.jdbc.url>${redbackTestJdbcUrl}</redback.jdbc.url>
            <redback.jdbc.driver.name>${redbackTestJdbcDriver}</redback.jdbc.driver.name>
          </systemPropertyVariables>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
          <archive>
            <manifest>
              <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
              <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
            </manifest>
          </archive>
          <webResources>
            <webResource>
              <directory>.</directory>
              <includes>
                <include>LICENSE</include>
              </includes>
            </webResource>
            <webResource>
              <directory>${project.build.directory}/maven-shared-archive-resources/META-INF/</directory>
              <includes>
                <include>NOTICE</include>
              </includes>
            </webResource>
          </webResources>
        </configuration>
      </plugin>

    </plugins>
  </build>

  <profiles>
    <profile>
      <id>cassandra</id>
      <properties>
        <archiva.repositorySessionFactory.id>cassandra</archiva.repositorySessionFactory.id>
      </properties>
    </profile>
  </profiles>

</project>
