<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012 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:
     Igor Fedorenko - initial implementation
-->

<project
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
  xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.eclipse</groupId>
    <artifactId>eclipse-parent</artifactId>
    <version>1.0.0-SNAPSHOT</version>
  </parent>

  <groupId>org.eclipse.equinox.framework</groupId>
  <artifactId>rt.equinox.framework</artifactId>
  <version>3.8.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <modules>
    <module>bundles/org.eclipse.osgi</module>
    <module>bundles/org.eclipse.osgi.services</module>
    <module>bundles/org.eclipse.osgi.util</module>
    <module>bundles/org.eclipse.osgi/supplement</module>
    
    <!-- 
    <module>bundles/org.eclipse.equinox.launcher</module>
    <module>bundles/org.eclipse.equinox.launcher.carbon.macosx</module>
    <module>bundles/org.eclipse.equinox.launcher.cocoa.macosx</module>
    <module>bundles/org.eclipse.equinox.launcher.cocoa.macosx.x86_64</module>
    <module>bundles/org.eclipse.equinox.launcher.gtk.aix.ppc</module>
    <module>bundles/org.eclipse.equinox.launcher.gtk.aix.ppc64</module>
    <module>bundles/org.eclipse.equinox.launcher.gtk.hpux.ia64_32</module>
    <module>bundles/org.eclipse.equinox.launcher.gtk.linux.ppc</module>
    <module>bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64</module>
    <module>bundles/org.eclipse.equinox.launcher.gtk.linux.s390</module>
    <module>bundles/org.eclipse.equinox.launcher.gtk.linux.s390x</module>
    <module>bundles/org.eclipse.equinox.launcher.gtk.linux.x86</module>
    <module>bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64</module>
    <module>bundles/org.eclipse.equinox.launcher.gtk.solaris.sparc</module>
    <module>bundles/org.eclipse.equinox.launcher.gtk.solaris.x86</module>
    <module>bundles/org.eclipse.equinox.launcher.motif.aix.ppc</module>
    <module>bundles/org.eclipse.equinox.launcher.motif.hpux.ia64_32</module>
    <module>bundles/org.eclipse.equinox.launcher.motif.linux.x86</module>
    <module>bundles/org.eclipse.equinox.launcher.motif.solaris.sparc</module>
    <module>bundles/org.eclipse.equinox.launcher.win32.win32.ia64</module>
    <module>bundles/org.eclipse.equinox.launcher.win32.win32.x86</module>
    <module>bundles/org.eclipse.equinox.launcher.win32.win32.x86_64</module>
    <module>bundles/org.eclipse.equinox.launcher.wpf.win32.x86</module>
    <module>bundles/org.eclipse.equinox.executable</module>
    <module>features/rt.equinox.framework.site</module>
     -->
    <module>bundles/org.eclipse.osgi.tests</module>
    <module>features/org.eclipse.equinox.core.sdk</module>
  </modules>

</project>
