Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

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