Added cbs API

* one main cloudConfigurationProvider
* Mixing string and object property passed to API
* added maven-shade plugin

Change-Id: Idcd66fd70c20c859b5b6f94524f3fdb709fdfc57
Issue-ID: DCAEGEN2-982
Signed-off-by: wasala <przemyslaw.wasala@nokia.com>
diff --git a/pom.xml b/pom.xml
index 184d70e..dee0b2d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,6 +29,9 @@
     <junit-jupiter.version>5.3.1</junit-jupiter.version>
     <junit-vintage.version>5.3.1</junit-vintage.version>
     <junit-platform.version>1.3.1</junit-platform.version>
+    <immutables.version>2.7.3</immutables.version>
+    <spring.version>5.1.2.RELEASE</spring.version>
+    <slf4j.version>1.7.25</slf4j.version>
   </properties>
 
   <modules>
@@ -75,8 +78,8 @@
           <version>3.0.1</version>
         </plugin>
         <plugin>
-          <artifactId>maven-jar-plugin</artifactId>
-          <version>3.1.0</version>
+          <artifactId>maven-shade-plugin</artifactId>
+          <version>3.2.0</version>
         </plugin>
         <plugin>
           <artifactId>maven-project-info-reports-plugin</artifactId>
@@ -110,17 +113,27 @@
         </executions>
       </plugin>
       <plugin>
-        <artifactId>maven-jar-plugin</artifactId>
+        <artifactId>maven-shade-plugin</artifactId>
         <configuration>
-          <archive>
-            <manifest>
-              <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
-            </manifest>
-            <manifestEntries>
-              <Implementation-Build-Version>${project.version}</Implementation-Build-Version>
-            </manifestEntries>
-          </archive>
+          <filters>
+            <filter>
+              <artifact>*:*</artifact>
+              <excludes>
+                <exclude>META-INF/*.SF</exclude>
+                <exclude>META-INF/*.DSA</exclude>
+                <exclude>META-INF/*.RSA</exclude>
+              </excludes>
+            </filter>
+          </filters>
         </configuration>
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>shade</goal>
+            </goals>
+          </execution>
+        </executions>
       </plugin>
     </plugins>
   </build>
@@ -143,6 +156,43 @@
   <dependencyManagement>
     <dependencies>
       <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-webflux</artifactId>
+        <version>${spring.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-context</artifactId>
+        <version>${spring.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.immutables</groupId>
+        <artifactId>value</artifactId>
+        <version>${immutables.version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.immutables</groupId>
+        <artifactId>gson</artifactId>
+        <version>${immutables.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>ch.qos.logback</groupId>
+        <artifactId>logback-classic</artifactId>
+        <scope>provided</scope>
+        <version>1.2.3</version>
+      </dependency>
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>jul-to-slf4j</artifactId>
+        <version>${slf4j.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>log4j-over-slf4j</artifactId>
+        <version>${slf4j.version}</version>
+      </dependency>
+      <dependency>
         <groupId>org.mockito</groupId>
         <artifactId>mockito-core</artifactId>
         <version>2.23.0</version>
@@ -172,6 +222,13 @@
         <version>${junit-vintage.version}</version>
         <scope>test</scope>
       </dependency>
+      <dependency>
+        <groupId>io.projectreactor</groupId>
+        <artifactId>reactor-bom</artifactId>
+        <version>Californium-SR2</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
     </dependencies>
   </dependencyManagement>
 </project>