re base code
[sdc.git] / catalog-dao / src / main / java / org / openecomp / sdc / be / dao / config / TitanSpringConfig.java
1 package org.openecomp.sdc.be.dao.config;
2
3 import org.openecomp.sdc.be.dao.DAOTitanStrategy;
4 import org.openecomp.sdc.be.dao.TitanClientStrategy;
5 import org.openecomp.sdc.be.dao.titan.TitanGenericDao;
6 import org.openecomp.sdc.be.dao.titan.TitanGraphClient;
7 import org.openecomp.sdc.be.dao.titan.transactions.SimpleTitanTransactionManager;
8 import org.springframework.beans.factory.annotation.Qualifier;
9 import org.springframework.context.annotation.Bean;
10 import org.springframework.context.annotation.ComponentScan;
11 import org.springframework.context.annotation.Configuration;
12 import org.springframework.context.annotation.Primary;
13 import org.springframework.transaction.PlatformTransactionManager;
14 import org.springframework.transaction.annotation.EnableTransactionManagement;
15
16 @Configuration
17 @ComponentScan({
18         "org.openecomp.sdc.be.dao.jsongraph",
19 })
20 @EnableTransactionManagement
21 public class TitanSpringConfig {
22
23     @Bean(name = "titan-generic-dao")
24     @Primary
25     public TitanGenericDao titanGenericDao(@Qualifier("titan-client") TitanGraphClient titanGraphClient) {
26         return new TitanGenericDao(titanGraphClient);
27     }
28
29     @Bean(name = "titan-client", initMethod = "createGraph")
30     @Primary
31     public TitanGraphClient titanGraphClient(@Qualifier("dao-client-strategy") TitanClientStrategy titanClientStrategy) {
32         return new TitanGraphClient(titanClientStrategy);
33     }
34
35     @Bean(name = "dao-client-strategy")
36     public TitanClientStrategy titanClientStrategy() {
37         return new DAOTitanStrategy();
38     }
39
40     @Bean
41     public PlatformTransactionManager txManager() {
42         return new SimpleTitanTransactionManager(titanGraphClient(titanClientStrategy()));
43     }
44 }