Controller Blueprints Component Core
[ccsdk/apps.git] / components / core / src / main / kotlin / org / onap / ccsdk / apps / controllerblueprints / core / utils / BluePrintMetadataUtils.kt
index b7f9fc7..43d55fe 100644 (file)
 package org.onap.ccsdk.apps.controllerblueprints.core.utils\r
 \r
 \r
+import com.att.eelf.configuration.EELFLogger\r
+import com.att.eelf.configuration.EELFManager\r
+import com.fasterxml.jackson.databind.JsonNode\r
 import org.apache.commons.io.FileUtils\r
 import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants\r
+import org.onap.ccsdk.apps.controllerblueprints.core.asJsonPrimitive\r
 import org.onap.ccsdk.apps.controllerblueprints.core.data.ToscaMetaData\r
-import com.att.eelf.configuration.EELFLogger\r
-import com.att.eelf.configuration.EELFManager\r
+import org.onap.ccsdk.apps.controllerblueprints.core.service.BluePrintContext\r
+import org.onap.ccsdk.apps.controllerblueprints.core.service.BluePrintRuntimeService\r
+import org.onap.ccsdk.apps.controllerblueprints.core.service.DefaultBluePrintRuntimeService\r
 import java.io.File\r
 import java.nio.charset.Charset\r
 \r
@@ -57,39 +62,46 @@ object BluePrintMetadataUtils {
         return toscaMetaData\r
     }\r
 \r
-    /*\r
+    @JvmStatic\r
     fun getBluePrintContext(blueprintBasePath: String): BluePrintContext {\r
 \r
-        val metaDataFile = StringBuilder().append(blueprintBasePath).append(File.separator)\r
-                .append(BluePrintConstants.DEFAULT_TOSCA_METADATA_ENTRY_DEFINITION_FILE).toString()\r
-\r
-        val toscaMetaData: ToscaMetaData = BluePrintMetadataUtils.toscaMetaData(metaDataFile)\r
+        val toscaMetaData: ToscaMetaData = toscaMetaData(blueprintBasePath)\r
 \r
-        log.info("Processing blueprint base path ({}) and entry definition file ({})", blueprintBasePath, toscaMetaData.entityDefinitions)\r
+        log.info("Processing blueprint base path ($blueprintBasePath) and entry definition file (${toscaMetaData.entityDefinitions})")\r
 \r
-        return BluePrintParserFactory.instance(BluePrintConstants.TYPE_DEFAULT)!!\r
-                .readBlueprintFile(toscaMetaData.entityDefinitions!!, blueprintBasePath)\r
+        return readBlueprintFile(toscaMetaData.entityDefinitions, blueprintBasePath)\r
     }\r
 \r
-    fun getBluePrintRuntime(requestId: String, blueprintBasePath: String): BluePrintRuntimeService {\r
-\r
-        val metaDataFile = StringBuilder().append(blueprintBasePath).append(File.separator)\r
-                .append(BluePrintConstants.DEFAULT_TOSCA_METADATA_ENTRY_DEFINITION_FILE).toString()\r
-\r
-        val toscaMetaData: ToscaMetaData = BluePrintMetadataUtils.toscaMetaData(metaDataFile)\r
+    @JvmStatic\r
+    fun getBluePrintRuntime(id: String, blueprintBasePath: String): BluePrintRuntimeService<MutableMap<String, JsonNode>> {\r
 \r
-        log.info("Processing blueprint base path ({}) and entry definition file ({})", blueprintBasePath, toscaMetaData.entityDefinitions)\r
+        val bluePrintContext: BluePrintContext = getBluePrintContext(blueprintBasePath)\r
 \r
-        val bluePrintContext: BluePrintContext = BluePrintParserFactory.instance(BluePrintConstants.TYPE_DEFAULT)!!\r
-                .readBlueprintFile(toscaMetaData.entityDefinitions!!, blueprintBasePath)\r
+        val context: MutableMap<String, JsonNode> = hashMapOf()\r
+        context[BluePrintConstants.PROPERTY_BLUEPRINT_BASE_PATH] = blueprintBasePath.asJsonPrimitive()\r
+        context[BluePrintConstants.PROPERTY_BLUEPRINT_PROCESS_ID] = id.asJsonPrimitive()\r
 \r
-        val context: MutableMap<String, Any> = hashMapOf()\r
-        context[BluePrintConstants.PROPERTY_BLUEPRINT_BASE_PATH] = blueprintBasePath\r
-        context[BluePrintConstants.PROPERTY_BLUEPRINT_PROCESS_ID] = requestId\r
+        val bluePrintRuntimeService = DefaultBluePrintRuntimeService(id, bluePrintContext)\r
+        bluePrintRuntimeService.setExecutionContext(context)\r
 \r
-        val bluePrintRuntimeService: BluePrintRuntimeService = BluePrintRuntimeService(bluePrintContext, context)\r
+        return bluePrintRuntimeService\r
+    }\r
 \r
+    @JvmStatic\r
+    fun getBluePrintRuntime(id: String, blueprintBasePath: String, executionContext: MutableMap<String, JsonNode>): BluePrintRuntimeService<MutableMap<String, JsonNode>> {\r
+        val bluePrintContext: BluePrintContext = getBluePrintContext(blueprintBasePath)\r
+        val bluePrintRuntimeService = DefaultBluePrintRuntimeService(id, bluePrintContext)\r
+        bluePrintRuntimeService.setExecutionContext(executionContext)\r
         return bluePrintRuntimeService\r
     }\r
-    */\r
+\r
+    @JvmStatic\r
+    fun readBlueprintFile(entityDefinitions: String, basePath: String): BluePrintContext {\r
+        val rootFilePath: String = basePath.plus(File.separator).plus(entityDefinitions)\r
+        val rootServiceTemplate = ServiceTemplateUtils.getServiceTemplate(rootFilePath)\r
+        // TODO ("Fix for Multiple Service Template file definitions")\r
+//        val schemaImportResolverUtils = BluePrintResolverService(rootServiceTemplate, basePath)\r
+//        val completeServiceTemplate = schemaImportResolverUtils.getImportResolvedServiceTemplate()\r
+        return BluePrintContext(rootServiceTemplate)\r
+    }\r
 }
\ No newline at end of file