<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012, 2017 Eclipse Foundation 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:
     Igor Fedorenko - 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>eclipse.platform.ua</groupId>
    <version>4.19.0-SNAPSHOT</version>
    <relativePath>../tests-pom/</relativePath>
  </parent>
  <groupId>org.eclipse.ua</groupId>
  <artifactId>org.eclipse.ua.tests.doc</artifactId>
  <version>1.1.0-SNAPSHOT</version>
  <packaging>eclipse-test-plugin</packaging>

  <properties>
    <testSuite>${project.artifactId}</testSuite>
    <testClass>org.eclipse.ua.tests.doc.AllTests</testClass>
  </properties>

  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>target-platform-configuration</artifactId>
        <configuration>
          <dependency-resolution>
	          <extraRequirements>
	            <requirement>
	              <type>eclipse-feature</type>
	              <id>org.eclipse.jdt</id>
	              <versionRange>0.0.0</versionRange>
	            </requirement>
	            <requirement>
	              <type>eclipse-feature</type>
	              <id>org.eclipse.pde</id>
	              <versionRange>0.0.0</versionRange>
	            </requirement>
	            <requirement>
	              <type>eclipse-feature</type>
	              <id>org.eclipse.equinox.core.feature</id>
	              <versionRange>0.0.0</versionRange>
	            </requirement>
	            <requirement>
	              <type>eclipse-feature</type>
	              <id>org.eclipse.equinox.server.jetty</id>
	              <versionRange>0.0.0</versionRange>
	            </requirement>
	            <requirement>
	              <type>eclipse-plugin</type>
	              <id>org.eclipse.help.ui</id>
	              <versionRange>0.0.0</versionRange>
	            </requirement>
	            <requirement>
	              <type>eclipse-plugin</type>
	              <id>org.eclipse.ui.monitoring</id>
	              <versionRange>0.0.0</versionRange>
	            </requirement>
	            <requirement>
	              <type>eclipse-plugin</type>
	              <id>org.eclipse.unittest.ui</id>
	              <versionRange>0.0.0</versionRange>
	            </requirement>
	            <requirement>
	              <type>eclipse-plugin</type>
	              <id>org.eclipse.ui.browser</id>
	              <versionRange>0.0.0</versionRange>
	            </requirement>
	            <requirement>
	              <type>eclipse-plugin</type>
	              <id>org.eclipse.ui.intro.quicklinks</id>
	              <versionRange>0.0.0</versionRange>
	            </requirement>
	            <requirement>
	              <type>eclipse-plugin</type>
	              <id>org.eclipse.ui.intro.universal</id>
	              <versionRange>0.0.0</versionRange>
	            </requirement>
	            <requirement>
	              <type>eclipse-plugin</type>
	              <id>org.eclipse.jsch.ui</id>
	              <versionRange>0.0.0</versionRange>
	            </requirement>
	             <requirement>
	              <type>eclipse-plugin</type>
	              <id>org.eclipse.core.databinding.beans</id>
	              <versionRange>0.0.0</versionRange>
	            </requirement>
	            <requirement>
	              <type>eclipse-plugin</type>
	              <id>org.eclipse.jdt.doc.isv</id>
	              <versionRange>0.0.0</versionRange>
	            </requirement>
	            <requirement>
	              <type>eclipse-plugin</type>
	              <id>org.eclipse.jdt.doc.user</id>
	              <versionRange>0.0.0</versionRange>
	            </requirement>
	            <requirement>
	              <type>eclipse-plugin</type>
	              <id>org.eclipse.pde.doc.user</id>
	              <versionRange>0.0.0</versionRange>
	            </requirement>
	            <requirement>
	              <type>eclipse-plugin</type>
	              <id>org.eclipse.platform.doc.isv</id>
	              <versionRange>0.0.0</versionRange>
	            </requirement>
	            <requirement>
	              <type>eclipse-plugin</type>
	              <id>org.eclipse.platform.doc.user</id>
	              <versionRange>0.0.0</versionRange>
	            </requirement>
	          </extraRequirements>
	      </dependency-resolution>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
