1 <?xml version="1.0" encoding="UTF-8"?>
3 ~ ============LICENSE_START=======================================================
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
12 ~ http://www.apache.org/licenses/LICENSE-2.0
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=======================================================
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>
25 <groupId>org.onap.ccsdk.parent</groupId>
26 <artifactId>spring-boot-31-starter-parent</artifactId>
27 <version>2.6.1</version>
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>
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>
54 <groupId>javax.validation</groupId>
55 <artifactId>validation-api</artifactId>
56 <version>2.0.1.Final</version>
59 <groupId>javax.annotation</groupId>
60 <artifactId>javax.annotation-api</artifactId>
61 <version>1.3.2</version>
64 <groupId>io.swagger.core.v3</groupId>
65 <artifactId>swagger-annotations</artifactId>
66 <version>2.2.15</version>
69 <groupId>org.openapitools</groupId>
70 <artifactId>jackson-databind-nullable</artifactId>
71 <version>0.2.4</version>
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>
80 <groupId>org.springframework.boot</groupId>
81 <artifactId>spring-boot</artifactId>
84 <groupId>org.springframework</groupId>
85 <artifactId>spring-context</artifactId>
88 <groupId>org.springframework.boot</groupId>
89 <artifactId>spring-boot-autoconfigure</artifactId>
92 <groupId>org.springframework.boot</groupId>
93 <artifactId>spring-boot-starter-webflux</artifactId>
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>
102 <groupId>org.aspectj</groupId>
103 <artifactId>aspectjweaver</artifactId>
106 <groupId>org.apache.tomcat.embed</groupId>
107 <artifactId>tomcat-embed-core</artifactId>
110 <groupId>com.google.guava</groupId>
111 <artifactId>guava</artifactId>
112 <version>${guava.version}</version>
115 <groupId>com.google.code.gson</groupId>
116 <artifactId>gson</artifactId>
117 <version>${gson.version}</version>
120 <groupId>org.json</groupId>
121 <artifactId>json</artifactId>
122 <version>${json.version}</version>
125 <groupId>org.projectlombok</groupId>
126 <artifactId>lombok</artifactId>
127 <scope>provided</scope>
129 <!-- Actuator dependencies -->
131 <groupId>org.springframework.boot</groupId>
132 <artifactId>spring-boot-starter-actuator</artifactId>
133 <scope>runtime</scope>
136 <groupId>io.micrometer</groupId>
137 <artifactId>micrometer-registry-prometheus</artifactId>
140 <groupId>org.springframework.boot</groupId>
141 <artifactId>spring-boot-starter-aop</artifactId>
144 <groupId>software.amazon.awssdk</groupId>
145 <artifactId>s3</artifactId>
146 <version>${software.amazon.awssdk.version}</version>
148 <!-- For development help -->
150 <groupId>org.springframework.boot</groupId>
151 <artifactId>spring-boot-devtools</artifactId>
152 <optional>true</optional>
153 <scope>runtime</scope>
156 <groupId>org.springframework.boot</groupId>
157 <artifactId>spring-boot-configuration-processor</artifactId>
158 <optional>true</optional>
159 <scope>runtime</scope>
162 <groupId>org.springframework.boot</groupId>
163 <artifactId>spring-boot-starter-test</artifactId>
167 <groupId>org.awaitility</groupId>
168 <artifactId>awaitility</artifactId>
172 <groupId>io.projectreactor</groupId>
173 <artifactId>reactor-test</artifactId>
177 <groupId>org.junit.jupiter</groupId>
178 <artifactId>junit-jupiter-engine</artifactId>
182 <groupId>org.mockito</groupId>
183 <artifactId>mockito-junit-jupiter</artifactId>
187 <groupId>org.mockito</groupId>
188 <artifactId>mockito-core</artifactId>
192 <groupId>com.squareup.okhttp3</groupId>
193 <artifactId>mockwebserver</artifactId>
197 <groupId>commons-io</groupId>
198 <artifactId>commons-io</artifactId>
199 <version>${commons-io.version}</version>
203 <groupId>com.github.erosb</groupId>
204 <artifactId>everit-json-schema</artifactId>
205 <version>1.14.0</version>
211 <groupId>org.codehaus.gmaven</groupId>
212 <artifactId>groovy-maven-plugin</artifactId>
213 <version>2.1.1</version>
216 <phase>validate</phase>
221 <source>${basedir}/TagVersion.groovy</source>
227 <groupId>org.springframework.boot</groupId>
228 <artifactId>spring-boot-maven-plugin</artifactId>
231 <groupId>net.revelc.code.formatter</groupId>
232 <artifactId>formatter-maven-plugin</artifactId>
233 <version>${formatter-maven-plugin.version}</version>
235 <lineEnding>LF</lineEnding>
236 <configFile>${project.basedir}/eclipse-formatter.xml</configFile>
238 <!-- https://code.revelc.net/formatter-maven-plugin/ use mvn formatter:format
239 spotless:apply process-sources -->
242 <groupId>com.diffplug.spotless</groupId>
243 <artifactId>spotless-maven-plugin</artifactId>
244 <version>${spotless-maven-plugin.version}</version>
246 <lineEndings>UNIX</lineEndings>
248 <removeUnusedImports/>
250 <order>com,io,java,lombok,javax,org,reactor</order>
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
259 <groupId>org.apache.maven.plugins</groupId>
260 <artifactId>maven-surefire-plugin</artifactId>
261 <version>${surefire-maven-plugin.version}</version>
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>
281 <groupId>org.codehaus.mojo</groupId>
282 <artifactId>build-helper-maven-plugin</artifactId>
286 <phase>generate-sources</phase>
288 <goal>add-source</goal>
292 <source>${project.build.directory}/generated-sources/annotations/</source>
299 <groupId>org.jacoco</groupId>
300 <artifactId>jacoco-maven-plugin</artifactId>
301 <version>${jacoco-maven-plugin.version}</version>
304 <id>default-prepare-agent</id>
306 <goal>prepare-agent</goal>
310 <id>default-report</id>
311 <phase>prepare-package</phase>
319 <groupId>io.swagger.codegen.v3</groupId>
320 <artifactId>swagger-codegen-maven-plugin</artifactId>
321 <version>3.0.46</version>
324 <id>generate-openapi-json</id>
325 <phase>prepare-package</phase>
327 <goal>generate</goal>
330 <inputSpec>${project.basedir}/api/pms-api.yaml</inputSpec>
331 <language>openapi</language>
332 <output>${project.basedir}/api</output>
334 <outputFile>pms-api.json</outputFile>
341 <groupId>org.openapitools</groupId>
342 <artifactId>openapi-generator-maven-plugin</artifactId>
343 <version>6.6.0</version>
346 <id>generate-openapi-html</id>
347 <phase>prepare-package</phase>
349 <goal>generate</goal>
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>
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>
369 <id>generate-policy-api</id>
370 <phase>generate-sources </phase>
372 <goal>generate</goal>
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>
386 <sourceFolder>src/gen/java</sourceFolder>
387 <interfaceOnly>true</interfaceOnly>
388 <useTags>true</useTags>
389 <reactive>true</reactive>
390 <dateLibrary>java8</dateLibrary>
392 <unhandledException>true</unhandledException>
393 <openApiNullable>false</openApiNullable>
394 <skipDefaultInterface>true</skipDefaultInterface>
401 <artifactId>maven-resources-plugin</artifactId>
404 <id>copy-resource-openapi</id>
405 <phase>package</phase>
407 <goal>copy-resources</goal>
410 <outputDirectory>${project.basedir}/../docs/offeredapis/swagger</outputDirectory>
411 <verbose>true</verbose>
414 <directory>${project.basedir}/api</directory>
416 <include>pms-api.json</include>
417 <include>pms-api.yaml</include>
424 <id>copy-resource-openapi-html</id>
425 <phase>package</phase>
427 <goal>copy-resources</goal>
430 <verbose>true</verbose>
432 ${project.basedir}/../docs/offeredapis/openapitoolgen/offeredapis/pms-api</outputDirectory>
435 <directory>${project.basedir}/api/pms-api</directory>
437 <include>index.html</include>
446 <groupId>io.fabric8</groupId>
447 <artifactId>docker-maven-plugin</artifactId>
448 <version>${docker-maven-plugin}</version>
449 <inherited>false</inherited>
452 <id>generate-policy-management-service-image</id>
453 <phase>package</phase>
461 onap/ccsdk-oran-a1policymanagementservice:${project.version}</name>
463 <cleanup>try</cleanup>
464 <contextDir>${basedir}</contextDir>
465 <dockerFile>Dockerfile</dockerFile>
467 <JAR>${project.build.finalName}.jar</JAR>
470 <tag>${project.version}</tag>
478 <id>push-policy-management-service-image</id>
487 onap/ccsdk-oran-a1policymanagementservice:${project.version}</name>
489 <contextDir>${basedir}</contextDir>
490 <dockerFile>Dockerfile</dockerFile>
492 <JAR>${project.build.finalName}.jar</JAR>
495 <tag>${project.docker.latestminortag.version}</tag>
496 <tag>${project.docker.latestfulltag.version}</tag>
497 <tag>${project.docker.latesttagtimestamp.version}</tag>
511 <groupId>org.apache.maven.plugins</groupId>
512 <artifactId>maven-surefire-report-plugin</artifactId>
513 <version>${surefire-report-plugin.version}</version>