<!--

    Copyright (c) 2015 Bosch Software Innovations GmbH and others.

    All rights reserved. This program and the accompanying materials
    are made available under the terms of the Eclipse Public License v1.0
    which accompanies this distribution, and is available at
    http://www.eclipse.org/legal/epl-v10.html

-->
<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.hawkbit</groupId>
      <artifactId>hawkbit-parent</artifactId>
      <version>0.3.0M7</version>
    </parent>

    <artifactId>hawkbit-extensions-parent</artifactId>
    <version>0.3.0M7</version>
    <packaging>pom</packaging>

    <name>hawkBit :: Extensions</name>
    <description>Parent pom for hawkBit extensions</description>

    <distributionManagement>
        <repository>
            <id>eclipserel</id>
            <name>hawkBit Repository - Release</name>
            <url>https://repo.eclipse.org/content/repositories/hawkbit-releases</url>
        </repository>
        <snapshotRepository>
            <id>eclipsesnap</id>
            <name>hawkBit Repository - Snapshots</name>
            <url>https://repo.eclipse.org/content/repositories/hawkbit-snapshots</url>
        </snapshotRepository>
    </distributionManagement>

   <properties>

      <hawkbit.version>0.3.0M7</hawkbit.version>
      <aws.sdk.version>1.11.415</aws.sdk.version>
      <gcp.sdk.version>0.77.0-alpha</gcp.sdk.version>

      <!-- Release - START -->
      <release.scm.connection>scm:git:git@github.com:eclipse/hawkbit-extensions.git</release.scm.connection>
      <release.scm.developerConnection>scm:git:https://github.com/eclipse/hawkbit-extensions.git</release.scm.developerConnection>
      <release.scm.url>https://github.com/eclipse/hawkbit-extensions.git</release.scm.url>
      <!-- Release - END -->

      <!-- Sonar - START -->
      <sonar.github.repository>eclipse/hawkbit-extensions</sonar.github.repository>
      <sonar.links.ci>https://circleci.com/gh/eclipse/hawkbit-extensions</sonar.links.ci>

       <!-- Override Sonar/Reporting settings -->
       <sonar.coverage.jacoco.xmlReportPaths>
           ${project.build.directory}/site/jacoco/jacoco.xml, ${project.build.directory}/site/jacoco-it/jacoco.xml
       </sonar.coverage.jacoco.xmlReportPaths>
    </properties>

    <scm>
        <connection>${release.scm.connection}</connection>
        <developerConnection>${release.scm.developerConnection}</developerConnection>
        <url>${release.scm.url}</url>
    </scm>

    <modules>
        <module>hawkbit-extension-artifact-repository-mongo</module>
        <module>hawkbit-extension-artifact-repository-s3</module>
        <module>hawkbit-extension-artifact-repository-gcs</module>
        <module>hawkbit-extensions-azure</module>
        <module>hawkbit-extended-runtimes</module>
    </modules>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <compilerArgument>-Xlint:all</compilerArgument>
                    <showWarnings>true</showWarnings>
                    <showDeprecation>true</showDeprecation>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.mycila</groupId>
                <artifactId>license-maven-plugin</artifactId>
                <configuration>
                    <header>licenses/LICENSE_HEADER_TEMPLATE_BOSCH_20.txt</header>
                    <validHeaders>
                        <validHeader>licenses/LICENSE_HEADER_TEMPLATE_SIEMENS.txt</validHeader>
                        <validHeader>licenses/LICENSE_HEADER_TEMPLATE_SIEMENS_18.txt</validHeader>
                        <validHeader>licenses/LICENSE_HEADER_TEMPLATE_BOSCH.txt</validHeader>
                        <validHeader>licenses/LICENSE_HEADER_TEMPLATE_BOSCH_18.txt</validHeader>
                        <validHeader>licenses/LICENSE_HEADER_TEMPLATE_MICROSOFT_20.txt</validHeader>
                        <validHeader>licenses/LICENSE_HEADER_TEMPLATE_MICROSOFT_18.txt</validHeader>
                        <validHeader>licenses/LICENSE_HEADER_TEMPLATE_RICO_PAHLISCH.txt</validHeader>
                    </validHeaders>
                    <excludes>
                        <exclude>**/helm/**</exclude>
                        <exclude>**/README</exclude>
                        <exclude>.3rd-party/**</exclude>
                        <exclude>.github/**</exclude>
                        <exclude>**/.git*</exclude>
                        <exclude>.git*</exclude>
                        <exclude>**/*.sql</exclude>
                        <exclude>eclipse_codeformatter.xml</exclude>
                        <exclude>**/addons.scss</exclude>
                        <exclude>**/VAADIN/widgetsets/**</exclude>
                        <exclude>.sonar</exclude>
                        <exclude>**/Dockerfile</exclude>
                        <exclude>**/docker-compose.yml</exclude>
                        <exclude>**/docker-compose-stack.yml</exclude>
                        <exclude>**/.sonar/**</exclude>
                        <exclude>docs/content/**</exclude>
                        <exclude>docs/layouts/**</exclude>
                        <exclude>docs/static/**</exclude>
                        <exclude>docs/*.toml</exclude>
                        <exclude>**/LICENSE*</exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <executions>
                    <execution>
                        <!-- Make sure that only non-snapshot versions are used
                           for the dependencies. Only active when property 'snapshotDependencyAllowed'
                           is false. -->
                        <id>enforce-no-snapshots</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <skip>${snapshotDependencyAllowed}</skip>
                            <rules>
                                <requireReleaseDeps>
                                    <message>No Snapshots Allowed!</message>
                                </requireReleaseDeps>
                                <requireReleaseVersion>
                                    <message>No Snapshots Allowed!</message>
                                </requireReleaseVersion>
                                <requireMavenVersion>
                                    <version>3.5</version>
                                </requireMavenVersion>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>versions-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-scm-plugin</artifactId>
                <version>${maven.scm.plugin.version}</version>
                <configuration>
                    <tag>${project.version}</tag>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <executions>
                    <!-- "prepare-agent" is executed in parent pom, hawkbit -->
                    <execution>
                        <id>report-ut</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                        <configuration>
                            <dataFile>${jacoco.outputDir}/jacoco.exec</dataFile>
                        </configuration>
                    </execution>
                    <!-- "prepare-agent-integration" is executed in parent pom, hawkbit -->
                    <execution>
                        <id>report-it</id>
                        <phase>post-integration-test</phase>
                        <goals>
                            <goal>report-integration</goal>
                        </goals>
                        <configuration>
                            <dataFile>${jacoco.outputDir}/jacoco-it.exec</dataFile>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.amazonaws</groupId>
                <artifactId>aws-java-sdk-bom</artifactId>
                <version>${aws.sdk.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.google.cloud</groupId>
                <artifactId>google-cloud-bom</artifactId>
                <version>${gcp.sdk.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.eclipse.hawkbit</groupId>
                <artifactId>hawkbit-core</artifactId>
                <version>${hawkbit.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.eclipse.hawkbit</groupId>
                <artifactId>hawkbit-security-core</artifactId>
                <version>${hawkbit.version}</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>
