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

  <groupId>org.eclipse.e4.tools</groupId>
  <artifactId>e4-tools-aggregator</artifactId>
  <version>0.18.0-SNAPSHOT</version>
  <packaging>pom</packaging>

	<properties>
		<tycho.scmUrl>scm:git:http://git.eclipse.org/gitroot/e4/org.eclipse.e4.tools</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>
  
    <pluginRepositories>
    <pluginRepository>
      <id>repo.eclipse.org.cbi-releases</id>
      <url>https://repo.eclipse.org/content/repositories/cbi-releases/</url>
    </pluginRepository>
  </pluginRepositories>

	
	
  
   <modules>
    <module>./bundles/org.eclipse.e4.tools.model.spy</module>
    <module>./bundles/org.eclipse.e4.tools.css.spy</module>
    <module>./bundles/org.eclipse.e4.tools.context.spy</module>
    <module>./bundles/org.eclipse.e4.tools.spy</module>
    <module>./bundles/org.eclipse.e4.tools.bundle.spy</module>
    <module>./bundles/org.eclipse.e4.tools.preference.spy</module>
    <module>./bundles/org.eclipse.e4.tools.event.spy</module>

    <module>./features/org.eclipse.e4.tools.css.spy.feature</module>
    <module>./features/org.eclipse.e4.tools.context.spy.feature</module>
    <module>./features/org.eclipse.e4.tools.bundle.spy.feature</module>
    <module>./features/org.eclipse.e4.tools.preference.spy.feature</module>
    <module>./features/org.eclipse.e4.tools.event.spy.feature</module>
    <module>./build/org.eclipse.e4.core.tools.update/</module>
    <module>./features/org.eclipse.e4.tools.model.spy.feature</module>
    <module>./features/org.eclipse.e4.tools.spies.feature</module> 
  </modules>

	<build>
		<plugins>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-packaging-plugin</artifactId>
				<configuration>
					<sourceReferences>
						<generate>true</generate>
					</sourceReferences>
				</configuration>
				<dependencies>
					<dependency>
						<groupId>org.eclipse.tycho.extras</groupId>
						<artifactId>tycho-sourceref-jgit</artifactId>
						<version>${tycho.version}</version>
					</dependency>
				</dependencies>
			</plugin>
		</plugins>
	</build>
	
	  <profiles>
      <profile>
        <id>sign</id>
        <build>
          <plugins>
            <plugin>
              <groupId>org.eclipse.cbi.maven.plugins</groupId>
              <artifactId>eclipse-jarsigner-plugin</artifactId>
              <version>1.1.8</version>
              <executions>
                <execution>
                  <id>sign</id>
                  <phase>verify</phase>
                  <goals>
                    <goal>sign</goal>
                  </goals>
                </execution>
              </executions>
            </plugin>
          </plugins>
        </build>
      </profile>
    </profiles>
  
  

</project>
