1 <?xml version="1.0" encoding="UTF-8"?>
3 * ========================LICENSE_START=================================
6 * Copyright (C) 2019-2023: Nordix Foundation
7 * Copyright (C) 2023-2024: OpenInfra Foundation Europe
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 * ========================LICENSE_END===================================
23 xmlns="http://maven.apache.org/POM/4.0.0"
24 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
25 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
26 <modelVersion>4.0.0</modelVersion>
28 <groupId>org.springframework.boot</groupId>
29 <artifactId>spring-boot-starter-parent</artifactId>
30 <version>3.2.5</version>
33 <groupId>org.o-ran-sc.nonrtric.plt</groupId>
34 <artifactId>a1policymanagementservice</artifactId>
35 <version>2.8.0-SNAPSHOT</version>
38 <name>The Apache Software License, Version 2.0</name>
39 <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
44 <id>onap-releases</id>
45 <name>onap-releases</name>
46 <url>https://nexus.onap.org/content/repositories/releases/</url>
50 <java.version>17</java.version>
51 <software.amazon.awssdk.version>2.20.12</software.amazon.awssdk.version>
52 <json.version>20231013</json.version>
53 <commons-io.version>2.14.0</commons-io.version>
54 <guava.version>32.0.1-jre</guava.version>
55 <surefire-maven-plugin.version>3.0.0-M8</surefire-maven-plugin.version>
56 <surefire-report-plugin.version>3.0.0-M8</surefire-report-plugin.version>
57 <maven-compiler-plugin.version>3.10.0</maven-compiler-plugin.version>
58 <docker-maven-plugin>0.43.0</docker-maven-plugin>
59 <sonar-maven-plugin.version>3.7.0.1746</sonar-maven-plugin.version>
60 <jacoco-maven-plugin.version>0.8.8</jacoco-maven-plugin.version>
61 <exec-maven-plugin.version>3.1.0</exec-maven-plugin.version>
65 <groupId>javax.validation</groupId>
66 <artifactId>validation-api</artifactId>
67 <version>2.0.1.Final</version>
70 <groupId>javax.annotation</groupId>
71 <artifactId>javax.annotation-api</artifactId>
72 <version>1.3.2</version>
75 <groupId>io.swagger.core.v3</groupId>
76 <artifactId>swagger-annotations</artifactId>
77 <version>2.2.15</version>
80 <groupId>org.openapitools</groupId>
81 <artifactId>jackson-databind-nullable</artifactId>
82 <version>0.2.4</version>
85 <groupId>org.springframework.boot</groupId>
86 <artifactId>spring-boot</artifactId>
89 <groupId>org.springframework</groupId>
90 <artifactId>spring-context</artifactId>
93 <groupId>org.springframework.boot</groupId>
94 <artifactId>spring-boot-autoconfigure</artifactId>
97 <groupId>org.springframework.boot</groupId>
98 <artifactId>spring-boot-starter-webflux</artifactId>
101 <groupId>org.aspectj</groupId>
102 <artifactId>aspectjweaver</artifactId>
105 <groupId>org.apache.tomcat.embed</groupId>
106 <artifactId>tomcat-embed-core</artifactId>
109 <groupId>com.google.guava</groupId>
110 <artifactId>guava</artifactId>
111 <version>${guava.version}</version>
114 <groupId>com.google.code.gson</groupId>
115 <artifactId>gson</artifactId>
116 <version>${gson.version}</version>
119 <groupId>org.json</groupId>
120 <artifactId>json</artifactId>
121 <version>${json.version}</version>
124 <groupId>org.projectlombok</groupId>
125 <artifactId>lombok</artifactId>
126 <scope>provided</scope>
129 <groupId>org.mapstruct</groupId>
130 <artifactId>mapstruct</artifactId>
131 <version>1.5.5.Final</version>
134 <groupId>org.mapstruct</groupId>
135 <artifactId>mapstruct-processor</artifactId>
136 <version>1.5.5.Final</version>
138 <!-- Actuator dependencies -->
140 <groupId>org.springframework.boot</groupId>
141 <artifactId>spring-boot-starter-actuator</artifactId>
142 <scope>runtime</scope>
145 <groupId>io.micrometer</groupId>
146 <artifactId>micrometer-registry-prometheus</artifactId>
149 <groupId>org.springframework.boot</groupId>
150 <artifactId>spring-boot-starter-aop</artifactId>
153 <groupId>software.amazon.awssdk</groupId>
154 <artifactId>s3</artifactId>
155 <version>${software.amazon.awssdk.version}</version>
157 <!-- For development help -->
159 <groupId>org.springframework.boot</groupId>
160 <artifactId>spring-boot-devtools</artifactId>
161 <optional>true</optional>
162 <scope>runtime</scope>
165 <groupId>org.springframework.boot</groupId>
166 <artifactId>spring-boot-configuration-processor</artifactId>
167 <optional>true</optional>
168 <scope>runtime</scope>
171 <groupId>org.springframework.boot</groupId>
172 <artifactId>spring-boot-starter-test</artifactId>
176 <groupId>org.awaitility</groupId>
177 <artifactId>awaitility</artifactId>
181 <groupId>io.projectreactor</groupId>
182 <artifactId>reactor-test</artifactId>
186 <groupId>org.junit.jupiter</groupId>
187 <artifactId>junit-jupiter-engine</artifactId>
191 <groupId>org.mockito</groupId>
192 <artifactId>mockito-junit-jupiter</artifactId>
196 <groupId>org.mockito</groupId>
197 <artifactId>mockito-core</artifactId>
201 <groupId>com.squareup.okhttp3</groupId>
202 <artifactId>mockwebserver</artifactId>
206 <groupId>commons-io</groupId>
207 <artifactId>commons-io</artifactId>
208 <version>${commons-io.version}</version>
212 <groupId>com.github.erosb</groupId>
213 <artifactId>everit-json-schema</artifactId>
214 <version>1.14.0</version>
218 <groupId>io.micrometer</groupId>
219 <artifactId>micrometer-tracing-bridge-otel</artifactId>
222 <groupId>io.opentelemetry</groupId>
223 <artifactId>opentelemetry-exporter-otlp</artifactId>
226 <groupId>io.opentelemetry</groupId>
227 <artifactId>opentelemetry-sdk-extension-jaeger-remote-sampler</artifactId>
230 <groupId>io.opentelemetry</groupId>
231 <artifactId>opentelemetry-sdk-extension-autoconfigure</artifactId>
234 <groupId>io.opentelemetry.instrumentation</groupId>
235 <artifactId>opentelemetry-spring-webflux-5.3</artifactId>
238 <groupId>io.micrometer</groupId>
239 <artifactId>context-propagation</artifactId>
240 <version>1.0.2</version>
242 <!-- For ObservationRegistryCustomizer -->
244 <groupId>org.springframework.boot</groupId>
245 <artifactId>spring-boot-actuator-autoconfigure</artifactId>
248 <dependencyManagement>
251 <groupId>io.opentelemetry</groupId>
252 <artifactId>opentelemetry-bom</artifactId>
253 <version>1.38.0</version>
255 <scope>import</scope>
258 <groupId>io.opentelemetry.instrumentation</groupId>
259 <artifactId>opentelemetry-instrumentation-bom-alpha</artifactId>
260 <version>2.4.0-alpha</version>
262 <scope>import</scope>
265 </dependencyManagement>
269 <groupId>org.springframework.boot</groupId>
270 <artifactId>spring-boot-maven-plugin</artifactId>
273 <groupId>org.apache.maven.plugins</groupId>
274 <artifactId>maven-surefire-plugin</artifactId>
275 <version>${surefire-maven-plugin.version}</version>
277 <skipTests>false</skipTests>
281 <artifactId>maven-failsafe-plugin</artifactId>
284 <groupId>org.codehaus.mojo</groupId>
285 <artifactId>build-helper-maven-plugin</artifactId>
288 <id>add-additional-source-dirs</id>
289 <phase>generate-sources</phase>
291 <goal>add-source</goal>
295 <source>${project.build.directory}/generated-sources/annotations/</source>
296 <source>${project.basedir}/add-src/main/java</source>
297 <source>${project.basedir}/add-src/main/resources</source>
302 <id>add-additional-testsource-dirs</id>
303 <phase>generate-sources</phase>
305 <goal>add-test-source</goal>
309 <source>${project.basedir}/add-src/test/java</source>
310 <source>${project.basedir}/add-src/test/resources</source>
317 <groupId>org.jacoco</groupId>
318 <artifactId>jacoco-maven-plugin</artifactId>
319 <version>${jacoco-maven-plugin.version}</version>
322 <id>default-prepare-agent</id>
324 <goal>prepare-agent</goal>
328 <id>default-report</id>
329 <phase>prepare-package</phase>
337 <groupId>io.swagger.codegen.v3</groupId>
338 <artifactId>swagger-codegen-maven-plugin</artifactId>
339 <version>3.0.46</version>
342 <id>generate-openapi-json</id>
343 <phase>prepare-package</phase>
345 <goal>generate</goal>
348 <inputSpec>${project.basedir}/api/pms-api.yaml</inputSpec>
349 <language>openapi</language>
350 <output>${project.basedir}/api</output>
352 <outputFile>pms-api.json</outputFile>
359 <groupId>org.openapitools</groupId>
360 <artifactId>openapi-generator-maven-plugin</artifactId>
361 <version>6.6.0</version>
364 <id>generate-openapi-html</id>
365 <phase>prepare-package</phase>
367 <goal>generate</goal>
370 <inputSpec>${project.basedir}/api/pms-api.json</inputSpec>
371 <generatorName>html2</generatorName>
372 <output>${project.basedir}/api/pms-api</output>
373 <skipOperationExample>false</skipOperationExample>
374 <strictSpec>false</strictSpec>
376 <appDescription>The O-RAN Non-RT RIC A1 Policy Management Service
377 provides a REST API for managing O-RAN A1 Policies.</appDescription>
378 <appName>ONAP CCSDK A1 Policy Management Service</appName>
379 <infoUrl>https://wiki.onap.org/display/DW/O-RAN+A1+Policies+in+ONAP</infoUrl>
380 <licenseInfo>Copyright (C) 2020-2023 Nordix Foundation. Licensed
381 under the Apache License, and Copyright (C) 2024 OpenInfra
382 Foundation Europe. All rights reserved.</licenseInfo>
383 <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
388 <id>generate-openapi-policy-api</id>
389 <phase>generate-sources</phase>
391 <goal>generate</goal>
394 <generatorName>spring</generatorName>
395 <inputSpec>${project.basedir}/api/pms-api.yaml</inputSpec>
396 <library>spring-boot</library>
397 <invokerPackage>org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2</invokerPackage>
398 <apiPackage>org.onap.ccsdk.oran.a1policymanagementservice.controllers.api.v2</apiPackage>
399 <modelPackage>org.onap.ccsdk.oran.a1policymanagementservice.models.v2</modelPackage>
400 <generateApiTests>false</generateApiTests>
401 <generateModelTests>false</generateModelTests>
402 <generateSupportingFiles>false</generateSupportingFiles>
403 <skipValidateSpec>false</skipValidateSpec>
405 <interfaceOnly>true</interfaceOnly>
406 <useTags>true</useTags>
407 <reactive>true</reactive>
408 <dateLibrary>java8</dateLibrary>
410 <unhandledException>true</unhandledException>
411 <openApiNullable>false</openApiNullable>
412 <skipDefaultInterface>true</skipDefaultInterface>
417 <id>generate-policy-api-v3</id>
418 <phase>generate-sources </phase>
420 <goal>generate</goal>
423 <inputSpec>${project.basedir}/api/pms-api-v3.yaml</inputSpec>
424 <invokerPackage>org.onap.ccsdk.oran.a1policymanagementservice.controllers.v3</invokerPackage>
425 <apiPackage>org.onap.ccsdk.oran.a1policymanagementservice.controllers.api.v3</apiPackage>
426 <modelPackage>org.onap.ccsdk.oran.a1policymanagementservice.models.v3</modelPackage>
427 <generateApiTests>false</generateApiTests>
428 <generateModelTests>false</generateModelTests>
429 <generatorName>spring</generatorName>
430 <generateSupportingFiles>false</generateSupportingFiles>
431 <skipValidateSpec>false</skipValidateSpec>
432 <library>spring-boot</library>
434 <interfaceOnly>true</interfaceOnly>
435 <useTags>true</useTags>
436 <reactive>true</reactive>
437 <dateLibrary>java8</dateLibrary>
439 <unhandledException>true</unhandledException>
440 <openApiNullable>false</openApiNullable>
441 <skipDefaultInterface>true</skipDefaultInterface>
448 <artifactId>maven-resources-plugin</artifactId>
451 <id>copy-resource-configuration-files</id>
452 <phase>initialize</phase>
454 <goal>copy-resources</goal>
457 <overwrite>true</overwrite>
458 <verbose>true</verbose>
459 <outputDirectory>${project.basedir}/config</outputDirectory>
462 <directory>${project.basedir}/onap/oran/a1-policy-management/config</directory>
468 <id>copy-resource-openapi-files-fromsubmodule</id>
469 <phase>initialize</phase>
471 <goal>copy-resources</goal>
474 <verbose>true</verbose>
475 <overwrite>true</overwrite>
476 <outputDirectory>${project.basedir}/api</outputDirectory>
479 <directory>${project.basedir}/onap/oran/a1-policy-management/api</directory>
481 <include>pms-api.json</include>
482 <include>pms-api.yaml</include>
483 <include>pms-api-v3.yaml</include>
490 <id>copy-resource-doc-openapi</id>
491 <phase>package</phase>
493 <goal>copy-resources</goal>
496 <outputDirectory>${project.basedir}/docs/offeredapis/swagger</outputDirectory>
497 <overwrite>true</overwrite>
498 <verbose>true</verbose>
501 <directory>${project.basedir}/api</directory>
503 <include>pms-api.json</include>
504 <include>pms-api.yaml</include>
511 <id>copy-resource-openapi-html</id>
512 <phase>package</phase>
514 <goal>copy-resources</goal>
517 <verbose>true</verbose>
519 ${project.basedir}/docs/offeredapis/openapitoolgen/offeredapis/pms-api</outputDirectory>
522 <directory>${project.basedir}/api/pms-api</directory>
524 <include>pms-api.html</include>
525 <include>index.html</include>
534 <groupId>io.fabric8</groupId>
535 <artifactId>docker-maven-plugin</artifactId>
536 <version>${docker-maven-plugin}</version>
537 <inherited>false</inherited>
540 <id>generate-a1policymanagementservice-image</id>
541 <phase>package</phase>
546 <pullRegistry>${env.CONTAINER_PULL_REGISTRY}</pullRegistry>
550 o-ran-sc/nonrtric-plt-a1policymanagementservice:${project.version}</name>
552 <cleanup>try</cleanup>
553 <contextDir>${basedir}</contextDir>
554 <dockerFile>Dockerfile</dockerFile>
555 <filter>false</filter>
557 <JAR>${project.build.finalName}.jar</JAR>
560 <tag>${project.version}</tag>
568 <id>push-a1policymanagementservice-image</id>
574 <pullRegistry>${env.CONTAINER_PULL_REGISTRY}</pullRegistry>
575 <pushRegistry>${env.CONTAINER_PUSH_REGISTRY}</pushRegistry>
579 o-ran-sc/nonrtric-plt-a1policymanagementservice:${project.version}</name>
581 <contextDir>${basedir}</contextDir>
582 <dockerFile>Dockerfile</dockerFile>
583 <filter>false</filter>
585 <JAR>${project.build.finalName}.jar</JAR>
588 <tag>${project.version}</tag>
598 <!-- support sonar in multi-module project -->
600 <groupId>org.sonarsource.scanner.maven</groupId>
601 <artifactId>sonar-maven-plugin</artifactId>
602 <version>${sonar-maven-plugin.version}</version>
605 <groupId>org.codehaus.mojo</groupId>
606 <artifactId>exec-maven-plugin</artifactId>
607 <version>${exec-maven-plugin.version}</version>
610 <id>git submodule update</id>
611 <phase>validate</phase>
613 <executable>git</executable>
615 <argument>submodule</argument>
616 <argument>update</argument>
617 <argument>--init</argument>
618 <argument>--recursive</argument>
630 <system>JIRA</system>
631 <url>https://jira.o-ran-sc.org/</url>
636 <groupId>org.apache.maven.plugins</groupId>
637 <artifactId>maven-surefire-report-plugin</artifactId>
638 <version>${surefire-report-plugin.version}</version>