From 274de5ede59ed4023826a9db09ec60788bc950e1 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Mon, 19 Dec 2016 13:41:23 +0300 Subject: all projects except juick-www are spring-managed now --- .../demo/configuration/DemoAppConfiguration.java | 90 ++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 juick-demo/src/main/java/com/juick/demo/configuration/DemoAppConfiguration.java (limited to 'juick-demo/src/main/java/com/juick/demo/configuration/DemoAppConfiguration.java') diff --git a/juick-demo/src/main/java/com/juick/demo/configuration/DemoAppConfiguration.java b/juick-demo/src/main/java/com/juick/demo/configuration/DemoAppConfiguration.java new file mode 100644 index 00000000..6a7f697a --- /dev/null +++ b/juick-demo/src/main/java/com/juick/demo/configuration/DemoAppConfiguration.java @@ -0,0 +1,90 @@ +package com.juick.demo.configuration; + +import ch.vorburger.exec.ManagedProcessException; +import ch.vorburger.mariadb4j.DB; +import com.juick.server.protocol.JuickProtocol; +import com.juick.service.search.SearchService; +import org.apache.commons.dbcp2.BasicDataSource; +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.DependsOn; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.datasource.DataSourceTransactionManager; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.annotation.TransactionManagementConfigurer; + +import java.util.Collections; +import java.util.List; + +/** + * Created by vitalyster on 19.12.2016. + */ +@Configuration +@ComponentScan(basePackages = {"com.juick.demo", "com.juick.service", "com.juick.server.protocol"}) +public class DemoAppConfiguration implements ApplicationContextAware, TransactionManagementConfigurer { + private ApplicationContext applicationContext; + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + this.applicationContext = applicationContext; + } + @Bean + public BasicDataSource dataSource() { + try { + DB db = DB.newEmbeddedDB(33306); + db.start(); + db.createDB("juick"); + db.source("schema.sql"); + BasicDataSource dataSource = new BasicDataSource(); + dataSource.setDriverClassName("com.mysql.jdbc.Driver"); + dataSource.setUrl("jdbc:mysql://localhost:33306/juick?autoReconnect=true&user=root"); + + dataSource.setValidationQuery("select 1"); + + return dataSource; + } catch (ManagedProcessException e) { + return null; + } + } + + @Bean + public PlatformTransactionManager transactionManager() { + return new DataSourceTransactionManager(dataSource()); + } + + @Override + public PlatformTransactionManager annotationDrivenTransactionManager() { + return transactionManager(); + } + + @Bean + @DependsOn("dataSource") + public JdbcTemplate jdbcTemplate() { + return new JdbcTemplate(dataSource()); + } + @Bean + public SearchService emptySearchService() { + return new SearchService() { + @Override + public void setMaxResult(int maxResult) { + } + + @Override + public List searchInAllMessages(String searchString, int messageIdBefore) { + return Collections.emptyList(); + } + + @Override + public List searchByStringAndUser(String searchString, int userId, int messageIdBefore) { + return Collections.emptyList(); + } + }; + } + @Bean + public JuickProtocol juickProtocol() { + return new JuickProtocol("http://localhost:8080/"); + } +} -- cgit v1.2.3