]> git.somenet.org - pub/jan/dst18.git/blob - ass2-service/courseplan/src/test/java/dst/ass2/service/courseplan/CoursePlanApplicationConfig.java
Add template for assignment 2
[pub/jan/dst18.git] / ass2-service / courseplan / src / test / java / dst / ass2 / service / courseplan / CoursePlanApplicationConfig.java
1 package dst.ass2.service.courseplan;
2
3 import javax.persistence.EntityManager;
4 import javax.persistence.PersistenceContext;
5
6 import org.glassfish.jersey.server.ResourceConfig;
7 import org.springframework.boot.SpringBootConfiguration;
8 import org.springframework.context.annotation.Bean;
9 import org.springframework.orm.jpa.JpaTransactionManager;
10 import org.springframework.orm.jpa.LocalEntityManagerFactoryBean;
11 import org.springframework.transaction.PlatformTransactionManager;
12
13 import dst.ass1.jpa.dao.IDAOFactory;
14 import dst.ass1.jpa.dao.impl.DAOFactory;
15 import dst.ass1.jpa.model.IModelFactory;
16 import dst.ass1.jpa.model.impl.ModelFactory;
17 import dst.ass1.jpa.util.Constants;
18
19 @SpringBootConfiguration
20 public class CoursePlanApplicationConfig {
21
22     @PersistenceContext
23     private EntityManager em;
24
25     @Bean
26     public ResourceConfig jerseyConfig() {
27         return new ResourceConfig()
28                 .packages("dst.ass2.service.courseplan");
29     }
30
31     @Bean
32     public IModelFactory modelFactory() {
33         return new ModelFactory();
34     }
35
36     @Bean
37     public IDAOFactory daoFactory() {
38         return new DAOFactory(em);
39     }
40
41     @Bean
42     public LocalEntityManagerFactoryBean entityManagerFactoryBean() {
43         LocalEntityManagerFactoryBean bean = new LocalEntityManagerFactoryBean();
44         bean.setPersistenceUnitName(Constants.JPA_PERSISTENCE_UNIT);
45         // fixes collection proxy problem when using jersey
46         bean.getJpaPropertyMap().put("hibernate.enable_lazy_load_no_trans", true);
47         return bean;
48     }
49
50     @Bean
51     public PlatformTransactionManager transactionManager(LocalEntityManagerFactoryBean entityManagerFactoryBean) {
52         JpaTransactionManager transactionManager = new JpaTransactionManager();
53         transactionManager.setPersistenceUnitName(Constants.JPA_PERSISTENCE_UNIT);
54         transactionManager.setEntityManagerFactory(entityManagerFactoryBean.getObject());
55         return transactionManager;
56     }
57
58 }