<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  
  <!-- PROJECT DESCRIPTION -->
  <groupId>org.polarsys.esf</groupId>
  <artifactId>esf-tools</artifactId>
  <version>0.7.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <name>ESF Tools</name>
  <description>ESF Tools description.</description>
    
  <!-- DEVELOPERS -->
  <developers>
    <developer>
      <id>JOD</id>
      <name>Jonathan Dumont</name>
      <email>jonathan.dumont@all4tec.net</email>
      <organization>ALL4TEC</organization>
      <organizationUrl>http://www.all4tec.net/</organizationUrl>
      <roles>
        <role>Project leader</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
  
    <developer>
      <id>YUM</id>
      <name>Yupanqui Munoz Julho</name>
      <email>yupanqui.munozjulho@cea.fr</email>
      <organization>CEA List</organization>
      <organizationUrl>www-list.cea.fr/</organizationUrl>
      <roles>
        <role>Project leader</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
  </developers>
  
  <!-- MODULES -->  
  <modules>
    <module>analysis</module>
    <module>p2</module>
  </modules>
   
  <!-- REPOSITORIES -->
  <repositories> 
    <repository>
      <id>eclipse-neon</id>
      <layout>p2</layout>
      <url>http://download.eclipse.org/releases/neon</url>
    </repository>
	<repository>
      <id>papyrus-neon-extra</id>
      <layout>p2</layout>
      <url>http://download.eclipse.org/modeling/mdt/papyrus/updates/nightly/neon/extra/</url>
    </repository>
  </repositories>
    
  <!-- BUILD DEFINITION -->
  <build>
    <plugins>
  
      <!-- Tycho plugin -->
      <!-- This is the part which modify default packaging to add those specific to Eclipse RCP -->
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-maven-plugin</artifactId>
        <version>${tycho-version}</version>
        <extensions>true</extensions>
      </plugin>
    
      <!-- Tycho target platform configuration -->
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
          <artifactId>target-platform-configuration</artifactId>
          <version>${tycho-version}</version>
          <configuration>
            <resolver>p2</resolver>
            <environments>
              <environment>
                <os>win32</os>
                <ws>win32</ws>
                <arch>x86_64</arch>
              </environment>
            </environments>
          </configuration>
      </plugin>
      
      <!-- Plugin used to manage the versionning of tycho artifacts -->
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-versions-plugin</artifactId>
        <version>${tycho-version}</version>
      </plugin>
      
      <!-- Plugin used to check the license. -->
      <!-- NB: It's not configured to write the licence header automatically. -->
      <!-- Usage: mvn licence:check -->
      <plugin>
        <groupId>com.mycila</groupId>
        <artifactId>license-maven-plugin</artifactId>
        <version>2.11</version>
        <configuration>
          <header>${session.executionRootDirectory}/releng/licence/epl.header.txt</header>
          <useDefaultExcludes>true</useDefaultExcludes>
          <failIfMissing>true</failIfMissing>
          <!-- Avoid a strict check as the header comment contains also the contributors. -->
          <strictCheck>false</strictCheck>
          <aggregate>true</aggregate>
          <includes>
            <include>**/*.java</include>
          </includes>
          <excludes>
            <exclude>**/src/site/**</exclude>
            <exclude>**/target/**</exclude>
          </excludes>
          <properties>
            <year>2016</year>
          </properties>
        </configuration>
        <executions>
          <execution>
            <phase>process-sources</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      
    </plugins>
  </build>
  
  <profiles>
    <!-- Profile for tasks specific to the build on Eclipse Hudson instance:
        - packAndSign: produce a stable update site (Packed & signed). Used for releases (+ milestones) only.
    -->
    <profile>
      <id>packAndSign</id>
      
	  <pluginRepositories>
        <pluginRepository>
            <id>org.eclipse.cbi.maven.plugins</id>
            <name>Eclipse CBI</name>
            <url>https://repo.eclipse.org/content/repositories/cbi-releases/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
      </pluginRepositories>
  
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.eclipse.cbi.maven.plugins</groupId>
              <artifactId>eclipse-jarsigner-plugin</artifactId>
              <version>${jarsigner-version}</version>
            </plugin>
          </plugins>    
        </pluginManagement>
        
        <plugins>
        
          <!-- Plugins configuration to be able to sign the jars built on Eclipse servers -->
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-pack200a-plugin</artifactId>
            <version>${tycho-version}</version>
            <executions>
              <execution>
                <id>pack200-normalize</id>
                <goals>
                  <goal>normalize</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
         
          <plugin>
            <groupId>org.eclipse.cbi.maven.plugins</groupId>
            <artifactId>eclipse-jarsigner-plugin</artifactId>
            <version>${jarsigner-version}</version>
            <executions>
              <execution>
                <id>sign</id>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
  
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-pack200b-plugin</artifactId>
            <version>${tycho-version}</version>
            <executions>
              <execution>
                <id>pack200-pack</id>
                <goals>
                  <goal>pack</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
  
          <!-- Make sure that Tycho generates its p2 metadata after the JAR has been packed -->
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-p2-plugin</artifactId>
            <version>${tycho-version}</version>
            <executions>
              <execution>
                <id>attach-p2-metadata</id>
                <phase>package</phase>
                <goals>
                  <goal>p2-metadata</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <defaultP2Metadata>false</defaultP2Metadata>
            </configuration>
          </plugin>
        
        </plugins>
      </build>
      <activation>
        <property>
            <name>SIGN</name>
            <value>true</value>
        </property>
      </activation>
    </profile>
    
 </profiles>
 
  <!-- PROPERTIES -->
  <properties>
    <!-- Product version displayed in the title bar, etc. -->
    <product.version>0.7.0</product.version>
    
    <!-- Tycho plugin version -->
    <tycho-version>0.24.0</tycho-version>
    
    <!-- eclipse-jarsigner plugin version -->
    <jarsigner-version>1.1.3</jarsigner-version>
      
    <!-- Enforce used of UTF encoding is mandatory. Otherwise, default platform encoding is used, and some issues appears with differents os constructions -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  
</project>