<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012, 2014 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:
    Thanh Ha (Eclipse Foundation) - initial implementation
    Mickael Istria (Red Hat Inc.) - 425796 intermediary pom for factorization
-->

<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>
    <groupId>org.eclipse.webtools.jsdt</groupId>
    <artifactId>tests</artifactId>
    <version>3.6.0-SNAPSHOT</version>
  </parent>

  <groupId>org.eclipse.webtools.jsdt.tests</groupId>
  <artifactId>org.eclipse.wst.jsdt.debug.core.tests</artifactId>
  <version>1.1.0-SNAPSHOT</version>
  <packaging>eclipse-test-plugin</packaging>
  
  <properties>
  	<testSuite>${project.artifactId}</testSuite>
  	<testClass>org.eclipse.wst.debug.core.tests.JavaScriptDebugTestSuite</testClass>
  </properties>
  
  <build>
  	<plugins>
  		<plugin>
  			<groupId>org.eclipse.tycho</groupId>
  			<artifactId>tycho-surefire-plugin</artifactId>
  			<configuration>
  				<useUIHarness>true</useUIHarness>
  				<useUIThread>true</useUIThread>
				<dependencies>
					<dependency>
						<type>p2-installable-unit</type>
						<artifactId>org.eclipse.equinox.event</artifactId>
						<version>0.0.0</version>
					</dependency>
				</dependencies>
  			</configuration>
  		</plugin>
  	</plugins>  
  </build>
</project>
