<?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-infra</artifactId>
  <version>0.7.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <name>ESF</name>
  <description>ESF 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>core</module>
    <module>p2</module>
    <!-- don't build RCP (not required, currently not working) -->
    <!-- <module>releng</module> -->
  </modules>
   
  <!-- REPOSITORIES -->
  <repositories> 
    <repository>
      <id>eclipse-2018-12</id>
      <layout>p2</layout>
      <url>http://download.eclipse.org/releases/2018-12</url>
    </repository>
  </repositories>
  
  <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 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>
      <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>1.3.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>
    
    <!-- Sonar properties -->
    <sonar.exclusions>**/src-gen/**/*</sonar.exclusions>
    <sonar.language>java</sonar.language>
  </properties>
  
</project>
