07e4c39dc86f32bc65c5a86b3e88536b66497dc4
[nonrtric.git] / r-app-catalogue / pom.xml
1 <?xml version="1.0" encoding="UTF-8"?>\r
2 <!--\r
3 * ========================LICENSE_START=================================\r
4 * O-RAN-SC\r
5 * %%\r
6 * Copyright (C) 2020 Nordix Foundation\r
7 * %%\r
8 * Licensed under the Apache License, Version 2.0 (the "License");\r
9 * you may not use this file except in compliance with the License.\r
10 * You may obtain a copy of the License at\r
11 *\r
12 * http://www.apache.org/licenses/LICENSE-2.0\r
13 *\r
14 * Unless required by applicable law or agreed to in writing, software\r
15 * distributed under the License is distributed on an "AS IS" BASIS,\r
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
17 * See the License for the specific language governing permissions and\r
18 * limitations under the License.\r
19 * ========================LICENSE_END===================================\r
20 -->\r
21 <project xmlns="http://maven.apache.org/POM/4.0.0"\r
22     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
23     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">\r
24     <modelVersion>4.0.0</modelVersion>\r
25 \r
26     <parent>\r
27         <groupId>org.springframework.boot</groupId>\r
28         <artifactId>spring-boot-starter-parent</artifactId>\r
29         <version>2.3.4.RELEASE</version>\r
30         <relativePath />\r
31     </parent>\r
32     <groupId>org.o-ran-sc.nonrtric</groupId>\r
33     <artifactId>r-app-catalogue</artifactId>\r
34     <version>1.1.0-SNAPSHOT</version>\r
35     <licenses>\r
36         <license>\r
37             <name>The Apache Software License, Version 2.0</name>\r
38             <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>\r
39         </license>\r
40     </licenses>\r
41     <properties>\r
42         <java.version>11</java.version>\r
43         <swagger-annotations.version>1.5.22</swagger-annotations.version>\r
44         <springfox.version>2.9.2</springfox.version>\r
45         <jackson-databind-nullable.version>0.2.1</jackson-databind-nullable.version>\r
46         <openapi-generator-maven-plugin.version>4.3.1</openapi-generator-maven-plugin.version>\r
47         <swagger-codegen-maven-plugin.version>3.0.11</swagger-codegen-maven-plugin.version>\r
48         <formatter-maven-plugin.version>2.12.2</formatter-maven-plugin.version>\r
49         <spotless-maven-plugin.version>1.24.3</spotless-maven-plugin.version>\r
50         <jacoco-maven-plugin.version>0.8.6</jacoco-maven-plugin.version>\r
51         <docker-maven-plugin.version>0.30.0</docker-maven-plugin.version>\r
52     </properties>\r
53 \r
54     <dependencies>\r
55         <dependency>\r
56             <groupId>io.swagger</groupId>\r
57             <artifactId>swagger-annotations</artifactId>\r
58             <version>${swagger-annotations.version}</version>\r
59         </dependency>\r
60         <dependency>\r
61             <groupId>com.fasterxml.jackson.core</groupId>\r
62             <artifactId>jackson-annotations</artifactId>\r
63         </dependency>\r
64         <dependency>\r
65             <groupId>org.springframework</groupId>\r
66             <artifactId>spring-beans</artifactId>\r
67         </dependency>\r
68         <dependency>\r
69             <groupId>org.springframework.boot</groupId>\r
70             <artifactId>spring-boot-autoconfigure</artifactId>\r
71         </dependency>\r
72         <dependency>\r
73             <groupId>org.springframework</groupId>\r
74             <artifactId>spring-web</artifactId>\r
75         </dependency>\r
76         <dependency>\r
77             <groupId>org.springframework.boot</groupId>\r
78             <artifactId>spring-boot</artifactId>\r
79         </dependency>\r
80         <dependency>\r
81             <groupId>org.springframework</groupId>\r
82             <artifactId>spring-webmvc</artifactId>\r
83         </dependency>\r
84         <dependency>\r
85             <groupId>org.springframework</groupId>\r
86             <artifactId>spring-context</artifactId>\r
87         </dependency>\r
88         <dependency>\r
89             <groupId>io.springfox</groupId>\r
90             <artifactId>springfox-swagger2</artifactId>\r
91             <version>${springfox.version}</version>\r
92         </dependency>\r
93         <dependency>\r
94             <groupId>io.springfox</groupId>\r
95             <artifactId>springfox-core</artifactId>\r
96             <version>${springfox.version}</version>\r
97         </dependency>\r
98         <dependency>\r
99             <groupId>io.springfox</groupId>\r
100             <artifactId>springfox-spring-web</artifactId>\r
101             <version>${springfox.version}</version>\r
102         </dependency>\r
103         <dependency>\r
104             <groupId>io.springfox</groupId>\r
105             <artifactId>springfox-spi</artifactId>\r
106             <version>${springfox.version}</version>\r
107         </dependency>\r
108         <dependency>\r
109             <groupId>org.assertj</groupId>\r
110             <artifactId>assertj-core</artifactId>\r
111         </dependency>\r
112         <dependency>\r
113             <groupId>org.apache.tomcat.embed</groupId>\r
114             <artifactId>tomcat-embed-core</artifactId>\r
115         </dependency>\r
116         <dependency>\r
117             <groupId>org.openapitools</groupId>\r
118             <artifactId>jackson-databind-nullable</artifactId>\r
119             <version>${jackson-databind-nullable.version}</version>\r
120         </dependency>\r
121         <dependency>\r
122             <groupId>javax.validation</groupId>\r
123             <artifactId>validation-api</artifactId>\r
124         </dependency>\r
125         <dependency>\r
126             <groupId>com.fasterxml.jackson.core</groupId>\r
127             <artifactId>jackson-databind</artifactId>\r
128         </dependency>\r
129         <dependency>\r
130             <groupId>org.yaml</groupId>\r
131             <artifactId>snakeyaml</artifactId>\r
132             <scope>runtime</scope>\r
133         </dependency>\r
134         <!-- TEST -->\r
135         <dependency>\r
136             <groupId>org.springframework</groupId>\r
137             <artifactId>spring-test</artifactId>\r
138             <scope>test</scope>\r
139         </dependency>\r
140         <dependency>\r
141             <groupId>org.junit.jupiter</groupId>\r
142             <artifactId>junit-jupiter-api</artifactId>\r
143             <scope>test</scope>\r
144         </dependency>\r
145         <dependency>\r
146             <groupId>org.mockito</groupId>\r
147             <artifactId>mockito-junit-jupiter</artifactId>\r
148             <scope>test</scope>\r
149         </dependency>\r
150         <dependency>\r
151             <groupId>org.mockito</groupId>\r
152             <artifactId>mockito-core</artifactId>\r
153             <scope>test</scope>\r
154         </dependency>\r
155         <dependency>\r
156             <groupId>org.junit.jupiter</groupId>\r
157             <artifactId>junit-jupiter-engine</artifactId>\r
158             <scope>test</scope>\r
159         </dependency>\r
160     </dependencies>\r
161 \r
162     <build>\r
163         <plugins>\r
164             <plugin>\r
165                 <groupId>org.springframework.boot</groupId>\r
166                 <artifactId>spring-boot-maven-plugin</artifactId>\r
167             </plugin>\r
168             <plugin>\r
169                 <groupId>org.openapitools</groupId>\r
170                 <artifactId>openapi-generator-maven-plugin</artifactId>\r
171                 <version>${openapi-generator-maven-plugin.version}</version>\r
172                 <executions>\r
173                     <execution>\r
174                         <goals>\r
175                             <goal>generate</goal>\r
176                         </goals>\r
177                         <configuration>\r
178                             <inputSpec>${project.basedir}/api/rac-api.json</inputSpec>\r
179                             <generatorName>spring</generatorName>\r
180                             <apiPackage>org.oransc.rappcatalogue.api</apiPackage>\r
181                             <modelPackage>org.oransc.rappcatalogue.model</modelPackage>\r
182                             <invokerPackage>org.oransc.rappcatalogue</invokerPackage>\r
183                             <configOptions>\r
184                                 <delegatePattern>true</delegatePattern>\r
185                                 <unhandledException>true</unhandledException>\r
186                             </configOptions>\r
187                         </configuration>\r
188                     </execution>\r
189                 </executions>\r
190             </plugin>\r
191             <plugin>\r
192                 <groupId>io.swagger.codegen.v3</groupId>\r
193                 <artifactId>swagger-codegen-maven-plugin</artifactId>\r
194                 <version>${swagger-codegen-maven-plugin.version}</version>\r
195                 <executions>\r
196                     <execution>\r
197                         <goals>\r
198                             <goal>generate</goal>\r
199                         </goals>\r
200                         <configuration>\r
201                             <inputSpec>${project.basedir}/api/rac-api.json</inputSpec>\r
202                             <language>openapi-yaml</language>\r
203                             <output>${project.basedir}/api/</output>\r
204                             <configOptions>\r
205                                 <outputFile>rac-api.yaml</outputFile>\r
206                             </configOptions>\r
207                         </configuration>\r
208                     </execution>\r
209                 </executions>\r
210             </plugin>\r
211             <plugin>\r
212                 <groupId>net.revelc.code.formatter</groupId>\r
213                 <artifactId>formatter-maven-plugin</artifactId>\r
214                 <version>${formatter-maven-plugin.version}</version>\r
215                 <configuration>\r
216                     <configFile>${project.basedir}/eclipse-formatter.xml</configFile>\r
217                 </configuration>\r
218                 <!-- https://code.revelc.net/formatter-maven-plugin/ use mvn formatter:format\r
219                     spotless:apply process-sources -->\r
220             </plugin>\r
221             <plugin>\r
222                 <groupId>com.diffplug.spotless</groupId>\r
223                 <artifactId>spotless-maven-plugin</artifactId>\r
224                 <version>${spotless-maven-plugin.version}</version>\r
225                 <configuration>\r
226                     <java>\r
227                         <removeUnusedImports />\r
228                         <importOrder>\r
229                             <order>com,java,javax,org</order>\r
230                         </importOrder>\r
231                     </java>\r
232                 </configuration>\r
233                 <!-- https://github.com/diffplug/spotless/tree/master/plugin-maven use\r
234                     mvn spotless:apply to rewrite source files use mvn spotless:check to validate\r
235                     source files -->\r
236             </plugin>\r
237             <plugin>\r
238                 <groupId>org.jacoco</groupId>\r
239                 <artifactId>jacoco-maven-plugin</artifactId>\r
240                 <version>${jacoco-maven-plugin.version}</version>\r
241                 <executions>\r
242                     <execution>\r
243                         <id>default-prepare-agent</id>\r
244                         <goals>\r
245                             <goal>prepare-agent</goal>\r
246                         </goals>\r
247                     </execution>\r
248                     <execution>\r
249                         <id>default-report</id>\r
250                         <phase>prepare-package</phase>\r
251                         <goals>\r
252                             <goal>report</goal>\r
253                         </goals>\r
254                     </execution>\r
255                 </executions>\r
256             </plugin>\r
257             <plugin>\r
258                 <groupId>io.fabric8</groupId>\r
259                 <artifactId>docker-maven-plugin</artifactId>\r
260                 <version>${docker-maven-plugin.version}</version>\r
261                 <inherited>false</inherited>\r
262                 <executions>\r
263                     <execution>\r
264                         <id>generate-r-app-catalogue-image</id>\r
265                         <phase>package</phase>\r
266                         <goals>\r
267                             <goal>build</goal>\r
268                         </goals>\r
269                         <configuration>\r
270                             <pullRegistry>${env.CONTAINER_PULL_REGISTRY}</pullRegistry>\r
271                             <images>\r
272                                 <image>\r
273                                     <name>o-ran-sc/nonrtric-r-app-catalogue:${project.version}</name>\r
274                                     <build>\r
275                                         <cleanup>try</cleanup>\r
276                                         <contextDir>${basedir}</contextDir>\r
277                                         <dockerFile>Dockerfile</dockerFile>\r
278                                         <args>\r
279                                             <JAR>${project.build.finalName}.jar</JAR>\r
280                                         </args>\r
281                                         <tags>\r
282                                             <tag>${project.version}</tag>\r
283                                         </tags>\r
284                                     </build>\r
285                                 </image>\r
286                             </images>\r
287                         </configuration>\r
288                     </execution>\r
289                     <execution>\r
290                         <id>push-r-app-catalogue-image</id>\r
291                         <goals>\r
292                             <goal>build</goal>\r
293                             <goal>push</goal>\r
294                         </goals>\r
295                         <configuration>\r
296                             <pullRegistry>${env.CONTAINER_PULL_REGISTRY}</pullRegistry>\r
297                             <pushRegistry>${env.CONTAINER_PUSH_REGISTRY}</pushRegistry>\r
298                             <images>\r
299                                 <image>\r
300                                     <name>o-ran-sc/nonrtric-r-app-catalogue:${project.version}</name>\r
301                                     <build>\r
302                                         <contextDir>${basedir}</contextDir>\r
303                                         <dockerFile>Dockerfile</dockerFile>\r
304                                         <args>\r
305                                             <JAR>${project.build.finalName}.jar</JAR>\r
306                                         </args>\r
307                                         <tags>\r
308                                             <tag>${project.version}</tag>\r
309                                             <tag>latest</tag>\r
310                                         </tags>\r
311                                     </build>\r
312                                 </image>\r
313                             </images>\r
314                         </configuration>\r
315                     </execution>\r
316                 </executions>\r
317             </plugin>\r
318         </plugins>\r
319     </build>\r
320 </project>