Merge from ECOMP's repository
[vid.git] / vid-app-common / src / main / java / org / onap / vid / controller / MsoConfig.java
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
-package org.onap.vid.controllers;
+package org.onap.vid.controller;
 
-import com.fasterxml.jackson.databind.ObjectMapper;
+import io.joshworks.restclient.http.mapper.ObjectMapper;
 import org.onap.portalsdk.core.util.SystemProperties;
-
+import org.onap.vid.aai.AaiClientInterface;
 import org.onap.vid.client.SyncRestClient;
 import org.onap.vid.factories.MsoRequestFactory;
 import org.onap.vid.mso.MsoBusinessLogic;
@@ -30,6 +30,8 @@ import org.onap.vid.mso.MsoBusinessLogicImpl;
 import org.onap.vid.mso.MsoInterface;
 import org.onap.vid.mso.MsoProperties;
 import org.onap.vid.mso.rest.MsoRestClientNew;
+import org.onap.vid.services.CloudOwnerService;
+import org.onap.vid.services.CloudOwnerServiceImpl;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.togglz.core.manager.FeatureManager;
@@ -38,24 +40,15 @@ import org.togglz.core.manager.FeatureManager;
 @Configuration
 public class MsoConfig {
 
-    /**
-     * Gets the object mapper.
-     *
-     * @return the object mapper
-     */
-    @Bean
-    public ObjectMapper getObjectMapper() {
-        return new ObjectMapper();
-    }
-
     @Bean
     public MsoRequestFactory createRequestDetailsFactory(){
         return new MsoRequestFactory();
     }
 
     @Bean
-    public MsoInterface getMsoClient(){
-        return new MsoRestClientNew(new SyncRestClient(MsoInterface.objectMapper()), SystemProperties.getProperty(
+    public MsoRestClientNew msoClient(ObjectMapper unirestObjectMapper){
+        // Satisfy both interfaces -- MsoInterface and RestMsoImplementation
+        return new MsoRestClientNew(new SyncRestClient(unirestObjectMapper), SystemProperties.getProperty(
             MsoProperties.MSO_SERVER_URL));
     }
 
@@ -64,5 +57,10 @@ public class MsoConfig {
         return new MsoBusinessLogicImpl(msoClient, featureManager);
     }
 
+    @Bean
+    public CloudOwnerService cloudOwnerService(AaiClientInterface aaiClient, FeatureManager featureManager) {
+        return new CloudOwnerServiceImpl(aaiClient, featureManager);
+    }
+
 
 }