Remove additional SNAPSHOT from docker tag
[dcaegen2/collectors/hv-ves.git] / pom.xml
diff --git a/pom.xml b/pom.xml
index 17a86b4..7ab6503 100644 (file)
--- a/pom.xml
+++ b/pom.xml
         </license>
     </licenses>
 
-    <groupId>org.onap.dcaegen2.collectors.veshv</groupId>
+    <parent>
+        <groupId>org.onap.oparent</groupId>
+        <artifactId>oparent</artifactId>
+        <version>0.1.1</version>
+        <relativePath/>
+    </parent>
+
+    <groupId>org.onap.dcaegen2.collectors.hv-ves</groupId>
     <artifactId>ves-hv-collector</artifactId>
     <version>1.0.0-SNAPSHOT</version>
     <name>dcaegen2-collectors-veshv</name>
     <description>VES HighVolume Collector</description>
     <packaging>pom</packaging>
 
-  <modules>
-    <module>hv-collector-analysis</module>
-    <module>hv-collector-client-simulator</module>
-    <module>hv-collector-core</module>
-    <module>hv-collector-coverage</module>
-    <module>hv-collector-ct</module>
-    <module>hv-collector-domain</module>
-    <module>hv-collector-main</module>
-    <module>hv-collector-utils</module>
-  </modules>
+    <modules>
+        <module>hv-collector-analysis</module>
+        <module>hv-collector-core</module>
+        <module>hv-collector-coverage</module>
+        <module>hv-collector-ct</module>
+        <module>hv-collector-dcae-app-simulator</module>
+        <module>hv-collector-domain</module>
+        <module>hv-collector-health-check</module>
+        <module>hv-collector-main</module>
+        <module>hv-collector-test-utils</module>
+        <module>hv-collector-utils</module>
+        <module>hv-collector-ves-message-generator</module>
+        <module>hv-collector-xnf-simulator</module>
+    </modules>
 
     <properties>
-        <kotlin.version>1.2.41</kotlin.version>
+        <kotlin.version>1.2.61</kotlin.version>
+        <arrow.version>0.7.3</arrow.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
         <build-helper-maven-plugin.version>1.7</build-helper-maven-plugin.version>
+        <jacoco.version>0.8.2</jacoco.version>
+        <jacoco.minimum.coverage>60</jacoco.minimum.coverage>
 
         <!-- Protocol buffers -->
         <protobuf.version>3.5.1</protobuf.version>
         <junit-platform.version>1.2.0-RC1</junit-platform.version>
         <junit-jupiter.version>5.2.0-RC1</junit-jupiter.version>
         <spek.version>1.1.5</spek.version>
-        <maven-surefire-plugin.version>2.21.0</maven-surefire-plugin.version>
-        <failIfMissingUnitTests>true</failIfMissingUnitTests>
+        <maven-surefire-plugin.version>2.22.0</maven-surefire-plugin.version>
+        <failIfMissingUnitTests>false</failIfMissingUnitTests>
         <failIfMissingComponentTests>false</failIfMissingComponentTests>
         <skipAnalysis>true</skipAnalysis>
 
         <!-- Docker -->
-        <skipDocker>true</skipDocker>
-        <docker-image.name>ves-hv-collector/${project.artifactId}</docker-image.name>
+        <skipDocker>false</skipDocker>
+        <skipDockerPush>true</skipDockerPush>
+        <maven.build.timestamp.format>yyyyMMdd'T'HHmmss</maven.build.timestamp.format>
+        <docker-image.registry>${onap.nexus.dockerregistry.daily}</docker-image.registry>
         <docker-image.namespace>onap</docker-image.namespace>
-    </properties>
+        <docker-image.name>${project.groupId}.${project.artifactId}</docker-image.name>
+        <docker.http_proxy></docker.http_proxy>
 
+    </properties>
 
     <build>
         <sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
                     <version>${kotlin.version}</version>
                     <configuration>
                         <jvmTarget>1.8</jvmTarget>
+                        <experimentalCoroutines>enable</experimentalCoroutines>
                     </configuration>
                     <executions>
                         <execution>
                     <artifactId>maven-surefire-plugin</artifactId>
                     <groupId>org.apache.maven.plugins</groupId>
                     <version>${maven-surefire-plugin.version}</version>
-                    <executions>
-                        <execution>
-                            <id>default-test</id>
-                            <goals>
-                                <goal>test</goal>
-                            </goals>
-                            <configuration>
-                                <failIfNoTests>${failIfMissingUnitTests}</failIfNoTests>
-                                <forkCount>1</forkCount>
-                                <includes>
-                                    <include>**/*Test.*</include>
-                                </includes>
-                                <!--<argLine>&#45;&#45;add-modules org.junit.jupiter.api,reactor.test,assertj.core</argLine>-->
-                            </configuration>
-                        </execution>
-                        <execution>
-                            <id>component-tests</id>
-                            <phase>verify</phase>
-                            <goals>
-                                <goal>test</goal>
-                            </goals>
-                            <configuration>
-                                <failIfNoTests>${failIfMissingComponentTests}</failIfNoTests>
-                                <forkCount>1</forkCount>
-                                <includes>
-                                    <include>**/*Specification.*</include>
-                                </includes>
-                            </configuration>
-                        </execution>
-                    </executions>
+                    <configuration>
+                        <failIfNoTests>${failIfMissingUnitTests}</failIfNoTests>
+                        <forkCount>1</forkCount>
+                        <includes>
+                            <include>**/*Test.*</include>
+                        </includes>
+                    </configuration>
                     <dependencies>
                         <dependency>
                             <groupId>org.apache.commons</groupId>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-dependency-plugin</artifactId>
-                    <version>3.1.1</version>
+                    <artifactId>maven-failsafe-plugin</artifactId>
+                    <version>2.22.0</version>
+                    <configuration>
+                        <failIfNoTests>${failIfMissingComponentTests}</failIfNoTests>
+                        <forkCount>1</forkCount>
+                        <includes>
+                            <include>**/*Specification.*</include>
+                        </includes>
+                    </configuration>
+                    <dependencies>
+                        <dependency>
+                            <groupId>org.apache.commons</groupId>
+                            <artifactId>commons-lang3</artifactId>
+                            <version>3.7</version>
+                        </dependency>
+                        <dependency>
+                            <groupId>org.junit.platform</groupId>
+                            <artifactId>junit-platform-surefire-provider</artifactId>
+                            <version>${junit-platform.version}</version>
+                            <scope>runtime</scope>
+                        </dependency>
+                        <dependency>
+                            <groupId>org.jetbrains.spek</groupId>
+                            <artifactId>spek-junit-platform-engine</artifactId>
+                            <version>${spek.version}</version>
+                            <scope>runtime</scope>
+                        </dependency>
+                    </dependencies>
+                </plugin>
+                <plugin>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>exec-maven-plugin</artifactId>
+                    <version>1.6.0</version>
                 </plugin>
             </plugins>
         </pluginManagement>
+        <plugins>
+            <plugin>
+                <artifactId>maven-checkstyle-plugin</artifactId>
+                <version>2.17</version>
+                <dependencies>
+                    <dependency>
+                        <groupId>org.onap.oparent</groupId>
+                        <artifactId>checkstyle</artifactId>
+                        <version>1.1.1</version>
+                    </dependency>
+                </dependencies>
+                <executions>
+                    <execution>
+                        <!-- To override oparent configuration different id must be used
+                             We need to override it to include .kt files in check. -->
+                        <id>check-license-kotlin</id>
+                        <goals>
+                            <goal>check</goal>
+                        </goals>
+                        <phase>process-sources</phase>
+                        <configuration>
+                            <configLocation>onap-checkstyle/check-license.xml</configLocation>
+                            <includeResources>false</includeResources>
+                            <includeTestSourceDirectory>true</includeTestSourceDirectory>
+                            <includeTestResources>false</includeTestResources>
+                            <includes>**\/*.kt</includes>
+                            <consoleOutput>true</consoleOutput>
+                            <!--<failOnViolation>false</failOnViolation>-->
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-antrun-plugin</artifactId>
+                <version>1.8</version>
+                <executions>
+                    <execution>
+                        <!-- This can be run separately with mvn antrun:run@detekt -->
+                        <id>detekt</id>
+                        <phase>verify</phase>
+                        <goals>
+                            <goal>run</goal>
+                        </goals>
+                        <configuration>
+                            <target name="detekt" unless="${skipAnalysis}">
+                                <java taskname="detekt" dir="${basedir}"
+                                        fork="true"
+                                        failonerror="true"
+                                        classname="io.gitlab.arturbosch.detekt.cli.Main"
+                                        classpathref="maven.plugin.classpath">
+                                    <arg value="--input"/>
+                                    <arg value="${basedir}/src/main/kotlin"/>
+                                    <arg value="--config-resource"/>
+                                    <arg value="onap-detekt-config.yml"/>
+                                    <arg value="--filters"/>
+                                    <arg value=".*/target/.*,.*/resources/.*"/>
+                                    <arg value="--output"/>
+                                    <arg value="${basedir}/target/reports"/>
+                                    <arg value="--output-name"/>
+                                    <arg value="detekt-report"/>
+                                    <arg value="--baseline"/>
+                                    <arg value="${basedir}/target/reports/baseline.xml"/>
+                                </java>
+                            </target>
+                        </configuration>
+                    </execution>
+                </executions>
+                <dependencies>
+                    <dependency>
+                        <groupId>io.gitlab.arturbosch.detekt</groupId>
+                        <artifactId>detekt-cli</artifactId>
+                        <version>1.0.0.RC7</version>
+                    </dependency>
+                    <dependency>
+                        <groupId>${project.groupId}</groupId>
+                        <artifactId>hv-collector-analysis</artifactId>
+                        <version>1.0.0-SNAPSHOT</version>
+                    </dependency>
+                </dependencies>
+            </plugin>
+        </plugins>
         <extensions>
             <extension>
                 <groupId>kr.motd.maven</groupId>
     </build>
 
     <profiles>
-        <profile>
-            <id>analysis</id>
-            <activation>
-        <activeByDefault>true</activeByDefault>
-      </activation>
-      <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.jacoco</groupId>
-                        <artifactId>jacoco-maven-plugin</artifactId>
-                        <version>0.8.1</version>
-                        <executions>
-                            <execution>
-                                <id>default-prepare-agent</id>
-                                <goals>
-                                    <goal>prepare-agent</goal>
-                                </goals>
-                            </execution>
-                            <execution>
-                                <id>default-prepare-agent-integration</id>
-                                <goals>
-                                    <goal>prepare-agent-integration</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-antrun-plugin</artifactId>
-                        <version>1.8</version>
-                        <executions>
-                            <execution>
-                                <!-- This can be run separately with mvn antrun:run@detekt -->
-                                <id>detekt</id>
-                                <phase>verify</phase>
-                                <configuration>
-                                    <target name="detekt" unless="${skipAnalysis}">
-                                        <java taskname="detekt" dir="${basedir}"
-                                                fork="true"
-                                                failonerror="true"
-                                                classname="io.gitlab.arturbosch.detekt.cli.Main"
-                                                classpathref="maven.plugin.classpath">
-                                            <arg value="--input"/>
-                                            <arg value="${basedir}/src/main/kotlin"/>
-                                            <arg value="--config-resource"/>
-                                            <arg value="onap-detekt-config.yml"/>
-                                            <arg value="--filters"/>
-                                            <arg value=".*/target/.*,.*/resources/.*"/>
-                                            <arg value="--output"/>
-                                            <arg value="${basedir}/target/reports"/>
-                                            <arg value="--output-name"/>
-                                            <arg value="detekt-report"/>
-                                            <arg value="--baseline"/>
-                                            <arg value="${basedir}/target/reports/baseline.xml"/>
-                                        </java>
-                                    </target>
-                                </configuration>
-                                <goals>
-                                    <goal>run</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                        <dependencies>
-                            <dependency>
-                                <groupId>io.gitlab.arturbosch.detekt</groupId>
-                                <artifactId>detekt-cli</artifactId>
-                                <version>1.0.0.RC7</version>
-                            </dependency>
-                            <dependency>
-                                <groupId>${project.groupId}</groupId>
-                                <artifactId>hv-collector-analysis</artifactId>
-                                <version>${project.version}</version>
-                            </dependency>
-                        </dependencies>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
         <profile>
             <id>docker</id>
             <activation>
             <build>
                 <pluginManagement>
                     <plugins>
+                        <plugin>
+                            <groupId>org.apache.maven.plugins</groupId>
+                            <artifactId>maven-dependency-plugin</artifactId>
+                            <version>3.1.1</version>
+                            <executions>
+                                <execution>
+                                    <id>docker-copy-internal-deps</id>
+                                    <phase>package</phase>
+                                    <goals>
+                                        <goal>copy-dependencies</goal>
+                                    </goals>
+                                    <configuration>
+                                        <outputDirectory>${project.build.directory}/libs/internal</outputDirectory>
+                                        <includeGroupIds>${project.parent.groupId}</includeGroupIds>
+                                        <includeScope>runtime</includeScope>
+                                    </configuration>
+                                </execution>
+                                <execution>
+                                    <id>docker-copy-external-deps</id>
+                                    <phase>package</phase>
+                                    <goals>
+                                        <goal>copy-dependencies</goal>
+                                    </goals>
+                                    <configuration>
+                                        <outputDirectory>${project.build.directory}/libs/external</outputDirectory>
+                                        <excludeGroupIds>${project.parent.groupId}</excludeGroupIds>
+                                        <includeScope>runtime</includeScope>
+                                    </configuration>
+                                </execution>
+                            </executions>
+                        </plugin>
                         <plugin>
                             <groupId>io.fabric8</groupId>
                             <artifactId>docker-maven-plugin</artifactId>
                             <version>0.26.0</version>
                             <executions>
                                 <execution>
-                                    <id>build-docker-image</id>
-                                    <phase>pre-integration-test</phase>
+                                    <id>docker-build-image</id>
+                                    <phase>package</phase>
                                     <goals>
                                         <goal>build</goal>
                                     </goals>
                                 </execution>
                                 <execution>
-                                    <id>push-docker-image</id>
+                                    <id>docker-push-image</id>
                                     <phase>deploy</phase>
                                     <goals>
                                         <goal>push</goal>
                                 </execution>
                             </executions>
                             <configuration>
+                                <skipPush>${skipDockerPush}</skipPush>
                                 <verbose>true</verbose>
                                 <imagePullPolicy>IfNotPresent</imagePullPolicy>
                                 <images>
                                     <image>
                                         <alias>${project.artifactId}</alias>
-                                        <name>${docker-image.namespace}/${docker-image.name}</name>
+                                        <name>${docker-image.namespace}/${docker-image.name}
+                                        </name>
+                                        <registry>${docker-image.registry}</registry>
                                         <build>
+                                            <!--
+                                            <args>
+                                                <http_proxy>${docker.http_proxy}</http_proxy>
+                                                <https_proxy>${docker.http_proxy}</https_proxy>
+                                            </args>
+                                            -->
                                             <dockerFileDir>${project.basedir}</dockerFileDir>
+                                            <tags>
+                                                <tag>${project.version}-${maven.build.timestamp}Z</tag>
+                                                <tag>${project.version}</tag>
+                                                <tag>latest</tag>
+                                            </tags>
                                         </build>
                                     </image>
                                 </images>
                             </configuration>
+                            <dependencies>
+                                <dependency>
+                                    <groupId>io.fabric8</groupId>
+                                    <artifactId>run-java-sh</artifactId>
+                                    <version>1.2.2</version>
+                                </dependency>
+                            </dependencies>
                         </plugin>
-
                     </plugins>
                 </pluginManagement>
             </build>
         </profile>
     </profiles>
 
-    <reporting>
-        <plugins>
-            <plugin>
-                <groupId>org.jacoco</groupId>
-                <artifactId>jacoco-maven-plugin</artifactId>
-                <reportSets>
-                    <reportSet>
-                        <reports>
-                            <report>report</report>
-                        </reports>
-                    </reportSet>
-                </reportSets>
-            </plugin>
-        </plugins>
-    </reporting>
-
     <pluginRepositories>
         <pluginRepository>
             <id>arturbosch-code-analysis</id>
         </pluginRepository>
     </pluginRepositories>
 
+    <repositories>
+        <repository>
+            <id>40_openecomp-release</id>
+            <name>40_openecomp-release</name>
+            <url>https://nexus.onap.org/content/repositories/releases/</url>
+            <releases>
+                <enabled>true</enabled>
+                <updatePolicy>daily</updatePolicy>
+            </releases>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+        </repository>
+    </repositories>
+
     <dependencyManagement>
         <dependencies>
             <dependency>
                 <artifactId>kotlin-reflect</artifactId>
                 <version>${kotlin.version}</version>
             </dependency>
+            <dependency>
+                <groupId>io.arrow-kt</groupId>
+                <artifactId>arrow-core</artifactId>
+                <version>${arrow.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>org.jetbrains.kotlin</groupId>
+                        <artifactId>kotlin-stdlib</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>org.jetbrains.kotlin</groupId>
+                        <artifactId>kotlin-stdlib-jdk7</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            <dependency>
+                <groupId>io.arrow-kt</groupId>
+                <artifactId>arrow-syntax</artifactId>
+                <version>${arrow.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>io.arrow-kt</groupId>
+                <artifactId>arrow-instances-core</artifactId>
+                <version>${arrow.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>io.arrow-kt</groupId>
+                <artifactId>arrow-instances-data</artifactId>
+                <version>${arrow.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>io.arrow-kt</groupId>
+                <artifactId>arrow-effects</artifactId>
+                <version>${arrow.version}</version>
+            </dependency>
             <dependency>
                 <groupId>ch.qos.logback</groupId>
                 <artifactId>logback-classic</artifactId>
             <dependency>
                 <groupId>io.projectreactor</groupId>
                 <artifactId>reactor-bom</artifactId>
-                <version>Bismuth-SR8</version>
+                <version>Bismuth-SR10</version>
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
                 <artifactId>protobuf-java</artifactId>
                 <version>${protobuf.version}</version>
             </dependency>
+            <dependency>
+                <groupId>com.google.protobuf</groupId>
+                <artifactId>protobuf-java-util</artifactId>
+                <version>${protobuf.version}</version>
+            </dependency>
             <dependency>
                 <groupId>commons-cli</groupId>
                 <artifactId>commons-cli</artifactId>
                 <artifactId>javax.json</artifactId>
                 <version>1.1.2</version>
             </dependency>
+            <dependency>
+                <groupId>io.ratpack</groupId>
+                <artifactId>ratpack-core</artifactId>
+                <version>1.5.4</version>
+            </dependency>
+            <dependency>
+                <groupId>io.micrometer</groupId>
+                <artifactId>micrometer-registry-jmx</artifactId>
+                <version>1.0.5</version>
+            </dependency>
 
             <!-- Test dependencies -->
 
                 <version>${spek.version}</version>
                 <scope>test</scope>
             </dependency>
-
             <dependency>
                 <groupId>org.assertj</groupId>
                 <artifactId>assertj-core</artifactId>