<!--
    Copyright (c) 2009, 2019 Xored Software Inc and others.
    All rights reserved. This program and the accompanying materials
    are made available under the terms of the Eclipse Public License v1.0
    which accompanies this distribution, and is available at
    http://www.eclipse.org/legal/epl-v10.html

    Contributors:
    	Xored Software Inc - initial API and implementation and/or initial documentation
 -->
<!-- <?xml version="1.0" encoding="UTF-8"?> -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <artifactId>ide</artifactId>
  <packaging>pom</packaging>
  <parent>
    <groupId>org.eclipse.rcptt</groupId>
    <version>2.4.0-SNAPSHOT</version>
    <artifactId>core</artifactId>
    <relativePath>../core/pom.xml</relativePath>
  </parent>
  <modules>
    <module>../../runtime/updates/org.eclipse.rcptt.updates-feature</module>
    <module>../../modules/nebula</module>
    <module>../../launching</module>
    <module>../../modules/testrail</module>
    <module>../../rcp</module>
    <module>../../testing</module>

    <module>../../repository/full</module>
  </modules>
  <properties>
    <buildUrl>file:/${user.dir}</buildUrl>
    <rcpttRuntimeRepo>${buildUrl}/runtime/org.eclipse.rcptt.runtime-updatesite/target/repository/</rcpttRuntimeRepo>
    <e3xRepository>${buildUrl}/repository/e3x/target/repository</e3xRepository>
    <e4xRepository>${buildUrl}/repository/e4x/target/repository</e4xRepository>
    <coreRepository>${buildUrl}/repository/core/target/repository</coreRepository>
    <rcpttExternalDepencenciesRepository>${buildUrl}/repository/dependencies/target/repository</rcpttExternalDepencenciesRepository>
  </properties>
  <repositories>
    <repository>
      <id>2018-09</id>
      <layout>p2</layout>
      <url>http://download.eclipse.org/releases/2018-09</url>
    </repository>
    <repository>
      <id>orbit</id>
      <layout>p2</layout>
      <url>http://download.eclipse.org/tools/orbit/downloads/drops/R20180905201904/repository/</url>
    </repository>
    <repository>
      <id>core</id>
      <layout>p2</layout>
      <url>${coreRepository}</url>
    </repository>
    <repository>
      <snapshots>
        <updatePolicy>always</updatePolicy>
      </snapshots>
      <id>e3x-ide</id>
      <layout>p2</layout>
      <url>${e3xRepository}</url>
    </repository>

    <repository>
      <snapshots>
        <updatePolicy>always</updatePolicy>
      </snapshots>
      <id>e4x-ide</id>
      <layout>p2</layout>
      <url>${e4xRepository}</url>
    </repository>
    <repository>
       <id>rcptt-external-dependencies</id>
       <layout>p2</layout>
       <url>${rcpttExternalDepencenciesRepository}</url>
    </repository>
  </repositories>
</project>
