<?xml version="1.0" encoding="UTF-8"?>
<!--
    ============LICENSE_START=======================================================
    Copyright (c) 2019 QCT. All rights reserved.
    Copyright (c) 2022 AT&T. All rights reserved.
    Copyright (C) 2022 Wipro Limited. 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.
    ============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.dcaegen2.services.components</groupId>
        <artifactId>datalake-handler</artifactId>
        <version>1.1.2-SNAPSHOT</version>
    </parent>

    <groupId>org.onap.dcaegen2.services.components.datalake-handler</groupId>
    <artifactId>admin</artifactId>
    <packaging>pom</packaging>
    <properties>
        <swagger.version>2.9.2</swagger.version>
        <dockerfile-maven.version>1.4.5</dockerfile-maven.version>
        <docker.image.path>onap/org.onap.dcaegen2.services.datalakeadminui</docker.image.path>
        <maven.build.timestamp.format>yyyyMMdd'T'HHmmss</maven.build.timestamp.format>
        <onap-gerrit-review>-changelog-missing</onap-gerrit-review>
    </properties>
    <name>DataLake Admin</name>
    <build>
                <plugins>
                        <plugin>
                                <groupId>com.spotify</groupId>
                                <artifactId>dockerfile-maven-plugin</artifactId>
                                <version>${dockerfile-maven.version}</version>
                                <configuration>
                                    <repository>${onap.nexus.dockerregistry.daily}/${docker.image.path}</repository>
                                    <tag>${project.version}</tag>
                                    <dockerfile>Dockerfile</dockerfile>
                    </configuration>
                <executions>
                    <execution>
                        <id>build-datalake-admin-ui-image</id>
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                        <configuration>
                            <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
                        </configuration>
                    </execution>
                    <execution>
                        <id>tag-and-push-image-latest</id>
                        <phase>package</phase>
                        <goals>
                            <goal>tag</goal>
                            <goal>push</goal>
                        </goals>
                        <configuration>
                            <repository>${onap.nexus.dockerregistry.daily}/${docker.image.path}</repository>
                                <tag>latest</tag>
                            <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
                        </configuration>
                    </execution>
                    <execution>
                        <id>tag-and-push-image-with-version</id>
                        <phase>package</phase>
                        <goals>
                            <goal>tag</goal>
                            <goal>push</goal>
                        </goals>
                        <configuration>
                            <repository>${onap.nexus.dockerregistry.daily}/${docker.image.path}</repository>
                            <tag>${project.version}</tag>
                            <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
                        </configuration>
                    </execution>
                    <execution>
                        <id>tag-and-push-image-with-version-and-date</id>
                        <phase>package</phase>
                        <goals>
                            <goal>tag</goal>
                            <goal>push</goal>
                        </goals>
                        <configuration>
                            <repository>${onap.nexus.dockerregistry.daily}/${docker.image.path}</repository>
                            <tag>${project.version}-${maven.build.timestamp}Z</tag>
                            <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
                        </configuration>
                    </execution>
                </executions>
                                <dependencies>
                                        <dependency>
                                                <groupId>javax.activation</groupId>
                                                <artifactId>javax.activation-api</artifactId>
                                                <version>1.2.0</version>
                                        </dependency>
                                </dependencies>
                        </plugin>
                </plugins>
        </build>
</project>
