<?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>org.eclipse.mylyn.incubator-parent</artifactId>
    <groupId>org.eclipse.mylyn.incubator</groupId>
    <version>3.7.0-SNAPSHOT</version>
  </parent>
  <artifactId>org.eclipse.mylyn.tests.ui</artifactId>
  <version>3.7.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.eclipse.tycho</groupId>
        <artifactId>tycho-surefire-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} ${test.vmargs}</argLine>
          <appArgLine>${test.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.eclipse.tycho</groupId>
        <artifactId>tycho-source-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
</project>
