Roll master to snapshot version for New Delhi release
[ccsdk/oran.git] / a1-policy-management / pom.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3   ~ ============LICENSE_START=======================================================
4   ~ ONAP : ccsdk oran
5   ~ ================================================================================
6   ~ Copyright (C) 2020-2023 Nordix Foundation. 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" 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">
23     <modelVersion>4.0.0</modelVersion>
24     <parent>
25         <groupId>org.onap.ccsdk.parent</groupId>
26         <artifactId>spring-boot-31-starter-parent</artifactId>
27         <version>2.6.1</version>
28         <relativePath/>
29     </parent>
30     <groupId>org.onap.ccsdk.oran</groupId>
31     <artifactId>a1-policy-management-service</artifactId>
32     <version>1.7.0-SNAPSHOT</version>
33     <name>ccsdk-oran :: ${project.artifactId}</name>
34     <properties>
35         <java.version.source>17</java.version.source>
36         <java.version.target>17</java.version.target>
37         <gson.version>2.10.1</gson.version>
38         <json.version>20231013</json.version>
39         <formatter-maven-plugin.version>2.22.0</formatter-maven-plugin.version>
40         <spotless-maven-plugin.version>2.35.0</spotless-maven-plugin.version>
41         <commons-io.version>2.11.0</commons-io.version>
42         <guava.version>32.0.1-jre</guava.version>
43         <springdoc.version>2.0.2</springdoc.version>
44         <docker-maven-plugin>0.30.0</docker-maven-plugin>
45         <surefire-maven-plugin.version>3.0.0-M8</surefire-maven-plugin.version>
46         <surefire-report-plugin.version>3.0.0-M8</surefire-report-plugin.version>
47         <jacoco-maven-plugin.version>0.8.8</jacoco-maven-plugin.version>
48         <ccsdk.project.version>${project.version}</ccsdk.project.version>
49         <software.amazon.awssdk.version>2.20.12</software.amazon.awssdk.version>
50         <allowskiptests>false</allowskiptests>
51     </properties>
52     <dependencies>
53         <dependency>
54             <groupId>javax.validation</groupId>
55             <artifactId>validation-api</artifactId>
56             <version>2.0.1.Final</version>
57         </dependency>
58         <dependency>
59             <groupId>javax.annotation</groupId>
60             <artifactId>javax.annotation-api</artifactId>
61             <version>1.3.2</version>
62         </dependency>
63         <dependency>
64             <groupId>io.swagger.core.v3</groupId>
65             <artifactId>swagger-annotations</artifactId>
66             <version>2.2.15</version>
67         </dependency>
68         <dependency>
69             <groupId>org.openapitools</groupId>
70             <artifactId>jackson-databind-nullable</artifactId>
71             <version>0.2.4</version>
72         </dependency>
73         <dependency>
74             <!-- Temporary until version 2 is included by the parent spring-boot-starter-parent  -->
75             <groupId>org.yaml</groupId>
76             <artifactId>snakeyaml</artifactId>
77             <version>2.0</version>
78         </dependency>
79         <dependency>
80             <groupId>org.springframework.boot</groupId>
81             <artifactId>spring-boot</artifactId>
82         </dependency>
83         <dependency>
84             <groupId>org.springframework</groupId>
85             <artifactId>spring-context</artifactId>
86         </dependency>
87         <dependency>
88             <groupId>org.springframework.boot</groupId>
89             <artifactId>spring-boot-autoconfigure</artifactId>
90         </dependency>
91         <dependency>
92             <groupId>org.springframework.boot</groupId>
93             <artifactId>spring-boot-starter-webflux</artifactId>
94         </dependency>
95         <dependency>
96             <!-- May be possible to remove this later when ccsdk parent bom stabilizes -->
97             <groupId>javax.servlet</groupId>
98             <artifactId>javax.servlet-api</artifactId>
99             <version>3.1.0</version>
100         </dependency>
101         <dependency>
102             <groupId>org.aspectj</groupId>
103             <artifactId>aspectjweaver</artifactId>
104         </dependency>
105         <dependency>
106             <groupId>org.apache.tomcat.embed</groupId>
107             <artifactId>tomcat-embed-core</artifactId>
108         </dependency>
109         <dependency>
110             <groupId>com.google.guava</groupId>
111             <artifactId>guava</artifactId>
112             <version>${guava.version}</version>
113         </dependency>
114         <dependency>
115             <groupId>com.google.code.gson</groupId>
116             <artifactId>gson</artifactId>
117             <version>${gson.version}</version>
118         </dependency>
119         <dependency>
120             <groupId>org.json</groupId>
121             <artifactId>json</artifactId>
122             <version>${json.version}</version>
123         </dependency>
124         <dependency>
125             <groupId>org.projectlombok</groupId>
126             <artifactId>lombok</artifactId>
127             <scope>provided</scope>
128         </dependency>
129         <!-- Actuator dependencies -->
130         <dependency>
131             <groupId>org.springframework.boot</groupId>
132             <artifactId>spring-boot-starter-actuator</artifactId>
133             <scope>runtime</scope>
134         </dependency>
135         <dependency>
136             <groupId>io.micrometer</groupId>
137             <artifactId>micrometer-registry-prometheus</artifactId>
138         </dependency>
139         <dependency>
140             <groupId>org.springframework.boot</groupId>
141             <artifactId>spring-boot-starter-aop</artifactId>
142         </dependency>
143         <dependency>
144             <groupId>software.amazon.awssdk</groupId>
145             <artifactId>s3</artifactId>
146             <version>${software.amazon.awssdk.version}</version>
147         </dependency>
148         <!-- For development help -->
149         <dependency>
150             <groupId>org.springframework.boot</groupId>
151             <artifactId>spring-boot-devtools</artifactId>
152             <optional>true</optional>
153             <scope>runtime</scope>
154         </dependency>
155         <dependency>
156             <groupId>org.springframework.boot</groupId>
157             <artifactId>spring-boot-configuration-processor</artifactId>
158             <optional>true</optional>
159             <scope>runtime</scope>
160         </dependency>
161         <dependency>
162             <groupId>org.springframework.boot</groupId>
163             <artifactId>spring-boot-starter-test</artifactId>
164             <scope>test</scope>
165         </dependency>
166         <dependency>
167             <groupId>org.awaitility</groupId>
168             <artifactId>awaitility</artifactId>
169             <scope>test</scope>
170         </dependency>
171         <dependency>
172             <groupId>io.projectreactor</groupId>
173             <artifactId>reactor-test</artifactId>
174             <scope>test</scope>
175         </dependency>
176         <dependency>
177             <groupId>org.junit.jupiter</groupId>
178             <artifactId>junit-jupiter-engine</artifactId>
179             <scope>test</scope>
180         </dependency>
181         <dependency>
182             <groupId>org.mockito</groupId>
183             <artifactId>mockito-junit-jupiter</artifactId>
184             <scope>test</scope>
185         </dependency>
186         <dependency>
187             <groupId>org.mockito</groupId>
188             <artifactId>mockito-core</artifactId>
189             <scope>test</scope>
190         </dependency>
191         <dependency>
192             <groupId>com.squareup.okhttp3</groupId>
193             <artifactId>mockwebserver</artifactId>
194             <scope>test</scope>
195         </dependency>
196         <dependency>
197             <groupId>commons-io</groupId>
198             <artifactId>commons-io</artifactId>
199             <version>${commons-io.version}</version>
200             <scope>test</scope>
201         </dependency>
202         <dependency>
203             <groupId>com.github.erosb</groupId>
204             <artifactId>everit-json-schema</artifactId>
205             <version>1.14.0</version>
206         </dependency>
207     </dependencies>
208     <build>
209         <plugins>
210             <plugin>
211                 <groupId>org.codehaus.gmaven</groupId>
212                 <artifactId>groovy-maven-plugin</artifactId>
213                 <version>2.1.1</version>
214                 <executions>
215                     <execution>
216                         <phase>validate</phase>
217                         <goals>
218                             <goal>execute</goal>
219                         </goals>
220                         <configuration>
221                             <source>${basedir}/TagVersion.groovy</source>
222                         </configuration>
223                     </execution>
224                 </executions>
225             </plugin>
226             <plugin>
227                 <groupId>org.springframework.boot</groupId>
228                 <artifactId>spring-boot-maven-plugin</artifactId>
229             </plugin>
230             <plugin>
231                 <groupId>net.revelc.code.formatter</groupId>
232                 <artifactId>formatter-maven-plugin</artifactId>
233                 <version>${formatter-maven-plugin.version}</version>
234                 <configuration>
235                     <lineEnding>LF</lineEnding>
236                     <configFile>${project.basedir}/eclipse-formatter.xml</configFile>
237                 </configuration>
238                 <!-- https://code.revelc.net/formatter-maven-plugin/ use mvn formatter:format
239                                         spotless:apply process-sources -->
240             </plugin>
241             <plugin>
242                 <groupId>com.diffplug.spotless</groupId>
243                 <artifactId>spotless-maven-plugin</artifactId>
244                 <version>${spotless-maven-plugin.version}</version>
245                 <configuration>
246                     <lineEndings>UNIX</lineEndings>
247                     <java>
248                         <removeUnusedImports/>
249                         <importOrder>
250                             <order>com,io,java,lombok,javax,org,reactor</order>
251                         </importOrder>
252                     </java>
253                 </configuration>
254                 <!-- https://github.com/diffplug/spotless/tree/master/plugin-maven use
255                                         mvn spotless:apply to rewrite source files use mvn spotless:check to validate
256                                         source files -->
257             </plugin>
258             <plugin>
259                 <groupId>org.apache.maven.plugins</groupId>
260                 <artifactId>maven-surefire-plugin</artifactId>
261                 <version>${surefire-maven-plugin.version}</version>
262                 <configuration>
263                     <skipTests>${allowskiptests}</skipTests>
264                     <statelessTestsetReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5Xml30StatelessReporter">
265                         <usePhrasedFileName>false</usePhrasedFileName>
266                         <usePhrasedTestSuiteClassName>true</usePhrasedTestSuiteClassName>
267                         <usePhrasedTestCaseClassName>true</usePhrasedTestCaseClassName>
268                         <usePhrasedTestCaseMethodName>true</usePhrasedTestCaseMethodName>
269                     </statelessTestsetReporter>
270                     <consoleOutputReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5ConsoleOutputReporter">
271                         <usePhrasedFileName>false</usePhrasedFileName>
272                     </consoleOutputReporter>
273                     <statelessTestsetInfoReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5StatelessTestsetInfoReporter">
274                         <usePhrasedFileName>false</usePhrasedFileName>
275                         <usePhrasedClassNameInRunning>true</usePhrasedClassNameInRunning>
276                         <usePhrasedClassNameInTestCaseSummary>true</usePhrasedClassNameInTestCaseSummary>
277                     </statelessTestsetInfoReporter>
278                 </configuration>
279             </plugin>
280             <plugin>
281                 <groupId>org.codehaus.mojo</groupId>
282                 <artifactId>build-helper-maven-plugin</artifactId>
283                 <executions>
284                     <execution>
285                         <id>add-source</id>
286                         <phase>generate-sources</phase>
287                         <goals>
288                             <goal>add-source</goal>
289                         </goals>
290                         <configuration>
291                             <sources>
292                                 <source>${project.build.directory}/generated-sources/annotations/</source>
293                             </sources>
294                         </configuration>
295                     </execution>
296                 </executions>
297             </plugin>
298             <plugin>
299                 <groupId>org.jacoco</groupId>
300                 <artifactId>jacoco-maven-plugin</artifactId>
301                 <version>${jacoco-maven-plugin.version}</version>
302                 <executions>
303                     <execution>
304                         <id>default-prepare-agent</id>
305                         <goals>
306                             <goal>prepare-agent</goal>
307                         </goals>
308                     </execution>
309                     <execution>
310                         <id>default-report</id>
311                         <phase>prepare-package</phase>
312                         <goals>
313                             <goal>report</goal>
314                         </goals>
315                     </execution>
316                 </executions>
317             </plugin>
318             <plugin>
319                 <groupId>io.swagger.codegen.v3</groupId>
320                 <artifactId>swagger-codegen-maven-plugin</artifactId>
321                 <version>3.0.46</version>
322                 <executions>
323                     <execution>
324                         <id>generate-openapi-json</id>
325                         <phase>prepare-package</phase>
326                         <goals>
327                             <goal>generate</goal>
328                         </goals>
329                         <configuration>
330                             <inputSpec>${project.basedir}/api/pms-api.yaml</inputSpec>
331                             <language>openapi</language>
332                             <output>${project.basedir}/api</output>
333                             <configOptions>
334                                 <outputFile>pms-api.json</outputFile>
335                             </configOptions>
336                         </configuration>
337                     </execution>
338                 </executions>
339             </plugin>
340             <plugin>
341                 <groupId>org.openapitools</groupId>
342                 <artifactId>openapi-generator-maven-plugin</artifactId>
343                 <version>6.6.0</version>
344                 <executions>
345                     <execution>
346                         <id>generate-openapi-html</id>
347                         <phase>prepare-package</phase>
348                         <goals>
349                             <goal>generate</goal>
350                         </goals>
351                         <configuration>
352                             <inputSpec>${project.basedir}/api/pms-api.json</inputSpec>
353                             <generatorName>html2</generatorName>
354                             <output>${project.basedir}/api/pms-api</output>
355                             <skipOperationExample>false</skipOperationExample>
356                             <strictSpec>false</strictSpec>
357                             <configOptions>
358                                 <appDescription>The O-RAN Non-RT RIC Policy Management Service
359                                     provides a REST API for managing O-RAN A1 Policies.</appDescription>
360                                 <appName>ONAP CCSDK A1 Policy Management Service</appName>
361                                 <infoUrl>https://wiki.onap.org/display/DW/O-RAN+A1+Policies+in+ONAP</infoUrl>
362                                 <licenseInfo>Copyright (C) 2020-2023 Nordix Foundation. Licensed
363                                     under the Apache License.</licenseInfo>
364                                 <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
365                             </configOptions>
366                         </configuration>
367                     </execution>
368                     <execution>
369                         <id>generate-policy-api</id>
370                         <phase>generate-sources </phase>
371                         <goals>
372                             <goal>generate</goal>
373                         </goals>
374                         <configuration>
375                             <inputSpec>${project.basedir}/api/pms-api.yaml</inputSpec>
376                             <invokerPackage>${project.groupId}.a1policymanagementservice.controllers.v2</invokerPackage>
377                             <apiPackage>${project.groupId}.a1policymanagementservice.controllers.api.v2</apiPackage>
378                             <modelPackage>${project.groupId}.a1policymanagementservice.models.v2</modelPackage>
379                             <generateApiTests>false</generateApiTests>
380                             <generateModelTests>false</generateModelTests>
381                             <generatorName>spring</generatorName>
382                             <generateSupportingFiles>false</generateSupportingFiles>
383                             <skipValidateSpec>false</skipValidateSpec>
384                             <library>spring-boot</library>
385                             <configOptions>
386                                 <sourceFolder>src/gen/java</sourceFolder>
387                                 <interfaceOnly>true</interfaceOnly>
388                                 <useTags>true</useTags>
389                                 <reactive>true</reactive>
390                                 <dateLibrary>java8</dateLibrary>
391                                 <java8>true</java8>
392                                 <unhandledException>true</unhandledException>
393                                 <openApiNullable>false</openApiNullable>
394                                 <skipDefaultInterface>true</skipDefaultInterface>
395                             </configOptions>
396                         </configuration>
397                     </execution>
398                 </executions>
399             </plugin>
400             <plugin>
401                 <artifactId>maven-resources-plugin</artifactId>
402                 <executions>
403                     <execution>
404                         <id>copy-resource-openapi</id>
405                         <phase>package</phase>
406                         <goals>
407                             <goal>copy-resources</goal>
408                         </goals>
409                         <configuration>
410                             <outputDirectory>${project.basedir}/../docs/offeredapis/swagger</outputDirectory>
411                             <verbose>true</verbose>
412                             <resources>
413                                 <resource>
414                                     <directory>${project.basedir}/api</directory>
415                                     <includes>
416                                         <include>pms-api.json</include>
417                                         <include>pms-api.yaml</include>
418                                     </includes>
419                                 </resource>
420                             </resources>
421                         </configuration>
422                     </execution>
423                     <execution>
424                         <id>copy-resource-openapi-html</id>
425                         <phase>package</phase>
426                         <goals>
427                             <goal>copy-resources</goal>
428                         </goals>
429                         <configuration>
430                             <verbose>true</verbose>
431                             <outputDirectory>
432                                 ${project.basedir}/../docs/offeredapis/openapitoolgen/offeredapis/pms-api</outputDirectory>
433                             <resources>
434                                 <resource>
435                                     <directory>${project.basedir}/api/pms-api</directory>
436                                     <includes>
437                                         <include>index.html</include>
438                                     </includes>
439                                 </resource>
440                             </resources>
441                         </configuration>
442                     </execution>
443                 </executions>
444             </plugin>
445             <plugin>
446                 <groupId>io.fabric8</groupId>
447                 <artifactId>docker-maven-plugin</artifactId>
448                 <version>${docker-maven-plugin}</version>
449                 <inherited>false</inherited>
450                 <executions>
451                     <execution>
452                         <id>generate-policy-management-service-image</id>
453                         <phase>package</phase>
454                         <goals>
455                             <goal>build</goal>
456                         </goals>
457                         <configuration>
458                             <images>
459                                 <image>
460                                     <name>
461                                         onap/ccsdk-oran-a1policymanagementservice:${project.version}</name>
462                                     <build>
463                                         <cleanup>try</cleanup>
464                                         <contextDir>${basedir}</contextDir>
465                                         <dockerFile>Dockerfile</dockerFile>
466                                         <args>
467                                             <JAR>${project.build.finalName}.jar</JAR>
468                                         </args>
469                                         <tags>
470                                             <tag>${project.version}</tag>
471                                         </tags>
472                                     </build>
473                                 </image>
474                             </images>
475                         </configuration>
476                     </execution>
477                     <execution>
478                         <id>push-policy-management-service-image</id>
479                         <goals>
480                             <goal>build</goal>
481                             <goal>push</goal>
482                         </goals>
483                         <configuration>
484                             <images>
485                                 <image>
486                                     <name>
487                                         onap/ccsdk-oran-a1policymanagementservice:${project.version}</name>
488                                     <build>
489                                         <contextDir>${basedir}</contextDir>
490                                         <dockerFile>Dockerfile</dockerFile>
491                                         <args>
492                                             <JAR>${project.build.finalName}.jar</JAR>
493                                         </args>
494                                         <tags>
495                                             <tag>${project.docker.latestminortag.version}</tag>
496                                             <tag>${project.docker.latestfulltag.version}</tag>
497                                             <tag>${project.docker.latesttagtimestamp.version}</tag>
498                                         </tags>
499                                     </build>
500                                 </image>
501                             </images>
502                         </configuration>
503                     </execution>
504                 </executions>
505             </plugin>
506         </plugins>
507     </build>
508     <reporting>
509         <plugins>
510             <plugin>
511                 <groupId>org.apache.maven.plugins</groupId>
512                 <artifactId>maven-surefire-report-plugin</artifactId>
513                 <version>${surefire-report-plugin.version}</version>
514             </plugin>
515         </plugins>
516     </reporting>
517 </project>