Subversion Repositories SmartDukaan

Rev

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

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