<?xml version="1.0" encoding="UTF-8"?>
<!--
    Copyright (c) 2019 Mia-Software and others.
   
    This program and the accompanying materials
    are made available under the terms of the Eclipse Public License 2.0
    which accompanies this distribution, and is available at
    https://www.eclipse.org/legal/epl-2.0/
   
    SPDX-License-Identifier: EPL-2.0
   
    Contributors:
        Unknown - initial API and implementation
 -->

<project xmlns:m2="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://maven.apache.org/POM/4.0.0"
         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>
    <groupId>org.eclipse.modisco</groupId>
    <artifactId>org.eclipse.modisco.releng.tycho</artifactId>
    <version>1.5.1-SNAPSHOT</version>
    <relativePath>../org.eclipse.modisco.releng.tycho</relativePath>
  </parent>
  <groupId>org.eclipse.modisco</groupId>
  <artifactId>org.eclipse.modisco.jee.webapp.discoverer.tests</artifactId>
  <version>1.5.0-SNAPSHOT</version>
  <packaging>eclipse-test-plugin</packaging>
   <build>
      <plugins>
         <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <configuration>
               <dependency-resolution>
                  <extraRequirements xmlns="">
                     <requirement>
                        <type>p2-installable-unit</type>
                        <id>org.eclipse.modisco.sdk.feature.feature.group</id>
                        <versionRange>0.0.0</versionRange>
                     </requirement>
                     <requirement>
                        <type>eclipse-plugin</type>
                        <id>org.eclipse.osgi.compatibility.state</id>
                        <versionRange>[1.1.0,2.0.0)</versionRange>
                     </requirement>
                  </extraRequirements>
               </dependency-resolution>
            </configuration>
            <executions>
               <execution>
                  <id>default</id>
                  <goals>
                     <goal>target-platform</goal>
                  </goals>
                  <phase>compile</phase>
               </execution>
            </executions>
         </plugin>
         <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-surefire-plugin</artifactId>
            <configuration>
               <skipTests>${SKIP_TESTS}</skipTests>
               <testFailureIgnore>true</testFailureIgnore>
               <failIfNoTests>false</failIfNoTests>
               <forkedProcessTimeoutInSeconds>1800</forkedProcessTimeoutInSeconds>
               <argLine>-DoutputEncoding=UTF-8</argLine>
               <application>org.eclipse.ui.ide.workbench</application>
               <reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
               <showEclipseLog>true</showEclipseLog>
            </configuration>
            <executions>
               <execution>
                  <id>default-test</id>
                  <configuration>
                     <includes>
                        <include>**/AllTestsNotInUIThread.class</include>
                     </includes>
                     <useUIThread>false</useUIThread>
                     <useUIHarness>true</useUIHarness>
                  </configuration>
                  <goals>
                     <goal>test</goal>
                  </goals>
                  <phase>test</phase>
               </execution>
               <execution>
                  <id>AllUITests</id>
                  <configuration>
                     <includes>
                        <include>**/AllTestsInUIThread.class</include>
                     </includes>
                     <useUIThread>true</useUIThread>
                     <useUIHarness>true</useUIHarness>
                  </configuration>
                  <goals>
                     <goal>test</goal>
                  </goals>
                  <phase>test</phase>
               </execution>
            </executions>
         </plugin>
      </plugins>
   </build>
</project>
