Subversion Repositories SmartDukaan

Rev

Rev 22355 | Rev 35383 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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