| <!-- |
| ============LICENSE_START======================================================= |
| Copyright (c) 2021-2023 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========================================================= |
| --> |
| <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.3.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.5.0-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-java17:12.0.0</base.image> |
| <cps.version>3.3.9</cps.version> |
| <image.tag>${project.version}-${maven.build.timestamp}</image.tag> |
| <jacoco.minimum.coverage>0.98</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>3.1.2</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework.cloud</groupId> |
| <artifactId>spring-cloud-dependencies</artifactId> |
| <version>2022.0.3</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| <dependency> |
| <groupId>com.google.code.gson</groupId> |
| <artifactId>gson</artifactId> |
| <version>2.8.9</version> |
| </dependency> |
| <dependency> |
| <groupId>io.swagger.core.v3</groupId> |
| <artifactId>swagger-annotations</artifactId> |
| <version>2.2.10</version> |
| </dependency> |
| <dependency> |
| <groupId>io.cloudevents</groupId> |
| <artifactId>cloudevents-json-jackson</artifactId> |
| <version>2.5.0</version> |
| </dependency> |
| <dependency> |
| <groupId>io.cloudevents</groupId> |
| <artifactId>cloudevents-kafka</artifactId> |
| <version>2.5.0</version> |
| </dependency> |
| <dependency> |
| <groupId>io.cloudevents</groupId> |
| <artifactId>cloudevents-spring</artifactId> |
| <version>2.5.0</version> |
| </dependency> |
| <dependency> |
| <groupId>net.logstash.logback</groupId> |
| <artifactId>logstash-logback-encoder</artifactId> |
| <version>7.0.1</version> |
| </dependency> |
| <dependency> |
| <groupId>net.minidev</groupId> |
| <artifactId>json-smart</artifactId> |
| <version>2.5.0</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.httpcomponents</groupId> |
| <artifactId>httpclient</artifactId> |
| <version>4.5.13</version> |
| </dependency> |
| <dependency> |
| <groupId>org.codehaus.groovy</groupId> |
| <artifactId>groovy</artifactId> |
| <version>3.0.18</version> |
| </dependency> |
| <dependency> |
| <groupId>org.spockframework</groupId> |
| <artifactId>spock-core</artifactId> |
| <version>2.4-M1-groovy-3.0</version> |
| </dependency> |
| <dependency> |
| <groupId>org.spockframework</groupId> |
| <artifactId>spock-spring</artifactId> |
| <version>2.4-M1-groovy-3.0</version> |
| </dependency> |
| <dependency> |
| <groupId>org.springdoc</groupId> |
| <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> |
| <version>2.0.2</version> |
| </dependency> |
| <dependency> |
| <groupId>org.testcontainers</groupId> |
| <artifactId>testcontainers-bom</artifactId> |
| <version>1.18.3</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.codehaus.janino</groupId> |
| <artifactId>janino</artifactId> |
| <version>3.1.10</version> |
| </dependency> |
| <dependency> |
| <groupId>org.projectlombok</groupId> |
| <artifactId>lombok</artifactId> |
| <version>1.18.24</version> |
| </dependency> |
| <dependency> |
| <groupId>org.onap.cps</groupId> |
| <artifactId>cps-ncmp-events</artifactId> |
| <version>${cps.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.httpcomponents.client5</groupId> |
| <artifactId>httpclient5</artifactId> |
| <version>5.2.1</version> |
| </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.springdoc</groupId> |
| <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> |
| </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.springframework.kafka</groupId> |
| <artifactId>spring-kafka</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>com.google.code.gson</groupId> |
| <artifactId>gson</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>com.jayway.jsonpath</groupId> |
| <artifactId>json-path</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>io.micrometer</groupId> |
| <artifactId>micrometer-registry-prometheus</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>io.swagger.core.v3</groupId> |
| <artifactId>swagger-annotations</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>io.cloudevents</groupId> |
| <artifactId>cloudevents-json-jackson</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>io.cloudevents</groupId> |
| <artifactId>cloudevents-kafka</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>io.cloudevents</groupId> |
| <artifactId>cloudevents-spring</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>net.logstash.logback</groupId> |
| <artifactId>logstash-logback-encoder</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>net.minidev</groupId> |
| <artifactId>json-smart</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.httpcomponents</groupId> |
| <artifactId>httpclient</artifactId> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.codehaus.groovy</groupId> |
| <artifactId>groovy</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.codehaus.janino</groupId> |
| <artifactId>janino</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-server</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-http</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.onap.cps</groupId> |
| <artifactId>cps-ncmp-events</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.projectlombok</groupId> |
| <artifactId>lombok</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.httpcomponents.client5</groupId> |
| <artifactId>httpclient5</artifactId> |
| </dependency> |
| <!-- T E S T - D E P E N D E N C I E S --> |
| <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>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.springframework.kafka</groupId> |
| <artifactId>spring-kafka-test</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework.security</groupId> |
| <artifactId>spring-security-test</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.testcontainers</groupId> |
| <artifactId>spock</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.testcontainers</groupId> |
| <artifactId>kafka</artifactId> |
| <scope>test</scope> |
| </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>org.openapitools</groupId> |
| <artifactId>openapi-generator-maven-plugin</artifactId> |
| <version>6.6.0</version> |
| <executions> |
| <execution> |
| <goals> |
| <goal>generate</goal> |
| </goals> |
| <configuration> |
| <inputSpec>${project.basedir}/openapi/openapi.yml</inputSpec> |
| <generatorName>spring</generatorName> |
| <generateSupportingFiles>false</generateSupportingFiles> |
| <invokerPackage>org.onap.cps.ncmp.dmi.rest.controller</invokerPackage> |
| <apiPackage>org.onap.cps.ncmp.dmi.rest.api</apiPackage> |
| <modelPackage>org.onap.cps.ncmp.dmi.model</modelPackage> |
| <generateAliasAsModel>true</generateAliasAsModel> |
| <configOptions> |
| <sourceFolder>src/gen/java</sourceFolder> |
| <dateLibrary>java11</dateLibrary> |
| <interfaceOnly>true</interfaceOnly> |
| <useTags>true</useTags> |
| <useSpringBoot3>true</useSpringBoot3> |
| <openApiNullable>false</openApiNullable> |
| <skipDefaultInterface>true</skipDefaultInterface> |
| </configOptions> |
| </configuration> |
| </execution> |
| <execution> |
| <id>openapi-yaml-gen</id> |
| <goals> |
| <goal>generate</goal> |
| </goals> |
| <phase>compile</phase> |
| <configuration> |
| <inputSpec>${project.basedir}/openapi/openapi.yml</inputSpec> |
| <generatorName>openapi-yaml</generatorName> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <artifactId>maven-resources-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>copy-resources</id> |
| <phase>compile</phase> |
| <goals> |
| <goal>copy-resources</goal> |
| </goals> |
| <configuration> |
| <outputDirectory>${project.basedir}/target/classes/static/api-docs</outputDirectory> |
| <resources> |
| <resource> |
| <directory>${project.basedir}/target/generated-sources/openapi/openapi</directory> |
| <includes> |
| <include>openapi.yaml</include> |
| </includes> |
| </resource> |
| </resources> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-maven-plugin</artifactId> |
| <version>3.1.2</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> |
| <environmentVariables> |
| <!-- |
| Disable privileged container usage to cleanup the test containers; |
| these are removed automatically on jvm termination; |
| see https://www.testcontainers.org/features/configuration/#disabling-ryuk |
| --> |
| <TESTCONTAINERS_RYUK_DISABLED>true</TESTCONTAINERS_RYUK_DISABLED> |
| </environmentVariables> |
| </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.4.2</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.10</version> |
| <configuration> |
| <excludes> |
| <exclude>org/onap/cps/ncmp/dmi/model/*</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.3.2</version> |
| <configuration> |
| <container> |
| <mainClass>${app}</mainClass> |
| <creationTime>USE_CURRENT_TIMESTAMP</creationTime> |
| </container> |
| <from> |
| <image>${base.image}</image> |
| </from> |
| <to> |
| <tags> |
| <tag>latest</tag> |
| <tag>${project.version}-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> |