<?xml version="1.0"?>
<!--
================================================================================
Copyright (c) 2017-2018 AT&T 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</groupId>
    <artifactId>dcaegen2</artifactId>
    <version>1.2.0-SNAPSHOT</version>
  </parent>
  <groupId>org.onap.dcaegen2.utils</groupId>
  <artifactId>utils</artifactId>
  <name>dcaegen2-utils</name>
  <version>1.2.1-SNAPSHOT</version>
  <url>http://maven.apache.org</url>
  <packaging>pom</packaging>
  <modules>
     <module>onap-dcae-cbs-docker-client</module>
     <module>onap-dcae-dcaepolicy-lib</module>
     <module>scripts</module>
  </modules>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <!-- customize the SONARQUBE URL -->
    <sonar.host.url>http://localhost:9000</sonar.host.url>
    <!-- taken care of in the children -->
    <sonar.exclusions>**/*.py</sonar.exclusions>
  </properties>
  <build>
    <finalName>${project.artifactId}-${project.version}</finalName>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>1.2.1</version>
          <configuration>
            <executable>${session.executionRootDirectory}/mvn-phase-script.sh</executable>
            <environmentVariables>
              <!-- make mvn properties as env for our script -->
              <!-- make mvn properties as env for our script -->
              <MVN_PROJECT_GROUPID>${project.groupId}</MVN_PROJECT_GROUPID>
              <MVN_PROJECT_ARTIFACTID>${project.artifactId}</MVN_PROJECT_ARTIFACTID>
              <MVN_PROJECT_VERSION>${project.version}</MVN_PROJECT_VERSION>
              <MVN_NEXUSPROXY>${onap.nexus.url}</MVN_NEXUSPROXY>
              <MVN_RAWREPO_BASEURL_UPLOAD>${onap.nexus.rawrepo.baseurl.upload}</MVN_RAWREPO_BASEURL_UPLOAD>
              <MVN_RAWREPO_BASEURL_DOWNLOAD>${onap.nexus.rawrepo.baseurl.download}</MVN_RAWREPO_BASEURL_DOWNLOAD>
              <MVN_RAWREPO_SERVERID>${onap.nexus.rawrepo.serverid}</MVN_RAWREPO_SERVERID>
              <MVN_DOCKERREGISTRY_SNAPSHOT>${onap.nexus.dockerregistry.snapshot}</MVN_DOCKERREGISTRY_SNAPSHOT>
              <MVN_DOCKERREGISTRY_RELEASE>${onap.nexus.dockerregistry.release}</MVN_DOCKERREGISTRY_RELEASE>
              <MVN_DOCKERREGISTRY_SNAPSHOT_SERVERID>${onap.nexus.dockerregistry.snapshot.serverid}</MVN_DOCKERREGISTRY_SNAPSHOT_SERVERID>
              <MVN_DOCKERREGISTRY_RELEASE_SERVERID>${onap.nexus.dockerregistry.release.serverid}</MVN_DOCKERREGISTRY_RELEASE_SERVERID>
              <MVN_PYPISERVER_BASEURL>${onap.nexus.pypiserver.baseurl}</MVN_PYPISERVER_BASEURL>
              <MVN_PYPISERVER_SERVERID>${onap.nexus.pypiserver.serverid}</MVN_PYPISERVER_SERVERID>
            </environmentVariables>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>
