<?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.dali</groupId>
  <artifactId>org.eclipse.webtools.dali</artifactId>
  <version>3.4.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <properties>
    <tycho.scmUrl>scm:git:git://git.eclipse.org/gitroot/dali/webtools.dali.git</tycho.scmUrl>
  </properties>

  <modules>
    <!-- assembly -->
    <module>assembly/features/org.eclipse.jpt.assembly.feature</module>
    <module>assembly/features/org.eclipse.jpt_sdk.assembly.feature</module>
    <module>assembly/features/org.eclipse.jpt.tests.assembly.feature</module>

    <!-- common -->
    <module>common/features/org.eclipse.jpt.common.eclipselink.feature</module>
    <module>common/features/org.eclipse.jpt.common.eclipselink_sdk.feature</module>
    <module>common/features/org.eclipse.jpt.common.feature</module>
    <module>common/features/org.eclipse.jpt.common_sdk.feature</module>
    <module>common/features/org.eclipse.jpt.common.tests.feature</module>

    <module>common/plugins/org.eclipse.jpt.common.branding</module>
    <module>common/plugins/org.eclipse.jpt.common.core</module>
    <module>common/plugins/org.eclipse.jpt.common.eclipselink.branding</module>
    <module>common/plugins/org.eclipse.jpt.common.eclipselink.core</module>
    <module>common/plugins/org.eclipse.jpt.common.ui</module>
    <module>common/plugins/org.eclipse.jpt.common.utility</module>

    <module>common/tests/org.eclipse.jpt.common.core.tests</module>
    <module>common/tests/org.eclipse.jpt.common.utility.tests</module>

    <!-- jaxb -->
    <module>jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature</module>
    <module>jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature</module>
    <module>jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature</module>
    <module>jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature</module>
    <module>jaxb/features/org.eclipse.jpt.jaxb.eclipselink.tests.feature</module>
    <module>jaxb/features/org.eclipse.jpt.jaxb.feature</module>
    <module>jaxb/features/org.eclipse.jpt.jaxb_sdk.feature</module>
    <module>jaxb/features/org.eclipse.jpt.jaxb.tests.feature</module>

    <module>jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding</module>
    <module>jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen</module>
    <module>jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui</module>
    <module>jaxb/plugins/org.eclipse.jpt.jaxb.branding</module>
    <module>jaxb/plugins/org.eclipse.jpt.jaxb.core</module>
    <module>jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen</module>
    <module>jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding</module>
    <module>jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core</module>
    <module>jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen</module>
    <module>jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.ui</module>
    <module>jaxb/plugins/org.eclipse.jpt.jaxb.ui</module>

    <module>jaxb/tests/org.eclipse.jpt.jaxb.core.tests</module>
    <module>jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests</module>

    <!-- jpa -->
    <module>jpa/features/org.eclipse.jpt.jpa.eclipselink.feature</module>
    <module>jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature</module>
    <module>jpa/features/org.eclipse.jpt.jpa.eclipselink.tests.feature</module>
    <module>jpa/features/org.eclipse.jpt.jpa.feature</module>
    <module>jpa/features/org.eclipse.jpt.jpa_sdk.feature</module>
    <module>jpa/features/org.eclipse.jpt.jpa.tests.feature</module>

    <module>jpa/plugins/org.eclipse.jpt.doc.isv</module>
    <module>jpa/plugins/org.eclipse.jpt.doc.user</module>
    <module>jpa/plugins/org.eclipse.jpt.jpa.annotate</module>
    <module>jpa/plugins/org.eclipse.jpt.jpa.branding</module>
    <module>jpa/plugins/org.eclipse.jpt.jpa.core</module>
    <module>jpa/plugins/org.eclipse.jpt.jpa.db</module>
    <module>jpa/plugins/org.eclipse.jpt.jpa.db.ui</module>
    <module>jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding</module>
    <module>jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core</module>
    <module>jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen</module>
    <module>jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui</module>
    <module>jpa/plugins/org.eclipse.jpt.jpa.gen</module>
    <module>jpa/plugins/org.eclipse.jpt.jpa.ui</module>

    <module>jpa/tests/org.eclipse.jpt.jpa.core.tests</module>
    <module>jpa/tests/org.eclipse.jpt.jpa.core.tests.extension.resource</module>
    <module>jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests</module>

    <!-- jpa_diagram_editor -->
    <module>jpa_diagram_editor/development/org.eclipse.jpt.jpadiagrameditor.repository</module>

    <module>jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature</module>
    <module>jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor_sdk.feature</module>
    <module>jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.tests.feature</module>

    <module>jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.branding</module>
    <module>jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.doc.user</module>
    <module>jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui</module>

    <module>jpa_diagram_editor/tests/org.eclipse.jpt.jpadiagrameditor.ui.tests</module>
  </modules>
</project>
