<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed under European Space Agency Public License (ESA-PL) Weak Copyleft – v2.4
  You may not use this file except in compliance with the License.

  Except as expressly set forth in this License, the Software is provided to
  You on an "as is" basis and without warranties of any kind, including without
  limitation merchantability, fitness for a particular purpose, absence of
  defects or errors, accuracy or non-infringement of intellectual property rights.

  See the License for the specific language governing permissions and limitations under the License.
-->
<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>
    <parent>
        <groupId>int.esa.ccsds.mo</groupId>
        <artifactId>parent</artifactId>
        <version>12.1</version>
        <relativePath/>
    </parent>
    <groupId>int.esa.nmf</groupId>
    <artifactId>parent</artifactId>
    <packaging>pom</packaging>
    <version>4.0</version>
    <name>ESA NMF Parent POM</name>
    <description>ESA parent POM for Nanosat MO Framework based artifacts</description>
    <url>https://nanosat-mo-framework.github.io</url>
    <organization>
        <name>ESA</name>
        <url>http://www.esa.int</url>
    </organization>
    <licenses>
        <license>
            <name>European Space Agency Public License (ESA-PL) Weak Copyleft – v2.4</name>
            <url>https://raw.github.com/esa/nanosat-mo-framework/master/LICENCE.md</url>
            <distribution>repo</distribution>
        </license>
    </licenses>
    <issueManagement>
        <system>Gitlab</system>
        <url>https://gitlab.com/esa/NMF/nmf-issues/-/issues</url>
    </issueManagement>
    <scm>
        <connection>scm:git:https://github.com/esa/nanosat-mo-framework.git</connection>
        <url>https://github.com/esa/nanosat-mo-framework</url>
    </scm>
    <developers>
        <developer>
            <id>CesarCoelho</id>
            <name>César Coelho</name>
            <url>https://github.com/CesarCoelho</url>
        </developer>
        <developer>
            <id>dmarszk</id>
            <name>Dominik Marszk</name>
            <email>dominik.marszk@esa.int</email>
        </developer>
    </developers>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <!-- NMF general properties -->
        <esa.nmf.version>4.0</esa.nmf.version>
        <esa.nmf.maximum-version>4.100</esa.nmf.maximum-version>
        <!-- Automatically use the latest patch of each component for the current major.minor version -->
        <esa.nmf.version-qualifier>[${esa.nmf.version},${esa.nmf.maximum-version}]</esa.nmf.version-qualifier>
    </properties>
    <dependencyManagement>
        <dependencies>
            <!-- NMF Environment -->
            <dependency>
                <groupId>int.esa.nmf.core</groupId>
                <artifactId>nmf-environment</artifactId>
                <version>${esa.nmf.version}</version>
            </dependency>
            <!-- MO services XMLs attached to NMF -->
            <dependency>
                <groupId>int.esa.nmf.core</groupId>
                <artifactId>nmf-xmls</artifactId>
                <version>${esa.nmf.version}</version>
            </dependency>
            <!-- MO service APIs specific to NMF -->
            <dependency>
                <groupId>int.esa.nmf.core</groupId>
                <artifactId>api-nmf-com</artifactId>
                <version>${esa.nmf.version}</version>
            </dependency>
            <dependency>
                <groupId>int.esa.nmf.core</groupId>
                <artifactId>api-nmf-common</artifactId>
                <version>${esa.nmf.version}</version>
            </dependency>
            <dependency>
                <groupId>int.esa.nmf.core</groupId>
                <artifactId>api-nmf-mc</artifactId>
                <version>${esa.nmf.version}</version>
            </dependency>
            <dependency>
                <groupId>int.esa.nmf.core</groupId>
                <artifactId>api-nmf-sm</artifactId>
                <version>${esa.nmf.version}</version>
            </dependency>
            <dependency>
                <groupId>int.esa.nmf.core</groupId>
                <artifactId>api-nmf-platform</artifactId>
                <version>${esa.nmf.version}</version>
            </dependency>
            <!-- Services Implementations -->
            <dependency>
                <groupId>int.esa.nmf.core</groupId>
                <artifactId>nmf-services-com</artifactId>
                <version>${esa.nmf.version}</version>
            </dependency>
            <dependency>
                <groupId>int.esa.nmf.core</groupId>
                <artifactId>nmf-services-common</artifactId>
                <version>${esa.nmf.version}</version>
            </dependency>
            <dependency>
                <groupId>int.esa.nmf.core</groupId>
                <artifactId>nmf-services-mc</artifactId>
                <version>${esa.nmf.version}</version>
            </dependency>
            <dependency>
                <groupId>int.esa.nmf.core</groupId>
                <artifactId>nmf-services-sm</artifactId>
                <version>${esa.nmf.version}</version>
            </dependency>
            <dependency>
                <groupId>int.esa.nmf.core</groupId>
                <artifactId>nmf-services-platform-generic</artifactId>
                <version>${esa.nmf.version}</version>
            </dependency>
            <!-- NMF Composites -->
            <dependency>
                <groupId>int.esa.nmf.core</groupId>
                <artifactId>generic-composite-model</artifactId>
                <version>${esa.nmf.version}</version>
            </dependency>
            <dependency>
                <groupId>int.esa.nmf.core</groupId>
                <artifactId>generic-nanosat-monolithic</artifactId>
                <version>${esa.nmf.version}</version>
            </dependency>
            <dependency>
                <groupId>int.esa.nmf.core</groupId>
                <artifactId>nanosat-mo-connector</artifactId>
                <version>${esa.nmf.version}</version>
            </dependency>
            <dependency>
                <groupId>int.esa.nmf.core</groupId>
                <artifactId>nanosat-mo-supervisor</artifactId>
                <version>${esa.nmf.version}</version>
            </dependency>
            <dependency>
                <groupId>int.esa.nmf.core</groupId>
                <artifactId>ground-mo-adapter</artifactId>
                <version>${esa.nmf.version}</version>
            </dependency>
            <dependency>
                <groupId>int.esa.nmf.core</groupId>
                <artifactId>space-mo-adapter</artifactId>
                <version>${esa.nmf.version}</version>
            </dependency>
            <dependency>
                <groupId>int.esa.nmf.core</groupId>
                <artifactId>generic-ground-mo-proxy</artifactId>
                <version>${esa.nmf.version}</version>
            </dependency>
            <dependency>
                <groupId>int.esa.nmf.core</groupId>
                <artifactId>nmf-package-lib</artifactId>
                <version>${esa.nmf.version}</version>
            </dependency>
            <dependency>
                <groupId>int.esa.nmf.core</groupId>
                <artifactId>nmf-package-maven-plugin</artifactId>
                <version>${esa.nmf.version}</version>
            </dependency>
            <!-- External Dependencies -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.13.2</version>
            </dependency>
            <dependency>
                <groupId>org.xerial</groupId>
                <artifactId>sqlite-jdbc</artifactId>
                <version>3.49.1.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven.plugin-tools</groupId>
                <artifactId>maven-plugin-annotations</artifactId>
                <version>3.6.0</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <encoding>UTF-8</encoding>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>int.esa.nmf.core</groupId>
                    <artifactId>nmf-package-maven-plugin</artifactId>
                    <version>${esa.nmf.version}</version>
                </plugin>
                <plugin>
                    <groupId>int.esa.nmf.core</groupId>
                    <artifactId>nmf-linux-maven-plugin</artifactId>
                    <version>${esa.nmf.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>3.6.0</version>
                    <configuration>
                        <archive>
                            <manifest>
                                <mainClass>${assembly.mainClass}</mainClass>
                            </manifest>
                        </archive>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                        <finalName>${project.artifactId}-${project.version}</finalName>
                    </configuration>
                    <executions>
                        <execution>
                            <id>make-assembly</id>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
    <profiles>
        <profile>
            <id>assembly-with-dependencies</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-assembly-plugin</artifactId>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <!-- This profile is planned to be removed because
             the CI will be on GitHub instead of GitLab
       <profile>
           <id>gitlab-ci</id>
           <repositories>
               <repository>
                   <id>gitlab-maven</id>
                   <url>${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/maven</url>
               </repository>
           </repositories>
           <distributionManagement>
               <repository>
                   <id>gitlab-maven</id>
                   <url>${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/maven</url>
               </repository>
               <snapshotRepository>
                   <id>gitlab-maven</id>
                   <url>${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/maven</url>
               </snapshotRepository>
           </distributionManagement>
           <build>
               <pluginManagement>
                   <plugins>
                       <plugin>
                           <groupId>org.apache.maven.plugins</groupId>
                           <artifactId>maven-deploy-plugin</artifactId>
                           <configuration>
                               <skip>false</skip>
                           </configuration>
                       </plugin>
                   </plugins>
               </pluginManagement>
           </build>
       </profile>
        -->
    </profiles>
</project>