<?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
    Nick Boldt, Red Hat - add sources to update site; support Tycho 1.1
-->

<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.10.0-SNAPSHOT</version>
    <relativePath>../wtp-parent</relativePath>
  </parent>

  <groupId>org.eclipse.webtools.jsf</groupId>
  <artifactId>org.eclipse.webtools.jsf</artifactId>
  <version>3.6.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <properties>
    <tycho.scmUrl>scm:git:git://git.eclipse.org/gitroot/jsf/webtools.jsf.git</tycho.scmUrl>
  </properties>

  <repositories>
    <repository>
      <id>webtools-common-site</id>
      <layout>p2</layout>
      <url>${webtools-common-site}</url>
    </repository>
    <repository>
      <id>webtools-servertools-site</id>
      <layout>p2</layout>
      <url>${webtools-servertools-site}</url>
    </repository>
    <repository>
      <id>webtools-sourceediting-site</id>
      <layout>p2</layout>
      <url>${webtools-sourceediting-site}</url>
    </repository>
    <repository>
      <id>webtools-jsdt-site</id>
      <layout>p2</layout>
      <url>${webtools-jsdt-site}</url>
    </repository>
    <repository>
      <id>webtools-jeetools-site</id>
      <layout>p2</layout>
      <url>${webtools-jeetools-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>assembly/features/org.eclipse.jsf.assembly.feature</module>
     <module>assembly/features/org.eclipse.jsf_sdk.assembly.feature</module>
     <module>assembly/plugins/org.eclipse.jsf.branding</module>

     <module>docs/features/org.eclipse.jst.jsf.doc.feature</module>
     <module>docs/plugins/org.eclipse.jst.jsf.doc.dev</module>
     <module>docs/plugins/org.eclipse.jst.jsf.doc.user</module>

     <module>jsf/features/org.eclipse.jsf.feature</module>
     <module>jsf/features/org.eclipse.jsf_sdk.feature</module>
     <module>jsf/features/org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature</module>
     <module>jsf/features/org.eclipse.jst.jsf.apache.trinidad.tagsupport_sdk.feature</module>
     <module>jsf/features/org.eclipse.jst.jsf.tests.feature</module>
     <module>jsf/features/org.eclipse.jst.webpageeditor.feature</module>
     <module>jsf/features/org.eclipse.jst.webpageeditor_sdk.feature</module>

     <module>jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport</module>
     <module>jsf/plugins/org.eclipse.jst.jsf.common</module>
     <module>jsf/plugins/org.eclipse.jst.jsf.common.runtime</module>
     <module>jsf/plugins/org.eclipse.jst.jsf.common.ui</module>
     <module>jsf/plugins/org.eclipse.jst.jsf.core</module>
     <module>jsf/plugins/org.eclipse.jst.jsf.facelet.core</module>
     <module>jsf/plugins/org.eclipse.jst.jsf.facelet.ui</module>
     <module>jsf/plugins/org.eclipse.jst.jsf.facesconfig</module>
     <module>jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui</module>
     <module>jsf/plugins/org.eclipse.jst.jsf.standard.tagsupport</module>
     <module>jsf/plugins/org.eclipse.jst.jsf.ui</module>
     <module>jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui</module>
     <module>jsf/plugins/org.eclipse.jst.pagedesigner.jsp.core</module>
     <module>jsf/plugins/org.eclipse.jst.pagedesigner</module>
     
     <module>jsf/tests/org.eclipse.jst.jsf.common.runtime.tests</module>
     <module>jsf/tests/org.eclipse.jst.jsf.contentassist.tests</module>
     <module>jsf/tests/org.eclipse.jst.jsf.context.symbol.tests</module>
     <module>jsf/tests/org.eclipse.jst.jsf.core.tests</module>
     <module>jsf/tests/org.eclipse.jst.jsf.designtime.tests</module>
     <module>jsf/tests/org.eclipse.jst.jsf.facesconfig.tests</module>
     <module>jsf/tests/org.eclipse.jst.jsf.facesconfig.ui.test</module>
     <module>jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2</module>
     <module>jsf/tests/org.eclipse.jst.jsf.metadata.tests</module>
     <module>jsf/tests/org.eclipse.jst.jsf.test.util</module>
     <module>jsf/tests/org.eclipse.jst.jsf.ui.tests</module>
     <module>jsf/tests/org.eclipse.jst.jsf.validation.el.tests</module>
     <module>jsf/tests/org.eclipse.jst.pagedesigner.tests</module>

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