blob: c38b565c5963e3d44daee8c28e8f00bf828ed14b [file] [log] [blame]
Bruno Sakoto4a56deb2021-02-17 17:26:33 -05001<?xml version="1.0" encoding="UTF-8"?>
2<!--
3 ============LICENSE_START=======================================================
4 Copyright (c) 2021 Bell Canada.
Rishi.Chail26af9362021-05-04 16:34:09 +01005 Modifications Copyright (C) 2021 Nordix Foundation.
Bruno Sakoto4a56deb2021-02-17 17:26:33 -05006 ================================================================================
7 Licensed under the Apache License, Version 2.0 (the "License");
8 you may not use this file except in compliance with the License.
9 You may obtain a copy of the License at
10
11 http://www.apache.org/licenses/LICENSE-2.0
12
13 Unless required by applicable law or agreed to in writing, software
14 distributed under the License is distributed on an "AS IS" BASIS,
15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 See the License for the specific language governing permissions and
17 limitations under the License.
18 ============LICENSE_END=========================================================
19-->
20
21<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
22 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
23 <modelVersion>4.0.0</modelVersion>
Bruno Sakoto472d2e82021-02-25 23:23:09 -050024
Bruno Sakoto4a56deb2021-02-17 17:26:33 -050025 <parent>
Bruno Sakoto472d2e82021-02-25 23:23:09 -050026 <groupId>org.onap.oparent</groupId>
27 <artifactId>oparent</artifactId>
28 <version>3.2.0</version>
29 <relativePath/>
Bruno Sakoto4a56deb2021-02-17 17:26:33 -050030 </parent>
Bruno Sakoto472d2e82021-02-25 23:23:09 -050031
Bruno Sakoto4a56deb2021-02-17 17:26:33 -050032 <groupId>org.onap.cps</groupId>
33 <artifactId>cps-temporal</artifactId>
34 <version>0.0.1-SNAPSHOT</version>
35 <name>cps-temporal</name>
36 <description>CPS Temporal Service</description>
Bruno Sakoto472d2e82021-02-25 23:23:09 -050037
Bruno Sakoto4a56deb2021-02-17 17:26:33 -050038 <properties>
Rishi.Chail26af9362021-05-04 16:34:09 +010039 <app>org.onap.cps.temporal.Application</app>
40 <docker.repository.pull>nexus3.onap.org:10001/</docker.repository.pull>
41 <docker.repository.push>nexus3.onap.org:10003/</docker.repository.push>
42 <image.base>${docker.repository.pull}onap/integration-java11:8.0.0</image.base>
43 <image.name>${docker.repository.push}onap/cps-temporal</image.name>
Bruno Sakoto4a56deb2021-02-17 17:26:33 -050044 <java.version>11</java.version>
Rishi.Chail26af9362021-05-04 16:34:09 +010045 <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
puthuparambil.adityad31d8e12021-05-06 16:12:44 +010046 <minimum-coverage>0.8</minimum-coverage>
Bruno Sakoto25050c12021-05-12 08:37:16 -040047 <!-- Application dependencies versions -->
48 <spring-boot-dependencies.version>2.3.8.RELEASE</spring-boot-dependencies.version>
49 <hibernate-types.version>2.10.0</hibernate-types.version>
50 <liquibase-core.version>4.3.2</liquibase-core.version>
51 <!-- Tests dependencies versions -->
52 <spock-bom.version>2.0-M4-groovy-3.0</spock-bom.version>
53 <groovy.version>3.0.7</groovy.version>
54 <junit-jupiter.version>1.15.2</junit-jupiter.version>
55 <testcontainers-postgresql.version>1.15.2</testcontainers-postgresql.version>
56 <archunit-junit5.version>0.18.0</archunit-junit5.version>
57 <!-- Plugins and plugins dependencies versions -->
58 <spring-boot-maven-plugin.version>2.3.3.RELEASE</spring-boot-maven-plugin.version>
59 <gmavenplus-plugin.version>1.12.1</gmavenplus-plugin.version>
60 <jib-maven-plugin.version>3.0.0</jib-maven-plugin.version>
puthuparambil.aditya2bd625b2021-04-27 11:39:32 +010061 <oparent.version>3.2.0</oparent.version>
Bruno Sakoto25050c12021-05-12 08:37:16 -040062 <cps.checkstyle.version>1.0.1</cps.checkstyle.version>
63 <cps.spotbugs.version>1.0.1</cps.spotbugs.version>
puthuparambil.aditya2bd625b2021-04-27 11:39:32 +010064 <spotbugs-maven-plugin.version>4.1.3</spotbugs-maven-plugin.version>
puthuparambil.aditya2bd625b2021-04-27 11:39:32 +010065 <spotbugs.version>4.2.0</spotbugs.version>
Bruno Sakoto25050c12021-05-12 08:37:16 -040066 <spotbugs.slf4j.version>1.8.0-beta4</spotbugs.slf4j.version>
67 <bug-pattern.version>1.5.0</bug-pattern.version>
Bruno Sakoto4a56deb2021-02-17 17:26:33 -050068 </properties>
Bruno Sakoto472d2e82021-02-25 23:23:09 -050069
70 <dependencyManagement>
71 <dependencies>
72 <dependency>
73 <groupId>org.springframework.boot</groupId>
74 <artifactId>spring-boot-dependencies</artifactId>
Bruno Sakoto25050c12021-05-12 08:37:16 -040075 <version>${spring-boot-dependencies.version}</version>
Bruno Sakoto472d2e82021-02-25 23:23:09 -050076 <type>pom</type>
77 <scope>import</scope>
78 </dependency>
79 <dependency>
80 <groupId>org.spockframework</groupId>
81 <artifactId>spock-bom</artifactId>
Bruno Sakoto25050c12021-05-12 08:37:16 -040082 <version>${spock-bom.version}</version>
Bruno Sakoto472d2e82021-02-25 23:23:09 -050083 <type>pom</type>
84 <scope>import</scope>
85 </dependency>
86 </dependencies>
87 </dependencyManagement>
88
Bruno Sakoto4a56deb2021-02-17 17:26:33 -050089 <dependencies>
90 <dependency>
91 <groupId>org.springframework.boot</groupId>
92 <artifactId>spring-boot-starter</artifactId>
93 </dependency>
94 <dependency>
95 <groupId>org.springframework.boot</groupId>
96 <artifactId>spring-boot-starter-web</artifactId>
97 </dependency>
Bruno Sakoto05855d52021-04-20 08:22:56 -040098 <dependency>
99 <groupId>org.springframework.boot</groupId>
100 <artifactId>spring-boot-starter-data-jpa</artifactId>
101 </dependency>
102 <dependency>
puthuparambil.adityad31d8e12021-05-06 16:12:44 +0100103 <groupId>com.vladmihalcea</groupId>
104 <artifactId>hibernate-types-52</artifactId>
105 <version>${hibernate-types.version}</version>
106 </dependency>
107 <dependency>
Bruno Sakoto05855d52021-04-20 08:22:56 -0400108 <groupId>org.liquibase</groupId>
109 <artifactId>liquibase-core</artifactId>
Bruno Sakoto25050c12021-05-12 08:37:16 -0400110 <version>${liquibase-core.version}</version>
Bruno Sakoto05855d52021-04-20 08:22:56 -0400111 </dependency>
puthuparambil.adityad31d8e12021-05-06 16:12:44 +0100112 <dependency>
113 <groupId>org.projectlombok</groupId>
114 <artifactId>lombok</artifactId>
115 </dependency>
116 <dependency>
117 <groupId>org.springframework.boot</groupId>
118 <artifactId>spring-boot-starter-validation</artifactId>
119 </dependency>
Bruno Sakoto05855d52021-04-20 08:22:56 -0400120 <!-- Runtime dependencies-->
121 <dependency>
122 <groupId>org.postgresql</groupId>
123 <artifactId>postgresql</artifactId>
124 <scope>runtime</scope>
125 </dependency>
Bruno Sakoto472d2e82021-02-25 23:23:09 -0500126 <!-- Test dependencies-->
127 <dependency>
128 <groupId>org.codehaus.groovy</groupId>
129 <artifactId>groovy</artifactId>
Bruno Sakoto25050c12021-05-12 08:37:16 -0400130 <version>${groovy.version}</version>
Bruno Sakoto472d2e82021-02-25 23:23:09 -0500131 </dependency>
Bruno Sakoto4a56deb2021-02-17 17:26:33 -0500132 <dependency>
133 <groupId>org.springframework.boot</groupId>
134 <artifactId>spring-boot-starter-test</artifactId>
135 <scope>test</scope>
136 <exclusions>
137 <exclusion>
138 <groupId>org.junit.vintage</groupId>
139 <artifactId>junit-vintage-engine</artifactId>
140 </exclusion>
141 </exclusions>
142 </dependency>
Bruno Sakoto472d2e82021-02-25 23:23:09 -0500143 <dependency>
144 <groupId>org.spockframework</groupId>
145 <artifactId>spock-core</artifactId>
146 <scope>test</scope>
147 </dependency>
Bruno Sakoto05855d52021-04-20 08:22:56 -0400148 <dependency>
puthuparambil.adityad31d8e12021-05-06 16:12:44 +0100149 <groupId>org.spockframework</groupId>
150 <artifactId>spock-spring</artifactId>
151 <scope>test</scope>
152 </dependency>
153 <dependency>
Bruno Sakoto05855d52021-04-20 08:22:56 -0400154 <groupId>org.testcontainers</groupId>
155 <artifactId>junit-jupiter</artifactId>
Bruno Sakoto25050c12021-05-12 08:37:16 -0400156 <version>${junit-jupiter.version}</version>
Bruno Sakoto05855d52021-04-20 08:22:56 -0400157 <scope>test</scope>
158 </dependency>
159 <dependency>
160 <groupId>org.testcontainers</groupId>
161 <artifactId>postgresql</artifactId>
Bruno Sakoto25050c12021-05-12 08:37:16 -0400162 <version>${testcontainers-postgresql.version}</version>
163 <scope>test</scope>
164 </dependency>
165 <dependency>
166 <groupId>com.tngtech.archunit</groupId>
167 <artifactId>archunit-junit5</artifactId>
168 <version>${archunit-junit5.version}</version>
Bruno Sakoto05855d52021-04-20 08:22:56 -0400169 <scope>test</scope>
170 </dependency>
Bruno Sakoto4a56deb2021-02-17 17:26:33 -0500171 </dependencies>
172
173 <build>
174 <plugins>
175 <plugin>
176 <groupId>org.springframework.boot</groupId>
177 <artifactId>spring-boot-maven-plugin</artifactId>
Bruno Sakoto25050c12021-05-12 08:37:16 -0400178 <version>${spring-boot-maven-plugin.version}</version>
Bruno Sakoto4a56deb2021-02-17 17:26:33 -0500179 </plugin>
Bruno Sakoto472d2e82021-02-25 23:23:09 -0500180 <plugin>
181 <!-- The gmavenplus plugin is used to compile Groovy code. To learn more about this plugin,
182 visit https://github.com/groovy/GMavenPlus/wiki -->
183 <groupId>org.codehaus.gmavenplus</groupId>
184 <artifactId>gmavenplus-plugin</artifactId>
Bruno Sakoto25050c12021-05-12 08:37:16 -0400185 <version>${gmavenplus-plugin.version}</version>
Bruno Sakoto472d2e82021-02-25 23:23:09 -0500186 <executions>
187 <execution>
188 <goals>
189 <goal>compile</goal>
190 <goal>compileTests</goal>
191 </goals>
192 </execution>
193 </executions>
194 </plugin>
195 <plugin>
196 <groupId>org.apache.maven.plugins</groupId>
puthuparambil.aditya2bd625b2021-04-27 11:39:32 +0100197 <artifactId>maven-checkstyle-plugin</artifactId>
198 <executions>
199 <execution>
200 <id>onap-license</id>
201 <goals>
202 <goal>check</goal>
203 </goals>
204 <phase>process-sources</phase>
205 <configuration>
206 <configLocation>onap-checkstyle/check-license.xml</configLocation>
207 <includeResources>false</includeResources>
208 <includeTestSourceDirectory>true</includeTestSourceDirectory>
209 <includeTestResources>false</includeTestResources>
210 <sourceDirectories>
211 <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
212 </sourceDirectories>
213 <consoleOutput>false</consoleOutput>
214 <violationSeverity>warning</violationSeverity>
215 <failOnViolation>true</failOnViolation>
216 </configuration>
217 </execution>
218 <execution>
219 <id>onap-java-style</id>
220 <goals>
221 <goal>check</goal>
222 </goals>
223 <phase>process-sources</phase>
224 <configuration>
225 <configLocation>onap-checkstyle/onap-java-style.xml</configLocation>
226 <sourceDirectories>
227 <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
228 </sourceDirectories>
229 <includeResources>true</includeResources>
230 <includeTestSourceDirectory>true</includeTestSourceDirectory>
231 <includeTestResources>true</includeTestResources>
232 <consoleOutput>false</consoleOutput>
233 <violationSeverity>warning</violationSeverity>
234 <failOnViolation>true</failOnViolation>
235 </configuration>
236 </execution>
237 <execution>
238 <id>cps-java-style</id>
239 <goals>
240 <goal>check</goal>
241 </goals>
242 <phase>process-sources</phase>
243 <configuration>
244 <configLocation>cps-java-style.xml</configLocation>
245 <sourceDirectories>
246 <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
247 </sourceDirectories>
248 <includeResources>true</includeResources>
249 <includeTestSourceDirectory>true</includeTestSourceDirectory>
250 <includeTestResources>true</includeTestResources>
251 <consoleOutput>true</consoleOutput>
252 <violationSeverity>warning</violationSeverity>
253 <failOnViolation>true</failOnViolation>
254 </configuration>
255 </execution>
256 </executions>
257 <dependencies>
258 <dependency>
259 <groupId>org.onap.oparent</groupId>
260 <artifactId>checkstyle</artifactId>
261 <version>${oparent.version}</version>
262 </dependency>
263 <dependency>
264 <groupId>org.onap.cps</groupId>
265 <artifactId>checkstyle</artifactId>
266 <version>${cps.checkstyle.version}</version>
267 </dependency>
268 </dependencies>
269 </plugin>
270 <plugin>
271 <groupId>com.github.spotbugs</groupId>
272 <artifactId>spotbugs-maven-plugin</artifactId>
273 <version>${spotbugs-maven-plugin.version}</version>
274 <dependencies>
275 <dependency>
276 <groupId>com.github.spotbugs</groupId>
277 <artifactId>spotbugs</artifactId>
278 <version>${spotbugs.version}</version>
279 </dependency>
280 <dependency>
281 <groupId>org.onap.cps</groupId>
282 <artifactId>spotbugs</artifactId>
283 <version>${cps.spotbugs.version}</version>
284 </dependency>
285 <dependency>
286 <!-- The SpotBugs Maven plugin uses SLF4J 1.8 beta 2 -->
287 <groupId>org.slf4j</groupId>
288 <artifactId>slf4j-simple</artifactId>
289 <version>${spotbugs.slf4j.version}</version>
290 </dependency>
291 </dependencies>
292 <configuration>
293 <plugins>
294 <plugin>
295 <groupId>jp.skypencil.findbugs.slf4j</groupId>
296 <artifactId>bug-pattern</artifactId>
Bruno Sakoto25050c12021-05-12 08:37:16 -0400297 <version>${bug-pattern.version}</version>
puthuparambil.aditya2bd625b2021-04-27 11:39:32 +0100298 </plugin>
299 </plugins>
300 <!--
301 Enables analysis which takes more memory but finds more bugs.
302 If you run out of memory, changes the value of the effort element
303 to 'Low'.
304 -->
305 <effort>Max</effort>
306 <!-- Reports all bugs (other values are medium and max) -->
307 <threshold>Low</threshold>
308 <!-- Build doesn't fail if problems are found -->
309 <failOnError>true</failOnError>
310 <!-- References the excluded rules -->
311 <excludeFilterFile>spotbugs-exclude.xml</excludeFilterFile>
312 <!-- Produces XML report -->
313 <xmlOutput>true</xmlOutput>
314 <!-- Configures the directory in which the XML report is created -->
315 <xmlOutputDirectory>${project.build.directory}/spotbugs</xmlOutputDirectory>
316 </configuration>
317 <executions>
318 <!--
319 Ensures that SpotBugs inspects source code when project is compiled.
320 -->
321 <execution>
322 <id>analyze-compile</id>
323 <phase>compile</phase>
324 <goals>
325 <goal>check</goal>
326 </goals>
327 </execution>
328 </executions>
329 </plugin>
330 <plugin>
331 <groupId>org.apache.maven.plugins</groupId>
Bruno Sakoto472d2e82021-02-25 23:23:09 -0500332 <artifactId>maven-surefire-plugin</artifactId>
333 <configuration>
334 <!--suppress UnresolvedMavenProperty -->
335 <argLine>${surefireArgLine}</argLine>
336 <useFile>false</useFile>
337 <includes>
338 <include>**/*Spec.java</include>
339 <include>**/*Test.java</include>
340 </includes>
Bruno Sakoto05855d52021-04-20 08:22:56 -0400341 <environmentVariables>
342 <!--
343 Disable privileged container usage to cleanup the test containers;
344 these are removed automatically on jvm termination;
345 see https://www.testcontainers.org/features/configuration/#disabling-ryuk
346 -->
347 <TESTCONTAINERS_RYUK_DISABLED>true</TESTCONTAINERS_RYUK_DISABLED>
348 </environmentVariables>
Bruno Sakoto472d2e82021-02-25 23:23:09 -0500349 </configuration>
350 </plugin>
351 <plugin>
352 <groupId>org.jacoco</groupId>
353 <artifactId>jacoco-maven-plugin</artifactId>
Bruno Sakoto472d2e82021-02-25 23:23:09 -0500354 <executions>
355 <execution>
356 <id>coverage-prepare-agent</id>
357 <goals>
358 <goal>prepare-agent</goal>
359 </goals>
360 </execution>
361 <execution>
362 <id>coverage-check</id>
363 <goals>
364 <goal>check</goal>
365 </goals>
366 <configuration>
367 <dataFile>${project.build.directory}/code-coverage/jacoco-ut.exec</dataFile>
368 <rules>
369 <rule>
370 <element>BUNDLE</element>
371 <limits>
372 <limit>
373 <counter>INSTRUCTION</counter>
374 <value>COVEREDRATIO</value>
375 <minimum>${minimum-coverage}</minimum>
376 </limit>
377 </limits>
378 </rule>
379 </rules>
380 </configuration>
381 </execution>
382 <execution>
383 <id>coverage-report</id>
384 <goals>
385 <goal>report</goal>
386 </goals>
387 <configuration>
388 <dataFile>${project.build.directory}/code-coverage/jacoco-ut.exec</dataFile>
389 </configuration>
390 </execution>
391 </executions>
392 </plugin>
Bruno Sakoto4a56deb2021-02-17 17:26:33 -0500393 </plugins>
Rishi.Chail26af9362021-05-04 16:34:09 +0100394
395 <pluginManagement>
396 <plugins>
397 <plugin>
398 <groupId>com.google.cloud.tools</groupId>
399 <artifactId>jib-maven-plugin</artifactId>
400 <version>${jib-maven-plugin.version}</version>
401 <configuration>
402 <container>
403 <mainClass>${app}</mainClass>
404 <creationTime>USE_CURRENT_TIMESTAMP</creationTime>
405 </container>
406 <from>
Bruno Sakoto32eaae92021-05-12 07:51:50 -0400407 <image>${image.base}</image>
Rishi.Chail26af9362021-05-04 16:34:09 +0100408 </from>
409 <to>
410 <tags>
411 <tag>latest</tag>
412 </tags>
413 <image>${image.name}:${project.version}-${maven.build.timestamp}</image>
414 </to>
415 </configuration>
416 <executions>
417 <execution>
418 <phase>package</phase>
419 <id>build</id>
420 <goals>
421 <goal>dockerBuild</goal>
422 </goals>
423 </execution>
424 <execution>
425 <phase>deploy</phase>
426 <id>buildAndPush</id>
427 <goals>
428 <goal>build</goal>
429 </goals>
430 </execution>
431 </executions>
432 </plugin>
433 </plugins>
434 </pluginManagement>
Bruno Sakoto4a56deb2021-02-17 17:26:33 -0500435 </build>
Rishi.Chail26af9362021-05-04 16:34:09 +0100436
437 <profiles>
438 <profile>
439 <id>cps-temporal-docker</id>
440 <build>
441 <plugins>
442 <plugin>
443 <groupId>com.google.cloud.tools</groupId>
444 <artifactId>jib-maven-plugin</artifactId>
445 </plugin>
446 </plugins>
447 </build>
448 </profile>
449 </profiles>
Bruno Sakoto4a56deb2021-02-17 17:26:33 -0500450</project>