| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| * ========================LICENSE_START================================= |
| * O-RAN-SC |
| * %% |
| * Copyright (C) 2019-2023: Nordix Foundation |
| * Copyright (C) 2023-2024: OpenInfra Foundation Europe |
| * %% |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| * ========================LICENSE_END=================================== |
| --> |
| <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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> |
| <modelVersion>4.0.0</modelVersion> |
| <parent> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-starter-parent</artifactId> |
| <version>3.3.2</version> |
| <relativePath /> |
| </parent> |
| <groupId>org.o-ran-sc.nonrtric.plt</groupId> |
| <artifactId>a1policymanagementservice</artifactId> |
| <version>2.9.0-SNAPSHOT</version> |
| <licenses> |
| <license> |
| <name>The Apache Software License, Version 2.0</name> |
| <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> |
| </license> |
| </licenses> |
| <repositories> |
| <repository> |
| <id>onap-releases</id> |
| <name>onap-releases</name> |
| <url>https://nexus.onap.org/content/repositories/releases/</url> |
| </repository> |
| </repositories> |
| <properties> |
| <java.version>17</java.version> |
| <software.amazon.awssdk.version>2.20.12</software.amazon.awssdk.version> |
| <json.version>20231013</json.version> |
| <commons-io.version>2.14.0</commons-io.version> |
| <guava.version>32.0.1-jre</guava.version> |
| <surefire-maven-plugin.version>3.0.0-M8</surefire-maven-plugin.version> |
| <surefire-report-plugin.version>3.0.0-M8</surefire-report-plugin.version> |
| <maven-compiler-plugin.version>3.10.0</maven-compiler-plugin.version> |
| <docker-maven-plugin>0.43.0</docker-maven-plugin> |
| <sonar-maven-plugin.version>3.7.0.1746</sonar-maven-plugin.version> |
| <jacoco-maven-plugin.version>0.8.8</jacoco-maven-plugin.version> |
| <exec-maven-plugin.version>3.1.0</exec-maven-plugin.version> |
| <localstack.version>1.20.1</localstack.version> |
| <junit.jupiter.version>1.20.1</junit.jupiter.version> |
| </properties> |
| <dependencies> |
| <dependency> |
| <groupId>javax.validation</groupId> |
| <artifactId>validation-api</artifactId> |
| <version>2.0.1.Final</version> |
| </dependency> |
| <dependency> |
| <groupId>javax.annotation</groupId> |
| <artifactId>javax.annotation-api</artifactId> |
| <version>1.3.2</version> |
| </dependency> |
| <dependency> |
| <groupId>io.swagger.core.v3</groupId> |
| <artifactId>swagger-annotations</artifactId> |
| <version>2.2.15</version> |
| </dependency> |
| <dependency> |
| <groupId>org.openapitools</groupId> |
| <artifactId>jackson-databind-nullable</artifactId> |
| <version>0.2.4</version> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework</groupId> |
| <artifactId>spring-context</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-autoconfigure</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-starter-webflux</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-starter-data-r2dbc</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.postgresql</groupId> |
| <artifactId>postgresql</artifactId> |
| <scope>runtime</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.postgresql</groupId> |
| <artifactId>r2dbc-postgresql</artifactId> |
| <scope>runtime</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.flywaydb</groupId> |
| <artifactId>flyway-database-postgresql</artifactId> |
| <scope>runtime</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.aspectj</groupId> |
| <artifactId>aspectjweaver</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.tomcat.embed</groupId> |
| <artifactId>tomcat-embed-core</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>com.google.guava</groupId> |
| <artifactId>guava</artifactId> |
| <version>${guava.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.google.code.gson</groupId> |
| <artifactId>gson</artifactId> |
| <version>${gson.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.json</groupId> |
| <artifactId>json</artifactId> |
| <version>${json.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.projectlombok</groupId> |
| <artifactId>lombok</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.mapstruct</groupId> |
| <artifactId>mapstruct</artifactId> |
| <version>1.5.5.Final</version> |
| </dependency> |
| <dependency> |
| <groupId>org.mapstruct</groupId> |
| <artifactId>mapstruct-processor</artifactId> |
| <version>1.5.5.Final</version> |
| </dependency> |
| <!-- Actuator dependencies --> |
| <dependency> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-starter-actuator</artifactId> |
| <scope>runtime</scope> |
| </dependency> |
| <dependency> |
| <groupId>io.micrometer</groupId> |
| <artifactId>micrometer-registry-prometheus</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-starter-aop</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>software.amazon.awssdk</groupId> |
| <artifactId>s3</artifactId> |
| <version>${software.amazon.awssdk.version}</version> |
| </dependency> |
| <!-- For development help --> |
| <dependency> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-devtools</artifactId> |
| <optional>true</optional> |
| <scope>runtime</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-configuration-processor</artifactId> |
| <optional>true</optional> |
| <scope>runtime</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.testcontainers</groupId> |
| <artifactId>junit-jupiter</artifactId> |
| <version>${junit.jupiter.version}</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.testcontainers</groupId> |
| <artifactId>localstack</artifactId> |
| <version>${localstack.version}</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-starter-test</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.awaitility</groupId> |
| <artifactId>awaitility</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>io.projectreactor</groupId> |
| <artifactId>reactor-test</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.junit.jupiter</groupId> |
| <artifactId>junit-jupiter-engine</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-junit-jupiter</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-core</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>com.squareup.okhttp3</groupId> |
| <artifactId>mockwebserver</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>commons-io</groupId> |
| <artifactId>commons-io</artifactId> |
| <version>${commons-io.version}</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>com.github.erosb</groupId> |
| <artifactId>everit-json-schema</artifactId> |
| <version>1.14.0</version> |
| </dependency> |
| <!-- For Tracing --> |
| <dependency> |
| <groupId>io.micrometer</groupId> |
| <artifactId>micrometer-tracing-bridge-otel</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>io.opentelemetry</groupId> |
| <artifactId>opentelemetry-sdk-extension-jaeger-remote-sampler</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>io.opentelemetry.instrumentation</groupId> |
| <artifactId>opentelemetry-spring-webflux-5.3</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>io.opentelemetry.instrumentation</groupId> |
| <artifactId>opentelemetry-spring-boot-starter</artifactId> |
| </dependency> |
| <!-- For ObservationRegistryCustomizer --> |
| <dependency> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-actuator-autoconfigure</artifactId> |
| </dependency> |
| </dependencies> |
| <dependencyManagement> |
| <dependencies> |
| <dependency> |
| <groupId>io.opentelemetry</groupId> |
| <artifactId>opentelemetry-bom</artifactId> |
| <version>1.38.0</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| <dependency> |
| <groupId>io.opentelemetry.instrumentation</groupId> |
| <artifactId>opentelemetry-instrumentation-bom-alpha</artifactId> |
| <version>2.4.0-alpha</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| </dependencies> |
| </dependencyManagement> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-maven-plugin</artifactId> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <version>${surefire-maven-plugin.version}</version> |
| <configuration> |
| <skipTests>false</skipTests> |
| </configuration> |
| </plugin> |
| <plugin> |
| <artifactId>maven-failsafe-plugin</artifactId> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>build-helper-maven-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>add-additional-source-dirs</id> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>add-source</goal> |
| </goals> |
| <configuration> |
| <sources> |
| <source>${project.build.directory}/generated-sources/annotations/</source> |
| <source>${project.basedir}/add-src/main/java</source> |
| <source>${project.basedir}/add-src/main/resources</source> |
| </sources> |
| </configuration> |
| </execution> |
| <execution> |
| <id>add-additional-testsource-dirs</id> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>add-test-source</goal> |
| </goals> |
| <configuration> |
| <sources> |
| <source>${project.basedir}/add-src/test/java</source> |
| <source>${project.basedir}/add-src/test/resources</source> |
| </sources> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.jacoco</groupId> |
| <artifactId>jacoco-maven-plugin</artifactId> |
| <version>${jacoco-maven-plugin.version}</version> |
| <executions> |
| <execution> |
| <id>default-prepare-agent</id> |
| <goals> |
| <goal>prepare-agent</goal> |
| </goals> |
| </execution> |
| <execution> |
| <id>default-report</id> |
| <phase>prepare-package</phase> |
| <goals> |
| <goal>report</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>io.swagger.codegen.v3</groupId> |
| <artifactId>swagger-codegen-maven-plugin</artifactId> |
| <version>3.0.46</version> |
| <executions> |
| <execution> |
| <id>generate-openapi-json</id> |
| <phase>prepare-package</phase> |
| <goals> |
| <goal>generate</goal> |
| </goals> |
| <configuration> |
| <inputSpec>${project.basedir}/api/pms-api.yaml</inputSpec> |
| <language>openapi</language> |
| <output>${project.basedir}/api</output> |
| <configOptions> |
| <outputFile>pms-api.json</outputFile> |
| </configOptions> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.openapitools</groupId> |
| <artifactId>openapi-generator-maven-plugin</artifactId> |
| <version>6.6.0</version> |
| <executions> |
| <execution> |
| <id>generate-openapi-html</id> |
| <phase>prepare-package</phase> |
| <goals> |
| <goal>generate</goal> |
| </goals> |
| <configuration> |
| <inputSpec>${project.basedir}/api/pms-api.json</inputSpec> |
| <generatorName>html2</generatorName> |
| <output>${project.basedir}/api/pms-api</output> |
| <skipOperationExample>false</skipOperationExample> |
| <strictSpec>false</strictSpec> |
| <configOptions> |
| <appDescription>The O-RAN Non-RT RIC A1 Policy Management Service |
| provides a REST API for managing O-RAN A1 Policies.</appDescription> |
| <appName>ONAP CCSDK A1 Policy Management Service</appName> |
| <infoUrl>https://wiki.onap.org/display/DW/O-RAN+A1+Policies+in+ONAP</infoUrl> |
| <licenseInfo>Copyright (C) 2020-2023 Nordix Foundation. Licensed |
| under the Apache License, and Copyright (C) 2024 OpenInfra |
| Foundation Europe. All rights reserved.</licenseInfo> |
| <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl> |
| </configOptions> |
| </configuration> |
| </execution> |
| <execution> |
| <id>generate-openapi-policy-api</id> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>generate</goal> |
| </goals> |
| <configuration> |
| <generatorName>spring</generatorName> |
| <inputSpec>${project.basedir}/api/pms-api.yaml</inputSpec> |
| <library>spring-boot</library> |
| <invokerPackage>org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2</invokerPackage> |
| <apiPackage>org.onap.ccsdk.oran.a1policymanagementservice.controllers.api.v2</apiPackage> |
| <modelPackage>org.onap.ccsdk.oran.a1policymanagementservice.models.v2</modelPackage> |
| <generateApiTests>false</generateApiTests> |
| <generateModelTests>false</generateModelTests> |
| <generateSupportingFiles>false</generateSupportingFiles> |
| <skipValidateSpec>false</skipValidateSpec> |
| <configOptions> |
| <interfaceOnly>true</interfaceOnly> |
| <useTags>true</useTags> |
| <reactive>true</reactive> |
| <dateLibrary>java8</dateLibrary> |
| <java8>true</java8> |
| <unhandledException>true</unhandledException> |
| <openApiNullable>false</openApiNullable> |
| <skipDefaultInterface>true</skipDefaultInterface> |
| </configOptions> |
| </configuration> |
| </execution> |
| <execution> |
| <id>generate-policy-api-v3</id> |
| <phase>generate-sources </phase> |
| <goals> |
| <goal>generate</goal> |
| </goals> |
| <configuration> |
| <inputSpec>${project.basedir}/api/pms-api-v3.yaml</inputSpec> |
| <invokerPackage>org.onap.ccsdk.oran.a1policymanagementservice.controllers.v3</invokerPackage> |
| <apiPackage>org.onap.ccsdk.oran.a1policymanagementservice.controllers.api.v3</apiPackage> |
| <modelPackage>org.onap.ccsdk.oran.a1policymanagementservice.models.v3</modelPackage> |
| <generateApiTests>false</generateApiTests> |
| <generateModelTests>false</generateModelTests> |
| <generatorName>spring</generatorName> |
| <generateSupportingFiles>false</generateSupportingFiles> |
| <skipValidateSpec>false</skipValidateSpec> |
| <library>spring-boot</library> |
| <configOptions> |
| <interfaceOnly>true</interfaceOnly> |
| <useTags>true</useTags> |
| <reactive>true</reactive> |
| <dateLibrary>java8</dateLibrary> |
| <java8>true</java8> |
| <unhandledException>true</unhandledException> |
| <openApiNullable>false</openApiNullable> |
| <skipDefaultInterface>true</skipDefaultInterface> |
| </configOptions> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <artifactId>maven-resources-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>copy-resource-configuration-files</id> |
| <phase>initialize</phase> |
| <goals> |
| <goal>copy-resources</goal> |
| </goals> |
| <configuration> |
| <overwrite>true</overwrite> |
| <verbose>true</verbose> |
| <outputDirectory>${project.basedir}/config</outputDirectory> |
| <resources> |
| <resource> |
| <directory>${project.basedir}/onap/oran/a1-policy-management/config</directory> |
| </resource> |
| </resources> |
| </configuration> |
| </execution> |
| <execution> |
| <id>copy-resource-openapi-files-fromsubmodule</id> |
| <phase>initialize</phase> |
| <goals> |
| <goal>copy-resources</goal> |
| </goals> |
| <configuration> |
| <verbose>true</verbose> |
| <overwrite>true</overwrite> |
| <outputDirectory>${project.basedir}/api</outputDirectory> |
| <resources> |
| <resource> |
| <directory>${project.basedir}/onap/oran/a1-policy-management/api</directory> |
| <includes> |
| <include>pms-api.json</include> |
| <include>pms-api.yaml</include> |
| <include>pms-api-v3.yaml</include> |
| </includes> |
| </resource> |
| </resources> |
| </configuration> |
| </execution> |
| <execution> |
| <id>copy-resource-doc-openapi</id> |
| <phase>package</phase> |
| <goals> |
| <goal>copy-resources</goal> |
| </goals> |
| <configuration> |
| <outputDirectory>${project.basedir}/docs/offeredapis/swagger</outputDirectory> |
| <overwrite>true</overwrite> |
| <verbose>true</verbose> |
| <resources> |
| <resource> |
| <directory>${project.basedir}/api</directory> |
| <includes> |
| <include>pms-api.json</include> |
| <include>pms-api.yaml</include> |
| </includes> |
| </resource> |
| </resources> |
| </configuration> |
| </execution> |
| <execution> |
| <id>copy-resource-openapi-html</id> |
| <phase>package</phase> |
| <goals> |
| <goal>copy-resources</goal> |
| </goals> |
| <configuration> |
| <verbose>true</verbose> |
| <outputDirectory> |
| ${project.basedir}/docs/offeredapis/openapitoolgen/offeredapis/pms-api</outputDirectory> |
| <resources> |
| <resource> |
| <directory>${project.basedir}/api/pms-api</directory> |
| <includes> |
| <include>pms-api.html</include> |
| <include>index.html</include> |
| </includes> |
| </resource> |
| </resources> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>io.fabric8</groupId> |
| <artifactId>docker-maven-plugin</artifactId> |
| <version>${docker-maven-plugin}</version> |
| <inherited>false</inherited> |
| <executions> |
| <execution> |
| <id>generate-a1policymanagementservice-image</id> |
| <phase>package</phase> |
| <goals> |
| <goal>build</goal> |
| </goals> |
| <configuration> |
| <pullRegistry>${env.CONTAINER_PULL_REGISTRY}</pullRegistry> |
| <images> |
| <image> |
| <name> |
| o-ran-sc/nonrtric-plt-a1policymanagementservice:${project.version}</name> |
| <build> |
| <cleanup>try</cleanup> |
| <contextDir>${basedir}</contextDir> |
| <dockerFile>Dockerfile</dockerFile> |
| <filter>false</filter> |
| <args> |
| <JAR>${project.build.finalName}.jar</JAR> |
| </args> |
| <tags> |
| <tag>${project.version}</tag> |
| </tags> |
| </build> |
| </image> |
| </images> |
| </configuration> |
| </execution> |
| <execution> |
| <id>push-a1policymanagementservice-image</id> |
| <goals> |
| <goal>build</goal> |
| <goal>push</goal> |
| </goals> |
| <configuration> |
| <pullRegistry>${env.CONTAINER_PULL_REGISTRY}</pullRegistry> |
| <pushRegistry>${env.CONTAINER_PUSH_REGISTRY}</pushRegistry> |
| <images> |
| <image> |
| <name> |
| o-ran-sc/nonrtric-plt-a1policymanagementservice:${project.version}</name> |
| <build> |
| <contextDir>${basedir}</contextDir> |
| <dockerFile>Dockerfile</dockerFile> |
| <filter>false</filter> |
| <args> |
| <JAR>${project.build.finalName}.jar</JAR> |
| </args> |
| <tags> |
| <tag>${project.version}</tag> |
| <tag>latest</tag> |
| </tags> |
| </build> |
| </image> |
| </images> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <!-- support sonar in multi-module project --> |
| <plugin> |
| <groupId>org.sonarsource.scanner.maven</groupId> |
| <artifactId>sonar-maven-plugin</artifactId> |
| <version>${sonar-maven-plugin.version}</version> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>exec-maven-plugin</artifactId> |
| <version>${exec-maven-plugin.version}</version> |
| <executions> |
| <execution> |
| <id>git submodule update</id> |
| <phase>validate</phase> |
| <configuration> |
| <executable>git</executable> |
| <arguments> |
| <argument>submodule</argument> |
| <argument>update</argument> |
| <argument>--init</argument> |
| <argument>--recursive</argument> |
| </arguments> |
| </configuration> |
| <goals> |
| <goal>exec</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| <issueManagement> |
| <system>JIRA</system> |
| <url>https://jira.o-ran-sc.org/</url> |
| </issueManagement> |
| <reporting> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-report-plugin</artifactId> |
| <version>${surefire-report-plugin.version}</version> |
| </plugin> |
| </plugins> |
| </reporting> |
| </project> |