<?xml version="1.0" encoding="UTF-8"?>
<!--
* ========================LICENSE_START=================================
* O-RAN-SC
* %%
* Copyright (C) 2021 Nordix Foundation
* %%
* 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.
* ========================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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.8.RELEASE</version>
        <relativePath />
    </parent>
    <groupId>org.o-ran-sc.nonrtric</groupId>
    <artifactId>helm-manager</artifactId>
    <!-- Update this when stepping version of the helm-manager -->
    <version>1.0.0-SNAPSHOT</version>
    <licenses>
        <license>
            <name>The Apache Software License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>
    <properties>
        <!-- Update this when a new version of the dependency jar shall be included -->
        <policy-clamp-participant-impl-kubernetes.version>6.1.2-SNAPSHOT</policy-clamp-participant-impl-kubernetes.version>
        <docker-maven-plugin.version>0.36.0</docker-maven-plugin.version>
        <maven-dependency-plugin.version>3.1.2</maven-dependency-plugin.version>
    </properties>
    <dependencies>
        <dependency>
        <groupId>org.onap.policy.clamp.participant</groupId>
        <artifactId>policy-clamp-participant-impl-kubernetes</artifactId>
        <version>${policy-clamp-participant-impl-kubernetes.version}</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <!-- Make the jar file of the dependency available as a file for inclusion in the docker image-->
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>${maven-dependency-plugin.version}</version>
                <executions>
                <execution>
                    <id>copy</id>
                    <phase>package</phase>
                    <goals>
                    <goal>copy</goal>
                    </goals>
                    <configuration>
                    <artifactItems>
                        <artifactItem>
                        <groupId>org.onap.policy.clamp.participant</groupId>
                        <artifactId>policy-clamp-participant-impl-kubernetes</artifactId>
                        <version>${policy-clamp-participant-impl-kubernetes.version}</version>
                        <type>jar</type>
                        <overWrite>true</overWrite>
                        <outputDirectory>${basedir}/target</outputDirectory>
                        <destFileName>app.jar</destFileName>
                        </artifactItem>
                    </artifactItems>
                    </configuration>
                </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>io.fabric8</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>${docker-maven-plugin.version}</version>
                <inherited>false</inherited>
                <executions>
                    <execution>
                        <id>generate-helm-manager-image</id>
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                        <configuration>
                            <pullRegistry>${env.CONTAINER_PULL_REGISTRY}</pullRegistry>
                            <images>
                                <image>
                                    <name>o-ran-sc/nonrtric-helm-manager:${project.version}</name>
                                    <build>
                                        <cleanup>try</cleanup>
                                        <contextDir>${basedir}</contextDir>
                                        <dockerFile>Dockerfile</dockerFile>
                                        <tags>
                                            <tag>${project.version}</tag>
                                        </tags>
                                    </build>
                                </image>
                            </images>
                        </configuration>
                    </execution>
                    <execution>
                        <id>push-helm-manager-image</id>
                        <goals>
                            <goal>build</goal>
                            <goal>push</goal>
                        </goals>
                        <configuration>
                            <pullRegistry>${env.CONTAINER_PULL_REGISTRY}</pullRegistry>
                            <pushRegistry>${env.CONTAINER_PUSH_REGISTRY}</pushRegistry>
                            <images>
                                <image>
                                    <name>o-ran-sc/nonrtric-helm-manager:${project.version}</name>
                                    <build>
                                        <contextDir>${basedir}</contextDir>
                                        <dockerFile>Dockerfile</dockerFile>
                                        <tags>
                                            <tag>${project.version}</tag>
                                            <tag>latest</tag>
                                        </tags>
                                    </build>
                                </image>
                            </images>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    <issueManagement>
        <system>JIRA</system>
        <url>https://jira.o-ran-sc.org/</url>
    </issueManagement>
</project>