interface BluePrintNodeTypeEnhancer : BluePrintEnhancer<NodeType>
+interface BluePrintArtifactDefinitionEnhancer : BluePrintEnhancer<ArtifactDefinition>
+
interface BluePrintPolicyTypeEnhancer : BluePrintEnhancer<PolicyType>
interface BluePrintPropertyDefinitionEnhancer : BluePrintEnhancer<PropertyDefinition>
fun getNodeTypeEnhancers(): List<BluePrintNodeTypeEnhancer>
+ fun getArtifactDefinitionEnhancers(): List<BluePrintArtifactDefinitionEnhancer>
+
fun getPolicyTypeEnhancers(): List<BluePrintPolicyTypeEnhancer>
fun getPropertyDefinitionEnhancers(): List<BluePrintPropertyDefinitionEnhancer>
doEnhancement(bluePrintRuntimeService, name, nodeType, enhancers)
}
+ fun enhanceArtifactDefinition(bluePrintRuntimeService: BluePrintRuntimeService<*>, name: String, artifactDefinition: ArtifactDefinition) {
+ val enhancers = getArtifactDefinitionEnhancers()
+ doEnhancement(bluePrintRuntimeService, name, artifactDefinition, enhancers)
+ }
+
fun enhancePolicyType(bluePrintRuntimeService: BluePrintRuntimeService<*>, name: String, policyType: PolicyType) {
val enhancers = getPolicyTypeEnhancers()
doEnhancement(bluePrintRuntimeService, name, policyType, enhancers)
\r
fun get(key: String): JsonNode?\r
\r
+ fun check(key: String): Boolean\r
+\r
fun cleanRuntime()\r
\r
fun getAsString(key: String): String?\r
open class DefaultBluePrintRuntimeService(private var id: String, private var bluePrintContext: BluePrintContext)\r
: BluePrintRuntimeService<MutableMap<String, JsonNode>> {\r
\r
+ @Transient\r
private val log: EELFLogger = EELFManager.getInstance().getLogger(BluePrintRuntimeService::class.toString())\r
\r
private var store: MutableMap<String, JsonNode> = hashMapOf()\r
return store[key] ?: throw BluePrintProcessorException("failed to get execution property($key)")\r
}\r
\r
+ override fun check(key: String): Boolean {\r
+ return store.containsKey(key)\r
+ }\r
+\r
override fun cleanRuntime() {\r
store.clear()\r
}\r
package org.onap.ccsdk.apps.controllerblueprints.core.utils
+import kotlinx.coroutines.async
+import kotlinx.coroutines.runBlocking
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry
import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream
import org.apache.commons.io.IOUtils
+import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintException
import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintProcessorException
import java.io.*
import java.nio.charset.Charset
companion object {
+ fun getFileContent(fileName: String): String = runBlocking {
+ async {
+ try {
+ File(fileName).readText(Charsets.UTF_8)
+ } catch (e: Exception) {
+ throw BluePrintException("couldn't find file($fileName)")
+ }
+ }.await()
+ }
fun compress(source: String, destination: String, absolute: Boolean): Boolean {
val rootDir = File(source)
import reactor.core.publisher.Mono\r
import reactor.core.publisher.toMono\r
\r
+@Deprecated("Reactor will be replaced by coroutines by default")\r
object JacksonReactorUtils {\r
private val log: EELFLogger = EELFManager.getInstance().getLogger(this::class.toString())\r
\r
import com.fasterxml.jackson.databind.SerializationFeature\r
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper\r
import kotlinx.coroutines.Dispatchers\r
+import kotlinx.coroutines.async\r
import kotlinx.coroutines.runBlocking\r
import kotlinx.coroutines.withContext\r
import org.apache.commons.io.IOUtils\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.BluePrintTypes\r
import java.io.File\r
import java.nio.charset.Charset\r
}\r
\r
@JvmStatic\r
- fun getContent(fileName: String): String {\r
- return runBlocking {\r
- withContext(Dispatchers.Default) {\r
+ fun getContent(fileName: String): String = runBlocking {\r
+ async {\r
+ try {\r
File(fileName).readText(Charsets.UTF_8)\r
+ } catch (e: Exception) {\r
+ throw BluePrintException("couldn't get file ($fileName) content : ${e.message}")\r
}\r
- }\r
+ }.await()\r
}\r
\r
@JvmStatic\r
open fun checkValidArtifactType(artifactDefinitionName: String, artifactTypeName: String) {
val artifactType = bluePrintContext.serviceTemplate.artifactTypes?.get(artifactTypeName)
- ?: throw BluePrintException("failed to artifactType($artifactTypeName) for ArtifactDefinition($artifactDefinitionName)")
+ ?: throw BluePrintException("failed to get artifactType($artifactTypeName) for ArtifactDefinition($artifactDefinitionName)")
checkValidArtifactTypeDerivedFrom(artifactTypeName, artifactType.derivedFrom)
}
package org.onap.ccsdk.apps.controllerblueprints.core.service\r
\r
import org.junit.Test\r
-import java.io.FileNotFoundException\r
+import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintException\r
import kotlin.test.assertNotNull\r
\r
/**\r
assertNotNull(nodeType, "Failed to get ArtifactType from repo")\r
}\r
\r
- @Test(expected = FileNotFoundException::class)\r
+ @Test(expected = BluePrintException::class)\r
fun testModelNotFound() {\r
val dataType = bluePrintRepoFileService.getDataType("dt-not-found")\r
assertNotNull(dataType, "Failed to get DataType from repo")\r
import com.att.eelf.configuration.EELFLogger\r
import com.att.eelf.configuration.EELFManager\r
import org.junit.Test\r
+import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintException\r
import org.onap.ccsdk.apps.controllerblueprints.core.data.ServiceTemplate\r
-import java.io.FileNotFoundException\r
import kotlin.test.assertEquals\r
import kotlin.test.assertNotNull\r
\r
+@Deprecated("Reactor will be replacecd by coroutines by default.")\r
class JacksonReactorUtilsTest {\r
private val log: EELFLogger = EELFManager.getInstance().getLogger(this::class.toString())\r
@Test\r
assertNotNull(jsonContent, "Failed to get json Node")\r
}\r
\r
- @Test(expected = FileNotFoundException::class)\r
+ @Test(expected = BluePrintException::class)\r
fun testReadValuesFailure() {\r
JacksonReactorUtils.jsonNodeFromFile("load/blueprints/not-found.json")\r
.block()\r