<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012, 2013 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</groupId>
    <artifactId>wtp-parent</artifactId>
    <version>3.6.0-SNAPSHOT</version>
    <relativePath>../wtp-parent</relativePath>
  </parent>

  <groupId>org.eclipse.webtools.common</groupId>
  <artifactId>org.eclipse.webtools.common.tests</artifactId>
  <version>3.6.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <properties>
    <tycho.scmUrl>scm:git:git://git.eclipse.org/gitroot/webtools-common/webtools.common.tests.git</tycho.scmUrl>
  </properties>

  <modules>
    <module>features/org.eclipse.wst.common_tests.feature</module>

    <module>tests/org.eclipse.wst.common.tests</module>
    <module>tests/org.eclipse.wst.common.tests.collector</module>
    <module>tests/org.eclipse.wst.common.tests.ui</module>
    <module>tests/org.eclipse.wst.common.tests.validation</module>
    <module>tests/org.eclipse.wst.common.tests.validation.guard</module>
    <module>tests/org.eclipse.wst.common.uriresolver.tests</module>
    <module>tests/org.eclipse.wst.internet.cache.tests</module>
  </modules>
</project>