<?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.releng</groupId>
  <artifactId>org.eclipse.webtools.releng</artifactId>
  <version>3.6.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <properties>
    <tycho.scmUrl>scm:git:git://git.eclipse.org/gitroot/webtools/webtools.releng.git</tycho.scmUrl>
  </properties>

  <modules>
    <module>org.eclipse.wtp.releng.versionchecker</module>
    <module>org.eclipse.wtp.releng.webupdatesite</module>

    <!-- docs -->
    <module>docs/org.eclipse.jst.doc.isv</module>
    <module>docs/org.eclipse.wst.doc.isv</module>

    <!-- assembly -->
    <module>assembly/features/org.apache.axis.feature</module>
    <!-- can't find org.apache.commons_logging plugin
    <module>assembly/features/org.apache.commons_logging.feature</module>
    -->
    <!-- can't find org.apache.jakarta_log4j plugin
    <module>assembly/features/org.apache.jakarta_log4j.feature</module>
    -->
    <module>assembly/features/org.apache.wsil4j.feature</module>
    <module>assembly/features/org.eclipse.jst.sdk</module>
    <module>assembly/features/org.eclipse.jst.tests</module>
    <module>assembly/features/org.eclipse.thirdparty.assembly</module>
    <module>assembly/features/org.eclipse.wst.sdk</module>
    <module>assembly/features/org.eclipse.wst.tests.feature</module>
    <!-- cannot find org.eclipse.wst.common_core.feature.patch.feature.group
    <module>assembly/features/org.eclipse.wtp.noship.assembly.feature</module>
    -->
    <!-- cannot find org.eclipse.wst.server_core.feature.patch.feature.group
    <module>assembly/features/org.eclipse.wtp.patch.assembly.feature</module>
    <module>assembly/features/org.eclipse.wtp.patch.tests.assembly.feature</module>
    -->
    <module>assembly/features/org.eclipse.wtp.requiredpreques</module>
    <module>assembly/features/org.eclipse.wtp.xml.dev.feature</module>
    <module>assembly/features/org.uddi4j.feature</module>
    <!-- cannot find org.wsdl4j
    <module>assembly/features/org.wsdl4j.feature</module>
    -->

    <module>assembly/plugins/org.eclipse.jst</module>
    <module>assembly/plugins/org.eclipse.wst</module>
    <module>assembly/plugins/org.eclipse.wtp.xml.dev</module>

    <!-- features -->
    <module>features/org.eclipse.wst.doc.isv.feature</module>
    <module>features/org.eclipse.wst.doc.user.feature</module>
    <module>features/org.eclipse.wtp.capabilities</module>
    <!-- cannot find org.eclipse.jpt.eclipselink.feature.feature.group
    <module>features/org.eclipse.wtp.jee.feature</module>
    -->
    <!--
    <module>features/org.eclipse.wtp.package.jee.feature</module>
    -->
    <module>features/org.eclipse.wtp.releng.fixups.feature</module>
    <module>features/org.eclipse.wtp.releng.tests.feature</module>
    <module>features/org.eclipse.wtp.releng.tools.feature</module>

    <!-- plugins -->
    <module>plugins/org.eclipse.wtp.capabilities</module>
    <module>plugins/org.eclipse.wtp.epp.package.capabilities</module>
    <module>plugins/org.eclipse.wtp.epp.package.jee.intro</module>
    <module>plugins/org.eclipse.wtp.feature.branding.template</module>
    <module>plugins/org.eclipse.wtp.jee</module>
    <module>plugins/org.eclipse.wtp.releng.fixups</module>
    <module>plugins/org.eclipse.wtp.releng.tools</module>

    <!-- tests -->
    <module>tests/org.eclipse.wtp.releng.tests</module>
  </modules>
</project>
