<?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.maven.mercury</groupId>
    <artifactId>mercury</artifactId>
    <version>1.0.0-alpha-4</version>
  </parent>

  <artifactId>mercury-it</artifactId>

  <name>Mercury Integration Tests</name>
  <description>Mercury Integration Tests</description>

  <properties>
    <maven.version>3.0-SNAPSHOT</maven.version>
    <spice.model.builder.version>1.2</spice.model.builder.version>
    
    <nexus.version>1.0.1</nexus.version>
    <nexus.client.version>1.1-M1</nexus.client.version>

    <nexus-security-enabled>false</nexus-security-enabled>

    <bundle-expanded-dir>target</bundle-expanded-dir>
    <config-expanded-dir>target/test-nexus-config</config-expanded-dir>

    <nexus-relative-basedir>${bundle-expanded-dir}/nexus-webapp-${nexus.version}</nexus-relative-basedir>
    <nexus-abs-basedir>${project.build.directory}/nexus-webapp-${nexus.version}</nexus-abs-basedir>

    <config-target-dir>${nexus-abs-basedir}/runtime/apps/nexus/conf</config-target-dir>
    <work-target-dir>${nexus-abs-basedir}/runtime/work</work-target-dir>
    <nexus-plexus-config-file>${nexus-abs-basedir}/conf/plexus.xml</nexus-plexus-config-file>

    <nexus-application-protocol>http</nexus-application-protocol>
    <nexus-application-host>localhost</nexus-application-host>
    <nexus-application-name>nexus</nexus-application-name>
    <nexus-application-port>8091</nexus-application-port>
    <jetty-application-host>0.0.0.0</jetty-application-host>

    <nexus-base-url>${nexus-application-protocol}://${nexus-application-host}:${nexus-application-port}/${nexus-application-name}/</nexus-base-url>

    <nexus-control-port>33002</nexus-control-port>
  </properties>

  <dependencies>

    <dependency>
      <groupId>org.sonatype.spice</groupId>
      <artifactId>model-builder</artifactId>
      <version>${spice.model.builder.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.maven.mercury</groupId>
      <artifactId>mercury-event</artifactId>
    </dependency>
    
    <dependency>
      <groupId>org.apache.maven.mercury</groupId>
      <artifactId>mercury-util</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.maven.mercury</groupId>
      <artifactId>mercury-logging</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.maven.mercury</groupId>
      <artifactId>mercury-repo-api</artifactId>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>commons-digester</groupId>
      <artifactId>commons-digester</artifactId>
    </dependency>
    
    <dependency>
      <groupId>org.apache.maven.mercury</groupId>
      <artifactId>mercury-md-shared</artifactId>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>org.apache.maven.mercury</groupId>
      <artifactId>mercury-crypto-basic</artifactId>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>bouncycastle</groupId>
      <artifactId>bcprov-jdk15</artifactId>
      <optional>false</optional>
    </dependency>
    
    <dependency>
      <groupId>bouncycastle</groupId>
      <artifactId>bcpg-jdk15</artifactId>
      <optional>false</optional>
    </dependency>

    <dependency>
      <groupId>org.apache.maven.mercury</groupId>
      <artifactId>mercury-repo-local-m2</artifactId>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>org.apache.maven.mercury</groupId>
      <artifactId>mercury-repo-local-m2</artifactId>
      <type>test-jar</type>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>org.apache.maven.mercury</groupId>
      <artifactId>mercury-repo-remote-m2</artifactId>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>org.apache.maven.mercury</groupId>
      <artifactId>mercury-repo-virtual</artifactId>
    </dependency>
    
    <dependency>
      <groupId>org.apache.maven.mercury</groupId>
      <artifactId>mercury-md-sat</artifactId>
    </dependency>

     <dependency>
      <groupId>org.apache.maven.mercury</groupId>
      <artifactId>mercury-transport-http</artifactId>
      <type>test-jar</type>
    </dependency>
    
    <dependency>
      <groupId>org.apache.maven.mercury</groupId>
      <artifactId>mercury-plexus</artifactId>
    </dependency>

    <dependency>
      <groupId>org.codehaus.plexus</groupId>
      <artifactId>plexus-container-default</artifactId>
    </dependency>
    
    <dependency>
      <groupId>org.codehaus.plexus</groupId>
      <artifactId>plexus-component-annotations</artifactId>
    </dependency>

    <dependency>
      <groupId>org.sonatype.appbooter</groupId>
      <artifactId>plexus-forked-app-booter</artifactId>
    </dependency>
  
    <dependency>
      <groupId>org.sonatype.nexus</groupId>
      <artifactId>nexus-rest-api</artifactId>
        <version>${nexus.client.version}</version>
      <exclusions>
        <exclusion>
          <groupId>org.codehaus.plexus</groupId>
          <artifactId>plexus-component-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.sonatype.nexus</groupId>
      <artifactId>nexus-rest-client-java</artifactId>
        <version>${nexus.client.version}</version>
    </dependency>
  
    <dependency>
      <groupId>org.sonatype.nexus</groupId>
      <artifactId>nexus-webapp</artifactId>
      <version>${nexus.version}</version>
      <classifier>bundle</classifier>
      <type>zip</type>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>jetty-client</artifactId>
      <classifier>assembly</classifier>
    </dependency>
    
    <dependency>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>servlet-api-2.5</artifactId>
    </dependency>
    
    <dependency>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>jetty-servlet-tester</artifactId>
    </dependency>
    
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-mercury</artifactId>
      <version>${maven.version}</version>
    </dependency>
  </dependencies>

  <build>
    <filters>
      <filter>src/test/filters/filter.txt</filter>
    </filters>

    <testResources>

      <testResource>
        <directory>src/test/resources</directory>
        <filtering>true</filtering>
        <excludes>
            <exclude>pgp/**</exclude>
            <exclude>repo/**</exclude>
        </excludes>
      </testResource>

      <testResource>
        <directory>src/test/resources</directory>
        <filtering>false</filtering>
        <includes>
            <include>pgp/**</include>
            <include>repo/**</include>
        </includes>
      </testResource>

      <testResource>
        <directory>src/test/nexus</directory>
        <filtering>false</filtering>
        <excludes>
            <exclude>work/conf/**</exclude>
        </excludes>
        <targetPath>../nexus-webapp-${nexus.version}/runtime</targetPath>
      </testResource>

      <testResource>
        <directory>src/test/nexus</directory>
        <filtering>true</filtering>
        <includes>
            <include>work/conf/**</include>
        </includes>
        <targetPath>../nexus-webapp-${nexus.version}/runtime</targetPath>
      </testResource>

      <testResource>
        <directory>src/test/nexus</directory>
        <filtering>false</filtering>
        <includes>
            <include>log4j.properties</include>
        </includes>
        <targetPath>../nexus-webapp-${nexus.version}/runtime/apps/nexus/conf</targetPath>
      </testResource>

      <testResource>
        <directory>src/test/nexus/conf</directory>
        <filtering>true</filtering>
        <targetPath>../nexus-webapp-${nexus.version}/conf</targetPath>
      </testResource>

    </testResources>

    <plugins>
      <plugin>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>2.0</version>
        <executions>
          <execution>
            <id>unpack-bundle</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>unpack-dependencies</goal>
            </goals>
            <configuration>
              <includeArtifactIds>nexus-webapp</includeArtifactIds>
              <outputDirectory>${bundle-expanded-dir}</outputDirectory>
              <excludes>**/conf/plexus.properties</excludes>
            </configuration>
          </execution>

        </executions>
      </plugin>
    </plugins>
  </build>
</project>
