<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <artifactId>mylyn-mylyn-parent</artifactId>
    <groupId>org.eclipse.mylyn</groupId>
    <version>3.6.0-SNAPSHOT</version>
  </parent>
  <groupId>org.eclipse.mylyn</groupId>
  <artifactId>org.eclipse.mylyn.tests.ui</artifactId>
  <version>3.6.0-SNAPSHOT</version>
  <packaging>eclipse-test-plugin</packaging>
  <properties>
    <mylyn-ui-test-suite>org.eclipse.mylyn.tests.ui.AllUiTests</mylyn-ui-test-suite>
    <mylyn-skip-ui-test>${maven.test.skip}</mylyn-skip-ui-test>
  </properties>
  <profiles>
    <profile>
      <id>heartbeat</id>
      <properties>
        <mylyn-skip-ui-test>true</mylyn-skip-ui-test>
      </properties>
    </profile>
    <profile>
      <id>incubator</id>
      <properties>
        <mylyn-skip-ui-test>true</mylyn-skip-ui-test>
      </properties>
    </profile>
  </profiles>
  <build>
    <plugins>
      <plugin>
        <groupId>org.sonatype.tycho</groupId>
        <artifactId>maven-osgi-test-plugin</artifactId>
        <version>${tycho-version}</version>
        <configuration>
          <skip>${mylyn-skip-ui-test}</skip> 
          <useUIHarness>true</useUIHarness>
          <useUIThread>false</useUIThread>
          <forkedProcessTimeoutInSeconds>7200</forkedProcessTimeoutInSeconds>
          <testSuite>org.eclipse.mylyn.tests.ui</testSuite>
          <testClass>${mylyn-ui-test-suite}</testClass>
          <argLine>-Xmx1024m -XX:MaxPermSize=256m -Djava.io.tmpdir=${project.build.directory} ${mylyn-test-args}</argLine>
          <appArgLine>${mylyn-test-app-args}</appArgLine>
          <dependencies>
            <dependency>
              <type>p2-installable-unit</type>
              <artifactId>org.eclipse.sdk.feature.group</artifactId>
              <version>${platform-version}</version>
            </dependency>
          </dependencies>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.sonatype.tycho</groupId>
        <artifactId>maven-osgi-source-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
</project>
