<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012, 2015 Eclipse Foundation and others.
  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:
     Igor Fedorenko - 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.6.0-SNAPSHOT</version>
    <relativePath>../eclipse-platform-parent</relativePath>
  </parent>

  <groupId>eclipse.platform.resources</groupId>
  <artifactId>eclipse.platform.resources</artifactId>
  <version>4.6.0-SNAPSHOT</version>
  <packaging>pom</packaging>

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

  <repositories>
    <repository>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <id>eclipse-hosted</id>
      <url>https://repo.eclipse.org/content/repositories/eclipse/</url>
    </repository>
  </repositories>

  <modules>
    <module>bundles/org.eclipse.core.filesystem</module>
    <module>bundles/org.eclipse.core.filesystem.hpux.ia64</module>
    <module>bundles/org.eclipse.core.filesystem.java7</module>
    <module>bundles/org.eclipse.core.filesystem.linux.ppc</module>
    <module>bundles/org.eclipse.core.filesystem.linux.ppc64</module>
    <module>bundles/org.eclipse.core.filesystem.linux.ppc64le</module>
    <module>bundles/org.eclipse.core.filesystem.linux.x86</module>
    <module>bundles/org.eclipse.core.filesystem.linux.x86_64</module>
    <module>bundles/org.eclipse.core.filesystem.macosx</module>
    <module>bundles/org.eclipse.core.filesystem.solaris.sparc</module>
    <module>bundles/org.eclipse.core.filesystem.win32.x86</module>
    <module>bundles/org.eclipse.core.filesystem.win32.x86_64</module>
    <module>bundles/org.eclipse.core.filesystem/fragments/org.eclipse.core.filesystem.aix.ppc</module>
    <module>bundles/org.eclipse.core.filesystem/fragments/org.eclipse.core.filesystem.aix.ppc64</module>

    <module>bundles/org.eclipse.core.resources</module>
    <module>bundles/org.eclipse.core.resources.win32.x86</module>
    <module>bundles/org.eclipse.core.resources.win32.x86_64</module>

    <module>tests/org.eclipse.core.tests.resources</module>
    <module>tests/org.eclipse.core.tests.resources.saveparticipant</module>
    <module>tests/org.eclipse.core.tests.resources.saveparticipant1</module>
    <module>tests/org.eclipse.core.tests.resources.saveparticipant2</module>
    <module>tests/org.eclipse.core.tests.resources.saveparticipant3</module>
  </modules>
</project>
