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>
