| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| ============LICENSE_START======================================================= |
| Copyright (C) 2024 Nordix Foundation |
| ================================================================================ |
| 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.cps</groupId> |
| <artifactId>ncmp-dmi-plugin</artifactId> |
| <version>1.6.0-SNAPSHOT</version> |
| </parent> |
| |
| <artifactId>dmi-service</artifactId> |
| |
| <properties> |
| <!-- Application Configuration --> |
| <app>org.onap.cps.ncmp.dmi.Application</app> |
| |
| <image.name>ncmp-dmi-plugin</image.name> |
| <!-- Encoding Configuration --> |
| <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> |
| |
| <!-- Checkstyle Configuration --> |
| <checkstyle.config.location>${project.parent.basedir}</checkstyle.config.location> |
| |
| <!-- Global properties for version management --> |
| <bug.pattern.version>1.5.0</bug.pattern.version> |
| <gmavenplus.plugin.version>4.0.1</gmavenplus.plugin.version> |
| <maven.surefire.plugin.version>3.3.1</maven.surefire.plugin.version> |
| <openapi.generator.maven.plugin.version>6.6.0</openapi.generator.maven.plugin.version> |
| <spring.boot.maven.plugin.version>3.1.2</spring.boot.maven.plugin.version> |
| <spotbugs.maven.plugin.version>4.4.2</spotbugs.maven.plugin.version> |
| |
| <!-- Code Coverage Configuration --> |
| <jacoco.execFile>${basedir}/target/code-coverage/jacoco-ut.exec</jacoco.execFile> |
| <jacoco.minimum.coverage>0.98</jacoco.minimum.coverage> |
| <jacoco.outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</jacoco.outputDirectory> |
| <jacoco.version>0.8.11</jacoco.version> |
| </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>org.springframework.kafka</groupId> |
| <artifactId>spring-kafka</artifactId> |
| <version>3.2.1</version> |
| </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.22</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> |
| <dependency> |
| <groupId>com.jayway.jsonpath</groupId> |
| <artifactId>json-path</artifactId> |
| <version>2.9.0</version> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework.kafka</groupId> |
| <artifactId>spring-kafka-test</artifactId> |
| <version>3.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> |
| <version>${cps.version}</version> |
| </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>${openapi.generator.maven.plugin.version}</version> |
| <executions> |
| <execution> |
| <id>dmi-code-gen</id> |
| <goals> |
| <goal>generate</goal> |
| </goals> |
| <configuration> |
| <inputSpec>${project.basedir}/../docs/api/swagger/openapi.yaml</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>dmi-datajob-code-gen</id> |
| <goals> |
| <goal>generate</goal> |
| </goals> |
| <configuration> |
| <inputSpec>${project.basedir}/../docs/api/swagger/openapi-datajob.yaml</inputSpec> |
| <generatorName>spring</generatorName> |
| <generateSupportingFiles>false</generateSupportingFiles> |
| <invokerPackage>org.onap.cps.ncmp.dmi.datajobs.rest.controller</invokerPackage> |
| <apiPackage>org.onap.cps.ncmp.dmi.datajobs.rest.api</apiPackage> |
| <modelPackage>org.onap.cps.ncmp.dmi.datajobs.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}/../docs/api/swagger/openapi.yaml</inputSpec> |
| <generatorName>openapi-yaml</generatorName> |
| <configOptions> |
| <outputFile>openapi/openapi.yaml</outputFile> |
| </configOptions> |
| </configuration> |
| </execution> |
| <execution> |
| <id>openapi-datajob-yaml-gen</id> |
| <goals> |
| <goal>generate</goal> |
| </goals> |
| <phase>compile</phase> |
| <configuration> |
| <inputSpec>${project.basedir}/../docs/api/swagger/openapi-datajob.yaml</inputSpec> |
| <generatorName>openapi-yaml</generatorName> |
| <configOptions> |
| <outputFile>openapi/openapi-datajob.yaml</outputFile> |
| </configOptions> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-maven-plugin</artifactId> |
| <version>${spring.boot.maven.plugin.version}</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> |
| <version>${gmavenplus.plugin.version}</version> |
| <executions> |
| <execution> |
| <goals> |
| <goal>compileTests</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <version>${maven.surefire.plugin.version}</version> |
| <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>com.github.spotbugs</groupId> |
| <artifactId>spotbugs-maven-plugin</artifactId> |
| <version>${spotbugs.maven.plugin.version}</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>${bug.pattern.version}</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>${jacoco.version}</version> |
| <configuration> |
| <excludes> |
| <exclude>org/onap/cps/ncmp/dmi/model/*</exclude> |
| <exclude>org/onap/cps/ncmp/dmi/datajobs/model/*</exclude> |
| </excludes> |
| </configuration> |
| <executions> |
| <execution> |
| <id>default-prepare-agent</id> |
| <goals> |
| <goal>prepare-agent</goal> |
| </goals> |
| <configuration> |
| <destFile>${jacoco.execFile}</destFile> |
| <propertyName>surefireArgLine</propertyName> |
| </configuration> |
| </execution> |
| <execution> |
| <id>coverage-check</id> |
| <phase>test</phase> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| <configuration> |
| <dataFile>${jacoco.execFile}</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>post-unit-test</id> |
| <phase>test</phase> |
| <goals> |
| <goal>report</goal> |
| </goals> |
| <configuration> |
| <outputEncoding>${project.reporting.outputEncoding}</outputEncoding> |
| <!-- Sets the path to the file which contains the execution data. --> |
| <dataFile>${jacoco.execFile}</dataFile> |
| <!-- Sets the output directory for the code coverage report. --> |
| <outputDirectory>${jacoco.outputDirectory}</outputDirectory> |
| </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> |