<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012, 2016 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
     Mickael Istria (Red Hat Inc.) - 486480 Allow tests to run with surefire
-->
<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>eclipse.platform.runtime.tests</artifactId>
    <groupId>eclipse.platform.runtime</groupId>
    <version>4.12.0-SNAPSHOT</version>
  </parent>
  <groupId>org.eclipse.core</groupId>
  <artifactId>org.eclipse.core.expressions.tests</artifactId>
  <version>3.5.300-SNAPSHOT</version>
  <packaging>eclipse-test-plugin</packaging>

  <properties>
  	<testSuite>${project.artifactId}</testSuite>
  	<testClass>org.eclipse.core.internal.expressions.tests.AllTests</testClass>
  </properties>
  
  <build>
  	<plugins>
  		<plugin>
  			<groupId>org.eclipse.tycho</groupId>
  			<artifactId>tycho-surefire-plugin</artifactId>
  			<version>${tycho.version}</version>
  			<configuration>
  				<useUIHarness>true</useUIHarness>
  				<useUIThread>true</useUIThread>
  			</configuration>
  		</plugin>
  	</plugins>
  </build>
</project>
