summaryrefslogtreecommitdiffstats
path: root/pom.xml
blob: df8fe89ede8c00f2c760de63b3b1941000ce93cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
546
547
548
549
550
551
<!--
  ============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>
                    <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>2.8.0</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>