<?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
    Nick Boldt (Red Hat Inc.) - support for Tycho 1.0 and upstream component builds
-->

<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.javaee</groupId>
  <artifactId>org.eclipse.webtools.javaee</artifactId>
  <version>3.6.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <properties>
    <tycho.scmUrl>scm:git:git://git.eclipse.org/gitroot/jeetools/webtools.javaee.git</tycho.scmUrl>
    <tycho.version>1.0.0</tycho.version>
    <tycho-extras.version>1.0.0</tycho-extras.version>
  </properties>

  <repositories>
    <repository>
      <id>webtools-common-site</id>
      <layout>p2</layout>
      <url>${webtools-common-site}</url>
    </repository>
    <!-- org.eclipse.jst.doc.user.feature requires org.eclipse.jst.server.ui.* -->
    <repository>
      <id>webtools-servertools-site</id>
      <layout>p2</layout>
      <url>${webtools-servertools-site}</url>
    </repository>
    <!-- org.eclipse.jst.doc.user.feature requires org.eclipse.jst.jsp.* -->
    <repository>
      <id>webtools-sourceediting-site</id>
    <module>docs</module>
    <module>features</module>
    <module>plugins</module>
    <module>tests</module>
    <module>site</module>
  </modules>
</project>
