bf55f39a17a5b205fa61f1aa2712b7bcc275f9ae
[dcaegen2/collectors/hv-ves.git] / pom.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3   ~ ============LICENSE_START=======================================================
4   ~ dcaegen2-collectors-veshv
5   ~ ================================================================================
6   ~ Copyright (C) 2018-2019 NOKIA
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 <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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
23
24     <modelVersion>4.0.0</modelVersion>
25
26     <licenses>
27         <license>
28             <name>The Apache Software License, Version 2.0</name>
29             <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
30         </license>
31     </licenses>
32
33     <parent>
34         <groupId>org.onap.oparent</groupId>
35         <artifactId>oparent</artifactId>
36         <version>3.0.0</version>
37         <relativePath/>
38     </parent>
39
40     <groupId>org.onap.dcaegen2.collectors.hv-ves</groupId>
41     <artifactId>ves-hv-collector</artifactId>
42     <version>1.6.0-SNAPSHOT</version>
43     <name>dcaegen2-collectors-veshv</name>
44     <description>VES HighVolume Collector</description>
45     <packaging>pom</packaging>
46
47     <modules>
48         <module>build</module>
49         <module>sources</module>
50     </modules>
51
52     <properties>
53         <coroutines.version>1.3.0-M2</coroutines.version>
54         <kotlin.version>1.3.31</kotlin.version>
55         <arrow.version>0.9.0</arrow.version>
56         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
57         <build-helper-maven-plugin.version>1.7</build-helper-maven-plugin.version>
58         <jacoco.version>0.8.3</jacoco.version>
59         <detekt.version>1.0.0-RC14</detekt.version>
60         <sdk.version>1.5.0</sdk.version>
61
62         <!-- Protocol buffers -->
63         <protobuf.version>3.14.0</protobuf.version>
64
65         <!-- Testing and code analysis -->
66         <junit-platform.version>1.2.0-RC1</junit-platform.version>
67         <junit-jupiter.version>5.2.0-RC1</junit-jupiter.version>
68         <spek.version>1.1.5</spek.version>
69         <gson.version>2.8.5</gson.version>
70         <maven-surefire-plugin.version>2.22.0</maven-surefire-plugin.version>
71         <failIfMissingUnitTests>false</failIfMissingUnitTests>
72         <failIfMissingComponentTests>false</failIfMissingComponentTests>
73         <skipAnalysis>true</skipAnalysis>
74         <jacoco.minimum.coverage>60</jacoco.minimum.coverage>
75         <skipEnforcer>true</skipEnforcer>
76         <!--Specify path to load jacoco xml report, as Sonar can't load Kotlin coverage from binary report. -->
77         <sonar.coverage.jacoco.xmlReportPaths>
78             ${project.basedir}/../../build/hv-collector-coverage/target/site/jacoco-aggregate/jacoco.xml
79         </sonar.coverage.jacoco.xmlReportPaths>
80
81         <!-- Docker -->
82         <skipDocker>false</skipDocker>
83         <skipDockerPush>true</skipDockerPush>
84         <maven.build.timestamp.format>yyyyMMdd'T'HHmmss</maven.build.timestamp.format>
85         <docker-image.registry>${onap.nexus.dockerregistry.daily}</docker-image.registry>
86         <docker-image.namespace>onap</docker-image.namespace>
87         <docker-image.name>${project.groupId}.${project.artifactId}</docker-image.name>
88         <docker-image.latest>1.2-SNAPSHOT</docker-image.latest>
89         <docker.http_proxy/>
90     </properties>
91
92     <build>
93         <sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
94         <testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory>
95         <resources>
96             <resource>
97                 <directory>${project.basedir}/src/main/resources</directory>
98             </resource>
99         </resources>
100         <pluginManagement>
101             <plugins>
102                 <plugin>
103                     <groupId>org.apache.maven.plugins</groupId>
104                     <artifactId>maven-resources-plugin</artifactId>
105                     <version>3.1.0</version>
106                     <configuration>
107                         <encoding>UTF-8</encoding>
108                     </configuration>
109                 </plugin>
110                 <plugin>
111                     <groupId>org.apache.maven.plugins</groupId>
112                     <artifactId>maven-deploy-plugin</artifactId>
113                 </plugin>
114                 <plugin>
115                     <groupId>org.apache.maven.plugins</groupId>
116                     <artifactId>maven-enforcer-plugin</artifactId>
117                     <configuration>
118                         <skip>${skipEnforcer}</skip>
119                     </configuration>
120                 </plugin>
121                 <plugin>
122                     <artifactId>kotlin-maven-plugin</artifactId>
123                     <groupId>org.jetbrains.kotlin</groupId>
124                     <version>${kotlin.version}</version>
125                     <configuration>
126                         <jvmTarget>11</jvmTarget>
127                     </configuration>
128                     <executions>
129                         <execution>
130                             <id>compile</id>
131                             <goals>
132                                 <goal>compile</goal>
133                             </goals>
134                             <configuration>
135                                 <sourceDirs>
136                                     <source>${project.build.sourceDirectory}</source>
137                                     <source>${project.build.directory}/generated-sources/annotations</source>
138                                 </sourceDirs>
139                             </configuration>
140                         </execution>
141                         <execution>
142                             <id>test-compile</id>
143                             <goals>
144                                 <goal>test-compile</goal>
145                             </goals>
146                             <configuration>
147                                 <sourceDirs>
148                                     <source>${project.build.testSourceDirectory}</source>
149                                 </sourceDirs>
150                             </configuration>
151                         </execution>
152                     </executions>
153                 </plugin>
154                 <plugin>
155                     <groupId>org.apache.maven.plugins</groupId>
156                     <artifactId>maven-compiler-plugin</artifactId>
157                     <version>${maven-compiler-plugin.version}</version>
158                     <configuration>
159                         <source>11</source>
160                         <target>11</target>
161                         <encoding>UTF-8</encoding>
162                         <showWarnings>true</showWarnings>
163                         <showDeprecation>true</showDeprecation>
164                         <failOnWarning>false</failOnWarning>
165                     </configuration>
166                     <dependencies>
167                         <dependency>
168                             <groupId>org.ow2.asm</groupId>
169                             <artifactId>asm</artifactId>
170                             <version>6.1.1</version> <!-- Use newer version of ASM -->
171                         </dependency>
172                     </dependencies>
173                 </plugin>
174                 <!--
175                  Due to a memory leak in Surefire 2.20 and issues running on Java 9, the junit-platform-surefire-provider
176                  currently only works with Surefire 2.19.1.
177                  For updates see https://junit.org/junit5/docs/current/user-guide/#running-tests-build-maven
178                  -->
179                 <plugin>
180                     <artifactId>maven-surefire-plugin</artifactId>
181                     <groupId>org.apache.maven.plugins</groupId>
182                     <version>${maven-surefire-plugin.version}</version>
183                     <configuration>
184                         <failIfNoTests>${failIfMissingUnitTests}</failIfNoTests>
185                         <forkCount>1</forkCount>
186                         <includes>
187                             <include>**/*Test.*</include>
188                         </includes>
189                     </configuration>
190                     <dependencies>
191                         <dependency>
192                             <groupId>org.apache.commons</groupId>
193                             <artifactId>commons-lang3</artifactId>
194                             <version>3.7</version>
195                         </dependency>
196                         <dependency>
197                             <groupId>org.junit.platform</groupId>
198                             <artifactId>junit-platform-surefire-provider</artifactId>
199                             <version>${junit-platform.version}</version>
200                             <scope>runtime</scope>
201                         </dependency>
202                         <dependency>
203                             <groupId>org.jetbrains.spek</groupId>
204                             <artifactId>spek-junit-platform-engine</artifactId>
205                             <version>${spek.version}</version>
206                             <scope>runtime</scope>
207                         </dependency>
208                     </dependencies>
209                 </plugin>
210                 <plugin>
211                     <groupId>org.apache.maven.plugins</groupId>
212                     <artifactId>maven-failsafe-plugin</artifactId>
213                     <version>2.22.0</version>
214                     <configuration>
215                         <failIfNoTests>${failIfMissingComponentTests}</failIfNoTests>
216                         <forkCount>1</forkCount>
217                         <includes>
218                             <include>**/*Specification.*</include>
219                         </includes>
220                     </configuration>
221                     <dependencies>
222                         <dependency>
223                             <groupId>org.apache.commons</groupId>
224                             <artifactId>commons-lang3</artifactId>
225                             <version>3.7</version>
226                         </dependency>
227                         <dependency>
228                             <groupId>org.junit.platform</groupId>
229                             <artifactId>junit-platform-surefire-provider</artifactId>
230                             <version>${junit-platform.version}</version>
231                             <scope>runtime</scope>
232                         </dependency>
233                         <dependency>
234                             <groupId>org.jetbrains.spek</groupId>
235                             <artifactId>spek-junit-platform-engine</artifactId>
236                             <version>${spek.version}</version>
237                             <scope>runtime</scope>
238                         </dependency>
239                     </dependencies>
240                 </plugin>
241                 <plugin>
242                     <groupId>org.codehaus.mojo</groupId>
243                     <artifactId>exec-maven-plugin</artifactId>
244                     <version>1.6.0</version>
245                 </plugin>
246             </plugins>
247         </pluginManagement>
248         <extensions>
249             <extension>
250                 <groupId>kr.motd.maven</groupId>
251                 <artifactId>os-maven-plugin</artifactId>
252                 <version>1.6.0</version>
253             </extension>
254         </extensions>
255     </build>
256
257     <profiles>
258         <profile>
259             <id>docker-proxy</id>
260             <activation>
261                 <property>
262                     <name>docker.http_proxy</name>
263                 </property>
264             </activation>
265             <properties>
266                 <!-- set build args as defined in https://dmp.fabric8.io/#build-buildargs -->
267                 <docker.buildArg.http_proxy>${docker.http_proxy}</docker.buildArg.http_proxy>
268                 <docker.buildArg.https_proxy>${docker.http_proxy}</docker.buildArg.https_proxy>
269             </properties>
270         </profile>
271
272         <profile>
273             <id>docker</id>
274             <activation>
275                 <property>
276                     <name>!skipDocker</name>
277                 </property>
278             </activation>
279             <properties>
280                 <os.detected.name>linux</os.detected.name>
281                 <os.detected.arch>x86_64</os.detected.arch>
282                 <os.detected.classifier>${os.detected.name}-${os.detected.arch}</os.detected.classifier>
283             </properties>
284             <build>
285                 <pluginManagement>
286                     <plugins>
287                         <plugin>
288                             <groupId>org.apache.maven.plugins</groupId>
289                             <artifactId>maven-dependency-plugin</artifactId>
290                             <version>3.1.1</version>
291                             <executions>
292                                 <execution>
293                                     <id>docker-copy-internal-deps</id>
294                                     <phase>package</phase>
295                                     <goals>
296                                         <goal>copy-dependencies</goal>
297                                     </goals>
298                                     <configuration>
299                                         <outputDirectory>${project.build.directory}/libs/internal</outputDirectory>
300                                         <includeGroupIds>${project.parent.groupId}</includeGroupIds>
301                                         <includeScope>runtime</includeScope>
302                                     </configuration>
303                                 </execution>
304                                 <execution>
305                                     <id>docker-copy-external-deps</id>
306                                     <phase>package</phase>
307                                     <goals>
308                                         <goal>copy-dependencies</goal>
309                                     </goals>
310                                     <configuration>
311                                         <outputDirectory>${project.build.directory}/libs/external</outputDirectory>
312                                         <excludeGroupIds>${project.parent.groupId}</excludeGroupIds>
313                                         <includeScope>runtime</includeScope>
314                                     </configuration>
315                                 </execution>
316                             </executions>
317                         </plugin>
318                         <plugin>
319                             <groupId>io.fabric8</groupId>
320                             <artifactId>docker-maven-plugin</artifactId>
321                             <version>0.30.0</version>
322                             <executions>
323                                 <execution>
324                                     <id>docker-build-image</id>
325                                     <phase>package</phase>
326                                     <goals>
327                                         <goal>build</goal>
328                                     </goals>
329                                 </execution>
330                                 <execution>
331                                     <id>docker-push-image</id>
332                                     <phase>deploy</phase>
333                                     <goals>
334                                         <goal>push</goal>
335                                     </goals>
336                                 </execution>
337                             </executions>
338                             <configuration>
339                                 <skipPush>${skipDockerPush}</skipPush>
340                                 <verbose>true</verbose>
341                                 <imagePullPolicy>IfNotPresent</imagePullPolicy>
342                                 <images>
343                                     <image>
344                                         <alias>${project.artifactId}</alias>
345                                         <name>${docker-image.namespace}/${docker-image.name}:${project.version}
346                                         </name>
347                                         <registry>${docker-image.registry}</registry>
348                                         <build>
349                                             <dockerFileDir>${project.basedir}</dockerFileDir>
350                                             <tags>
351                                                 <tag>${project.version}-${maven.build.timestamp}Z</tag>
352                                                 <tag>${docker-image.latest}</tag>
353                                             </tags>
354                                         </build>
355                                     </image>
356                                 </images>
357                             </configuration>
358                         </plugin>
359                     </plugins>
360                 </pluginManagement>
361             </build>
362         </profile>
363     </profiles>
364
365     <pluginRepositories>
366         <pluginRepository>
367             <id>arturbosch-code-analysis</id>
368             <name>arturbosch-code-analysis (for detekt)</name>
369             <url>https://dl.bintray.com/arturbosch/code-analysis/</url>
370             <layout>default</layout>
371             <releases>
372                 <enabled>true</enabled>
373                 <updatePolicy>never</updatePolicy>
374             </releases>
375             <snapshots>
376                 <enabled>false</enabled>
377                 <updatePolicy>never</updatePolicy>
378             </snapshots>
379         </pluginRepository>
380     </pluginRepositories>
381
382     <repositories>
383         <repository>
384             <id>40_openecomp-release</id>
385             <name>40_openecomp-release</name>
386             <url>https://nexus.onap.org/content/repositories/releases/</url>
387             <releases>
388                 <enabled>true</enabled>
389                 <updatePolicy>daily</updatePolicy>
390             </releases>
391             <snapshots>
392                 <enabled>false</enabled>
393             </snapshots>
394         </repository>
395     </repositories>
396
397     <dependencyManagement>
398         <dependencies>
399             <dependency>
400                 <groupId>com.google.guava</groupId>
401                 <artifactId>guava</artifactId>
402                 <version>27.0.1-jre</version>
403                 <exclusions>
404                     <exclusion>
405                         <groupId>com.google.code.findbugs</groupId>
406                         <artifactId>jsr305</artifactId>
407                     </exclusion>
408                 </exclusions>
409             </dependency>
410             <dependency>
411                 <groupId>org.jetbrains.kotlin</groupId>
412                 <artifactId>kotlin-bom</artifactId>
413                 <version>${kotlin.version}</version>
414                 <type>pom</type>
415                 <scope>import</scope>
416             </dependency>
417             <dependency>
418                 <groupId>org.jetbrains.kotlin</groupId>
419                 <artifactId>kotlin-compiler-embeddable</artifactId>
420                 <version>${kotlin.version}</version>
421             </dependency>
422             <dependency>
423                 <groupId>org.jetbrains.kotlin</groupId>
424                 <artifactId>kotlin-scripting-compiler-embeddable</artifactId>
425                 <version>${kotlin.version}</version>
426             </dependency>
427             <dependency>
428                 <groupId>org.jetbrains.kotlin</groupId>
429                 <artifactId>kotlin-script-util</artifactId>
430                 <version>${kotlin.version}</version>
431                 <scope>runtime</scope>
432             </dependency>
433             <dependency>
434                 <groupId>org.jetbrains.kotlinx</groupId>
435                 <artifactId>kotlinx-coroutines-core</artifactId>
436                 <version>${coroutines.version}</version>
437             </dependency>
438             <dependency>
439                 <groupId>com.google.code.gson</groupId>
440                 <artifactId>gson</artifactId>
441                 <version>${gson.version}</version>
442             </dependency>
443             <dependency>
444                 <groupId>io.arrow-kt</groupId>
445                 <artifactId>arrow-core-data</artifactId>
446                 <version>${arrow.version}</version>
447             </dependency>
448             <dependency>
449                 <groupId>io.arrow-kt</groupId>
450                 <artifactId>arrow-core-extensions</artifactId>
451                 <version>${arrow.version}</version>
452             </dependency>
453             <dependency>
454                 <groupId>io.arrow-kt</groupId>
455                 <artifactId>arrow-extras-data</artifactId>
456                 <version>${arrow.version}</version>
457             </dependency>
458             <dependency>
459                 <groupId>io.arrow-kt</groupId>
460                 <artifactId>arrow-syntax</artifactId>
461                 <version>${arrow.version}</version>
462             </dependency>
463             <dependency>
464                 <groupId>io.arrow-kt</groupId>
465                 <artifactId>arrow-typeclasses</artifactId>
466                 <version>${arrow.version}</version>
467             </dependency>
468             <dependency>
469                 <groupId>ch.qos.logback</groupId>
470                 <artifactId>logback-classic</artifactId>
471                 <version>1.3.0-alpha4</version>
472                 <scope>runtime</scope>
473             </dependency>
474             <dependency>
475                 <groupId>org.slf4j</groupId>
476                 <artifactId>slf4j-api</artifactId>
477                 <version>1.8.0-beta1</version>
478             </dependency>
479             <dependency>
480                 <groupId>io.projectreactor</groupId>
481                 <artifactId>reactor-bom</artifactId>
482                 <!-- remember to update netty native bindings versions -->
483                 <version>2020.0.2</version>
484                 <type>pom</type>
485                 <scope>import</scope>
486             </dependency>
487             <!-- Due to security reasons, override transitive kafka-clients dependency version (2.0.0 -> 2.3.1) -->
488             <dependency>
489                 <groupId>org.apache.kafka</groupId>
490                 <artifactId>kafka-clients</artifactId>
491                 <version>2.3.1</version>
492             </dependency>
493             <!--
494             Disable native extension (epoll) on production for now.
495             Might be reintroduced if performance tests prove there is some performance issue.
496             -->
497             <!--
498             <dependency>
499                 <groupId>io.netty</groupId>
500                 <artifactId>netty-transport-native-epoll</artifactId>
501                 <version>4.1.29.Final</version>
502                 <classifier>${os.detected.classifier}</classifier>
503             </dependency>
504             -->
505             <dependency>
506                 <groupId>com.google.protobuf</groupId>
507                 <artifactId>protobuf-java-util</artifactId>
508                 <version>${protobuf.version}</version>
509                 <exclusions>
510                     <exclusion>
511                         <groupId>com.google.guava</groupId>
512                         <artifactId>guava</artifactId>
513                     </exclusion>
514                 </exclusions>
515             </dependency>
516             <dependency>
517                 <groupId>commons-cli</groupId>
518                 <artifactId>commons-cli</artifactId>
519                 <version>1.4</version>
520             </dependency>
521             <dependency>
522                 <groupId>javax.json</groupId>
523                 <artifactId>javax.json-api</artifactId>
524                 <version>1.1.2</version>
525             </dependency>
526             <dependency>
527                 <groupId>org.glassfish</groupId>
528                 <artifactId>javax.json</artifactId>
529                 <version>1.1.2</version>
530             </dependency>
531             <dependency>
532                 <groupId>io.micrometer</groupId>
533                 <artifactId>micrometer-registry-prometheus</artifactId>
534                 <version>1.1.5</version>
535             </dependency>
536             <dependency>
537                 <groupId>org.onap.dcaegen2.services.sdk</groupId>
538                 <artifactId>hvvesclient-producer-impl</artifactId>
539                 <version>${sdk.version}</version>
540                 <scope>runtime</scope>
541             </dependency>
542             <dependency>
543                 <groupId>org.onap.dcaegen2.services.sdk</groupId>
544                 <artifactId>hvvesclient-producer-api</artifactId>
545                 <version>${sdk.version}</version>
546             </dependency>
547             <dependency>
548                 <groupId>org.onap.dcaegen2.services.sdk</groupId>
549                 <artifactId>hvvesclient-protobuf</artifactId>
550                 <version>${sdk.version}</version>
551             </dependency>
552             <dependency>
553                 <groupId>org.onap.dcaegen2.services.sdk.security</groupId>
554                 <artifactId>ssl</artifactId>
555                 <version>${sdk.version}</version>
556             </dependency>
557             <dependency>
558                 <groupId>org.onap.dcaegen2.services.sdk.rest.services</groupId>
559                 <artifactId>cbs-client</artifactId>
560                 <version>${sdk.version}</version>
561             </dependency>
562
563             <!-- Test dependencies -->
564
565             <dependency>
566                 <groupId>org.jetbrains.spek</groupId>
567                 <artifactId>spek-api</artifactId>
568                 <version>${spek.version}</version>
569                 <scope>test</scope>
570             </dependency>
571             <dependency>
572                 <groupId>org.jetbrains.spek</groupId>
573                 <artifactId>spek-junit-platform-engine</artifactId>
574                 <version>${spek.version}</version>
575                 <scope>test</scope>
576             </dependency>
577             <dependency>
578                 <groupId>org.assertj</groupId>
579                 <artifactId>assertj-core</artifactId>
580                 <version>3.9.1</version>
581                 <scope>test</scope>
582             </dependency>
583             <dependency>
584                 <groupId>com.nhaarman.mockitokotlin2</groupId>
585                 <artifactId>mockito-kotlin</artifactId>
586                 <version>2.1.0</version>
587                 <scope>test</scope>
588             </dependency>
589             <dependency>
590                 <groupId>org.jetbrains.kotlin</groupId>
591                 <artifactId>kotlin-test</artifactId>
592                 <version>${kotlin.version}</version>
593                 <scope>test</scope>
594             </dependency>
595             <dependency>
596                 <groupId>org.jetbrains.kotlinx</groupId>
597                 <artifactId>kotlinx-coroutines-test</artifactId>
598                 <version>${coroutines.version}</version>
599                 <scope>test</scope>
600             </dependency>
601         </dependencies>
602     </dependencyManagement>
603 </project>