<?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.15.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>
				<version>${tycho.version}</version>
				<configuration>
					<sourceReferences>
						<generate>true</generate>
					</sourceReferences>
				</configuration>
				<dependencies>
					<dependency>
						<groupId>org.eclipse.tycho.extras</groupId>
						<artifactId>tycho-sourceref-jgit</artifactId>
						<version>${tycho-extras.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.4</version>
              <executions>
                <execution>
                  <id>sign</id>
                  <phase>verify</phase>
                  <goals>
                    <goal>sign</goal>
                  </goals>
                </execution>
              </executions>
            </plugin>
          </plugins>
        </build>
      </profile>
    </profiles>
  
  

</project>
