Upgrade SDC from Titan to Janus Graph
[sdc.git] / catalog-dao / src / main / java / org / openecomp / sdc / be / dao / config / JanusGraphSpringConfig.java
1 package org.openecomp.sdc.be.dao.config;
2
3 import org.openecomp.sdc.be.dao.DAOJanusGraphStrategy;
4 import org.openecomp.sdc.be.dao.JanusGraphClientStrategy;
5 import org.openecomp.sdc.be.dao.impl.HealingPipelineDao;
6 import org.openecomp.sdc.be.dao.janusgraph.HealingJanusGraphGenericDao;
7 import org.openecomp.sdc.be.dao.janusgraph.JanusGraphClient;
8 import org.openecomp.sdc.be.dao.janusgraph.transactions.SimpleJanusGraphTransactionManager;
9 import org.springframework.beans.factory.annotation.Qualifier;
10 import org.springframework.context.annotation.Bean;
11 import org.springframework.context.annotation.ComponentScan;
12 import org.springframework.context.annotation.Configuration;
13 import org.springframework.context.annotation.Primary;
14 import org.springframework.transaction.PlatformTransactionManager;
15 import org.springframework.transaction.annotation.EnableTransactionManagement;
16
17 @Configuration
18 @ComponentScan({
19         "org.openecomp.sdc.be.dao.jsongraph",
20 })
21 @EnableTransactionManagement
22 public class JanusGraphSpringConfig {
23
24     @Bean(name = "janusgraph-generic-dao")
25     @Primary
26     public HealingJanusGraphGenericDao janusGraphGenericDao(@Qualifier("janusgraph-client") JanusGraphClient janusGraphClient) {
27         return new HealingJanusGraphGenericDao(janusGraphClient);
28     }
29
30     @Bean(name = "janusgraph-client", initMethod = "createGraph")
31     @Primary
32     public JanusGraphClient janusGraphClient(@Qualifier("dao-client-strategy")
33                                                  JanusGraphClientStrategy janusGraphClientStrategy) {
34         return new JanusGraphClient(janusGraphClientStrategy);
35     }
36
37     @Bean(name = "dao-client-strategy")
38     public JanusGraphClientStrategy janusGraphClientStrategy() {
39         return new DAOJanusGraphStrategy();
40     }
41
42     @Bean
43     public PlatformTransactionManager txManager() {
44         return new SimpleJanusGraphTransactionManager(janusGraphClient(janusGraphClientStrategy()));
45     }
46
47     @Bean(name = "healingPipelineDao")
48     public HealingPipelineDao  healingPipeline(){
49         HealingPipelineDao healingPipelineDao = new HealingPipelineDao();
50         healingPipelineDao.setHealVersion(1);
51         healingPipelineDao.initHealVersion();
52         return healingPipelineDao;
53     }
54 }