<?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.javaee</groupId>
  <artifactId>org.eclipse.webtools.javaee</artifactId>
  <version>3.6.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <modules>
    <module>docs/org.eclipse.jst.j2ee.doc.user</module>
    <module>docs/org.eclipse.jst.j2ee.infopop</module>
    <module>docs/org.eclipse.jst.servlet.ui.infopop</module>
    <module>docs/org.eclipse.wst.web.ui.infopop</module>

    <module>features/org.eclipse.jst.doc.user.feature</module>
    <module>features/org.eclipse.jst.enterprise_core.feature</module>
    <module>features/org.eclipse.jst.enterprise_sdk.feature</module>
    <module>features/org.eclipse.jst.enterprise_ui.feature</module>
    <module>features/org.eclipse.jst.enterprise_userdoc.feature</module>
    <module>features/org.eclipse.jst.web_core.feature</module>
    <module>features/org.eclipse.jst.web_sdk.feature</module>
    <module>features/org.eclipse.jst.web_ui.feature</module>
    <module>features/org.eclipse.jst.web_userdoc.feature</module>

    <module>plugins/org.eclipse.jem</module>
    <module>plugins/org.eclipse.jem.beaninfo</module>
    <module>plugins/org.eclipse.jem.beaninfo.vm</module>
    <module>plugins/org.eclipse.jem.beaninfo.vm.common</module>
    <module>plugins/org.eclipse.jem.proxy</module>
    <module>plugins/org.eclipse.jem.workbench</module>
    <module>plugins/org.eclipse.jst.common.annotations.controller</module>
    <module>plugins/org.eclipse.jst.common.annotations.core</module>
    <module>plugins/org.eclipse.jst.common.annotations.ui</module>
    <module>plugins/org.eclipse.jst.common.frameworks</module>
    <module>plugins/org.eclipse.jst.j2ee</module>
    <module>plugins/org.eclipse.jst.j2ee.core</module>
    <module>plugins/org.eclipse.jst.j2ee.jca</module>
    <module>plugins/org.eclipse.jst.j2ee.jca.ui</module>
    <module>plugins/org.eclipse.jst.j2ee.navigator.ui</module>
    <module>plugins/org.eclipse.jst.j2ee.ui</module>
    <module>plugins/org.eclipse.jst.j2ee.web</module>
    <module>plugins/org.eclipse.jst.j2ee.webservice</module>
    <module>plugins/org.eclipse.jst.j2ee.webservice.ui</module>
    <module>plugins/org.eclipse.jst.jee</module>
    <module>plugins/org.eclipse.jst.jee.ui</module>
    <module>plugins/org.eclipse.jst.jee.web</module>
    <module>plugins/org.eclipse.jst.servlet.ui</module>
    <module>plugins/org.eclipse.wst.web</module>
    <module>plugins/org.eclipse.wst.web.ui</module>
    <module>plugins/org.eclipse.wtp.jee.capabilities</module>
  </modules>
</project>
