Release oam/nf-oam-adopter
[oam/nf-oam-adopter.git] / ves-nf-oam-adopter / ves-nf-oam-adopter-parent / pom.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3 * ============LICENSE_START=======================================================
4 * O-RAN-SC
5 * ================================================================================
6 * Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END============================================
20 *
21 -->
22 <project xmlns="http://maven.apache.org/POM/4.0.0"
23          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
24          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
25     <modelVersion>4.0.0</modelVersion>
26
27     <parent>
28         <groupId>org.o-ran-sc.oam</groupId>
29         <artifactId>ves-nf-oam-adopter-parent-lite</artifactId>
30         <version>1.0.0</version>
31         <relativePath>../ves-nf-oam-adopter-parent-lite/pom.xml</relativePath>
32     </parent>
33
34     <artifactId>ves-nf-oam-adopter-parent</artifactId>
35     <packaging>pom</packaging>
36
37     <properties>
38         <!-- Code coverate & Sonar -->
39         <minimum.coverage>0.85</minimum.coverage>
40         <jacoco.reportDirectory.aggregate>
41             ${project.reporting.outputDirectory}/jacoco-aggregate
42         </jacoco.reportDirectory.aggregate>
43         <sonar.coverage.jacoco.xmlReportPaths>
44             ../ves-nf-oam-adopter-event-notifier/target/site/jacoco-ut/jacoco.xml,
45             ../ves-nf-oam-adopter-event-notifier/target/site/jacoco-aggregate/jacoco.xml,
46             ../ves-nf-oam-adopter-snmp-manager/target/site/jacoco-ut/jacoco.xml,
47             ../ves-nf-oam-adopter-snmp-manager/target/site/jacoco-aggregate/jacoco.xml,
48             ../ves-nf-oam-adopter-pm-manager/target/site/jacoco-ut/jacoco.xml,
49             ../ves-nf-oam-adopter-pm-manager/target/site/jacoco-aggregate/jacoco.xml,
50             ../ves-nf-oam-adopter-pm-sb-rest-client/target/site/jacoco-ut/jacoco.xml,
51             ../ves-nf-oam-adopter-pm-sb-rest-client/target/site/jacoco-aggregate/jacoco.xml,
52             ../ves-nf-oam-adopter-app/target/site/jacoco-ut/jacoco.xml,
53             ../ves-nf-oam-adopter-app/target/site/jacoco-aggregate/jacoco.xml
54         </sonar.coverage.jacoco.xmlReportPaths>
55         <sonar.scanner.version>3.8.0.2131</sonar.scanner.version>
56         <sonar.exclusions>
57             **/api/**,
58             **/model/**,
59             **/pojos/**,
60             **/configurations/**,
61             **/properties/**,
62             **/config/**,
63             **/dto/**
64         </sonar.exclusions>
65         <!--Dependency Versions-->
66         <commons-configuration2.version>2.7</commons-configuration2.version>
67         <commons-io.version>2.6</commons-io.version>
68         <commons-beanutils.version>1.9.4</commons-beanutils.version>
69         <gson.version>2.8.6</gson.version>
70         <guava.version>30.1-jre</guava.version>
71         <httpclient5.version>5.0.3</httpclient5.version>
72         <jdt.annotation.version>2.2.600</jdt.annotation.version>
73         <lombok.version>1.18.20</lombok.version>
74         <rxjava.version>3.0.12</rxjava.version>
75         <snmp4j.version>3.4.4</snmp4j.version>
76         <spotbugs.version>4.2.3</spotbugs.version>
77         <spring.boot.version>2.4.5</spring.boot.version>
78         <swagger-annotations.version>2.1.9</swagger-annotations.version>
79         <!--Plugins Versions-->
80         <com.puppycrawl.tools.version>8.41</com.puppycrawl.tools.version>
81         <maven-checkstyle-plugin.version>3.1.2</maven-checkstyle-plugin.version>
82         <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
83         <maven-enforcer-plugin.version>3.0.0-M3</maven-enforcer-plugin.version>
84         <maven-javadoc-plugin.version>3.1.1</maven-javadoc-plugin.version>
85         <spotbugs-maven-plugin.version>4.2.3</spotbugs-maven-plugin.version>
86         <swagger-codegen-maven-plugin.version>3.0.25</swagger-codegen-maven-plugin.version>
87         <!--Image properties-->
88         <base.image>openjdk:11-jre-slim</base.image>
89         <base.config>${project.basedir}/configuration/</base.config>
90         <image.workdir>/o-ran-ves-adapter/</image.workdir>
91         <nexus.repository.mirror>nexus3.o-ran-sc.org:10001/</nexus.repository.mirror>
92         <nexus.repository>nexus3.o-ran-sc.org:10004/o-ran-sc/</nexus.repository>
93     </properties>
94
95     <dependencyManagement>
96         <dependencies>
97             <dependency>
98                 <groupId>${project.groupId}</groupId>
99                 <artifactId>ves-nf-oam-adopter-artifacts</artifactId>
100                 <version>${project.version}</version>
101                 <type>pom</type>
102                 <scope>import</scope>
103             </dependency>
104             <dependency>
105                 <groupId>com.google.code.gson</groupId>
106                 <artifactId>gson</artifactId>
107                 <version>${gson.version}</version>
108             </dependency>
109             <dependency>
110                 <groupId>org.eclipse.jdt</groupId>
111                 <artifactId>org.eclipse.jdt.annotation</artifactId>
112                 <version>${jdt.annotation.version}</version>
113             </dependency>
114             <dependency>
115                 <groupId>io.reactivex.rxjava3</groupId>
116                 <artifactId>rxjava</artifactId>
117                 <version>${rxjava.version}</version>
118             </dependency>
119             <dependency>
120                 <groupId>org.apache.httpcomponents.client5</groupId>
121                 <artifactId>httpclient5</artifactId>
122                 <version>${httpclient5.version}</version>
123             </dependency>
124             <dependency>
125                 <groupId>org.projectlombok</groupId>
126                 <artifactId>lombok</artifactId>
127                 <version>${lombok.version}</version>
128             </dependency>
129             <dependency>
130                 <groupId>org.snmp4j</groupId>
131                 <artifactId>snmp4j</artifactId>
132                 <version>${snmp4j.version}</version>
133             </dependency>
134             <dependency>
135                 <groupId>org.apache.commons</groupId>
136                 <artifactId>commons-configuration2</artifactId>
137                 <version>${commons-configuration2.version}</version>
138             </dependency>
139             <dependency>
140                 <groupId>commons-io</groupId>
141                 <artifactId>commons-io</artifactId>
142                 <version>${commons-io.version}</version>
143             </dependency>
144             <dependency>
145                 <groupId>commons-beanutils</groupId>
146                 <artifactId>commons-beanutils</artifactId>
147                 <version>${commons-beanutils.version}</version>
148             </dependency>
149             <dependency>
150                 <groupId>com.google.guava</groupId>
151                 <artifactId>guava</artifactId>
152                 <version>${guava.version}</version>
153             </dependency>
154             <dependency>
155                 <groupId>com.github.spotbugs</groupId>
156                 <artifactId>spotbugs-annotations</artifactId>
157                 <version>${spotbugs.version}</version>
158             </dependency>
159             <dependency>
160                 <groupId>io.swagger.core.v3</groupId>
161                 <artifactId>swagger-annotations</artifactId>
162                 <version>${swagger-annotations.version}</version>
163             </dependency>
164             <dependency>
165                 <groupId>org.springframework.boot</groupId>
166                 <artifactId>spring-boot-starter</artifactId>
167                 <version>${spring.boot.version}</version>
168                 <exclusions>
169                     <exclusion>
170                         <groupId>org.springframework.boot</groupId>
171                         <artifactId>spring-boot-starter-logging</artifactId>
172                     </exclusion>
173                     <exclusion>
174                         <groupId>junit</groupId>
175                         <artifactId>junit</artifactId>
176                     </exclusion>
177                 </exclusions>
178             </dependency>
179             <dependency>
180                 <groupId>org.springframework.boot</groupId>
181                 <artifactId>spring-boot-dependencies</artifactId>
182                 <version>${spring.boot.version}</version>
183                 <type>pom</type>
184                 <scope>import</scope>
185                 <exclusions>
186                     <exclusion>
187                         <groupId>org.springframework.boot</groupId>
188                         <artifactId>spring-boot-starter-logging</artifactId>
189                     </exclusion>
190                     <exclusion>
191                         <groupId>junit</groupId>
192                         <artifactId>junit</artifactId>
193                     </exclusion>
194                 </exclusions>
195             </dependency>
196         </dependencies>
197     </dependencyManagement>
198
199     <build>
200         <pluginManagement>
201             <plugins>
202                 <plugin>
203                     <groupId>org.sonarsource.scanner.maven</groupId>
204                     <artifactId>sonar-maven-plugin</artifactId>
205                     <version>${sonar.scanner.version}</version>
206                 </plugin>
207                 <plugin>
208                     <groupId>org.apache.maven.plugins</groupId>
209                     <artifactId>maven-compiler-plugin</artifactId>
210                     <version>${maven-compiler-plugin.version}</version>
211                     <configuration>
212                         <release>${java.version}</release>
213                         <forceJavacCompilerUse>true</forceJavacCompilerUse>
214                     </configuration>
215                 </plugin>
216                 <plugin>
217                     <groupId>org.apache.maven.plugins</groupId>
218                     <artifactId>maven-checkstyle-plugin</artifactId>
219                     <version>${maven-checkstyle-plugin.version}</version>
220                     <executions>
221                         <execution>
222                             <id>ves-nf-oam-adopter-java-style</id>
223                             <goals>
224                                 <goal>check</goal>
225                             </goals>
226                             <phase>process-sources</phase>
227                             <configuration>
228                                 <configLocation>ves-nf-oam-adopter-java-style.xml</configLocation>
229                                 <sourceDirectories>
230                                     <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
231                                 </sourceDirectories>
232                                 <includeResources>true</includeResources>
233                                 <includeTestSourceDirectory>true</includeTestSourceDirectory>
234                                 <includeTestResources>true</includeTestResources>
235                                 <consoleOutput>true</consoleOutput>
236                                 <violationSeverity>warning</violationSeverity>
237                                 <failOnViolation>true</failOnViolation>
238                             </configuration>
239                         </execution>
240                     </executions>
241                     <dependencies>
242                         <dependency>
243                             <groupId>com.puppycrawl.tools</groupId>
244                             <artifactId>checkstyle</artifactId>
245                             <version>${com.puppycrawl.tools.version}</version>
246                         </dependency>
247                         <dependency>
248                             <groupId>${project.groupId}</groupId>
249                             <artifactId>ves-nf-oam-adopter-checkstyle</artifactId>
250                             <version>${project.version}</version>
251                         </dependency>
252                     </dependencies>
253                 </plugin>
254                 <plugin>
255                     <groupId>com.github.spotbugs</groupId>
256                     <artifactId>spotbugs-maven-plugin</artifactId>
257                     <version>${spotbugs-maven-plugin.version}</version>
258                     <dependencies>
259                         <dependency>
260                             <groupId>com.github.spotbugs</groupId>
261                             <artifactId>spotbugs</artifactId>
262                             <version>${spotbugs-maven-plugin.version}</version>
263                         </dependency>
264                         <dependency>
265                             <groupId>${project.groupId}</groupId>
266                             <artifactId>ves-nf-oam-adopter-spotbugs</artifactId>
267                             <version>${project.version}</version>
268                         </dependency>
269                     </dependencies>
270                     <configuration>
271                         <plugins>
272                             <plugin>
273                                 <groupId>jp.skypencil.findbugs.slf4j</groupId>
274                                 <artifactId>bug-pattern</artifactId>
275                                 <version>1.5.0</version>
276                             </plugin>
277                         </plugins>
278                         <!--
279                           Enables analysis which takes more memory but finds more bugs.
280                           If you run out of memory, changes the value of the effort element
281                           to 'Low'.
282                         -->
283                         <effort>Max</effort>
284                         <!-- Reports all bugs (other values are medium and max) -->
285                         <threshold>Low</threshold>
286                         <!-- Build fail if problems are found -->
287                         <failOnError>true</failOnError>
288                         <!-- References the excluded rules -->
289                         <excludeFilterFile>spotbugs-exclude.xml</excludeFilterFile>
290                         <!-- Produces XML report -->
291                         <xmlOutput>true</xmlOutput>
292                         <!-- Configures the directory in which the XML report is created -->
293                         <xmlOutputDirectory>${project.build.directory}/spotbugs</xmlOutputDirectory>
294                     </configuration>
295                     <executions>
296                         <!--
297                           Ensures that SpotBugs inspects source code when project is compiled.
298                         -->
299                         <execution>
300                             <id>analyze-compile</id>
301                             <phase>compile</phase>
302                             <goals>
303                                 <goal>check</goal>
304                             </goals>
305                         </execution>
306                     </executions>
307                 </plugin>
308                 <plugin>
309                     <groupId>org.apache.maven.plugins</groupId>
310                     <artifactId>maven-surefire-plugin</artifactId>
311                     <version>3.0.0-M4</version>
312                     <configuration>
313                         <!--suppress UnresolvedMavenProperty -->
314                         <argLine>${surefireArgLine}</argLine>
315                         <useFile>false</useFile>
316                         <includes>
317                             <include>**/*Test.java</include>
318                         </includes>
319                         <excludes>
320                             <exclude>**/IT*.java</exclude>
321                         </excludes>
322                     </configuration>
323                 </plugin>
324                 <plugin>
325                     <groupId>org.jacoco</groupId>
326                     <artifactId>jacoco-maven-plugin</artifactId>
327                     <version>0.8.6</version>
328                     <configuration>
329                         <excludes>
330                             <exclude>**/api/*</exclude>
331                             <exclude>**/model/*</exclude>
332                             <exclude>**/pojos/*</exclude>
333                             <exclude>**/configurations/*</exclude>
334                             <exclude>**/properties/*</exclude>
335                             <exclude>**/config/*</exclude>
336                             <exclude>**/dto/*</exclude>
337                             <exclude>**/AdapterApplication.class</exclude>
338                         </excludes>
339                     </configuration>
340                     <executions>
341                         <execution>
342                             <id>pre-unit-test</id>
343                             <goals>
344                                 <goal>prepare-agent</goal>
345                             </goals>
346                             <configuration>
347                                 <destFile>${project.build.directory}/code-coverage/jacoco-ut.exec</destFile>
348                                 <propertyName>surefireArgLine</propertyName>
349                             </configuration>
350                         </execution>
351                         <execution>
352                             <id>post-unit-test</id>
353                             <phase>test</phase>
354                             <goals>
355                                 <goal>report</goal>
356                             </goals>
357                             <configuration>
358                                 <dataFile>${project.build.directory}/code-coverage/jacoco-ut.exec</dataFile>
359                                 <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
360                             </configuration>
361                         </execution>
362                         <execution>
363                             <id>default-prepare-agent</id>
364                             <goals>
365                                 <goal>prepare-agent</goal>
366                             </goals>
367                         </execution>
368                         <execution>
369                             <id>default-report</id>
370                             <phase>prepare-package</phase>
371                             <goals>
372                                 <goal>report</goal>
373                             </goals>
374                         </execution>
375                         <execution>
376                             <id>default-check</id>
377                             <goals>
378                                 <goal>check</goal>
379                             </goals>
380                             <configuration>
381                                 <dataFile>${project.build.directory}/code-coverage/jacoco-ut.exec</dataFile>
382                                 <rules>
383                                     <rule>
384                                         <element>BUNDLE</element>
385                                         <limits>
386                                             <limit>
387                                                 <counter>INSTRUCTION</counter>
388                                                 <value>COVEREDRATIO</value>
389                                                 <minimum>${minimum.coverage}</minimum>
390                                             </limit>
391                                         </limits>
392                                     </rule>
393                                 </rules>
394                             </configuration>
395                         </execution>
396                         <execution>
397                             <id>report</id>
398                             <goals>
399                                 <goal>report-aggregate</goal>
400                             </goals>
401                             <phase>verify</phase>
402                             <configuration>
403                                 <dataFileIncludes>
404                                     <fileInclude>**/code-coverage/jacoco-ut.exec</fileInclude>
405                                 </dataFileIncludes>
406                             </configuration>
407                         </execution>
408                     </executions>
409                 </plugin>
410                 <plugin>
411                     <groupId>org.apache.maven.plugins</groupId>
412                     <artifactId>maven-enforcer-plugin</artifactId>
413                     <version>${maven-enforcer-plugin.version}</version>
414                     <executions>
415                         <execution>
416                             <id>enforce-maven</id>
417                             <goals>
418                                 <goal>enforce</goal>
419                             </goals>
420                             <configuration>
421                                 <rules>
422                                     <requireMavenVersion>
423                                         <version>3.6.0</version>
424                                     </requireMavenVersion>
425                                 </rules>
426                             </configuration>
427                         </execution>
428                     </executions>
429                 </plugin>
430                 <plugin>
431                     <groupId>org.apache.maven.plugins</groupId>
432                     <artifactId>maven-javadoc-plugin</artifactId>
433                     <version>${maven-javadoc-plugin.version}</version>
434                     <configuration combine.children="append">
435                         <!-- Keep things quiet except for warnings/errors -->
436                         <quiet>true</quiet>
437                     </configuration>
438                     <executions>
439                         <execution>
440                             <id>attach-javadocs</id>
441                             <goals>
442                                 <goal>jar</goal>
443                             </goals>
444                         </execution>
445                     </executions>
446                 </plugin>
447                 <plugin>
448                     <groupId>org.springframework.boot</groupId>
449                     <artifactId>spring-boot-maven-plugin</artifactId>
450                     <version>${spring.boot.version}</version>
451                     <executions>
452                         <execution>
453                             <goals>
454                                 <goal>repackage</goal>
455                             </goals>
456                         </execution>
457                     </executions>
458                 </plugin>
459                 <plugin>
460                     <groupId>io.swagger.codegen.v3</groupId>
461                     <artifactId>swagger-codegen-maven-plugin</artifactId>
462                     <version>${swagger-codegen-maven-plugin.version}</version>
463                 </plugin>
464             </plugins>
465         </pluginManagement>
466         <plugins>
467             <plugin>
468                 <groupId>org.apache.maven.plugins</groupId>
469                 <artifactId>maven-compiler-plugin</artifactId>
470             </plugin>
471             <plugin>
472                 <groupId>org.apache.maven.plugins</groupId>
473                 <artifactId>maven-checkstyle-plugin</artifactId>
474             </plugin>
475             <plugin>
476                 <groupId>com.github.spotbugs</groupId>
477                 <artifactId>spotbugs-maven-plugin</artifactId>
478             </plugin>
479             <plugin>
480                 <groupId>org.jacoco</groupId>
481                 <artifactId>jacoco-maven-plugin</artifactId>
482             </plugin>
483             <plugin>
484                 <groupId>org.sonarsource.scanner.maven</groupId>
485                 <artifactId>sonar-maven-plugin</artifactId>
486             </plugin>
487             <plugin>
488                 <groupId>org.apache.maven.plugins</groupId>
489                 <artifactId>maven-enforcer-plugin</artifactId>
490             </plugin>
491             <plugin>
492                 <groupId>org.apache.maven.plugins</groupId>
493                 <artifactId>maven-javadoc-plugin</artifactId>
494             </plugin>
495             <plugin>
496                 <groupId>org.apache.maven.plugins</groupId>
497                 <artifactId>maven-surefire-plugin</artifactId>
498             </plugin>
499         </plugins>
500     </build>
501 </project>