blob: e535d08d773b298cf53433c6548881fd77b6807f [file] [log] [blame]
<!--
============LICENSE_START=======================================================
Copyright (c) 2021 Nordix Foundation.
Modifications Copyright (C) 2021 Bell Canada.
================================================================================
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=========================================================
--><!DOCTYPE project [
<!ELEMENT project (modelVersion|parent|organization|groupId|artifactId|version|name|description|properties|dependencyManagement|dependencies|build|pluginManagement)*>
<!ATTLIST project
xmlns CDATA #REQUIRED
xmlns:xsi CDATA #REQUIRED
xsi:schemaLocation CDATA #REQUIRED>
<!ELEMENT modelVersion (#PCDATA)>
<!ELEMENT parent (groupId|artifactId|version|relativePath)*>
<!ELEMENT groupId (#PCDATA)>
<!ELEMENT artifactId (#PCDATA)>
<!ELEMENT version (#PCDATA)>
<!ELEMENT relativePath (#PCDATA)>
<!ELEMENT organization (name|url)*>
<!ELEMENT name (#PCDATA)>
<!ELEMENT url (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT properties (app|base.image|cps.version|image.tag|jacoco.minimum.coverage|maven.build.timestamp.format|project.build.sourceEncoding|image.name)*>
<!ELEMENT app (#PCDATA)>
<!ELEMENT base.image (#PCDATA)>
<!ELEMENT cps.version (#PCDATA)>
<!ELEMENT image.tag (#PCDATA)>
<!ELEMENT jacoco.minimum.coverage (#PCDATA)>
<!ELEMENT maven.build.timestamp.format (#PCDATA)>
<!ELEMENT project.build.sourceEncoding (#PCDATA)>
<!ELEMENT dependencyManagement (dependencies)*>
<!ELEMENT dependencies (dependency)*>
<!ELEMENT dependency (groupId|artifactId|version|type|scope|exclusions)*>
<!ELEMENT type (#PCDATA)>
<!ELEMENT scope (#PCDATA)>
<!ELEMENT exclusions (exclusion)*>
<!ELEMENT exclusion (groupId|artifactId)*>
<!ELEMENT build (resources|plugins|plugin)*>
<!ELEMENT resources (resource)*>
<!ELEMENT resource (directory|filtering|includes|targetPath)*>
<!ELEMENT directory (#PCDATA)>
<!ELEMENT filtering (#PCDATA)>
<!ELEMENT includes (include)*>
<!ELEMENT include (#PCDATA)>
<!ELEMENT targetPath (#PCDATA)>
<!ELEMENT plugins (plugin)*>
<!ELEMENT plugin (groupId|artifactId|version|executions|configuration|dependencies)*>
<!ELEMENT executions (execution)*>
<!ELEMENT execution (goals|configuration|id|phase)*>
<!ELEMENT goals (goal)*>
<!ELEMENT goal (#PCDATA)>
<!ELEMENT configuration (inputSpec|language|generateSupportingFiles|apiPackage|modelPackage|configOptions|argLine|includes|excludes|configLocation|includeResources|includeTestSourceDirectory|includeTestResources|sourceDirectories|consoleOutput|violationSeverity|failOnViolation|plugins|effort|threshold|failOnError|excludeFilterFile|xmlOutput|xmlOutputDirectory|dataFile|rules|dataFileIncludes|container|from|to)*>
<!ELEMENT inputSpec (#PCDATA)>
<!ELEMENT language (#PCDATA)>
<!ELEMENT generateSupportingFiles (#PCDATA)>
<!ELEMENT apiPackage (#PCDATA)>
<!ELEMENT modelPackage (#PCDATA)>
<!ELEMENT configOptions (sourceFolder|dateLibrary|interfaceOnly|useTags)*>
<!ELEMENT sourceFolder (#PCDATA)>
<!ELEMENT dateLibrary (#PCDATA)>
<!ELEMENT interfaceOnly (#PCDATA)>
<!ELEMENT useTags (#PCDATA)>
<!ELEMENT id (#PCDATA)>
<!ELEMENT phase (#PCDATA)>
<!ELEMENT argLine (#PCDATA)>
<!ELEMENT excludes (exclude)*>
<!ELEMENT exclude (#PCDATA)>
<!ELEMENT configLocation (#PCDATA)>
<!ELEMENT includeResources (#PCDATA)>
<!ELEMENT includeTestSourceDirectory (#PCDATA)>
<!ELEMENT includeTestResources (#PCDATA)>
<!ELEMENT sourceDirectories (sourceDirectory)*>
<!ELEMENT sourceDirectory (#PCDATA)>
<!ELEMENT consoleOutput (#PCDATA)>
<!ELEMENT violationSeverity (#PCDATA)>
<!ELEMENT failOnViolation (#PCDATA)>
<!ELEMENT effort (#PCDATA)>
<!ELEMENT threshold (#PCDATA)>
<!ELEMENT failOnError (#PCDATA)>
<!ELEMENT excludeFilterFile (#PCDATA)>
<!ELEMENT xmlOutput (#PCDATA)>
<!ELEMENT xmlOutputDirectory (#PCDATA)>
<!ELEMENT dataFile (#PCDATA)>
<!ELEMENT rules (rule)*>
<!ELEMENT rule (element|limits)*>
<!ELEMENT element (#PCDATA)>
<!ELEMENT limits (limit)*>
<!ELEMENT limit (counter|value|minimum)*>
<!ELEMENT counter (#PCDATA)>
<!ELEMENT value (#PCDATA)>
<!ELEMENT minimum (#PCDATA)>
<!ELEMENT dataFileIncludes (fileInclude)*>
<!ELEMENT fileInclude (#PCDATA)>
<!ELEMENT pluginManagement (plugins)*>
<!ELEMENT container (mainClass|creationTime)*>
<!ELEMENT mainClass (#PCDATA)>
<!ELEMENT creationTime (#PCDATA)>
<!ELEMENT from (image)*>
<!ELEMENT image (#PCDATA)>
<!ELEMENT to (tags|image)*>
<!ELEMENT tags (tag)*>
<!ELEMENT tag (#PCDATA)>
<!ELEMENT profiles (profile)*>
<!ELEMENT profile (id|activation|properties|build)*>
<!ELEMENT activation (activeByDefault)*>
<!ELEMENT activeByDefault (#PCDATA)>
<!ELEMENT image.name (#PCDATA)>
]>
<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.onap.oparent</groupId>
<artifactId>oparent</artifactId>
<version>3.2.0</version>
<relativePath/>
</parent>
<organization>
<name>ONAP - CPS</name>
<url>http://www.onap.org/</url>
</organization>
<groupId>org.onap.cps</groupId>
<artifactId>ncmp-dmi-plugin</artifactId>
<version>1.0.1-SNAPSHOT</version>
<name>ncmp-dmi-plugin</name>
<description>DMI Plugin Service</description>
<properties>
<app>org.onap.cps.ncmp.dmi.Application</app>
<base.image>${docker.pull.registry}/onap/integration-java11:8.0.0</base.image>
<cps.version>2.0.0</cps.version>
<image.tag>${project.version}-${maven.build.timestamp}</image.tag>
<jacoco.minimum.coverage>0.7</jacoco.minimum.coverage>
<maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.5.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.spockframework</groupId>
<artifactId>spock-bom</artifactId>
<version>2.0-M5-groovy-3.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.spockframework</groupId>
<artifactId>spock-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.spockframework</groupId>
<artifactId>spock-spring</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
<dependency>
<groupId>net.minidev</groupId>
<artifactId>json-smart</artifactId>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>target/generated-sources/license</directory>
<includes>
<include>third-party-licenses.txt</include>
</includes>
</resource>
<resource>
<directory>target/generated-resources/licenses</directory>
<includes>
<include>*.*</include>
</includes>
<targetPath>third-party-licenses</targetPath>
</resource>
</resources>
<plugins>
<plugin>
<groupId>io.swagger.codegen.v3</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>3.0.18</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/docs/openapi/openapi.yml</inputSpec>
<language>spring</language>
<generateSupportingFiles>false</generateSupportingFiles>
<apiPackage>org.onap.cps.ncmp.dmi.rest.api</apiPackage>
<modelPackage>org.onap.cps.ncmp.dmi.model</modelPackage>
<configOptions>
<sourceFolder>src/gen/java</sourceFolder>
<dateLibrary>java11</dateLibrary>
<interfaceOnly>true</interfaceOnly>
<useTags>true</useTags>
</configOptions>
</configuration>
</execution>
<execution>
<id>openapi-yaml-gen</id>
<goals>
<goal>generate</goal>
</goals>
<phase>compile</phase>
<configuration>
<inputSpec>${project.basedir}/docs/openapi/openapi.yml</inputSpec>
<language>openapi-yaml</language>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.3.RELEASE</version>
<executions>
<execution>
<goals>
<goal>build-info</goal>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.gmavenplus</groupId>
<artifactId>gmavenplus-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>compileTests</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>${surefireArgLine}</argLine>
<includes>
<include>**/*Spec.java</include>
</includes>
<excludes>
<exclude>**/IT*.java</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<executions>
<execution>
<id>onap-license</id>
<goals>
<goal>check</goal>
</goals>
<phase>process-sources</phase>
<configuration>
<configLocation>onap-checkstyle/check-license.xml</configLocation>
<includeResources>false</includeResources>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<includeTestResources>false</includeTestResources>
<sourceDirectories>
<sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
</sourceDirectories>
<consoleOutput>false</consoleOutput>
<violationSeverity>warning</violationSeverity>
<failOnViolation>true</failOnViolation>
</configuration>
</execution>
<execution>
<id>onap-java-style</id>
<goals>
<goal>check</goal>
</goals>
<phase>process-sources</phase>
<configuration>
<configLocation>onap-checkstyle/onap-java-style.xml</configLocation>
<sourceDirectories>
<sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
</sourceDirectories>
<includeResources>true</includeResources>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<includeTestResources>true</includeTestResources>
<consoleOutput>false</consoleOutput>
<violationSeverity>warning</violationSeverity>
<failOnViolation>true</failOnViolation>
</configuration>
</execution>
<execution>
<id>cps-java-style</id>
<goals>
<goal>check</goal>
</goals>
<phase>process-sources</phase>
<configuration>
<configLocation>cps-java-style.xml</configLocation>
<sourceDirectories>
<sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
</sourceDirectories>
<includeResources>true</includeResources>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<includeTestResources>true</includeTestResources>
<consoleOutput>true</consoleOutput>
<violationSeverity>warning</violationSeverity>
<failOnViolation>true</failOnViolation>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>checkstyle</artifactId>
<version>${cps.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>4.1.3</version>
<executions>
<execution>
<id>analyze-compile</id>
<phase>compile</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>spotbugs</artifactId>
<version>${cps.version}</version>
<scope>compile</scope>
</dependency>
</dependencies>
<configuration>
<plugins>
<plugin>
<groupId>jp.skypencil.findbugs.slf4j</groupId>
<artifactId>bug-pattern</artifactId>
<version>1.5.0</version>
</plugin>
</plugins>
<effort>Max</effort>
<threshold>Low</threshold>
<failOnError>true</failOnError>
<excludeFilterFile>spotbugs-exclude.xml</excludeFilterFile>
<addSourceDirs>true</addSourceDirs>
<xmlOutput>true</xmlOutput>
<xmlOutputDirectory>${basedir}/target/spotbugs</xmlOutputDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.5</version>
<configuration>
<excludes>
<exclude>org/onap/cps/ncmp/dmi/model/*</exclude>
<exclude>org/onap/cps/ncmp/dmi/config/*</exclude>
</excludes>
</configuration>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>coverage-check</id>
<goals>
<goal>check</goal>
</goals>
<configuration>
<dataFile>${basedir}/target/code-coverage/jacoco-ut.exec</dataFile>
<rules>
<rule>
<element>BUNDLE</element>
<limits>
<limit>
<counter>INSTRUCTION</counter>
<value>COVEREDRATIO</value>
<minimum>${jacoco.minimum.coverage}</minimum>
</limit>
</limits>
</rule>
</rules>
</configuration>
</execution>
<execution>
<id>report</id>
<phase>verify</phase>
<goals>
<goal>report-aggregate</goal>
</goals>
<configuration>
<dataFileIncludes>
<fileInclude>**/code-coverage/jacoco-ut.exec</fileInclude>
</dataFileIncludes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>3.1.4</version>
<configuration>
<container>
<mainClass>${app}</mainClass>
<creationTime>USE_CURRENT_TIMESTAMP</creationTime>
</container>
<from>
<image>${base.image}</image>
</from>
<to>
<tags>
<tag>latest</tag>
</tags>
<image>${docker.push.registry}/onap/${image.name}:${image.tag}</image>
</to>
</configuration>
<executions>
<execution>
<phase>package</phase>
<id>build</id>
<goals>
<goal>dockerBuild</goal>
</goals>
</execution>
<execution>
<phase>deploy</phase>
<id>buildAndPush</id>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
<profiles>
<profile>
<id>docker</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<image.name>ncmp-dmi-plugin</image.name>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>