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