Merge "Support for using Amazon S3 - Cloud Object Storage"
[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 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
23 <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">
24     <modelVersion>4.0.0</modelVersion>
25     <parent>
26         <groupId>org.onap.ccsdk.parent</groupId>
27         <artifactId>spring-boot-26-starter-parent</artifactId>
28         <version>2.5.0-SNAPSHOT</version>
29         <relativePath/>
30     </parent>
31     <groupId>org.onap.ccsdk.oran</groupId>
32     <artifactId>a1-policy-management-service</artifactId>
33     <version>1.5.0-SNAPSHOT</version>
34     <name>ccsdk-oran :: ${project.artifactId}</name>
35     <properties>
36         <java.version.source>11</java.version.source>
37         <java.version.target>11</java.version.target>
38         <springfox.version>3.0.0</springfox.version>
39         <gson.version>2.9.0</gson.version>
40         <json.version>20220320</json.version>
41         <formatter-maven-plugin.version>2.13.0</formatter-maven-plugin.version>
42         <spotless-maven-plugin.version>2.5.0</spotless-maven-plugin.version>
43         <commons-io.version>2.11.0</commons-io.version>
44         <guava.version>31.0.1-jre</guava.version>
45         <docker-maven-plugin>0.30.0</docker-maven-plugin>
46         <surefire-maven-plugin.version>3.0.0-M5</surefire-maven-plugin.version>
47         <jacoco-maven-plugin.version>0.8.6</jacoco-maven-plugin.version>
48         <swagger-codegen-maven-plugin.version>3.0.11</swagger-codegen-maven-plugin.version>
49         <exec.skip>true</exec.skip>
50         <ccsdk.project.version>${project.version}</ccsdk.project.version>
51         <software.amazon.awssdk.version>2.17.292</software.amazon.awssdk.version>
52     </properties>
53     <dependencies>
54         <dependency>
55             <groupId>org.springframework.boot</groupId>
56             <artifactId>spring-boot</artifactId>
57         </dependency>
58         <dependency>
59             <groupId>org.springframework</groupId>
60             <artifactId>spring-beans</artifactId>
61         </dependency>
62         <dependency>
63             <groupId>org.springframework</groupId>
64             <artifactId>spring-context</artifactId>
65         </dependency>
66         <dependency>
67             <groupId>org.springframework.boot</groupId>
68             <artifactId>spring-boot-autoconfigure</artifactId>
69         </dependency>
70         <dependency>
71             <groupId>org.springframework</groupId>
72             <artifactId>spring-web</artifactId>
73         </dependency>
74         <dependency>
75             <groupId>org.springframework</groupId>
76             <artifactId>spring-webmvc</artifactId>
77         </dependency>
78         <dependency>
79             <groupId>org.springframework.boot</groupId>
80             <artifactId>spring-boot-starter-webflux</artifactId>
81         </dependency>
82         <dependency>
83             <groupId>org.springframework</groupId>
84             <artifactId>spring-webflux</artifactId>
85         </dependency>
86         <dependency>
87             <groupId>io.springfox</groupId>
88             <artifactId>springfox-spring-web</artifactId>
89             <version>${springfox.version}</version>
90         </dependency>
91         <dependency>
92             <groupId>io.springfox</groupId>
93             <artifactId>springfox-spi</artifactId>
94             <version>${springfox.version}</version>
95         </dependency>
96         <dependency>
97             <groupId>io.springfox</groupId>
98             <artifactId>springfox-core</artifactId>
99             <version>${springfox.version}</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>javax.validation</groupId>
111             <artifactId>validation-api</artifactId>
112         </dependency>
113         <dependency>
114             <groupId>com.google.guava</groupId>
115             <artifactId>guava</artifactId>
116             <version>${guava.version}</version>
117         </dependency>
118         <dependency>
119             <groupId>com.google.code.gson</groupId>
120             <artifactId>gson</artifactId>
121             <version>${gson.version}</version>
122         </dependency>
123         <dependency>
124             <groupId>org.json</groupId>
125             <artifactId>json</artifactId>
126             <version>${json.version}</version>
127         </dependency>
128         <dependency>
129             <groupId>org.projectlombok</groupId>
130             <artifactId>lombok</artifactId>
131             <scope>provided</scope>
132         </dependency>
133         <!-- Actuator dependencies -->
134         <dependency>
135             <groupId>org.springframework.boot</groupId>
136             <artifactId>spring-boot-starter-actuator</artifactId>
137             <scope>runtime</scope>
138         </dependency>
139         <dependency>
140             <groupId>io.micrometer</groupId>
141             <artifactId>micrometer-registry-prometheus</artifactId>
142         </dependency>
143         <dependency>
144             <groupId>org.springframework.boot</groupId>
145             <artifactId>spring-boot-starter-aop</artifactId>
146         </dependency>
147         <dependency>
148             <groupId>software.amazon.awssdk</groupId>
149             <artifactId>s3</artifactId>
150             <version>${software.amazon.awssdk.version}</version>
151         </dependency>
152         <!--REQUIRED TO GENERATE DOCUMENTATION -->
153         <dependency>
154             <groupId>io.springfox</groupId>
155             <artifactId>springfox-swagger2</artifactId>
156             <version>${springfox.version}</version>
157         </dependency>
158         <dependency>
159             <groupId>io.springfox</groupId>
160             <artifactId>springfox-swagger-ui</artifactId>
161             <version>${springfox.version}</version>
162             <scope>runtime</scope>
163         </dependency>
164         <!-- For development help -->
165         <dependency>
166             <groupId>org.springframework.boot</groupId>
167             <artifactId>spring-boot-devtools</artifactId>
168             <optional>true</optional>
169             <scope>runtime</scope>
170         </dependency>
171         <dependency>
172             <groupId>org.springframework.boot</groupId>
173             <artifactId>spring-boot-configuration-processor</artifactId>
174             <optional>true</optional>
175             <scope>runtime</scope>
176         </dependency>
177         <!-- TEST -->
178         <dependency>
179             <groupId>org.springdoc</groupId>
180             <artifactId>springdoc-openapi-ui</artifactId>
181             <version>1.6.6</version>
182             <scope>test</scope>
183         </dependency>
184         <dependency>
185             <groupId>org.springframework.boot</groupId>
186             <artifactId>spring-boot-test</artifactId>
187             <scope>test</scope>
188         </dependency>
189         <dependency>
190             <groupId>org.springframework.boot</groupId>
191             <artifactId>spring-boot-starter-test</artifactId>
192             <scope>test</scope>
193         </dependency>
194         <dependency>
195             <groupId>org.awaitility</groupId>
196             <artifactId>awaitility</artifactId>
197             <scope>test</scope>
198         </dependency>
199         <dependency>
200             <groupId>io.projectreactor</groupId>
201             <artifactId>reactor-test</artifactId>
202             <scope>test</scope>
203         </dependency>
204         <dependency>
205             <groupId>org.junit.jupiter</groupId>
206             <artifactId>junit-jupiter-engine</artifactId>
207             <scope>test</scope>
208         </dependency>
209         <dependency>
210             <groupId>org.mockito</groupId>
211             <artifactId>mockito-junit-jupiter</artifactId>
212             <scope>test</scope>
213         </dependency>
214         <dependency>
215             <groupId>org.mockito</groupId>
216             <artifactId>mockito-core</artifactId>
217             <scope>test</scope>
218         </dependency>
219         <dependency>
220             <groupId>com.squareup.okhttp3</groupId>
221             <artifactId>mockwebserver</artifactId>
222             <scope>test</scope>
223         </dependency>
224         <dependency>
225             <groupId>commons-io</groupId>
226             <artifactId>commons-io</artifactId>
227             <version>${commons-io.version}</version>
228             <scope>test</scope>
229         </dependency>
230         <dependency>
231             <groupId>com.github.erosb</groupId>
232             <artifactId>everit-json-schema</artifactId>
233             <version>1.14.0</version>
234         </dependency>
235     </dependencies>
236     <build>
237         <plugins>
238             <plugin>
239                 <groupId>org.codehaus.groovy.maven</groupId>
240                 <artifactId>gmaven-plugin</artifactId>
241                 <executions>
242                     <execution>
243                         <phase>validate</phase>
244                         <goals>
245                             <goal>execute</goal>
246                         </goals>
247                         <configuration>
248                             <source>${basedir}/TagVersion.groovy</source>
249                         </configuration>
250                     </execution>
251                 </executions>
252             </plugin>
253             <plugin>
254                 <groupId>org.springframework.boot</groupId>
255                 <artifactId>spring-boot-maven-plugin</artifactId>
256             </plugin>
257             <plugin>
258                 <groupId>net.revelc.code.formatter</groupId>
259                 <artifactId>formatter-maven-plugin</artifactId>
260                 <version>${formatter-maven-plugin.version}</version>
261                 <configuration>
262                     <lineEnding>LF</lineEnding>
263                     <configFile>${project.basedir}/eclipse-formatter.xml</configFile>
264                 </configuration>
265                 <!-- https://code.revelc.net/formatter-maven-plugin/ use mvn formatter:format
266                                         spotless:apply process-sources -->
267             </plugin>
268             <plugin>
269                 <groupId>com.diffplug.spotless</groupId>
270                 <artifactId>spotless-maven-plugin</artifactId>
271                 <version>${spotless-maven-plugin.version}</version>
272                 <configuration>
273                     <lineEndings>UNIX</lineEndings>
274                     <java>
275                         <removeUnusedImports/>
276                         <importOrder>
277                             <order>com,java,javax,org</order>
278                         </importOrder>
279                     </java>
280                 </configuration>
281                 <!-- https://github.com/diffplug/spotless/tree/master/plugin-maven use
282                                         mvn spotless:apply to rewrite source files use mvn spotless:check to validate
283                                         source files -->
284             </plugin>
285             <plugin>
286                 <groupId>org.apache.maven.plugins</groupId>
287                 <artifactId>maven-surefire-plugin</artifactId>
288                 <version>${surefire-maven-plugin.version}</version>
289                 <configuration>
290                     <skipTests>false</skipTests>
291                 </configuration>
292             </plugin>
293             <plugin>
294                 <artifactId>maven-failsafe-plugin</artifactId>
295             </plugin>
296             <plugin>
297                 <groupId>org.codehaus.mojo</groupId>
298                 <artifactId>build-helper-maven-plugin</artifactId>
299                 <executions>
300                     <execution>
301                         <id>add-source</id>
302                         <phase>generate-sources</phase>
303                         <goals>
304                             <goal>add-source</goal>
305                         </goals>
306                         <configuration>
307                             <sources>
308                                 <source>${project.build.directory}/generated-sources/annotations/</source>
309                             </sources>
310                         </configuration>
311                     </execution>
312                 </executions>
313             </plugin>
314             <plugin>
315                 <groupId>org.jacoco</groupId>
316                 <artifactId>jacoco-maven-plugin</artifactId>
317                 <version>${jacoco-maven-plugin.version}</version>
318                 <executions>
319                     <execution>
320                         <id>default-prepare-agent</id>
321                         <goals>
322                             <goal>prepare-agent</goal>
323                         </goals>
324                     </execution>
325                     <execution>
326                         <id>default-report</id>
327                         <phase>prepare-package</phase>
328                         <goals>
329                             <goal>report</goal>
330                         </goals>
331                     </execution>
332                 </executions>
333             </plugin>
334             <plugin>
335                 <groupId>io.swagger.codegen.v3</groupId>
336                 <artifactId>swagger-codegen-maven-plugin</artifactId>
337                 <version>${swagger-codegen-maven-plugin.version}</version>
338                 <executions>
339                     <execution>
340                         <phase>test</phase>
341                         <goals>
342                             <goal>generate</goal>
343                         </goals>
344                         <configuration>
345                             <inputSpec>${project.basedir}/api/pms-api.json</inputSpec>
346                             <language>openapi-yaml</language>
347                             <output>${project.basedir}/api</output>
348                             <configOptions>
349                                 <outputFile>pms-api.yaml</outputFile>
350                             </configOptions>
351                         </configuration>
352                     </execution>
353                 </executions>
354             </plugin>
355             <plugin>
356                 <artifactId>maven-resources-plugin</artifactId>
357                 <executions>
358                     <execution>
359                         <id>copy-resource-one</id>
360                         <phase>install</phase>
361                         <goals>
362                             <goal>copy-resources</goal>
363                         </goals>
364                         <configuration>
365                             <outputDirectory>${project.basedir}/../docs/offeredapis/swagger</outputDirectory>
366                             <resources>
367                                 <resource>
368                                     <directory>${project.basedir}/api</directory>
369                                     <includes>
370                                         <include>pms-api.*</include>
371                                     </includes>
372                                 </resource>
373                             </resources>
374                         </configuration>
375                     </execution>
376                 </executions>
377             </plugin>
378             <plugin>
379                 <groupId>io.fabric8</groupId>
380                 <artifactId>docker-maven-plugin</artifactId>
381                 <version>${docker-maven-plugin}</version>
382                 <inherited>false</inherited>
383                 <executions>
384                     <execution>
385                         <id>generate-policy-management-service-image</id>
386                         <phase>package</phase>
387                         <goals>
388                             <goal>build</goal>
389                         </goals>
390                         <configuration>
391                             <images>
392                                 <image>
393                                     <name>onap/ccsdk-oran-a1policymanagementservice:${project.version}</name>
394                                     <build>
395                                         <cleanup>try</cleanup>
396                                         <contextDir>${basedir}</contextDir>
397                                         <dockerFile>Dockerfile</dockerFile>
398                                         <args>
399                                             <JAR>${project.build.finalName}.jar</JAR>
400                                         </args>
401                                         <tags>
402                                             <tag>${project.version}</tag>
403                                         </tags>
404                                     </build>
405                                 </image>
406                             </images>
407                         </configuration>
408                     </execution>
409                     <execution>
410                         <id>push-policy-management-service-image</id>
411                         <goals>
412                             <goal>build</goal>
413                             <goal>push</goal>
414                         </goals>
415                         <configuration>
416                             <images>
417                                 <image>
418                                     <name>onap/ccsdk-oran-a1policymanagementservice:${project.version}</name>
419                                     <build>
420                                         <contextDir>${basedir}</contextDir>
421                                         <dockerFile>Dockerfile</dockerFile>
422                                         <args>
423                                             <JAR>${project.build.finalName}.jar</JAR>
424                                         </args>
425                                         <tags>
426                                             <tag>${project.docker.latestminortag.version}</tag>
427                                             <tag>${project.docker.latestfulltag.version}</tag>
428                                             <tag>${project.docker.latesttagtimestamp.version}</tag>
429                                         </tags>
430                                     </build>
431                                 </image>
432                             </images>
433                         </configuration>
434                     </execution>
435                 </executions>
436             </plugin>
437         </plugins>
438     </build>
439 </project>