Add data persistence
[ccsdk/sli/core.git] / sliapi / springboot / src / main / java / org / onap / ccsdk / sli / core / sliapi / springboot / core / WebConfig.java
index fb4fe08..41d3791 100644 (file)
 package org.onap.ccsdk.sli.core.sliapi.springboot.core;\r
 \r
 import org.onap.logging.filter.spring.LoggingInterceptor;\r
+import org.springframework.boot.autoconfigure.domain.EntityScan;\r
 import org.springframework.context.annotation.Bean;\r
+import org.springframework.context.annotation.ComponentScan;\r
 import org.springframework.context.annotation.Configuration;\r
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;\r
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;\r
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;\r
+import org.springframework.orm.jpa.JpaTransactionManager;\r
+import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;\r
+import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;\r
+import org.springframework.transaction.PlatformTransactionManager;\r
+import org.springframework.transaction.annotation.EnableTransactionManagement;\r
 import org.springframework.web.servlet.config.annotation.EnableWebMvc;\r
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;\r
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;\r
 \r
+import javax.persistence.EntityManagerFactory;\r
+import javax.sql.DataSource;\r
+\r
 @EnableWebMvc\r
 @Configuration\r
+@EnableJpaRepositories("org.onap.ccsdk.sli.core.sliapi.springboot.*")\r
+@ComponentScan(basePackages = {"org.onap.ccsdk.sli.core.sliapi.springboot.*"})\r
+@EntityScan("org.onap.ccsdk.sli.core.sliapi.springboot.*")\r
+@EnableTransactionManagement\r
 public class WebConfig implements WebMvcConfigurer {\r
 \r
-       @Bean\r
+/*     @Bean\r
        LoggingInterceptor loggingInterceptor() {\r
                return new LoggingInterceptor();\r
        }\r
 \r
        public void addInterceptors(InterceptorRegistry registry) {     \r
                registry.addInterceptor(loggingInterceptor()); // handles audit log entries\r
+       }*/\r
+\r
+       @Bean\r
+       public DataSource dataSource() {\r
+\r
+               EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();\r
+               builder.setName("sdnctl");\r
+               return builder.setType(EmbeddedDatabaseType.DERBY).build();\r
+       }\r
+\r
+       @Bean\r
+       public EntityManagerFactory entityManagerFactory() {\r
+\r
+               HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();\r
+               vendorAdapter.setGenerateDdl(true);\r
+\r
+               LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();\r
+               factory.setJpaVendorAdapter(vendorAdapter);\r
+               factory.setPackagesToScan("org.onap.ccsdk.sli.core.sliapi.springboot.*");\r
+               factory.setDataSource(dataSource());\r
+               factory.afterPropertiesSet();\r
+\r
+               return factory.getObject();\r
        }\r
 \r
+       @Bean\r
+       public PlatformTransactionManager transactionManager() {\r
+\r
+               JpaTransactionManager txManager = new JpaTransactionManager();\r
+               txManager.setEntityManagerFactory(entityManagerFactory());\r
+               return txManager;\r
+       }\r
 }
\ No newline at end of file