| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| ============LICENSE_START======================================================= |
| Copyright (c) 2021 Pantheon.tech. |
| Modifications Copyright (C) 2021 Bell Canada. |
| Modifications Copyright (C) 2021-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. |
| ============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"> |
| <parent> |
| <groupId>org.onap.oparent</groupId> |
| <artifactId>oparent</artifactId> |
| <version>3.2.0</version> |
| <relativePath/> |
| </parent> |
| <modelVersion>4.0.0</modelVersion> |
| |
| <groupId>org.onap.cps</groupId> |
| <artifactId>cps-parent</artifactId> |
| <version>3.4.7-SNAPSHOT</version> |
| <packaging>pom</packaging> |
| |
| <properties> |
| <app>org.onap.cps.Application</app> |
| <java.version>17</java.version> |
| <minimum-coverage>1.00</minimum-coverage> |
| <postgres.version>42.5.1</postgres.version> |
| |
| <jacoco.reportDirectory.aggregate>${project.reporting.outputDirectory}/jacoco-aggregate</jacoco.reportDirectory.aggregate> |
| <sonar.coverage.jacoco.xmlReportPaths> |
| ../jacoco-report/target/site/jacoco-aggregate/jacoco.xml |
| </sonar.coverage.jacoco.xmlReportPaths> |
| <parent.directory>${project.basedir}/..</parent.directory> |
| <maven.compiler.release>17</maven.compiler.release> |
| </properties> |
| |
| <profiles> |
| <profile> |
| <id>Windows</id> |
| <activation> |
| <os> |
| <family>Windows</family> |
| </os> |
| </activation> |
| <properties> |
| <script.executor>python</script.executor> |
| </properties> |
| </profile> |
| <profile> |
| <id>unix</id> |
| <activation> |
| <os> |
| <family>unix</family> |
| </os> |
| </activation> |
| <properties> |
| <script.executor>python3</script.executor> |
| </properties> |
| </profile> |
| </profiles> |
| |
| <dependencyManagement> |
| <dependencies> |
| <dependency> |
| <groupId>org.onap.cps</groupId> |
| <artifactId>cps-dependencies</artifactId> |
| <version>${project.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.onap.cps</groupId> |
| <artifactId>cps-bom</artifactId> |
| <version>${project.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| </dependencies> |
| </dependencyManagement> |
| |
| <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> |
| <pluginManagement> |
| <plugins> |
| <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.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <version>3.0.0-M5</version> |
| </plugin> |
| <!-- Swagger code generation. --> |
| <plugin> |
| <groupId>io.swagger.codegen.v3</groupId> |
| <artifactId>swagger-codegen-maven-plugin</artifactId> |
| <executions> |
| <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>com.github.spotbugs</groupId> |
| <artifactId>spotbugs-maven-plugin</artifactId> |
| <version>4.4.2</version> |
| <dependencies> |
| <dependency> |
| <groupId>com.github.spotbugs</groupId> |
| <artifactId>spotbugs</artifactId> |
| <version>4.2.3</version> |
| </dependency> |
| <dependency> |
| <groupId>${project.groupId}</groupId> |
| <artifactId>spotbugs</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| <dependency> |
| <!-- The SpotBugs Maven plugin uses SLF4J 1.8 beta 2 --> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-simple</artifactId> |
| <version>2.0.6</version> |
| </dependency> |
| </dependencies> |
| <configuration> |
| <plugins> |
| <plugin> |
| <groupId>jp.skypencil.findbugs.slf4j</groupId> |
| <artifactId>bug-pattern</artifactId> |
| <version>1.5.0</version> |
| </plugin> |
| </plugins> |
| <!-- |
| Enables analysis which takes more memory but finds more bugs. |
| If you run out of memory, changes the value of the effort element |
| to 'Low'. |
| --> |
| <addSourceDirs>true</addSourceDirs> |
| <effort>Max</effort> |
| <!-- Reports all bugs (other values are medium and max) --> |
| <threshold>Low</threshold> |
| <!-- Build doesn't fail if problems are found --> |
| <failOnError>true</failOnError> |
| <!-- References the excluded rules --> |
| <excludeFilterFile>spotbugs-exclude.xml</excludeFilterFile> |
| <!-- Produces XML report --> |
| <xmlOutput>true</xmlOutput> |
| <!-- Configures the directory in which the XML report is created --> |
| <xmlOutputDirectory>${project.build.directory}/spotbugs</xmlOutputDirectory> |
| </configuration> |
| <executions> |
| <!-- |
| Ensures that SpotBugs inspects source code when project is compiled. |
| --> |
| <execution> |
| <id>analyze-compile</id> |
| <phase>compile</phase> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.jsonschema2pojo</groupId> |
| <artifactId>jsonschema2pojo-maven-plugin</artifactId> |
| <version>1.2.1</version> |
| <configuration> |
| <targetVersion>${java.version}</targetVersion> |
| </configuration> |
| <executions> |
| <execution> |
| <goals> |
| <goal>generate</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-compiler-plugin</artifactId> |
| <version>3.11.0</version> |
| </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>org.onap.oparent</groupId> |
| <artifactId>checkstyle</artifactId> |
| <version>3.2.0</version> |
| </dependency> |
| <dependency> |
| <groupId>${project.groupId}</groupId> |
| <artifactId>checkstyle</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| </dependencies> |
| </plugin> |
| <!-- Mandatory plugins for using Spock --> |
| <plugin> |
| <!-- The gmavenplus plugin is used to compile Groovy code. |
| To learn more about this plugin, visit https://github.com/groovy/GMavenPlus/wiki --> |
| <groupId>org.codehaus.gmavenplus</groupId> |
| <artifactId>gmavenplus-plugin</artifactId> |
| <version>1.9.0</version> |
| <executions> |
| <execution> |
| <goals> |
| <goal>compileTests</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <!-- Required because names of spec classes don't match default |
| Surefire patterns (`*Test` etc.) --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <configuration> |
| <!--suppress UnresolvedMavenProperty --> |
| <argLine>${surefireArgLine}</argLine> |
| <useFile>false</useFile> |
| <includes> |
| <include>**/*Spec.java</include> |
| <include>**/*Test.java</include> <!-- Just in case of having also "normal" JUnit tests --> |
| </includes> |
| <excludes> |
| <!-- maven-failsafe-plugin will run performance tests in the integration-test module, |
| so performance tests will not affect Jacoco coverage (jacoco-report module is configured |
| to aggregate results from tests run with maven-surefire-plugin only) --> |
| <exclude>**/*PerfTest.java</exclude> |
| </excludes> |
| <environmentVariables> |
| <!-- |
| disable privileged container usage to cleanup the test containers; |
| these will be removed automatically on jvm termination; |
| see https://www.testcontainers.org/features/configuration/#disabling-ryuk |
| --> |
| <TESTCONTAINERS_RYUK_DISABLED>true</TESTCONTAINERS_RYUK_DISABLED> |
| <TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX>${docker.pull.registry}/</TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX> |
| </environmentVariables> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.jacoco</groupId> |
| <artifactId>jacoco-maven-plugin</artifactId> |
| <version>0.8.10</version> |
| <configuration> |
| <!--All exclusions below are referring to generated code--> |
| <excludes> |
| <exclude>org/onap/cps/event/model/*</exclude> |
| <exclude>org/onap/cps/rest/model/*</exclude> |
| <exclude>org/onap/cps/cpspath/parser/antlr4/*</exclude> |
| <exclude>org/onap/cps/ncmp/rest/model/*</exclude> |
| <exclude>org/onap/cps/**/*MapperImpl.class</exclude> |
| <exclude>org/onap/cps/ncmp/rest/stub/*</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>${project.build.directory}/code-coverage/jacoco-ut.exec</dataFile> |
| <rules> |
| <rule> |
| <element>BUNDLE</element> |
| <limits> |
| <limit> |
| <counter>INSTRUCTION</counter> |
| <value>COVEREDRATIO</value> |
| <minimum>${minimum-coverage}</minimum> |
| </limit> |
| </limits> |
| </rule> |
| </rules> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>com.github.spotbugs</groupId> |
| <artifactId>spotbugs-maven-plugin</artifactId> |
| </plugin> |
| <plugin> |
| <groupId>org.sonarsource.scanner.maven</groupId> |
| <artifactId>sonar-maven-plugin</artifactId> |
| <version>3.9.1.2184</version> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>exec-maven-plugin</artifactId> |
| <version>1.6.0</version> |
| <executions> |
| <execution> |
| <id>generate-csv</id> |
| <phase>prepare-package</phase> |
| <goals> |
| <goal>exec</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <executable>${script.executor}</executable> |
| <workingDirectory>${parent.directory}/cps-ri/src/main/resources/</workingDirectory> |
| <arguments> |
| <argument>yangResourceCsvGenerator.py</argument> |
| <argument>dmi-registry@2021-12-13</argument> |
| <argument>dmi-registry@2022-02-10</argument> |
| <argument>dmi-registry@2022-05-10</argument> |
| </arguments> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </project> |