<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2015, 2016 Raymond Augé and others.
  All rights reserved. This program and the accompanying materials
  are made available under the terms of the Eclipse Distribution License v1.0
  which accompanies this distribution, and is available at
  http://www.eclipse.org/org/documents/edl-v10.php

  Contributors:
     Raymond Augé - initial implementation
-->
<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <artifactId>tests-pom</artifactId>
    <groupId>org.eclipse.equinox.bundles</groupId>
    <version>4.7.0-SNAPSHOT</version>
    <relativePath>../../tests-pom/</relativePath>
  </parent>
  <groupId>org.eclipse.equinox</groupId>
  <artifactId>org.eclipse.equinox.http.servlet.tests</artifactId>
  <version>1.0.100-SNAPSHOT</version>
  <packaging>eclipse-test-plugin</packaging>

  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-surefire-plugin</artifactId>
        <configuration>
          <testClass>org.eclipse.equinox.http.servlet.tests.*</testClass>
        </configuration>
      </plugin>

      <plugin>
       <groupId>org.eclipse.tycho</groupId>
       <artifactId>target-platform-configuration</artifactId>
       <configuration>
          <dependency-resolution>
             <extraRequirements>
                <requirement>
                   <type>eclipse-plugin</type>
                   <id>org.eclipse.equinox.ds</id>
                   <versionRange>1.4.0</versionRange>
                </requirement>
                <requirement>
                   <type>eclipse-plugin</type>
                   <id>org.eclipse.equinox.http.jetty</id>
                   <versionRange>3.4.0</versionRange>
                </requirement>
             </extraRequirements>
          </dependency-resolution>
       </configuration>
      </plugin>
    </plugins>
  </build>
</project>
