<?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
-->

<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.servertools</groupId>
    <artifactId>org.eclipse.webtools.servertools.tests</artifactId>
    <version>3.6.0-SNAPSHOT</version>
    <relativePath>../../</relativePath>
  </parent>

  <groupId>org.eclipse.webtools.servertools</groupId>
  <artifactId>org.eclipse.jst.server.generic.tests</artifactId>
  <version>1.0.200-SNAPSHOT</version>
  <packaging>eclipse-test-plugin</packaging>

  <properties>
    <testSuite>${project.artifactId}</testSuite>
    <testClass>org.eclipse.jst.server.generic.tests.AllGenericServerTests</testClass>
  </properties>

  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-surefire-plugin</artifactId>
        <version>${tycho.version}</version>
        <configuration>
          <dependencies>
            <dependency>
              <type>p2-installable-unit</type>
              <artifactId>org.eclipse.jst.server.generic.jonas</artifactId>
              <version>0.0.0</version>
            </dependency>
          </dependencies>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
