<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012, 2017 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.servertools</groupId>
  <artifactId>org.eclipse.webtools.servertools</artifactId>
  <version>3.6.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <properties>
    <tycho.scmUrl>scm:git:git://git.eclipse.org/gitroot/servertools/webtools.servertools.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>

    <!-- 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>features/org.eclipse.jst.server_adapters.ext.feature</module>
    <module>features/org.eclipse.jst.server_adapters.ext.sdk.feature</module>
    <module>features/org.eclipse.jst.server_adapters.feature</module>
    <module>features/org.eclipse.jst.server_adapters.sdk.feature</module>
    <module>features/org.eclipse.jst.server_core.feature</module>
    <module>features/org.eclipse.jst.server_ui.feature</module>
    <module>features/org.eclipse.jst.server_userdoc.feature</module>
    <module>features/org.eclipse.jst.server_sdk.feature</module>

    <module>features/org.eclipse.wst.server_adapters.feature</module>
    <module>features/org.eclipse.wst.server_adapters.sdk.feature</module>
    <module>features/org.eclipse.wst.server_core.feature</module>
    <module>features/org.eclipse.wst.server_ui.feature</module>
    <module>features/org.eclipse.wst.server_userdoc.feature</module>
    <module>features/org.eclipse.wst.server_sdk.feature</module>

    <module>docs/org.eclipse.jst.server.ui.doc.user</module>
    <module>docs/org.eclipse.jst.server.ui.infopop</module>
    <module>docs/org.eclipse.servertools.doc.isv</module>
    <module>docs/org.eclipse.wst.server.ui.doc.user</module>
    <module>docs/org.eclipse.wst.server.ui.infopop</module>

    <module>plugins/org.eclipse.jst.server.core</module>
    <module>plugins/org.eclipse.jst.server.generic.core</module>
    <module>plugins/org.eclipse.jst.server.generic.jonas</module>
    <module>plugins/org.eclipse.jst.server.generic.ui</module>

    <!-- per bug 412464 this module is not required for the build
         https://bugs.eclipse.org/412464
    <module>plugins/org.eclipse.jst.server.pde</module>
    -->

    <module>plugins/org.eclipse.jst.server.preview.adapter</module>
    <module>plugins/org.eclipse.jst.server.tomcat.core</module>
    <module>plugins/org.eclipse.jst.server.tomcat.ui</module>
    <module>plugins/org.eclipse.jst.server.ui</module>
    <module>plugins/org.eclipse.wst.internet.monitor.core</module>
    <module>plugins/org.eclipse.wst.internet.monitor.ui</module>
    <module>plugins/org.eclipse.wst.server.core</module>
    <module>plugins/org.eclipse.wst.server.discovery</module>
    <module>plugins/org.eclipse.wst.server.http.core</module>
    <module>plugins/org.eclipse.wst.server.http.ui</module>
    <module>plugins/org.eclipse.wst.server.preview</module>
    <module>plugins/org.eclipse.wst.server.preview.adapter</module>
    <module>plugins/org.eclipse.wst.server.ui</module>

    <module>tests/org.eclipse.wst.internet.monitor.core.tests</module>
    <module>tests/org.eclipse.wst.server.core.tests</module>
    <module>tests/org.eclipse.wst.server.http.core.tests</module>
    <module>tests/org.eclipse.wst.server.util.tests</module>

    <module>site</module>
  </modules>

  <profiles>
    <profile>
      <id>integration</id>
      <properties>
        <skipITests>false</skipITests>
      </properties>
      <modules>
        <module>tests/org.eclipse.jst.server.core.tests</module>
        <module>tests/org.eclipse.jst.server.generic.tests</module>
        <module>tests/org.eclipse.jst.server.tomcat.core.tests</module>
        <module>tests/org.eclipse.jst.server.tomcat.ui.tests</module>
        <module>tests/org.eclipse.jst.server.ui.tests</module>
        <module>tests/org.eclipse.wst.internet.monitor.ui.tests</module>
        <module>tests/org.eclipse.wst.server.ui.tests</module>

        <module>features/org.eclipse.jst.server_tests.feature</module>
        <module>features/org.eclipse.jst.server_adapters.ext_tests.feature</module>
        <module>features/org.eclipse.wst.server_tests.feature</module>

        <module>site-integration</module>
      </modules>
<!--       <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <configuration>
              <skip>${skipITests}</skip>
              <dependency-resolution>
                  <extraRequirements>
                  <requirement>
                    <type>p2-installable-unit</type>
                    <id>org.eclipse.wst.server.ui</id>
                    <versionRange>0.0.0</versionRange>
                  </requirement>
                  </extraRequirements>
              </dependency-resolution>
            </configuration>
          </plugin>
        </plugins>
      </build> -->
    </profile>
  </profiles>

</project>