<?xml version="1.0" encoding="UTF-8"?>
<!--
    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
 -->

<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>
  
  <parent>
    <groupId>org.eclipse.rcptt</groupId>
    <artifactId>core</artifactId>
    <version>2.4.0-SNAPSHOT</version>
    <relativePath>../core/pom.xml</relativePath>
  </parent>

  <artifactId>rap</artifactId>
  <packaging>pom</packaging>
  
  <modules>
    <module>../../modules/rap</module>
  </modules>
  
  <profiles>
    
    <profile>
      <id>core</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <modules>
      </modules>
    </profile>

    <profile>
      <id>ide</id>
      <modules>
        <module>../../repository/rap</module>
      </modules>
    </profile>
  </profiles>

  
  <properties>
    <buildUrl>file:/${user.dir}</buildUrl>
    <rapRcpttRepository>${buildUrl}/</rapRcpttRepository>
    <rcpttRepositoryFull>${buildUrl}/repository/full/target/repository/</rcpttRepositoryFull>
    <rapRepository>http://download.eclipse.org/rt/rap/3.6</rapRepository>
    <rcpttExternalDepencenciesRepository>${buildUrl}/repository/dependencies/target/repository</rcpttExternalDepencenciesRepository>
  </properties>
  
  <repositories>
    <repository>
      <snapshots>
        <updatePolicy>always</updatePolicy>
      </snapshots>
      <id>rcptt-all-in-one</id>
      <layout>p2</layout>
      <url>${rcpttRepositoryFull}</url>
    </repository>
    <repository>
       <id>rap</id>
       <layout>p2</layout>
       <url>${rapRepository}</url>
    </repository>
    <repository>
       <id>rcptt-external-dependencies</id>
       <layout>p2</layout>
       <url>${rcpttExternalDepencenciesRepository}</url>
    </repository>
  </repositories>
</project>