<?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 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.9.0-SNAPSHOT</version>
    <relativePath>../eclipse-platform-parent</relativePath>
  </parent>

  <groupId>org.eclipse.equinox.p2</groupId>
  <artifactId>rt.equinox.p2</artifactId>
  <version>4.9.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <properties>
    <tycho.scmUrl>scm:git:git://git.eclipse.org/gitroot/equinox/rt.equinox.p2.git</tycho.scmUrl>
  </properties>

  <!-- 
    To build individual bundles, we specify a repository where to find parent pom, 
    in case it is not in local maven cache already
    and that parent pom also has fuller individual-bundle profile 
    defined that is combined with this one. --> 
  <profiles>
    <profile>
      <id>build-individual-bundles</id>
      <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>
    </profile>
    
    <profile>
      <id>osx</id>
      <activation>
        <property>
          <name>java.vendor.url</name>
          <value>http://www.apple.com/</value>
        </property>
      </activation>
      <properties>
        <tycho.test.jvmArgs>-Xmx800m -XX:MaxPermSize=256m -Dosgi.ws=cocoa -XstartOnFirstThread</tycho.test.jvmArgs>
        <osgi.ws>cocoa</osgi.ws>
      </properties>
    </profile>
  </profiles>

  <build>
    <pluginManagement>
      <plugins>
        <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>1.0.0</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.eclipse.cbi.maven.plugins</groupId>
                    <artifactId>eclipse-cbi-plugin</artifactId>
                    <versionRange>[0.0.0,)</versionRange>
                    <goals>
                      <goal>generate-api-build-xml</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore></ignore>
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.eclipse.tycho.extras</groupId>
                    <artifactId>tycho-eclipserun-plugin</artifactId>
                    <versionRange>[0.0.0,)</versionRange>
                    <goals>
                      <goal>eclipse-run</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore></ignore>
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <modules>
    <module>bundles/org.eclipse.equinox.frameworkadmin</module>
    <module>bundles/org.eclipse.equinox.frameworkadmin.equinox</module>
    <module>bundles/org.eclipse.equinox.frameworkadmin.test</module>
    <module>bundles/org.eclipse.equinox.p2.artifact.optimizers</module>
    <module>bundles/org.eclipse.equinox.p2.artifact.processors</module>
    <module>bundles/org.eclipse.equinox.p2.artifact.repository</module>
    <module>bundles/org.eclipse.equinox.p2.console</module>
    <module>bundles/org.eclipse.equinox.p2.core</module>
    <module>bundles/org.eclipse.equinox.p2.director</module>
    <module>bundles/org.eclipse.equinox.p2.director.app</module>
    <module>bundles/org.eclipse.equinox.p2.directorywatcher</module>
    <module>bundles/org.eclipse.equinox.p2.discovery</module>
    <module>bundles/org.eclipse.equinox.p2.discovery.compatibility</module>
    <module>bundles/org.eclipse.equinox.p2.engine</module>
    <module>bundles/org.eclipse.equinox.p2.extensionlocation</module>
    <module>bundles/org.eclipse.equinox.p2.garbagecollector</module>
    <module>bundles/org.eclipse.equinox.p2.installer</module>
    <module>bundles/org.eclipse.equinox.p2.jarprocessor</module>
    <module>bundles/org.eclipse.equinox.p2.metadata</module>
    <module>bundles/org.eclipse.equinox.p2.metadata.repository</module>
    <module>bundles/org.eclipse.equinox.p2.operations</module>
    <module>bundles/org.eclipse.equinox.p2.publisher</module>
    <module>bundles/org.eclipse.equinox.p2.reconciler.dropins</module>
    <module>bundles/org.eclipse.equinox.p2.repository</module>
    <module>bundles/org.eclipse.equinox.p2.repository.tools</module>
    <module>bundles/org.eclipse.equinox.p2.sar</module>
    <module>bundles/org.eclipse.equinox.p2.touchpoint.eclipse</module>
    <module>bundles/org.eclipse.equinox.p2.touchpoint.natives</module>
    <module>bundles/org.eclipse.equinox.p2.transport.ecf</module>
    <module>bundles/org.eclipse.equinox.p2.ui</module>
    <module>bundles/org.eclipse.equinox.p2.ui.importexport</module>
    <module>bundles/org.eclipse.equinox.p2.ui.admin</module>
    <module>bundles/org.eclipse.equinox.p2.ui.admin.rcp</module>
    <module>bundles/org.eclipse.equinox.p2.ui.discovery</module>
    <module>bundles/org.eclipse.equinox.p2.updatechecker</module>
    <module>bundles/org.eclipse.equinox.p2.updatesite</module>
    <module>bundles/org.eclipse.equinox.simpleconfigurator</module>
    <module>bundles/org.eclipse.equinox.simpleconfigurator.manipulator</module>
    <module>bundles/org.eclipse.equinox.p2.publisher.eclipse</module>
    <module>features/org.eclipse.equinox.p2.core.feature</module>
    <module>features/org.eclipse.equinox.p2.extras.feature</module>
    <module>features/org.eclipse.equinox.p2.discovery.feature</module>
    <module>bundles/org.eclipse.equinox.p2.ui.sdk</module>
    <module>bundles/org.eclipse.equinox.p2.ui.sdk.scheduler</module>
    <module>features/org.eclipse.equinox.p2.sdk</module>
    <module>features/org.eclipse.equinox.p2.rcp.feature</module>
    <module>features/org.eclipse.equinox.p2.user.ui</module>

    <module>bundles/org.eclipse.equinox.p2.tests.reconciler.product</module>
    <module>bundles/org.eclipse.equinox.p2.tests</module>
    <module>bundles/org.eclipse.equinox.p2.tests.discovery</module>
    <module>bundles/org.eclipse.equinox.p2.tests.ui</module>
    <module>bundles/org.eclipse.equinox.p2.tests.verifier</module>
  </modules>

</project>
