blob: 43733bb8df3489d53703909c39d45ea8b9969598 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
============LICENSE_START=======================================================
Copyright (C) 2019-2020 Nordix Foundation.
Copyright (C) 2020-2022 Nokia. All rights reserved.
Copyright (C) 2021 Samsung Electronics. 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>
</parent>
<groupId>org.onap.dcaegen2.services</groupId>
<artifactId>pm-mapper</artifactId>
<version>1.8.0-SNAPSHOT</version>
<name>dcaegen2-services-pm-mapper</name>
<description>Maps PM measurement data from XML to VES</description>
<packaging>jar</packaging>
<properties>
<!-- Dependency Versions -->
<lombok.version>1.18.4</lombok.version>
<sl4j.version>1.7.25</sl4j.version>
<logback.version>1.2.10</logback.version>
<reactor.version>3.4.0</reactor.version>
<undertow.version>2.2.16.Final</undertow.version>
<gson.version>2.8.9</gson.version>
<freemarker.version>2.3.31</freemarker.version>
<commons.io.version>2.8.0</commons.io.version>
<xml.version>2.3.1</xml.version>
<jaxb.version>2.3.0.1</jaxb.version>
<!-- DCAE SDK -->
<sdk.version>1.8.8</sdk.version>
<!-- Testing Test Dependencies -->
<junit.version>5.3.2</junit.version>
<mockito.version>2.23.4</mockito.version>
<mockito-ju5-ext.version>2.23.4</mockito-ju5-ext.version>
<powermock.version>2.0.7</powermock.version>
<mockserver.version>5.11.2</mockserver.version>
<junit4.version>4.12</junit4.version>
<jsonschema.version>1.5.1</jsonschema.version>
<json.version>20210307</json.version>
<jackson.version>2.12.2</jackson.version>
<xerces.version>2.11.0</xerces.version>
<reactor.test>3.4.0</reactor.test>
<!-- Plugin Versions -->
<jacoco.version>0.8.2</jacoco.version>
<surefire.version>2.22.0</surefire.version>
<git-commit.version>3.0.0</git-commit.version>
<build-helper.version>3.0.0</build-helper.version>
<docker-maven.version>0.30.0</docker-maven.version>
<maven-jar.version>3.1.2</maven-jar.version>
<dependencies.version>3.1.1</dependencies.version>
<!-- Plugin Settings -->
<image-name>${docker.push.registry}/onap/${project.groupId}.${project.artifactId}</image-name>
<maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
<timestamp>${maven.build.timestamp}</timestamp>
<sonar.language>java</sonar.language>
<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
<sonar.surefire.reportsPath>${project.build.directory}/surefire-reports</sonar.surefire.reportsPath>
<sonar.jacoco.reportPaths>${project.build.directory}/coverage-reports/jacoco.exec</sonar.jacoco.reportPaths>
<sonar.jacoco.itReportPath>${project.build.directory}/coverage-reports/jacoco-it.exec</sonar.jacoco.itReportPath>
<sonar.projectVersion>${project.version}</sonar.projectVersion>
<compiler.target.version>1.11</compiler.target.version>
<compiler.source.version>1.11</compiler.source.version>
<onap.logging.version>1.2.2</onap.logging.version>
<classpath.separator>@@</classpath.separator>
<pmmapper.main.class>org.onap.dcaegen2.services.pmmapper.App</pmmapper.main.class>
<dep.dir.name>libs</dep.dir.name>
<ext.dep.dir.path>${dep.dir.name}/external</ext.dep.dir.path>
<docker-image.tag.latest>latest</docker-image.tag.latest>
</properties>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-core</artifactId>
<version>${reactor.version}</version>
</dependency>
<dependency>
<groupId>io.undertow</groupId>
<artifactId>undertow-core</artifactId>
<version>${undertow.version}</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>${xml.version}</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>${jaxb.version}</version>
</dependency>
<dependency>
<groupId>org.onap.dcaegen2.services.sdk.rest.services</groupId>
<artifactId>dmaap-client</artifactId>
<version>${sdk.version}</version>
</dependency>
<dependency>
<groupId>org.onap.dcaegen2.services.sdk.rest.services</groupId>
<artifactId>cbs-client</artifactId>
<version>${sdk.version}</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>${xml.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${sl4j.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>org.onap.logging-analytics</groupId>
<artifactId>logging-slf4j</artifactId>
<version>${onap.logging.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${gson.version}</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>${freemarker.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons.io.version}</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<version>${mockito-ju5-ext.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mock-server</groupId>
<artifactId>mockserver-netty</artifactId>
<version>${mockserver.version}</version>
<scope>test</scope>
<exclusions>
<exclusion>
<artifactId>*</artifactId>
<groupId>io.netty</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.mock-server</groupId>
<artifactId>mockserver-client-java</artifactId>
<version>${mockserver.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>${json.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-test</artifactId>
<version>${reactor.test}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.everit.json</groupId>
<artifactId>org.everit.json.schema</artifactId>
<version>${jsonschema.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>${xerces.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>${git-commit.version}</version>
<configuration>
<dateFormat>${maven.build.timestamp.format}</dateFormat>
</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>
<version>${dependencies.version}</version>
<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>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>${build-helper.version}</version>
<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>
</regexPropertySettings>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${docker-maven.version}</version>
<configuration>
<images>
<image>
<name>onap/${project.groupId}.${project.artifactId}:${docker-image.tag.latest}</name>
<registry>${onap.nexus.dockerregistry.daily}</registry>
<build>
<contextDir>${project.basedir}</contextDir>
<dockerFile>${project.build.outputDirectory}/Dockerfile</dockerFile>
<args>
<JAR>${project.build.finalName}.jar</JAR>
</args>
<cleanup>none</cleanup>
<tags>
<tag>${project.version}</tag>
<tag>${project.version}-${maven.build.timestamp}Z</tag>
</tags>
</build>
</image>
</images>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar.version}</version>
<configuration>
<archive>
<manifest>
<mainClass>${pmmapper.main.class}</mainClass>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addBuildEnvironmentEntries>true</addBuildEnvironmentEntries>
<useUniqueVersions>false</useUniqueVersions> <!-- workaround for MJAR-156 -->
</manifest>
<manifestEntries>
<Class-Path>${classpath.external}</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>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire.version}</version>
<configuration combine.self="override">
<useSystemClassLoader>false</useSystemClassLoader>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${surefire.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.version}</version>
<executions>
<execution>
<id>jacoco-instrument</id>
<goals>
<goal>instrument</goal>
</goals>
</execution>
<execution>
<id>jacoco-restore-instrumented-classes</id>
<goals>
<goal>restore-instrumented-classes</goal>
</goals>
</execution>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<excludes>
<exclude>*</exclude>
</excludes>
</configuration>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>