<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2016 Eclipse Foundation.
  All rights reserved. This program and the accompanying materials
  are made available under the terms of the Eclipse Distribution License v1.0
  which accompanies this distribution, and is available at
  http://www.eclipse.org/org/documents/edl-v10.php

  Contributors:
  IBM Corporation and others - initial implementation
-->
<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</groupId>
    <artifactId>eclipse-platform-parent</artifactId>
    <version>4.8.0-SNAPSHOT</version>
    <relativePath>../../eclipse-platform-parent</relativePath>
  </parent>

  <groupId>eclipse.platform.releng</groupId>
  <artifactId>eclipse.platform.releng.java9patch46</artifactId>
  <version>4.8.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <properties>
    <tycho.scmUrl>scm:git:git://git.eclipse.org/gitroot/platform/eclipse.platform.releng.aggregator</tycho.scmUrl>
  </properties>

  <modules>
    <module>../../eclipse-platform-parent</module>
    <module>../../eclipse.platform.releng.prereqs.sdk</module>
    <module>org.eclipse.jdt.dummy</module>
    <module>org.eclipse.jdt-feature-dummy</module>
    <module>../../eclipse.jdt.core/org.eclipse.jdt.core</module>
    <module>../../eclipse.jdt.debug/org.eclipse.jdt.launching</module>
    <module>../../eclipse.jdt.ui/org.eclipse.jdt.ui</module>
    <module>org.eclipse.jdt.java9patch</module>
    <module>eclipse.releng.repository.java9patch</module>
  </modules>
</project>
