Controller Blueprints Microservice
[ccsdk/apps.git] / ms / controllerblueprints / modules / core / src / main / kotlin / org / onap / ccsdk / apps / controllerblueprints / core / service / BluePrintRepoService.kt
index 8d2557c..e1d1eac 100644 (file)
 \r
 package org.onap.ccsdk.apps.controllerblueprints.core.service\r
 \r
-import com.google.common.base.Preconditions\r
-import org.apache.commons.io.FileUtils\r
-import org.apache.commons.lang3.StringUtils\r
 import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants\r
 import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintException\r
 import org.onap.ccsdk.apps.controllerblueprints.core.data.*\r
-import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonUtils\r
 import com.att.eelf.configuration.EELFLogger\r
 import com.att.eelf.configuration.EELFManager\r
+import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonReactorUtils\r
 import reactor.core.publisher.Mono\r
 import java.io.File\r
 import java.io.Serializable\r
@@ -57,15 +54,15 @@ interface BluePrintRepoService : Serializable {
 }\r
 \r
 \r
-class BluePrintRepoFileService(val basePath: String) : BluePrintRepoService {\r
+open class BluePrintRepoFileService(modelTypePath: String) : BluePrintRepoService {\r
 \r
-    private val log: EELFLogger = EELFManager.getInstance().getLogger(this::class.toString())\r
+    private val log: EELFLogger = EELFManager.getInstance().getLogger(BluePrintRepoFileService::class.toString())\r
 \r
-    private val dataTypePath = basePath.plus(BluePrintConstants.PATH_DIVIDER).plus(BluePrintConstants.MODEL_DEFINITION_TYPE_DATA_TYPE)\r
-    private val nodeTypePath = basePath.plus(BluePrintConstants.PATH_DIVIDER).plus(BluePrintConstants.MODEL_DEFINITION_TYPE_NODE_TYPE)\r
-    private val artifactTypePath = basePath.plus(BluePrintConstants.PATH_DIVIDER).plus(BluePrintConstants.MODEL_DEFINITION_TYPE_ARTIFACT_TYPE)\r
-    private val capabilityTypePath = basePath.plus(BluePrintConstants.PATH_DIVIDER).plus(BluePrintConstants.MODEL_DEFINITION_TYPE_CAPABILITY_TYPE)\r
-    private val relationshipTypePath = basePath.plus(BluePrintConstants.PATH_DIVIDER).plus(BluePrintConstants.MODEL_DEFINITION_TYPE_RELATIONSHIP_TYPE)\r
+    private val dataTypePath = modelTypePath.plus(BluePrintConstants.PATH_DIVIDER).plus(BluePrintConstants.MODEL_DEFINITION_TYPE_DATA_TYPE)\r
+    private val nodeTypePath = modelTypePath.plus(BluePrintConstants.PATH_DIVIDER).plus(BluePrintConstants.MODEL_DEFINITION_TYPE_NODE_TYPE)\r
+    private val artifactTypePath = modelTypePath.plus(BluePrintConstants.PATH_DIVIDER).plus(BluePrintConstants.MODEL_DEFINITION_TYPE_ARTIFACT_TYPE)\r
+    private val capabilityTypePath = modelTypePath.plus(BluePrintConstants.PATH_DIVIDER).plus(BluePrintConstants.MODEL_DEFINITION_TYPE_CAPABILITY_TYPE)\r
+    private val relationshipTypePath = modelTypePath.plus(BluePrintConstants.PATH_DIVIDER).plus(BluePrintConstants.MODEL_DEFINITION_TYPE_RELATIONSHIP_TYPE)\r
     private val extension = ".json"\r
 \r
     override fun getDataType(dataTypeName: String): Mono<DataType>? {\r
@@ -98,17 +95,6 @@ class BluePrintRepoFileService(val basePath: String) : BluePrintRepoService {
     }\r
 \r
     private fun <T> getModelType(fileName: String, valueType: Class<T>): Mono<T> {\r
-        return getFileContent(fileName).map { content ->\r
-            Preconditions.checkArgument(StringUtils.isNotBlank(content),\r
-                    String.format("Failed to get model content for file (%s)", fileName))\r
-\r
-            JacksonUtils.readValue(content, valueType)\r
-                    ?: throw BluePrintException(String.format("Failed to get model file from content for file (%s)", fileName))\r
-\r
-        }\r
-    }\r
-\r
-    private fun getFileContent(fileName: String): Mono<String> {\r
-        return Mono.just(FileUtils.readFileToString(File(fileName), Charset.defaultCharset()))\r
+        return JacksonReactorUtils.readValueFromFile(fileName, valueType)\r
     }\r
 }
\ No newline at end of file