diff --git a/micro-data/src/main/java/com/aol/micro/server/spring/DataPlugin.java b/micro-data/src/main/java/com/aol/micro/server/spring/DataPlugin.java index 561040e99..b125f4bfb 100644 --- a/micro-data/src/main/java/com/aol/micro/server/spring/DataPlugin.java +++ b/micro-data/src/main/java/com/aol/micro/server/spring/DataPlugin.java @@ -7,15 +7,10 @@ import java.util.function.Function; import javax.servlet.ServletContextListener; -import javax.sql.DataSource; - -import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; -import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import com.aol.micro.server.Plugin; -import com.aol.micro.server.config.Config; import com.aol.micro.server.servers.model.ServerData; -import com.aol.micro.server.spring.datasource.DataSourceBuilder; +import com.aol.micro.server.spring.datasource.DataDataSourceBuilder; import com.aol.micro.server.spring.datasource.JdbcConfig; import com.aol.micro.server.spring.datasource.hibernate.HibernateConfig; import com.aol.micro.server.spring.datasource.hibernate.SpringDataConfig; @@ -30,18 +25,16 @@ * @author johnmcclean * */ -public class DataPlugin implements Plugin{ - +public class DataPlugin implements Plugin { + @Override - public Optional springDbConfigurer(){ + public Optional springDbConfigurer() { return Optional.of(new SpringConfigurer()); } + @Override public Set springClasses() { - return new HashSet<>(Arrays.asList(JdbcConfig.class, - DataSourceBuilder.class, SQL.class, - SpringDataConfig.class, - HibernateConfig.class)); + return new HashSet<>(Arrays.asList(JdbcConfig.class, DataDataSourceBuilder.class, SQL.class, SpringDataConfig.class, HibernateConfig.class)); } @Override @@ -51,13 +44,11 @@ public Set> servletContextListeners @Override public Set jaxRsResources() { - return null; } @Override public Set jaxRsPackages() { - return null; } diff --git a/micro-data/src/main/java/com/aol/micro/server/spring/SpringConfigurer.java b/micro-data/src/main/java/com/aol/micro/server/spring/SpringConfigurer.java index d84bf47f9..0f706f2d2 100644 --- a/micro-data/src/main/java/com/aol/micro/server/spring/SpringConfigurer.java +++ b/micro-data/src/main/java/com/aol/micro/server/spring/SpringConfigurer.java @@ -7,20 +7,17 @@ import lombok.Setter; import org.hibernate.SessionFactory; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.orm.hibernate5.HibernateTransactionManager; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import com.aol.micro.server.config.Config; -import com.aol.micro.server.spring.datasource.DataSourceBuilder; +import com.aol.micro.server.spring.datasource.DataDataSourceBuilder; import com.aol.micro.server.spring.datasource.JdbcConfig; import com.aol.micro.server.spring.datasource.hibernate.HibernateSessionBuilder; public class SpringConfigurer implements SpringDBConfig { - private final Logger logger = LoggerFactory.getLogger(this.getClass()); - + @Setter private ConfigurableListableBeanFactory beanFactory; @Setter @@ -31,8 +28,7 @@ public class SpringConfigurer implements SpringDBConfig { private Config config; @Setter private AnnotationConfigWebApplicationContext rootContext; - - + public void createSpringApp(String name) { JdbcConfig jdbc = buildJdbcProperties(rootContext, name); @@ -42,11 +38,11 @@ public void createSpringApp(String name) { beanFactory.registerSingleton(name + "DataSource", dataSource); beanFactory.registerSingleton(name + "SessionFactory", sessionFactory); beanFactory.registerSingleton(name + "HibernateTransactionManager", buildTransactionManager(name, config, dataSource, jdbc)); - + } private DataSource buildDataSource(String name, JdbcConfig jdbc) { - return DataSourceBuilder.builder().env(jdbc).build().mainDataSource(); + return DataDataSourceBuilder.builder().env(jdbc).build().mainDataSource(); } private JdbcConfig buildJdbcProperties(AnnotationConfigWebApplicationContext rootContext, String name) { diff --git a/micro-data/src/main/java/com/aol/micro/server/spring/datasource/DataSourceBuilder.java b/micro-data/src/main/java/com/aol/micro/server/spring/datasource/DataDataSourceBuilder.java similarity index 88% rename from micro-data/src/main/java/com/aol/micro/server/spring/datasource/DataSourceBuilder.java rename to micro-data/src/main/java/com/aol/micro/server/spring/datasource/DataDataSourceBuilder.java index b023547c0..0f86ec36e 100644 --- a/micro-data/src/main/java/com/aol/micro/server/spring/datasource/DataSourceBuilder.java +++ b/micro-data/src/main/java/com/aol/micro/server/spring/datasource/DataDataSourceBuilder.java @@ -4,8 +4,8 @@ import javax.sql.DataSource; import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.NoArgsConstructor; -import lombok.experimental.Builder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -16,15 +16,16 @@ @Configuration @NoArgsConstructor @AllArgsConstructor -public class DataSourceBuilder { - - @Resource(name="mainEnv") +public class DataDataSourceBuilder { + + @Resource(name = "mainEnv") private JdbcConfig env; @Bean(destroyMethod = "close", name = "mainDataSource") public DataSource mainDataSource() { return getDataSource(); } + private DataSource getDataSource() { HikariDataSource ds = new HikariDataSource(); @@ -32,9 +33,8 @@ private DataSource getDataSource() { ds.setJdbcUrl(env.getUrl()); ds.setUsername(env.getUsername()); ds.setPassword(env.getPassword()); - return ds; } - + } diff --git a/micro-data/src/main/java/com/aol/micro/server/spring/datasource/hibernate/HibernateSessionBuilder.java b/micro-data/src/main/java/com/aol/micro/server/spring/datasource/hibernate/HibernateSessionBuilder.java index d8c2185f0..ff09bef1c 100644 --- a/micro-data/src/main/java/com/aol/micro/server/spring/datasource/hibernate/HibernateSessionBuilder.java +++ b/micro-data/src/main/java/com/aol/micro/server/spring/datasource/hibernate/HibernateSessionBuilder.java @@ -6,7 +6,7 @@ import javax.sql.DataSource; import lombok.AllArgsConstructor; -import lombok.experimental.Builder; +import lombok.Builder; import org.hibernate.SessionFactory; import org.slf4j.Logger; @@ -17,60 +17,52 @@ import com.aol.cyclops.invokedynamic.ExceptionSoftener; import com.aol.micro.server.spring.datasource.JdbcConfig; - @Builder @AllArgsConstructor public class HibernateSessionBuilder { - private final Logger logger = LoggerFactory.getLogger( getClass()); - - + private final Logger logger = LoggerFactory.getLogger(getClass()); + private final JdbcConfig env; private final DataSource dataSource; private final List packages; - + public SessionFactory sessionFactory() { - + LocalSessionFactoryBean sessionFactoryBean = new LocalSessionFactoryBean(); sessionFactoryBean.setDataSource(dataSource); List packagesToScan = packages; - sessionFactoryBean.setPackagesToScan(packagesToScan - .toArray(new String[packagesToScan.size()])); + sessionFactoryBean.setPackagesToScan(packagesToScan.toArray(new String[packagesToScan.size()])); Properties p = new Properties(); p.setProperty("hibernate.dialect", env.getDialect()); - if(env.getShowSql()!=null) + if (env.getShowSql() != null) p.setProperty("hibernate.show_sql", env.getShowSql()); if (env.getDdlAuto() != null) p.setProperty("hibernate.hbm2ddl.auto", env.getDdlAuto()); - logger.info( - "Hibernate properties [ hibernate.dialect : {} ; hibernate.hbm2ddl.auto : {} ]", - env.getDialect(), env.getDdlAuto()); + logger.info("Hibernate properties [ hibernate.dialect : {} ; hibernate.hbm2ddl.auto : {} ]", env.getDialect(), env.getDdlAuto()); sessionFactoryBean.setHibernateProperties(p); try { sessionFactoryBean.afterPropertiesSet(); } catch (Exception e) { - logger.error(e.getMessage(),e); + logger.error(e.getMessage(), e); ExceptionSoftener.throwSoftenedException(e); } - - try{ + + try { return sessionFactoryBean.getObject(); - }catch(Exception e){ - logger.error(e.getMessage(),e); + } catch (Exception e) { + logger.error(e.getMessage(), e); ExceptionSoftener.throwSoftenedException(e); } return null; } - - - public HibernateTransactionManager transactionManager() { HibernateTransactionManager transactionManager = new HibernateTransactionManager(); transactionManager.setSessionFactory(sessionFactory()); diff --git a/micro-data/src/main/java/com/aol/micro/server/spring/datasource/hibernate/SpringDataConfig.java b/micro-data/src/main/java/com/aol/micro/server/spring/datasource/hibernate/SpringDataConfig.java index 2ac5cdc07..c63a8f426 100644 --- a/micro-data/src/main/java/com/aol/micro/server/spring/datasource/hibernate/SpringDataConfig.java +++ b/micro-data/src/main/java/com/aol/micro/server/spring/datasource/hibernate/SpringDataConfig.java @@ -4,17 +4,14 @@ import javax.persistence.EntityManagerFactory; import javax.sql.DataSource; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.orm.jpa.JpaTransactionManager; import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; -import com.aol.micro.server.config.Config; import com.aol.micro.server.config.ConfigAccessor; import com.aol.micro.server.spring.datasource.JdbcConfig; @@ -35,9 +32,8 @@ public EntityManagerFactory entityManagerFactory() { LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean(); factory.setJpaVendorAdapter(vendorAdapter); - - factory.setPackagesToScan(new ConfigAccessor().get().getDataSources() - .get(new ConfigAccessor().get().getDefaultDataSourceName()) + + factory.setPackagesToScan(new ConfigAccessor().get().getDataSources().get(new ConfigAccessor().get().getDefaultDataSourceName()) .toArray(new String[0])); factory.setDataSource(dataSource); factory.afterPropertiesSet(); diff --git a/micro-mysql/src/main/java/com/aol/micro/server/mysql/distlock/MySqlPlugin.java b/micro-mysql/src/main/java/com/aol/micro/server/mysql/distlock/MySqlPlugin.java index 00bb6b053..0190f0376 100644 --- a/micro-mysql/src/main/java/com/aol/micro/server/mysql/distlock/MySqlPlugin.java +++ b/micro-mysql/src/main/java/com/aol/micro/server/mysql/distlock/MySqlPlugin.java @@ -5,12 +5,12 @@ import java.util.Set; import com.aol.micro.server.Plugin; -import com.aol.micro.server.mysql.distlock.datasource.DataSourceBuilder; +import com.aol.micro.server.mysql.distlock.datasource.MysqlDataSourceBuilder; import com.aol.micro.server.mysql.distlock.datasource.JdbcConfigDistLock; public class MySqlPlugin implements Plugin { public Set springClasses(){ return new HashSet(Arrays.asList(DistributedLockServiceMySqlImpl.class, - DataSourceBuilder.class,JdbcConfigDistLock.class)); + MysqlDataSourceBuilder.class,JdbcConfigDistLock.class)); } } diff --git a/micro-mysql/src/main/java/com/aol/micro/server/mysql/distlock/datasource/DataSourceBuilder.java b/micro-mysql/src/main/java/com/aol/micro/server/mysql/distlock/datasource/MysqlDataSourceBuilder.java similarity index 93% rename from micro-mysql/src/main/java/com/aol/micro/server/mysql/distlock/datasource/DataSourceBuilder.java rename to micro-mysql/src/main/java/com/aol/micro/server/mysql/distlock/datasource/MysqlDataSourceBuilder.java index 18939807c..39fa05f24 100644 --- a/micro-mysql/src/main/java/com/aol/micro/server/mysql/distlock/datasource/DataSourceBuilder.java +++ b/micro-mysql/src/main/java/com/aol/micro/server/mysql/distlock/datasource/MysqlDataSourceBuilder.java @@ -4,8 +4,8 @@ import javax.sql.DataSource; import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.NoArgsConstructor; -import lombok.experimental.Builder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -16,7 +16,7 @@ @Configuration @NoArgsConstructor @AllArgsConstructor -public class DataSourceBuilder { +public class MysqlDataSourceBuilder { @Resource(name = "distLockingEnv") private JdbcConfigDistLock env; diff --git a/micro-tutorial/src/main/java/app1/simple/MicroserverTutorial.java b/micro-tutorial/src/main/java/app1/simple/MicroserverTutorial.java index fc26cb58e..5fa10287b 100644 --- a/micro-tutorial/src/main/java/app1/simple/MicroserverTutorial.java +++ b/micro-tutorial/src/main/java/app1/simple/MicroserverTutorial.java @@ -3,7 +3,7 @@ import com.aol.micro.server.MicroserverApp; import com.aol.micro.server.config.Microserver; import com.aol.micro.server.spring.DataPlugin; -import com.aol.micro.server.spring.datasource.DataSourceBuilder; +import com.aol.micro.server.spring.datasource.DataDataSourceBuilder; import com.aol.micro.server.spring.datasource.JdbcConfig; import com.aol.micro.server.spring.datasource.hibernate.HibernateConfig; import com.aol.micro.server.spring.datasource.hibernate.SpringDataConfig;