31bd2c953a12017d68b72399809471d82471cd64
[ccsdk/cds.git] /
1 /*
2  * Copyright © 2017-2018 AT&T Intellectual Property.
3  * Modifications Copyright © 2019 IBM.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17
18 package org.onap.ccsdk.cds.blueprintsprocessor.designer.api.load
19
20 import kotlinx.coroutines.runBlocking
21 import org.onap.ccsdk.cds.controllerblueprints.core.config.BluePrintLoadConfiguration
22 import org.slf4j.LoggerFactory
23 import org.springframework.stereotype.Service
24
25 @Service
26 open class BluePrintDatabaseLoadService(private val bluePrintLoadConfiguration: BluePrintLoadConfiguration,
27                                         private val modelTypeLoadService: ModelTypeLoadService,
28                                         private val resourceDictionaryLoadService: ResourceDictionaryLoadService,
29                                         private val bluePrintCatalogLoadService: BluePrintCatalogLoadService) {
30
31     private val log = LoggerFactory.getLogger(BluePrintDatabaseLoadService::class.java)
32
33     open fun init() = runBlocking {
34         initModelTypes()
35         initResourceDictionary()
36         initBluePrintCatalog()
37     }
38
39     open suspend fun initModelTypes() {
40         log.info("model types load from paths(${bluePrintLoadConfiguration.loadModeTypePaths})")
41
42         val paths = bluePrintLoadConfiguration.loadModeTypePaths?.split(",")
43         paths?.let {
44             modelTypeLoadService.loadPathsModelType(paths)
45         }
46     }
47
48     open suspend fun initResourceDictionary() {
49         log.info("resource dictionary load from paths(${bluePrintLoadConfiguration.loadResourceDictionaryPaths})")
50
51         val paths = bluePrintLoadConfiguration.loadResourceDictionaryPaths?.split(",")
52         paths?.let {
53             resourceDictionaryLoadService.loadPathsResourceDictionary(paths)
54         }
55     }
56
57     open suspend fun initBluePrintCatalog() {
58         log.info("cba load from paths(${bluePrintLoadConfiguration.loadBluePrintPaths})")
59
60         val paths = bluePrintLoadConfiguration.loadBluePrintPaths?.split(",")
61         paths?.let {
62             bluePrintCatalogLoadService.loadPathsBluePrintModelCatalog(paths)
63         }
64     }
65 }