Catalog alignment
[sdc.git] / asdctool / src / main / java / org / openecomp / sdc / asdctool / migration / config / MigrationSpringConfig.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdc.asdctool.migration.config;
22
23 import org.openecomp.sdc.asdctool.migration.core.SdcMigrationTool;
24 import org.openecomp.sdc.asdctool.migration.core.task.Migration;
25 import org.openecomp.sdc.asdctool.migration.core.task.PostMigration;
26 import org.openecomp.sdc.asdctool.migration.dao.MigrationTasksDao;
27 import org.openecomp.sdc.asdctool.migration.resolver.MigrationResolver;
28 import org.openecomp.sdc.asdctool.migration.resolver.SpringBeansMigrationResolver;
29 import org.openecomp.sdc.asdctool.migration.service.SdcRepoService;
30 import org.openecomp.sdc.be.components.distribution.engine.DmaapClientFactory;
31 import org.openecomp.sdc.be.components.health.HealthCheckBusinessLogic;
32 import org.openecomp.sdc.be.components.impl.ResourceBusinessLogic;
33 import org.openecomp.sdc.be.components.impl.ServiceBusinessLogic;
34 import org.openecomp.sdc.be.components.scheduledtasks.ComponentsCleanBusinessLogic;
35 import org.openecomp.sdc.be.config.CatalogModelSpringConfig;
36 import org.openecomp.sdc.be.dao.cassandra.CassandraClient;
37 import org.openecomp.sdc.be.dao.config.DAOSpringConfig;
38 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ArtifactsOperations;
39 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.InterfaceOperation;
40 import org.openecomp.sdc.be.model.operations.api.IElementOperation;
41 import org.openecomp.sdc.be.model.operations.api.IGroupInstanceOperation;
42 import org.openecomp.sdc.be.model.operations.api.IGroupOperation;
43 import org.openecomp.sdc.be.model.operations.api.IGroupTypeOperation;
44 import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation;
45 import org.openecomp.sdc.config.CatalogBESpringConfig;
46 import org.springframework.beans.factory.annotation.Autowired;
47 import org.springframework.context.annotation.Bean;
48 import org.springframework.context.annotation.ComponentScan;
49 import org.springframework.context.annotation.Configuration;
50 import org.springframework.context.annotation.Import;
51
52 import java.util.ArrayList;
53 import java.util.List;
54
55 @Configuration
56 @Import({DAOSpringConfig.class, CatalogBESpringConfig.class, CatalogModelSpringConfig.class})
57 @ComponentScan({"org.openecomp.sdc.asdctool.migration.tasks",//migration tasks
58         "org.openecomp.sdc.asdctool.migration.config.mocks",
59         "org.openecomp.sdc.be.filters" })
60 public class MigrationSpringConfig {
61
62     @Autowired(required=false)
63     private List<Migration> migrations = new ArrayList<>();
64     
65     @Autowired(required=false)
66     private List<PostMigration> postMigrations = new ArrayList<>();
67
68     @Bean(name = "sdc-migration-tool")
69     public SdcMigrationTool sdcMigrationTool(MigrationResolver migrationResolver, SdcRepoService sdcRepoService) {
70         return new SdcMigrationTool(migrationResolver, sdcRepoService);
71     }
72
73     @Bean(name = "spring-migrations-resolver")
74     public SpringBeansMigrationResolver migrationResolver(SdcRepoService sdcRepoService) {
75         return new SpringBeansMigrationResolver(migrations, postMigrations, sdcRepoService);
76     }
77
78     @Bean(name = "sdc-repo-service")
79     public SdcRepoService sdcRepoService(MigrationTasksDao migrationTasksDao) {
80         return new SdcRepoService(migrationTasksDao);
81     }
82
83     @Bean(name = "sdc-migration-tasks-cassandra-dao")
84     public MigrationTasksDao migrationTasksDao(CassandraClient cassandraClient) {
85         return new MigrationTasksDao(cassandraClient);
86     }
87
88     @Bean(name = "componentsCleanBusinessLogic")
89     public ComponentsCleanBusinessLogic componentsCleanBusinessLogic(
90         IElementOperation elementDao,
91         IGroupOperation groupOperation,
92         IGroupInstanceOperation groupInstanceOperation,
93         IGroupTypeOperation groupTypeOperation,
94         InterfaceOperation interfaceOperation,
95         InterfaceLifecycleOperation interfaceLifecycleTypeOperation,
96         ResourceBusinessLogic resourceBusinessLogic,
97         ServiceBusinessLogic serviceBusinessLogic,
98         ArtifactsOperations artifactToscaOperation) {
99         return  new ComponentsCleanBusinessLogic(elementDao, groupOperation,
100         groupInstanceOperation, groupTypeOperation, interfaceOperation, interfaceLifecycleTypeOperation, resourceBusinessLogic,
101         serviceBusinessLogic, artifactToscaOperation);
102     }
103     
104     @Bean(name = "dmaapClientFactory")
105     public DmaapClientFactory getDmaapClientFactory() {return new DmaapClientFactory();}
106
107     @Bean(name = "healthCheckBusinessLogic")
108     public HealthCheckBusinessLogic getHealthCheckBusinessLogic() {
109         return new HealthCheckBusinessLogic();
110     }
111 }