re base code
[sdc.git] / asdctool / src / main / java / org / openecomp / sdc / asdctool / migration / config / MigrationSpringConfig.java
1 package org.openecomp.sdc.asdctool.migration.config;
2
3 import org.openecomp.sdc.asdctool.migration.core.SdcMigrationTool;
4 import org.openecomp.sdc.asdctool.migration.core.task.Migration;
5 import org.openecomp.sdc.asdctool.migration.core.task.PostMigration;
6 import org.openecomp.sdc.asdctool.migration.dao.MigrationTasksDao;
7 import org.openecomp.sdc.asdctool.migration.resolver.MigrationResolver;
8 import org.openecomp.sdc.asdctool.migration.resolver.SpringBeansMigrationResolver;
9 import org.openecomp.sdc.asdctool.migration.service.SdcRepoService;
10 import org.openecomp.sdc.be.components.distribution.engine.ServiceDistributionArtifactsBuilder;
11 import org.openecomp.sdc.be.components.scheduledtasks.ComponentsCleanBusinessLogic;
12 import org.openecomp.sdc.be.config.CatalogModelSpringConfig;
13 import org.openecomp.sdc.be.dao.config.DAOSpringConfig;
14 import org.openecomp.sdc.config.CatalogBESpringConfig;
15 import org.springframework.beans.factory.annotation.Autowired;
16 import org.springframework.beans.factory.config.PropertiesFactoryBean;
17 import org.springframework.context.annotation.Bean;
18 import org.springframework.context.annotation.ComponentScan;
19 import org.springframework.context.annotation.Configuration;
20 import org.springframework.context.annotation.Import;
21 import org.springframework.core.io.FileSystemResource;
22
23 import java.util.ArrayList;
24 import java.util.List;
25
26 @Configuration
27 @Import({DAOSpringConfig.class, CatalogBESpringConfig.class, CatalogModelSpringConfig.class})
28 @ComponentScan({"org.openecomp.sdc.asdctool.migration.tasks",//migration tasks
29         "org.openecomp.sdc.asdctool.migration.config.mocks"
30                 })
31 public class MigrationSpringConfig {
32
33     @Autowired(required=false)
34     private List<Migration> migrations = new ArrayList<>();
35     
36     @Autowired(required=false)
37     private List<PostMigration> postMigrations = new ArrayList<>();
38
39     @Bean(name = "sdc-migration-tool")
40     public SdcMigrationTool sdcMigrationTool(MigrationResolver migrationResolver, SdcRepoService sdcRepoService) {
41         return new SdcMigrationTool(migrationResolver, sdcRepoService);
42     }
43
44     @Bean(name = "spring-migrations-resolver")
45     public SpringBeansMigrationResolver migrationResolver(SdcRepoService sdcRepoService) {
46         return new SpringBeansMigrationResolver(migrations, postMigrations, sdcRepoService);
47     }
48
49     @Bean(name = "sdc-repo-service")
50     public SdcRepoService sdcRepoService(MigrationTasksDao migrationTasksDao) {
51         return new SdcRepoService(migrationTasksDao);
52     }
53
54     @Bean(name = "sdc-migration-tasks-cassandra-dao")
55     public MigrationTasksDao migrationTasksDao() {
56         return new MigrationTasksDao();
57     }
58
59     @Bean(name = "serviceDistributionArtifactsBuilder")
60     public ServiceDistributionArtifactsBuilder serviceDistributionArtifactsBuilder() {
61         return new ServiceDistributionArtifactsBuilder();
62     }
63
64     @Bean(name = "elasticsearchConfig")
65     public PropertiesFactoryBean mapper() {
66         String configHome = System.getProperty("config.home");
67         PropertiesFactoryBean bean = new PropertiesFactoryBean();
68         bean.setLocation(new FileSystemResource(configHome + "/elasticsearch.yml"));
69         return bean;
70     }
71
72     @Bean(name = "componentsCleanBusinessLogic")
73     public ComponentsCleanBusinessLogic componentsCleanBusinessLogic() {return  new ComponentsCleanBusinessLogic(); }
74
75 }