<?xml version="1.0" encoding="UTF-8"?>
<!-- 
    ============LICENSE_START======================================================= 
    Copyright (C) 2021-2022 Nokia. All rights reserved.
    Copyright © 2022 Nordix Foundation. All rights reserved.
    Copyright (c) 2023 Deutsche Telekom AG. All rights reserved. 
    ================================================================================ 
    Licensed under the Apache License, Version 2.0 (the "License"); you may not 
    use this file except in compliance with the License. You may obtain a copy 
    of the License at 
    
    http://www.apache.org/licenses/LICENSE-2.0 
    
    Unless required by applicable law or agreed to in writing, software distributed under the 
    License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
    OF ANY KIND, either express or implied. See the License for the specific 
    language governing permissions and limitations under the License. SPDX-License-Identifier: 
    Apache-2.0 
    ============LICENSE_END========================================================= -->
<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.onap.oparent</groupId>
        <artifactId>oparent</artifactId>
        <version>3.2.0</version>
        <relativePath />
    </parent>

    <groupId>org.onap.dcaegen2.platform.ves-openapi-manager</groupId>
    <artifactId>ves-openapi-manager</artifactId>
    <version>1.3.1-SNAPSHOT</version>
    <name>dcaegen2-platform-ves-openapi-manager</name>
    <packaging>jar</packaging>

    <properties>
        <sdc-distribution-client.version>2.0.0</sdc-distribution-client.version>
        <junit-jupiter.version>5.2.0</junit-jupiter.version>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <junit5.version>5.2.0</junit5.version>
        <platform.version>1.2.0</platform.version>
        <surefire.version>${mockito-core.version}</surefire.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <hibernate-validator.version>6.1.6.Final</hibernate-validator.version>
        <jackson-databind.version>2.14.1</jackson-databind.version>
        <mockito-core.version>2.22.0</mockito-core.version>
        <spring.version>2.7.2</spring.version>
        <docker-maven-plugin.version>0.31.0</docker-maven-plugin.version>
        <skipDockerPush>false</skipDockerPush>
        <nexusproxy>https://nexus.onap.org</nexusproxy>
        <snapshotNexusPath>/content/repositories/snapshots/</snapshotNexusPath>
        <releaseNexusPath>/content/repositories/releases/</releaseNexusPath>
        <stagingNexusPath>/content/repositories/staging/</stagingNexusPath>
        <docker-image.namespace>onap</docker-image.namespace>
        <docker-image.name.prefix>org.onap.dcaegen2.platform</docker-image.name.prefix>
        <maven.build.timestamp.format>yyyyMMdd'T'HHmmss</maven.build.timestamp.format>
        <maven-compiler-plugin.version>3.5.1</maven-compiler-plugin.version>
        <containerName>org.onap.dcaegen2.platform.ves-openapi-manager</containerName>
    </properties>

    <build>
        <finalName>ves-openapi-manager</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${surefire.version}</version>
                <dependencies>
                    <dependency>
                        <groupId>org.junit.platform</groupId>
                        <artifactId>junit-platform-surefire-provider</artifactId>
                        <version>${platform.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.junit.jupiter</groupId>
                        <artifactId>junit-jupiter-engine</artifactId>
                        <version>${junit5.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven-compiler-plugin.version}</version>
                <configuration>
                    <source>${maven.compiler.source}</source>
                    <target>${maven.compiler.target}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>io.fabric8</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>${docker-maven-plugin.version}</version>
                <configuration>
                    <skipPush>${skipDockerPush}</skipPush>
                    <verbose>true</verbose>
                    <imagePullPolicy>IfNotPresent</imagePullPolicy>
                    <images>
                        <image>
                            <alias>${project.artifactId}</alias>
                            <name>${docker-image.namespace}/${docker-image.name.prefix}.${project.artifactId}</name>
                            <registry>${onap.nexus.dockerregistry.daily}</registry>
                            <build>
                                <dockerFileDir>${project.basedir}</dockerFileDir>
                                <tags>
                                    <tag>${project.version}-${maven.build.timestamp}Z</tag>
                                </tags>
                            </build>
                        </image>
                    </images>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <!-- Import dependency management from Spring Boot -->
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring.version}</version>
                <type>pom</type>
                <scope>import</scope>
           </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>${hibernate-validator.version}</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.onap.sdc.sdc-distribution-client</groupId>
            <artifactId>sdc-distribution-client</artifactId>
            <version>${sdc-distribution-client.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson-databind.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>${jackson-databind.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-yaml</artifactId>
            <version>${jackson-databind.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jsr310</artifactId>
            <version>${jackson-databind.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>${mockito-core.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <distributionManagement>
        <repository>
            <id>ecomp-releases</id>
            <name>Integration simulators Release Repository</name>
            <url>${nexusproxy}${releaseNexusPath}</url>
        </repository>
        <snapshotRepository>
            <id>ecomp-snapshots</id>
            <name>Integration simulators Snapshot Repository</name>
            <url>${nexusproxy}${snapshotNexusPath}</url>
        </snapshotRepository>
        <site>
            <id>ecomp-site</id>
            <url>dav:${nexusproxy}${sitePath}</url>
        </site>
    </distributionManagement>

</project>
