Deliver first version of Datafile

Change-Id: Iadd1455d7fe45b4c022dd7fde2f8a506d1b7cd57
Issue-ID: DCAEGEN2-640
Signed-off-by: elinuxhenrik <henrik.b.andersson@est.tech>
diff --git a/pom.xml b/pom.xml
index accfee7..190c62a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,37 +1,36 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-  ~ ============LICENSE_START=======================================================
-  ~ Datafile Collector Service
-  ~ ================================================================================
-  ~ Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved.
-  ~ ================================================================================
+  ~ ============LICENSE_START=====================================================================
+  ~ Copyright (C) 2018 NOKIA Intellectual Property, 2018 Nordix Foundation. All rights reserved.
+  ~ ==============================================================================================
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
   ~ You may obtain a copy of the License at
   ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~ http://www.apache.org/licenses/LICENSE-2.0
   ~
   ~ Unless required by applicable law or agreed to in writing, software
   ~ distributed under the License is distributed on an "AS IS" BASIS,
   ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License.
-  ~ ============LICENSE_END=========================================================
+  ~ ============LICENSE_END=======================================================================
   -->
 <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">
-
   <modelVersion>4.0.0</modelVersion>
+
   <parent>
     <groupId>org.onap.oparent</groupId>
     <artifactId>oparent</artifactId>
     <version>1.2.0</version>
-    <relativePath/>
+    <relativePath />
   </parent>
+
   <groupId>org.onap.dcaegen2.collectors</groupId>
   <artifactId>datafile</artifactId>
   <version>1.0.0-SNAPSHOT</version>
-  <name>dcaegen2-collectors-datafile</name>
-  <description>Datafile Collector Service</description>
+  <name>dcaegen2-collectors.datafile</name>
+  <description>datafile collector</description>
   <packaging>pom</packaging>
 
   <licenses>
@@ -46,14 +45,15 @@
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 
-    <!-- JAVA VERSION-->
+    <!-- JAVA VERSION -->
     <java.version>8</java.version>
     <compiler.plugin.version>3.7.0</compiler.plugin.version>
     <tomcat.version>8.5.28</tomcat.version>
+    <spring-boot.version>2.0.4.RELEASE</spring-boot.version>
     <docker.maven.version>1.0.0</docker.maven.version>
     <resource.maven.plugin.version>3.1.0</resource.maven.plugin.version>
     <!-- DEVELOPMENT SETTINGS -->
-    <immutable.version>2.5.6</immutable.version>
+    <immutable.version>2.7.1</immutable.version>
 
     <!-- LOGGING SETTINGS -->
     <slf4j.version>1.7.25</slf4j.version>
@@ -62,345 +62,67 @@
     <!--TEST SETTINGS -->
     <surefire.redirectTestOutputToFile>true</surefire.redirectTestOutputToFile>
     <junit.version>4.12</junit.version>
-    <junit.jupiter.version>5.1.0</junit.jupiter.version>
-    <junit.vintage.version>5.1.0</junit.vintage.version>
-    <junit.platform.version>1.1.0</junit.platform.version>
-
-    <!--PLUGIN SETTINGS -->
-    <nexusproxy>https://nexus.onap.org</nexusproxy>
-    <snapshots.path>content/repositories/snapshots/</snapshots.path>
-    <releases.path>content/repositories/releases/</releases.path>
-    <site.path>
-      content/sites/site/org/onap/dcaegen2/collectors/datafile/${project.artifactId}/${project.version}
-    </site.path>
+    <junit-jupiter.version>5.1.0</junit-jupiter.version>
+    <junit-vintage.version>5.1.0</junit-vintage.version>
+    <junit-platform.version>1.1.0</junit-platform.version>
   </properties>
 
-  <pluginRepositories>
-
-
-    <pluginRepository>
-      <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>
-    </pluginRepository>
-
-    <!-- Black Duck plugin dependencies -->
-    <pluginRepository>
-      <id>JCenter</id>
-      <name>JCenter Repository</name>
-      <url>http://jcenter.bintray.com</url>
-    </pluginRepository>
-    <pluginRepository>
-      <id>Restlet</id>
-      <name>Restlet Repository</name>
-      <url>http://maven.restlet.com</url>
-    </pluginRepository>
-  </pluginRepositories>
-
-
-  <repositories>
-    <repository>
-      <id>external-repository</id>
-      <url>https://oss.sonatype.org/content/repositories</url>
-    </repository>
-    <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>
+  <modules>
+    <module>datafile-app-server</module>
+    <module>datafile-dmaap-client</module>
+    <module>datafile-commons</module>
+  </modules>
 
   <build>
-
-    <extensions>
-      <extension>
-        <groupId>org.apache.maven.wagon</groupId>
-        <artifactId>wagon-webdav-jackrabbit</artifactId>
-        <version>3.0.0</version>
-      </extension>
-    </extensions>
-
     <pluginManagement>
       <plugins>
-
-        <!-- COMPILER PLUGIN -->
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-resources-plugin</artifactId>
+          <version>3.1.0</version>
+          <configuration>
+            <encoding>${project.build.sourceEncoding}</encoding>
+          </configuration>
+        </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
-          <version>${compiler.plugin.version}</version>
+          <version>3.7.0</version>
           <configuration>
             <source>${java.version}</source>
             <target>${java.version}</target>
+            <encoding>${project.build.sourceEncoding}</encoding>
             <showWarnings>true</showWarnings>
             <showDeprecation>true</showDeprecation>
           </configuration>
         </plugin>
-
-        <!-- MAVEN SOURCE PLUGIN -->
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-source-plugin</artifactId>
-          <version>3.0.1</version>
-          <configuration>
-            <excludeResources>true</excludeResources>
-          </configuration>
-          <executions>
-            <execution>
-              <id>attach-sources</id>
-              <phase>verify</phase>
-              <goals>
-                <goal>jar-no-fork</goal>
-              </goals>
-            </execution>
-          </executions>
-        </plugin>
-
-        <!-- MAVEN JAVADOC PLUGIN -->
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-javadoc-plugin</artifactId>
-          <version>3.0.0</version>
-          <configuration>
-            <!-- minimize console output messages -->
-            <quiet>true</quiet>
-            <verbose>false</verbose>
-            <useStandardDocletOptions>false</useStandardDocletOptions>
-          </configuration>
-          <executions>
-            <execution>
-              <id>aggregate</id>
-              <phase>site</phase>
-              <goals>
-                <goal>aggregate</goal>
-              </goals>
-            </execution>
-            <execution>
-              <id>attach-javadoc</id>
-              <goals>
-                <goal>jar</goal>
-              </goals>
-            </execution>
-          </executions>
-        </plugin>
-
-        <!-- MAVEN BUNDLE PLUGIN -->
-        <plugin>
-          <groupId>org.apache.felix</groupId>
-          <artifactId>maven-bundle-plugin</artifactId>
-          <version>3.5.0</version>
-          <extensions>true</extensions>
-          <configuration>
-            <instructions>
-              <Embed-Dependency>*;inline=false;scope=compile</Embed-Dependency>
-              <Embed-Transitive>true</Embed-Transitive>
-              <Embed-Directory>lib</Embed-Directory>
-            </instructions>
-          </configuration>
-          <executions>
-            <execution>
-              <id>Bundling Datafile Jar</id>
-              <phase>package</phase>
-              <goals>
-                <goal>bundle</goal>
-              </goals>
-            </execution>
-          </executions>
-        </plugin>
-
-        <!--  maven-surefire-plugin which is used during the test phase of build lifecycle -->
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-surefire-plugin</artifactId>
           <version>2.19.1</version>
-          <configuration>
-            <argLine>-Xmx2048m -Djava.awt.headless=true -XX:+UseConcMarkSweepGC
-              -XX:OnOutOfMemoryError="kill -9 %p" -XX:+HeapDumpOnOutOfMemoryError
-            </argLine>
-            <redirectTestOutputToFile>${surefire.redirectTestOutputToFile}
-            </redirectTestOutputToFile>
-            <parallel>methods</parallel>
-            <threadCount>8</threadCount>
-            <forkCount>8</forkCount>
-            <reuseForks>true</reuseForks>
-            <reportFormat>xml</reportFormat>
-            <trimStackTrace>false</trimStackTrace>
-            <systemPropertyVariables>
-              <java.io.tmpdir>${project.build.directory}</java.io.tmpdir>
-              <logback.configurationFile>
-                ${basedir}/src/test/resources/logback-test.xml
-              </logback.configurationFile>
-              <HADOOP_HOME>${project.build.directory}</HADOOP_HOME>
-            </systemPropertyVariables>
-            <includes>
-              <include>**/*Test.java</include>
-            </includes>
-            <excludes>
-              <exclude>**/*IT.java</exclude>
-            </excludes>
-            <!-- Sets the VM argument line used when unit tests are run. -->
-            <argLine>${argLine}</argLine>
-          </configuration>
           <dependencies>
             <dependency>
               <groupId>org.junit.platform</groupId>
               <artifactId>junit-platform-surefire-provider</artifactId>
-              <version>${junit.platform.version}</version>
+              <version>${junit-platform.version}</version>
             </dependency>
           </dependencies>
         </plugin>
-
-        <!-- FIND BUGS (STATIC CODE ANALYSIS) PLUGIN -->
-        <plugin>
-          <groupId>org.codehaus.mojo</groupId>
-          <artifactId>findbugs-maven-plugin</artifactId>
-          <version>${findbugs.plugin.version}</version>
-          <configuration>
-            <effort>Max</effort>
-            <threshold>Low</threshold>
-            <xmlOutput>true</xmlOutput>
-            <!-- BUILD FAIL ON FINDBUGS ERRORS -->
-            <failOnError>true</failOnError>
-            <excludeFilterFile>${project.basedir}/findbugs-exclude.xml</excludeFilterFile>
-            <outputDirectory>${project.reporting.outputDirectory}/findbugs</outputDirectory>
-            <findbugsXmlOutputDirectory>${project.reporting.outputDirectory}/findbugs
-            </findbugsXmlOutputDirectory>
-          </configuration>
-          <executions>
-            <execution>
-              <id>analyze-compile</id>
-              <phase>compile</phase>
-              <goals>
-                <goal>check</goal>
-              </goals>
-            </execution>
-          </executions>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-jar-plugin</artifactId>
-          <version>3.0.2</version>
-          <configuration>
-            <archive>
-              <manifest>
-                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
-              </manifest>
-              <manifestEntries>
-                <Implementation-Build-Version>${project.version}</Implementation-Build-Version>
-              </manifestEntries>
-            </archive>
-          </configuration>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-site-plugin</artifactId>
-          <version>3.6</version>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-jxr-plugin</artifactId>
-          <version>2.5</version>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-project-info-reports-plugin</artifactId>
-          <version>2.9</version>
-          <configuration>
-            <dependencyDetailsEnabled>false</dependencyDetailsEnabled>
-            <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
-          </configuration>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-surefire-report-plugin</artifactId>
-          <version>2.21.0</version>
-        </plugin>
-
         <plugin>
           <groupId>com.spotify</groupId>
           <artifactId>docker-maven-plugin</artifactId>
-          <version>${docker.maven.version}</version>
-          <configuration>
-            <skipDockerBuild>true</skipDockerBuild>
-          </configuration>
+          <version>1.1.1</version>
         </plugin>
         <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-resources-plugin</artifactId>
-          <version>${resource.maven.plugin.version}</version>
-        </plugin>
-        <plugin>
-          <groupId>org.jacoco</groupId>
-          <artifactId>jacoco-maven-plugin</artifactId>
-          <configuration>
-            <excludes>
-              <exclude>**/Immutable*</exclude>
-              <exclude>**/GsonAdapters*</exclude>
-              <exclude>**/*ForUnitTest*</exclude>
-            </excludes>
-          </configuration>
+          <groupId>org.springframework.boot</groupId>
+          <artifactId>spring-boot-maven-plugin</artifactId>
+          <version>${spring-boot.version}</version>
           <executions>
             <execution>
-              <id>default-prepare-agent</id>
               <goals>
-                <goal>prepare-agent</goal>
+                <goal>repackage</goal>
               </goals>
             </execution>
-            <execution>
-              <id>report</id>
-              <phase>prepare-package</phase>
-              <goals>
-                <goal>report</goal>
-              </goals>
-            </execution>
-            <execution>
-              <id>check</id>
-              <goals>
-                <goal>check</goal>
-              </goals>
-              <configuration>
-                <excludes>
-                  <exclude>**/Immutable*</exclude>
-                  <exclude>**/GsonAdapters*</exclude>
-                  <exclude>**/*ForUnitTest*</exclude>
-                  <exclude>**/AAIConsumer*</exclude>
-                </excludes>
-                <rules>
-                  <rule>
-                    <element>CLASS</element>
-                    <limits>
-                      <limit>
-                        <value>COVEREDRATIO</value>
-                        <!--<minimum>0.70</minimum>-->
-                      </limit>
-                      <limit>
-                        <counter>BRANCH</counter>
-                        <value>COVEREDRATIO</value>
-                        <!--<minimum>0.70</minimum>-->
-                      </limit>
-                    </limits>
-                  </rule>
-                </rules>
-              </configuration>
-            </execution>
           </executions>
         </plugin>
         <plugin>
@@ -412,87 +134,9 @@
         </plugin>
       </plugins>
     </pluginManagement>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jar-plugin</artifactId>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-failsafe-plugin</artifactId>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-source-plugin</artifactId>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-javadoc-plugin</artifactId>
-      </plugin>
-
-      <plugin>
-        <groupId>org.jacoco</groupId>
-        <artifactId>jacoco-maven-plugin</artifactId>
-      </plugin>
-    </plugins>
   </build>
 
-  <reporting>
-    <plugins>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-site-plugin</artifactId>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jxr-plugin</artifactId>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-project-info-reports-plugin</artifactId>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-report-plugin</artifactId>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-javadoc-plugin</artifactId>
-        <version>2.10.4</version>
-        <configuration>
-          <failOnError>false</failOnError>
-          <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>
-          <docletArtifact>
-            <groupId>org.umlgraph</groupId>
-            <artifactId>umlgraph</artifactId>
-            <version>5.6</version>
-          </docletArtifact>
-          <additionalparam>-views</additionalparam>
-          <useStandardDocletOptions>true</useStandardDocletOptions>
-        </configuration>
-      </plugin>
-    </plugins>
-  </reporting>
-
-  <dependencyManagement>
+ <dependencyManagement>
     <dependencies>
 
       <!-- DEVELOPMENT TOOLS DEPENDENCIES -->
@@ -545,11 +189,21 @@
         <version>4.5.4</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.httpcomponents</groupId>
+        <artifactId>httpmime</artifactId>
+        <version>4.3.1</version>
+      </dependency>
+      <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-lang3</artifactId>
         <version>3.6</version>
       </dependency>
       <dependency>
+        <groupId>commons-io</groupId>
+        <artifactId>commons-io</artifactId>
+        <version>1.3.2</version>
+      </dependency>
+      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-beans</artifactId>
         <version>5.0.5.RELEASE</version>
@@ -560,6 +214,17 @@
         <version>5.0.5.RELEASE</version>
       </dependency>
       <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-webflux</artifactId>
+        <version>5.0.5.RELEASE</version>
+        <scope>compile</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-reactor-netty</artifactId>
+        <version>2.0.4.RELEASE</version>
+      </dependency>
+      <dependency>
         <groupId>org.apache.tomcat.embed</groupId>
         <artifactId>tomcat-embed-core</artifactId>
         <version>${tomcat.version}</version>
@@ -597,7 +262,7 @@
       <dependency>
         <groupId>org.junit.jupiter</groupId>
         <artifactId>junit-jupiter-api</artifactId>
-        <version>${junit.jupiter.version}</version>
+        <version>${junit-jupiter.version}</version>
         <scope>test</scope>
       </dependency>
       <dependency>
@@ -609,13 +274,13 @@
       <dependency>
         <groupId>org.junit.jupiter</groupId>
         <artifactId>junit-jupiter-engine</artifactId>
-        <version>${junit.jupiter.version}</version>
+        <version>${junit-jupiter.version}</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.junit.vintage</groupId>
         <artifactId>junit-vintage-engine</artifactId>
-        <version>${junit.vintage.version}</version>
+        <version>${junit-vintage.version}</version>
         <scope>test</scope>
       </dependency>
       <dependency>
@@ -648,6 +313,17 @@
         <version>2.0.1.RELEASE</version>
         <scope>test</scope>
       </dependency>
+      <dependency>
+        <groupId>org.mockftpserver</groupId>
+        <artifactId>MockFtpServer</artifactId>
+        <version>2.0.2</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>com.github.stefanbirkner</groupId>
+        <artifactId>fake-sftp-server-rule</artifactId>
+        <version>2.0.1</version>
+      </dependency>
 
       <!--REQUIRED TO GENERATE DOCUMENTATION -->
       <dependency>
@@ -661,21 +337,21 @@
         <version>2.8.0</version>
       </dependency>
 
+      <!-- https://mvnrepository.com/artifact/commons-net/commons-net -->
+      <dependency>
+        <groupId>commons-net</groupId>
+        <artifactId>commons-net</artifactId>
+        <version>3.3</version>
+      </dependency>
+
       <!-- ONLY REQUIRED TO RUN TESTS IN AN IDE THAT BUNDLES AN OLDER VERSION -->
       <dependency>
         <groupId>org.junit.platform</groupId>
         <artifactId>junit-platform-launcher</artifactId>
-        <version>${junit.platform.version}</version>
+        <version>${junit-platform.version}</version>
         <scope>test</scope>
       </dependency>
 
     </dependencies>
   </dependencyManagement>
-
-  <modules>
-    <module>datafile-app-server</module>
-    <module>datafile-aai-client</module>
-    <module>datafile-dmaap-client</module>
-    <module>datafile-commons</module>
-  </modules>
 </project>