<?xml version="1.0"?>
<!--
  ~ 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.7</version>
  </parent>

  <artifactId>archiva-webdav</artifactId>
  <packaging>bundle</packaging>
  <name>Archiva Web :: WebDAV</name>

  <properties>
    <webdav.forkMode>once</webdav.forkMode>
    <!--
    <redbackTestJdbcUrl>jdbc:derby:memory:users-test;create=true</redbackTestJdbcUrl>
    <redbackTestJdbcDriver>org.apache.derby.jdbc.EmbeddedDriver</redbackTestJdbcDriver>
    -->
    <redbackTestJdbcUrl>jdbc:hsqldb:mem:redback-test</redbackTestJdbcUrl>
    <redbackTestJdbcDriver>org.hsqldb.jdbcDriver</redbackTestJdbcDriver>
    <webdav.argLine>-Xmx512m -Xms512m -client</webdav.argLine>
  </properties>

  <dependencies>
    <!-- TODO: remove this hardcoding through a better event mechanism -->
    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>audit</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-repository-scanner</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-configuration</artifactId>
      <!-- should be runtime but currently not possible due ConfigurationListener
      <scope>runtime</scope>
      -->
    </dependency>
    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-repository-admin-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-repository-layer</artifactId>
      <exclusions>
        <exclusion>
          <groupId>log4j</groupId>
          <artifactId>log4j</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.archiva</groupId>
      <artifactId>archiva-security</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.jackrabbit</groupId>
      <artifactId>jackrabbit-webdav</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.slf4j</groupId>
          <artifactId>jcl-over-slf4j</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>joda-time</groupId>
      <artifactId>joda-time</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-model</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-keys-memory</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva.redback</groupId>
      <artifactId>redback-rbac-memory</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva.redback</groupId>
      <artifactId>redback-users-memory</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>xmlunit</groupId>
      <artifactId>xmlunit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-server</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-plus</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-simple</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.hsqldb</groupId>
      <artifactId>hsqldb</artifactId>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>net.sourceforge.htmlunit</groupId>
      <artifactId>htmlunit</artifactId>
      <version>2.13</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>xerces</groupId>
      <artifactId>xercesImpl</artifactId>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.maven.wagon</groupId>
      <artifactId>wagon-http</artifactId>
      <scope>test</scope>
      <exclusions>
        <!-- This triggers httpunit to use it instead, but it doesn't work -->
        <exclusion>
          <groupId>nekohtml</groupId>
          <artifactId>nekohtml</artifactId>
        </exclusion>
        <exclusion>
          <groupId>nekohtml</groupId>
          <artifactId>xercesMinimal</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.wagon</groupId>
      <artifactId>wagon-http-lightweight</artifactId>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-test-utils</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>  
    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-repository-admin-default</artifactId>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva</groupId>
      <artifactId>archiva-mock</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.archiva.redback</groupId>
      <artifactId>redback-common-test-resources</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.assertj</groupId>
      <artifactId>assertj-core</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <configuration>
          <instructions>
            <Bundle-SymbolicName>org.apache.archiva.webdav</Bundle-SymbolicName>
            <Bundle-Version>${project.version}</Bundle-Version>
            <Export-Package>
              org.apache.archiva.webdav*;version=${project.version};-split-package:=merge-first
            </Export-Package>
            <Import-Package>
              javax.annotation,
              javax.inject,
              javax.servlet*,
              org.apache.archiva.admin.model*;version=${project.version},
              org.apache.archiva.maven2.metadata*;version=${project.version},
              org.apache.archiva.xml*;version=${project.version},
              org.apache.archiva.audit;version=${project.version},
              org.apache.archiva.common.plexusbridge;version=${project.version},
              org.apache.archiva.common.utils;version=${project.version},
              org.apache.archiva.configuration;version=${project.version},
              org.apache.archiva.indexer.*;version=${project.version},
              org.apache.archiva.model;version=${project.version},
              org.apache.archiva.policies;version=${project.version},
              org.apache.archiva.proxy;version=${project.version},
              org.apache.archiva.repository*;version=${project.version},
              org.apache.archiva.scheduler*;version=${project.version},
              org.apache.archiva.security;version=${project.version},
              org.apache.archiva.proxy.model;version=${project.version},
              org.apache.archiva.metadata.repository.storage;version=${project.version},
              org.apache.commons.io;version="[1.4,2)",
              org.apache.commons.lang;version="[2.4,3)",
              org.apache.jackrabbit.util;version="[1,3)",
              org.apache.jackrabbit.webdav*;version="[1,3)",
              org.joda.time*;version="[1.5,2)",
              org.springframework*;version="[3,4)",
              org.apache.maven.index*,
              org.apache.maven.model*,
              org.codehaus.plexus.digest,
              org.apache.archiva.redback.*,
              org.apache.archiva.redback.components.taskqueue,
              org.codehaus.plexus.util*,
              org.apache.archiva.common.filelock,
              org.codehaus.redback.integration.filter.authentication,
              org.slf4j;resolution:=optional,
              com.google.common.io
            </Import-Package>
          </instructions>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <argLine>${webdav.argLine} ${jacocoagent}</argLine>
          <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>
            <test.resources.path>${project.build.testOutputDirectory}</test.resources.path>
            <archiva.user.configFileName>${project.build.testOutputDirectory}/repository-archiva.xml</archiva.user.configFileName>
            <redback.jdbc.url>${redbackTestJdbcUrl}</redback.jdbc.url>
            <redback.jdbc.driver.name>${redbackTestJdbcDriver}</redback.jdbc.driver.name>
            <archiva.repositorySessionFactory.id>mock</archiva.repositorySessionFactory.id>
          </systemPropertyVariables>
          <forkMode>${webdav.forkMode}</forkMode>
        </configuration>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <configuration>
            <excludes>
              <exclude>src/main/resources/org/apache/archiva/webdav/util/mime.types</exclude>
              <exclude>src/test/resources/archiva-mime-types.txt</exclude>
              <exclude>src/test/resources/artifact.jar.sha1</exclude>
              <exclude>src/test/resources/maven-metadata.xml</exclude>
              <exclude>nbactions.xml</exclude>
            </excludes>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>
