<?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>
    <groupId>org.eclipse.emf.ecoretools</groupId>
    <artifactId>emf.ecoretools-parent</artifactId>
    <version>2.0.0-SNAPSHOT</version>
    <relativePath>../org.eclipse.emf.ecoretools.build</relativePath>
  </parent>
  <groupId>org.eclipse.emf.ecoretools</groupId>
  <artifactId>org.eclipse.emf.ecoretools.design.tests</artifactId>
  <version>2.0.0-SNAPSHOT</version>
  <packaging>eclipse-test-plugin</packaging>
  

  <properties>
    <local-p2-site>file:/${basedir}/../org.eclipse.emf.ecoretools.update/target/repository</local-p2-site>
    <ui.test.vmargs.all>-Xmx512m -XX:MaxPermSize=256m</ui.test.vmargs.all>
    <ui.test.vmargs.mac>-XstartOnFirstThread</ui.test.vmargs.mac>
    <ui.test.vmargs>${ui.test.vmargs.all}</ui.test.vmargs>
  </properties>
    
 <repositories>
 <!--
    <repository>
      <id>local-p2</id>
      <layout>p2</layout>
      <url>${local-p2-site}</url>
    </repository>
    -->
  </repositories>
      
  <build>
   <plugins>
 	<plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-surefire-plugin</artifactId>
        <version>${tycho-version}</version>
        <configuration>
           <includes>
            <include>org/eclipse/emf/ecoretools/design/tests/InterpretedExpressionTests.class</include>
            <include>org/eclipse/emf/ecoretools/design/tests/TypeNameTests.class</include>
          </includes>
          <useUIHarness>true</useUIHarness>
          <useUIThread>true</useUIThread>
          <product>org.eclipse.e4.ide.application.product</product>
          <argLine>${ui.test.vmargs}</argLine>
          <application>org.eclipse.ui.ide.workbench</application>
          <dependencies>
            <dependency>
              <type>p2-installable-unit</type>
              <artifactId>org.eclipse.pde.feature.group</artifactId>
              <version>${platform-version}</version>
            </dependency>
            <dependency>
              <type>eclipse-feature</type>
              <artifactId>org.eclipse.emf.ecoretools</artifactId>
              <version>0.0.0</version>
            </dependency>
            <dependency>
              <type>eclipse-feature</type>
              <artifactId>org.eclipse.emf.ecoretools.design</artifactId>
              <version>0.0.0</version>
            </dependency>
            <dependency>
              <type>p2-installable-unit</type>
              <artifactId>org.eclipse.cvs.feature.group</artifactId>
              <version>[1.1.2,2.0.0)</version>
            </dependency>
          </dependencies>
        </configuration>
    </plugin>         
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-source-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
</project>
