NF OAM Adopter RAN Mock application
[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-SNAPSHOT</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.9</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         </sonar.coverage.jacoco.xmlReportPaths>
49         <sonar.scanner.version>3.8.0.2131</sonar.scanner.version>
50         <!--Dependency Versions-->
51         <commons-configuration2.version>2.7</commons-configuration2.version>
52         <commons-io.version>2.6</commons-io.version>
53         <commons-beanutils.version>1.9.4</commons-beanutils.version>
54         <gson.version>2.8.6</gson.version>
55         <httpclient5.version>5.0.3</httpclient5.version>
56         <jdt.annotation.version>2.2.600</jdt.annotation.version>
57         <lombok.version>1.18.20</lombok.version>
58         <rxjava.version>3.0.12</rxjava.version>
59         <snmp4j.version>3.4.4</snmp4j.version>
60         <spotbugs.version>4.2.3</spotbugs.version>
61         <spring.boot.version>2.4.5</spring.boot.version>
62         <swagger-annotations.version>2.1.9</swagger-annotations.version>
63         <!--Plugins Versions-->
64         <com.puppycrawl.tools.version>8.41</com.puppycrawl.tools.version>
65         <maven-checkstyle-plugin.version>3.1.2</maven-checkstyle-plugin.version>
66         <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
67         <maven-enforcer-plugin.version>3.0.0-M3</maven-enforcer-plugin.version>
68         <maven-javadoc-plugin.version>3.1.1</maven-javadoc-plugin.version>
69         <spotbugs-maven-plugin.version>4.2.3</spotbugs-maven-plugin.version>
70         <swagger-codegen-maven-plugin.version>3.0.25</swagger-codegen-maven-plugin.version>
71         <!--Image properties-->
72         <base.image>openjdk:11-jre-slim</base.image>
73         <base.config>${project.basedir}/configuration/</base.config>
74         <image.workdir>/o-ran-ves-adapter/</image.workdir>
75         <nexus.repository>nexus3.o-ran-sc.org:10003/o-ran-sc/</nexus.repository>
76     </properties>
77
78     <dependencyManagement>
79         <dependencies>
80             <dependency>
81                 <groupId>${project.groupId}</groupId>
82                 <artifactId>ves-nf-oam-adopter-artifacts</artifactId>
83                 <version>${project.version}</version>
84                 <type>pom</type>
85                 <scope>import</scope>
86             </dependency>
87             <dependency>
88                 <groupId>io.swagger.core.v3</groupId>
89                 <artifactId>swagger-annotations</artifactId>
90                 <version>${swagger-annotations.version}</version>
91             </dependency>
92             <dependency>
93                 <groupId>com.google.code.gson</groupId>
94                 <artifactId>gson</artifactId>
95                 <version>${gson.version}</version>
96             </dependency>
97             <dependency>
98                 <groupId>org.eclipse.jdt</groupId>
99                 <artifactId>org.eclipse.jdt.annotation</artifactId>
100                 <version>${jdt.annotation.version}</version>
101             </dependency>
102             <dependency>
103                 <groupId>io.reactivex.rxjava3</groupId>
104                 <artifactId>rxjava</artifactId>
105                 <version>${rxjava.version}</version>
106             </dependency>
107             <dependency>
108                 <groupId>org.apache.httpcomponents.client5</groupId>
109                 <artifactId>httpclient5</artifactId>
110                 <version>${httpclient5.version}</version>
111             </dependency>
112             <dependency>
113                 <groupId>org.projectlombok</groupId>
114                 <artifactId>lombok</artifactId>
115                 <version>${lombok.version}</version>
116             </dependency>
117             <dependency>
118                 <groupId>org.snmp4j</groupId>
119                 <artifactId>snmp4j</artifactId>
120                 <version>${snmp4j.version}</version>
121             </dependency>
122             <dependency>
123                 <groupId>org.apache.commons</groupId>
124                 <artifactId>commons-configuration2</artifactId>
125                 <version>${commons-configuration2.version}</version>
126             </dependency>
127             <dependency>
128                 <groupId>commons-io</groupId>
129                 <artifactId>commons-io</artifactId>
130                 <version>${commons-io.version}</version>
131             </dependency>
132             <dependency>
133                 <groupId>commons-beanutils</groupId>
134                 <artifactId>commons-beanutils</artifactId>
135                 <version>${commons-beanutils.version}</version>
136             </dependency>
137             <dependency>
138                 <groupId>com.github.spotbugs</groupId>
139                 <artifactId>spotbugs-annotations</artifactId>
140                 <version>${spotbugs.version}</version>
141             </dependency>
142             <dependency>
143                 <groupId>org.springframework.boot</groupId>
144                 <artifactId>spring-boot-starter</artifactId>
145                 <version>${spring.boot.version}</version>
146                 <exclusions>
147                     <exclusion>
148                         <groupId>org.springframework.boot</groupId>
149                         <artifactId>spring-boot-starter-logging</artifactId>
150                     </exclusion>
151                     <exclusion>
152                         <groupId>junit</groupId>
153                         <artifactId>junit</artifactId>
154                     </exclusion>
155                 </exclusions>
156             </dependency>
157             <dependency>
158                 <groupId>org.springframework.boot</groupId>
159                 <artifactId>spring-boot-dependencies</artifactId>
160                 <version>${spring.boot.version}</version>
161                 <type>pom</type>
162                 <scope>import</scope>
163                 <exclusions>
164                     <exclusion>
165                         <groupId>org.springframework.boot</groupId>
166                         <artifactId>spring-boot-starter-logging</artifactId>
167                     </exclusion>
168                     <exclusion>
169                         <groupId>junit</groupId>
170                         <artifactId>junit</artifactId>
171                     </exclusion>
172                 </exclusions>
173             </dependency>
174         </dependencies>
175     </dependencyManagement>
176
177     <build>
178         <pluginManagement>
179             <plugins>
180                 <plugin>
181                     <groupId>org.sonarsource.scanner.maven</groupId>
182                     <artifactId>sonar-maven-plugin</artifactId>
183                     <version>${sonar.scanner.version}</version>
184                 </plugin>
185                 <plugin>
186                     <groupId>org.apache.maven.plugins</groupId>
187                     <artifactId>maven-compiler-plugin</artifactId>
188                     <version>${maven-compiler-plugin.version}</version>
189                     <configuration>
190                         <release>${java.version}</release>
191                         <forceJavacCompilerUse>true</forceJavacCompilerUse>
192                     </configuration>
193                 </plugin>
194                 <plugin>
195                     <groupId>org.apache.maven.plugins</groupId>
196                     <artifactId>maven-checkstyle-plugin</artifactId>
197                     <version>${maven-checkstyle-plugin.version}</version>
198                     <executions>
199                         <execution>
200                             <id>ves-nf-oam-adopter-java-style</id>
201                             <goals>
202                                 <goal>check</goal>
203                             </goals>
204                             <phase>process-sources</phase>
205                             <configuration>
206                                 <configLocation>ves-nf-oam-adopter-java-style.xml</configLocation>
207                                 <sourceDirectories>
208                                     <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
209                                 </sourceDirectories>
210                                 <includeResources>true</includeResources>
211                                 <includeTestSourceDirectory>true</includeTestSourceDirectory>
212                                 <includeTestResources>true</includeTestResources>
213                                 <consoleOutput>true</consoleOutput>
214                                 <violationSeverity>warning</violationSeverity>
215                                 <failOnViolation>true</failOnViolation>
216                             </configuration>
217                         </execution>
218                     </executions>
219                     <dependencies>
220                         <dependency>
221                             <groupId>com.puppycrawl.tools</groupId>
222                             <artifactId>checkstyle</artifactId>
223                             <version>${com.puppycrawl.tools.version}</version>
224                         </dependency>
225                         <dependency>
226                             <groupId>${project.groupId}</groupId>
227                             <artifactId>ves-nf-oam-adopter-checkstyle</artifactId>
228                             <version>${project.version}</version>
229                         </dependency>
230                     </dependencies>
231                 </plugin>
232                 <plugin>
233                     <groupId>com.github.spotbugs</groupId>
234                     <artifactId>spotbugs-maven-plugin</artifactId>
235                     <version>${spotbugs-maven-plugin.version}</version>
236                     <dependencies>
237                         <dependency>
238                             <groupId>com.github.spotbugs</groupId>
239                             <artifactId>spotbugs</artifactId>
240                             <version>${spotbugs-maven-plugin.version}</version>
241                         </dependency>
242                         <dependency>
243                             <groupId>${project.groupId}</groupId>
244                             <artifactId>ves-nf-oam-adopter-spotbugs</artifactId>
245                             <version>${project.version}</version>
246                         </dependency>
247                     </dependencies>
248                     <configuration>
249                         <plugins>
250                             <plugin>
251                                 <groupId>jp.skypencil.findbugs.slf4j</groupId>
252                                 <artifactId>bug-pattern</artifactId>
253                                 <version>1.5.0</version>
254                             </plugin>
255                         </plugins>
256                         <!--
257                           Enables analysis which takes more memory but finds more bugs.
258                           If you run out of memory, changes the value of the effort element
259                           to 'Low'.
260                         -->
261                         <effort>Max</effort>
262                         <!-- Reports all bugs (other values are medium and max) -->
263                         <threshold>Low</threshold>
264                         <!-- Build fail if problems are found -->
265                         <failOnError>true</failOnError>
266                         <!-- References the excluded rules -->
267                         <excludeFilterFile>spotbugs-exclude.xml</excludeFilterFile>
268                         <!-- Produces XML report -->
269                         <xmlOutput>true</xmlOutput>
270                         <!-- Configures the directory in which the XML report is created -->
271                         <xmlOutputDirectory>${project.build.directory}/spotbugs</xmlOutputDirectory>
272                     </configuration>
273                     <executions>
274                         <!--
275                           Ensures that SpotBugs inspects source code when project is compiled.
276                         -->
277                         <execution>
278                             <id>analyze-compile</id>
279                             <phase>compile</phase>
280                             <goals>
281                                 <goal>check</goal>
282                             </goals>
283                         </execution>
284                     </executions>
285                 </plugin>
286                 <plugin>
287                     <groupId>org.apache.maven.plugins</groupId>
288                     <artifactId>maven-surefire-plugin</artifactId>
289                     <version>3.0.0-M4</version>
290                     <configuration>
291                         <!--suppress UnresolvedMavenProperty -->
292                         <argLine>${surefireArgLine}</argLine>
293                         <useFile>false</useFile>
294                         <includes>
295                             <include>**/*Test.java</include>
296                         </includes>
297                         <excludes>
298                             <exclude>**/IT*.java</exclude>
299                         </excludes>
300                     </configuration>
301                 </plugin>
302                 <plugin>
303                     <groupId>org.jacoco</groupId>
304                     <artifactId>jacoco-maven-plugin</artifactId>
305                     <version>0.8.6</version>
306                     <configuration>
307                         <excludes>
308                             <exclude>**/api/*</exclude>
309                             <exclude>**/model/*</exclude>
310                             <exclude>**/pojos/*</exclude>
311                             <exclude>**/configurations/*</exclude>
312                             <exclude>**/properties/*</exclude>
313                             <exclude>**/config/*</exclude>
314                             <exclude>**/dto/*</exclude>
315                             <exclude>**/AdapterApplication.class</exclude>
316                         </excludes>
317                     </configuration>
318                     <executions>
319                         <execution>
320                             <id>pre-unit-test</id>
321                             <goals>
322                                 <goal>prepare-agent</goal>
323                             </goals>
324                             <configuration>
325                                 <destFile>${project.build.directory}/code-coverage/jacoco-ut.exec</destFile>
326                                 <propertyName>surefireArgLine</propertyName>
327                             </configuration>
328                         </execution>
329                         <execution>
330                             <id>post-unit-test</id>
331                             <phase>test</phase>
332                             <goals>
333                                 <goal>report</goal>
334                             </goals>
335                             <configuration>
336                                 <dataFile>${project.build.directory}/code-coverage/jacoco-ut.exec</dataFile>
337                                 <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
338                             </configuration>
339                         </execution>
340                         <execution>
341                             <id>default-prepare-agent</id>
342                             <goals>
343                                 <goal>prepare-agent</goal>
344                             </goals>
345                         </execution>
346                         <execution>
347                             <id>default-report</id>
348                             <phase>prepare-package</phase>
349                             <goals>
350                                 <goal>report</goal>
351                             </goals>
352                         </execution>
353                         <execution>
354                             <id>default-check</id>
355                             <goals>
356                                 <goal>check</goal>
357                             </goals>
358                             <configuration>
359                                 <dataFile>${project.build.directory}/code-coverage/jacoco-ut.exec</dataFile>
360                                 <rules>
361                                     <rule>
362                                         <element>BUNDLE</element>
363                                         <limits>
364                                             <limit>
365                                                 <counter>INSTRUCTION</counter>
366                                                 <value>COVEREDRATIO</value>
367                                                 <minimum>${minimum.coverage}</minimum>
368                                             </limit>
369                                         </limits>
370                                     </rule>
371                                 </rules>
372                             </configuration>
373                         </execution>
374                         <execution>
375                             <id>report</id>
376                             <goals>
377                                 <goal>report-aggregate</goal>
378                             </goals>
379                             <phase>verify</phase>
380                             <configuration>
381                                 <dataFileIncludes>
382                                     <fileInclude>**/code-coverage/jacoco-ut.exec</fileInclude>
383                                 </dataFileIncludes>
384                             </configuration>
385                         </execution>
386                     </executions>
387                 </plugin>
388                 <plugin>
389                     <groupId>org.apache.maven.plugins</groupId>
390                     <artifactId>maven-enforcer-plugin</artifactId>
391                     <version>${maven-enforcer-plugin.version}</version>
392                     <executions>
393                         <execution>
394                             <id>enforce-maven</id>
395                             <goals>
396                                 <goal>enforce</goal>
397                             </goals>
398                             <configuration>
399                                 <rules>
400                                     <requireMavenVersion>
401                                         <version>3.6.0</version>
402                                     </requireMavenVersion>
403                                 </rules>
404                             </configuration>
405                         </execution>
406                     </executions>
407                 </plugin>
408                 <plugin>
409                     <groupId>org.apache.maven.plugins</groupId>
410                     <artifactId>maven-javadoc-plugin</artifactId>
411                     <version>${maven-javadoc-plugin.version}</version>
412                     <configuration combine.children="append">
413                         <!-- Keep things quiet except for warnings/errors -->
414                         <quiet>true</quiet>
415                     </configuration>
416                     <executions>
417                         <execution>
418                             <id>attach-javadocs</id>
419                             <goals>
420                                 <goal>jar</goal>
421                             </goals>
422                         </execution>
423                     </executions>
424                 </plugin>
425                 <plugin>
426                     <groupId>org.springframework.boot</groupId>
427                     <artifactId>spring-boot-maven-plugin</artifactId>
428                     <version>${spring.boot.version}</version>
429                     <executions>
430                         <execution>
431                             <goals>
432                                 <goal>repackage</goal>
433                             </goals>
434                         </execution>
435                     </executions>
436                 </plugin>
437             </plugins>
438         </pluginManagement>
439         <plugins>
440             <plugin>
441                 <groupId>org.apache.maven.plugins</groupId>
442                 <artifactId>maven-compiler-plugin</artifactId>
443             </plugin>
444             <plugin>
445                 <groupId>org.apache.maven.plugins</groupId>
446                 <artifactId>maven-checkstyle-plugin</artifactId>
447             </plugin>
448             <plugin>
449                 <groupId>com.github.spotbugs</groupId>
450                 <artifactId>spotbugs-maven-plugin</artifactId>
451             </plugin>
452             <plugin>
453                 <groupId>org.jacoco</groupId>
454                 <artifactId>jacoco-maven-plugin</artifactId>
455             </plugin>
456             <plugin>
457                 <groupId>org.sonarsource.scanner.maven</groupId>
458                 <artifactId>sonar-maven-plugin</artifactId>
459             </plugin>
460             <plugin>
461                 <groupId>org.apache.maven.plugins</groupId>
462                 <artifactId>maven-enforcer-plugin</artifactId>
463             </plugin>
464             <plugin>
465                 <groupId>org.apache.maven.plugins</groupId>
466                 <artifactId>maven-javadoc-plugin</artifactId>
467             </plugin>
468             <plugin>
469                 <groupId>org.apache.maven.plugins</groupId>
470                 <artifactId>maven-surefire-plugin</artifactId>
471             </plugin>
472         </plugins>
473     </build>
474 </project>