Subversion Repositories SmartDukaan

Rev

Rev 21749 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
21749 ashik.ali 1
package com.spice.profitmandi.dao.config;
2
 
3
import java.io.IOException;
4
import java.util.Properties;
5
 
6
import javax.sql.DataSource;
7
 
8
import org.hibernate.SessionFactory;
9
import org.springframework.beans.factory.annotation.Autowired;
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.core.io.Resource;
14
import org.springframework.jdbc.datasource.DriverManagerDataSource;
15
import org.springframework.orm.hibernate5.HibernateTransactionManager;
16
import org.springframework.orm.hibernate5.LocalSessionFactoryBuilder;
17
import org.springframework.transaction.annotation.EnableTransactionManagement;
18
 
22205 amit.gupta 19
import com.spice.profitmandi.dao.repository.dtr.Mongo;
21749 ashik.ali 20
import com.spice.profitmandi.web.config.AppConfig;
21
 
22
@Configuration
23
@EnableTransactionManagement
24
@ComponentScan({ "com.spice.profitmandi.*" })
25
public class WebDBContextConfigure{
26
 
27
	private static final String HIBERNATE_DRIVER_CLASS = "hibernate.driver.class";
28
	private static final String HIBERNATE_URL = "hibernate.url";
29
	private static final String HIBERNATE_USER_NAME = "hibernate.user.name";
30
	private static final String HIBERNATE_PASSWORD = "hibernate.password";
31
	private static final String HIBERNATE_DIALECT = "hibernate.dialect";
32
	private static final String HIBERNATE_SHOW_SQL = "hibernate.show_sql";
33
	private static final String HIBERNATE_FORMAT_SQL = "hibernate.format_sql";
34
	private static final String HIBERNATE_JDBC_BATCH_SIZE = "hibernate.jdbc.batch_size";
35
	private static final String HIBERNATE_C3P0_MIN_SIZE = "hibernate.c3p0.min_size";
36
	private static final String HIBERNATE_C3P0_MAX_SIZE = "hibernate.c3p0.max_size";
37
	private static final String HIBERNATE_C3P0_TIMEOUT= "hibernate.c3p0.timeout";
38
	private static final String HIBERNATE_C3P0_MAX_STATEMENTS = "hibernate.c3p0.max_statements";
39
	private static final String HIBERNATE_C3P0_IDLE_TEST_PERIOD = "hibernate.c3p0.idle_test_period";
40
	private Resource resource = AppConfig.getResource();
41
 
42
	@Bean(name = "dataSource")
43
	public DataSource dataSource() {
44
		Properties properties = new Properties();
45
		try {
46
			properties.load(resource.getInputStream());
47
		} catch (IOException e) {
48
			e.printStackTrace();
49
		}
50
		DriverManagerDataSource dataSource = new DriverManagerDataSource();
51
		dataSource.setDriverClassName(properties.getProperty(HIBERNATE_DRIVER_CLASS));
52
		dataSource.setUrl(properties.getProperty(HIBERNATE_URL));
53
		dataSource.setUsername(properties.getProperty(HIBERNATE_USER_NAME));
54
		dataSource.setPassword(properties.getProperty(HIBERNATE_PASSWORD));
55
		return dataSource;
56
	}
57
 
58
	@Bean
59
	public Properties getHibernateProperties() {
60
		Properties dbProperties = new Properties();
61
		Properties properties = new Properties();
62
		try {
63
			properties.load(resource.getInputStream());
64
		} catch (IOException e) {
65
			e.printStackTrace();
66
		}
67
		dbProperties.put(HIBERNATE_DIALECT, properties.getProperty(HIBERNATE_DIALECT));
68
		dbProperties.put(HIBERNATE_SHOW_SQL, properties.getProperty(HIBERNATE_SHOW_SQL));
69
		dbProperties.put(HIBERNATE_FORMAT_SQL, properties.getProperty(HIBERNATE_FORMAT_SQL));
70
		dbProperties.put(HIBERNATE_JDBC_BATCH_SIZE, properties.getProperty(HIBERNATE_JDBC_BATCH_SIZE));
71
		dbProperties.put(HIBERNATE_C3P0_MIN_SIZE, properties.getProperty(HIBERNATE_C3P0_MIN_SIZE));
72
		dbProperties.put(HIBERNATE_C3P0_MAX_SIZE, properties.getProperty(HIBERNATE_C3P0_MAX_SIZE));
73
		dbProperties.put(HIBERNATE_C3P0_TIMEOUT, properties.getProperty(HIBERNATE_C3P0_TIMEOUT));
74
		dbProperties.put(HIBERNATE_C3P0_MAX_STATEMENTS, properties.getProperty(HIBERNATE_C3P0_MAX_STATEMENTS));
75
		dbProperties.put(HIBERNATE_C3P0_IDLE_TEST_PERIOD, properties.getProperty(HIBERNATE_C3P0_IDLE_TEST_PERIOD));
76
		return dbProperties;
77
	}
78
 
79
	@Autowired
80
	@Bean(name = "sessionFactory")
81
	public SessionFactory getSessionFactory(DataSource dataSource) {
82
		LocalSessionFactoryBuilder sessionBuilder = new LocalSessionFactoryBuilder(dataSource);
83
		sessionBuilder.addProperties(getHibernateProperties());
84
		sessionBuilder.scanPackages("com.spice.profitmandi.dao.*");
85
		return sessionBuilder.buildSessionFactory();
86
	}
87
 
88
	@Autowired
89
	@Bean(name = "transactionManager")
90
	public HibernateTransactionManager getTransactionManager(SessionFactory sessionFactory) {
91
		HibernateTransactionManager transactionManager = new HibernateTransactionManager(sessionFactory);
92
		return transactionManager;
93
	}
22205 amit.gupta 94
 
95
 
96
 
97
	@Autowired
98
	@Bean
99
	public Mongo mongoClient(SessionFactory sessionFactory) {
100
		Properties properties = new Properties();
101
		try {
102
			properties.load(resource.getInputStream());
103
		} catch (IOException e) {
104
			e.printStackTrace();
105
		}
106
		return new Mongo(properties.getProperty("mongo.host"), properties.getProperty("content.mongo.host"));
107
	}
21749 ashik.ali 108
}