<?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
     Lars Vogel - Adjustments for e4 tools 
-->
<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>
  </parent>
  <groupId>org.eclipse.e4.ui</groupId>
  <artifactId>e4-ui-aggregator</artifactId>
  <version>0.17.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <properties>
    <tycho.scmUrl>scm:git:http://git.eclipse.org/gitroot/e4/org.eclipse.e4.ui</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>tests/org.eclipse.e4.naturist.tests</module>
    <module>tests/org.eclipse.e4.jdt.scope.tests</module>
    <module>tests/org.eclipse.e4.ui.macros.tests</module>
    <module>build/org.eclipse.e4.ui.update</module>
    <module>bundles</module>
    <module>features</module>
  </modules>
</project>

