2 * ============LICENSE_START=======================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.openecomp.sdc.asdctool.migration.config;
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;
52 import java.util.ArrayList;
53 import java.util.List;
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 {
62 @Autowired(required=false)
63 private List<Migration> migrations = new ArrayList<>();
65 @Autowired(required=false)
66 private List<PostMigration> postMigrations = new ArrayList<>();
68 @Bean(name = "sdc-migration-tool")
69 public SdcMigrationTool sdcMigrationTool(MigrationResolver migrationResolver, SdcRepoService sdcRepoService) {
70 return new SdcMigrationTool(migrationResolver, sdcRepoService);
73 @Bean(name = "spring-migrations-resolver")
74 public SpringBeansMigrationResolver migrationResolver(SdcRepoService sdcRepoService) {
75 return new SpringBeansMigrationResolver(migrations, postMigrations, sdcRepoService);
78 @Bean(name = "sdc-repo-service")
79 public SdcRepoService sdcRepoService(MigrationTasksDao migrationTasksDao) {
80 return new SdcRepoService(migrationTasksDao);
83 @Bean(name = "sdc-migration-tasks-cassandra-dao")
84 public MigrationTasksDao migrationTasksDao(CassandraClient cassandraClient) {
85 return new MigrationTasksDao(cassandraClient);
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);
104 @Bean(name = "dmaapClientFactory")
105 public DmaapClientFactory getDmaapClientFactory() {return new DmaapClientFactory();}
107 @Bean(name = "healthCheckBusinessLogic")
108 public HealthCheckBusinessLogic getHealthCheckBusinessLogic() {
109 return new HealthCheckBusinessLogic();