<?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>
    <artifactId>ide</artifactId>
    <groupId>org.eclipse.rcptt</groupId>
    <version>2.5.0-SNAPSHOT</version>
    <relativePath>../releng/ide/pom.xml</relativePath>    
  </parent>

  <artifactId>rcptt.launching</artifactId>
  <packaging>pom</packaging>

  <modules>
    <module>org.eclipse.rcptt.launching-feature</module>
    <module>org.eclipse.rcptt.launching</module>
    <module>org.eclipse.rcptt.launching.ext</module>
    <module>org.eclipse.rcptt.launching.injection</module>
    <module>org.eclipse.rcptt.launching.p2utils</module>
    <module>org.eclipse.rcptt.reporting.util</module>
    <module>org.eclipse.rcptt.launching.common</module>
    <module>org.eclipse.rcptt.launching.multiaut</module>
    <module>org.eclipse.rcptt.launching.remote</module>
    <module>org.eclipse.rcptt.reporting.html</module>
    <module>tests</module>
  </modules>
</project>
