<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ ============LICENSE_START=======================================================
  ~ PNF-REGISTRATION-HANDLER
  ~ ================================================================================
  ~ Copyright (C) 2018-2019 NOKIA Intellectual Property. 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</groupId>
    <artifactId>prh</artifactId>
    <version>1.4.0-SNAPSHOT</version>
  </parent>

  <groupId>org.onap.dcaegen2.services.prh</groupId>
  <artifactId>prh-app-server</artifactId>
  <packaging>jar</packaging>

  <properties>
    <maven.build.timestamp.format>yyyyMMdd'T'HHmmss</maven.build.timestamp.format>

    <prh.main.class>org.onap.dcaegen2.services.prh.MainApp</prh.main.class>
    <classpath.separator>@@</classpath.separator>
    <dep.dir.name>libs</dep.dir.name>
    <ext.dep.dir.path>${dep.dir.name}/external</ext.dep.dir.path>
    <int.dep.dir.path>${dep.dir.name}/internal</int.dep.dir.path>

    <skipDocker>false</skipDocker>
    <docker.user.name>prh</docker.user.name>
    <docker.user.dir>/home/${docker.user.name}</docker.user.dir>
  </properties>

  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
    </resources>

    <plugins>
      <plugin>
        <groupId>pl.project13.maven</groupId>
        <artifactId>git-commit-id-plugin</artifactId>
        <configuration>
          <dateFormat>${maven.build.timestamp.format}</dateFormat>
          <generateGitPropertiesFile>true</generateGitPropertiesFile>
          <format>json</format>
          <generateGitPropertiesFilename>${project.build.outputDirectory}/git_info.json</generateGitPropertiesFilename>
        </configuration>
        <executions>
          <execution>
            <id>get-git-info</id>
            <goals>
              <goal>revision</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <configuration>
          <silent>true</silent>
          <includeScope>runtime</includeScope>
          <pathSeparator>${classpath.separator}</pathSeparator>
        </configuration>
        <executions>
          <execution>
            <id>copy-external-dependencies</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>copy-dependencies</goal>
              <goal>build-classpath</goal>
            </goals>
            <configuration>
              <excludeGroupIds>${project.parent.groupId}</excludeGroupIds>
              <outputDirectory>${project.build.directory}/${ext.dep.dir.path}</outputDirectory>
              <prefix>./${ext.dep.dir.path}</prefix>
              <outputProperty>classpath.external</outputProperty>
            </configuration>
          </execution>
          <execution>
            <id>copy-internal-dependencies</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>copy-dependencies</goal>
              <goal>build-classpath</goal>
            </goals>
            <configuration>
              <includeGroupIds>${project.parent.groupId}</includeGroupIds>
              <outputDirectory>${project.build.directory}/${int.dep.dir.path}</outputDirectory>
              <prefix>./${int.dep.dir.path}</prefix>
              <outputProperty>classpath.internal</outputProperty>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin> <!-- workaround for MDEP-541 -->
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>fix-classpath-separator</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>regex-properties</goal>
            </goals>
            <configuration>
              <regexPropertySettings>
                <regexPropertySetting>
                  <name>classpath.external</name>
                  <value>${classpath.external}</value>
                  <regex>${classpath.separator}</regex>
                  <replacement xml:space="preserve"> </replacement>
                </regexPropertySetting>
                <regexPropertySetting>
                  <name>classpath.internal</name>
                  <value>${classpath.internal}</value>
                  <regex>${classpath.separator}</regex>
                  <replacement xml:space="preserve"> </replacement>
                </regexPropertySetting>
              </regexPropertySettings>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <manifest>
              <mainClass>${prh.main.class}</mainClass>
              <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
              <addBuildEnvironmentEntries>true</addBuildEnvironmentEntries>
              <useUniqueVersions>false</useUniqueVersions> <!-- workaround for MJAR-156 -->
            </manifest>
            <manifestEntries>
              <Class-Path>${classpath.external} ${classpath.internal}</Class-Path>
              <Git-Branch>${git.branch}</Git-Branch>
              <Git-Build-Host>${git.build.host}</Git-Build-Host>
              <Git-Build-Time>${git.build.time}</Git-Build-Time>
              <Git-Build-User-Email>${git.build.user.email}</Git-Build-User-Email>
              <Git-Build-User-Name>${git.build.user.name}</Git-Build-User-Name>
              <Git-Build-Version>${git.build.version}</Git-Build-Version>
              <Git-Closest-Tag-Name>${git.closest.tag.name}</Git-Closest-Tag-Name>
              <Git-Commit-Id>${git.commit.id}</Git-Commit-Id>
              <Git-Commit-Message-Short>${git.commit.message.short}</Git-Commit-Message-Short>
              <Git-Commit-Time>${git.commit.time}</Git-Commit-Time>
              <Git-Commit-User-Email>${git.commit.user.email}</Git-Commit-User-Email>
              <Git-Commit-User-Name>${git.commit.user.name}</Git-Commit-User-Name>
            </manifestEntries>
          </archive>
        </configuration>
      </plugin>

      <plugin>
        <groupId>io.fabric8</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <configuration>
          <verbose>true</verbose>
          <imagePullPolicy>IfNotPresent</imagePullPolicy>
          <images>
            <image>
              <name>onap/${project.groupId}.${project.artifactId}</name>
              <registry>${onap.nexus.dockerregistry.daily}</registry>
              <build>
                <contextDir>${project.basedir}</contextDir>
                <cleanup>none</cleanup>
                <tags>
                  <tag>latest</tag>
                  <tag>${project.version}</tag>
                  <tag>${project.version}-${maven.build.timestamp}Z</tag>
                </tags>
              </build>
            </image>
          </images>
        </configuration>
<!--       <executions>
          <execution>
            <id>docker-build-image</id>
            <phase>package</phase>
            <goals>
              <goal>build</goal>
            </goals>
          </execution>
          <execution>
            <id>docker-push-image</id>
            <phase>deploy</phase>
            <goals>
              <goal>push</goal>
            </goals>
          </execution> 
        </executions> -->
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>org.onap.dcaegen2.services.prh</groupId>
      <artifactId>prh-commons</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.onap.dcaegen2.services.sdk.rest.services</groupId>
      <artifactId>cbs-client</artifactId>
    </dependency>
    <dependency>
      <groupId>org.onap.dcaegen2.services.sdk.rest.services</groupId>
      <artifactId>aai-client</artifactId>
    </dependency>
    <dependency>
      <groupId>org.onap.dcaegen2.services.sdk.rest.services</groupId>
      <artifactId>dmaap-client</artifactId>
    </dependency>
    <dependency>
      <groupId>org.onap.dcaegen2.services.sdk.rest.services</groupId>
      <artifactId>common-dependency</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-webflux</artifactId>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
    </dependency>
    <dependency>
      <groupId>io.projectreactor</groupId>
      <artifactId>reactor-core</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat.embed</groupId>
      <artifactId>tomcat-embed-core</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat.embed</groupId>
      <artifactId>tomcat-embed-el</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat.embed</groupId>
      <artifactId>tomcat-embed-websocket</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-configuration-processor</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>

    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-engine</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-junit-jupiter</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.assertj</groupId>
      <artifactId>assertj-core</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-contract-wiremock</artifactId>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>io.projectreactor</groupId>
      <artifactId>reactor-test</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.glassfish.jersey.connectors</groupId>
      <artifactId>jersey-apache-connector</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
