<!--
    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>

  <groupId>org.eclipse.rcptt.tests</groupId>
  <artifactId>base</artifactId>
  <version>2.4.3-SNAPSHOT</version>
  <packaging>pom</packaging>

  <pluginRepositories>
    <pluginRepository>
      <id>rcptt-releases</id>
      <name>RCPTT Maven repository Releases</name>
      <url>http://repo.eclipse.org/content/repositories/rcptt-releases/</url>
    </pluginRepository>
    <pluginRepository>
      <id>rcptt-snapshots</id>
      <snapshots>
        <updatePolicy>always</updatePolicy>
      </snapshots>
      <name>RCPTT Maven repository Snapshots</name>
      <url>https://repo.eclipse.org/content/repositories/rcptt-snapshots/</url>
    </pluginRepository>
  </pluginRepositories>

  <properties>
    <rcptt-maven-group>org.eclipse.rcptt</rcptt-maven-group>
    <rcptt-maven-version>2.4.2-SNAPSHOT</rcptt-maven-version>
    <rcptt-maven-plugin>rcptt-maven-plugin</rcptt-maven-plugin>
    <runner-version>2.4.2-SNAPSHOT</runner-version>
    <autRepository>file://${basedir}/../modules/repository/target/repository</autRepository>
    <runtimeRepository>file:/${user.dir}/runtime/updates/org.eclipse.rcptt.updates.runtime.e4x/q7</runtimeRepository>
  </properties>

</project>
