<?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 v2.0
    which accompanies this distribution, and is available at
    https://www.eclipse.org/legal/epl-v20.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>
  <artifactId>runner</artifactId>
  <packaging>pom</packaging>
  <parent>
    <groupId>org.eclipse.rcptt</groupId>
    <artifactId>ide</artifactId>
    <version>2.5.3-SNAPSHOT</version>
    <relativePath>../ide/pom.xml</relativePath>
  </parent>
  <modules>
    <module>../../runner</module>
  </modules>
  <properties>
    <buildUrl>file:/${user.dir}</buildUrl>
    <repositoryFull>${buildUrl}/repository/full/target/repository/</repositoryFull>
    <repositoryRap>${buildUrl}/repository/rap/target/repository/</repositoryRap>
  </properties>
  <repositories>
    <repository>
      <snapshots>
        <updatePolicy>always</updatePolicy>
      </snapshots>
      <id>all-in-one</id>
      <layout>p2</layout>
      <url>${repositoryFull}</url>
    </repository>
    <repository>
      <snapshots>
        <updatePolicy>always</updatePolicy>
      </snapshots>
      <id>rap-rcptt</id>
      <layout>p2</layout>
      <url>${repositoryRap}</url>
    </repository>

  </repositories>
</project>
