<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!--
  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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.eclipse</groupId>
    <artifactId>wtp-parent</artifactId>
    <version>3.10.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>
  </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>
      <layout>p2</layout>
      <url>${webtools-sourceediting-site}</url>
    </repository>
    <!-- org.eclipse.wst.web.ui requires org.eclipse.wst.jsdt.ui -->
    <repository>
      <id>webtools-jsdt-site</id>
      <layout>p2</layout>
      <url>${webtools-jsdt-site}</url>
    </repository>
    <!-- TODO: org.eclipse.jst.doc.user.feature requires org.eclipse.jst.ws.* so that feature should move into webservices (or releng) -->

    <!-- To reference parent pom -->
    <repository>
      <id>Webtools Repository - Releases</id>
      <name>Webtools Repository - Releases</name>
      <url>https://repo.eclipse.org/content/repositories/webtools-releases/</url>
    </repository>
    <repository>
      <id>Webtools Repository - Snapshots</id>
      <name>Webtools Repository - Snapshots</name>
      <url>https://repo.eclipse.org/content/repositories/webtools-snapshots/</url>
    </repository>
  </repositories>

  <modules>
    <module>docs</module>
    <module>features</module>
    <module>plugins</module>
    <module>tests</module>
    <module>site</module>
  </modules>
</project>
