From 6ab5741f811a4a2f6b5672811899f19a726786ec Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Mon, 17 Jun 2013 20:43:06 +0200 Subject: wip --- src/test/java/io/trygvis/test/DbUtil.java | 8 +- .../io/trygvis/test/jdbc/AsyncConsumerExample.java | 6 +- .../java/io/trygvis/test/spring/TestConfig.java | 124 +-------------------- src/test/resources/logback.xml | 14 ++- 4 files changed, 18 insertions(+), 134 deletions(-) diff --git a/src/test/java/io/trygvis/test/DbUtil.java b/src/test/java/io/trygvis/test/DbUtil.java index 46459b0..025442e 100644 --- a/src/test/java/io/trygvis/test/DbUtil.java +++ b/src/test/java/io/trygvis/test/DbUtil.java @@ -23,7 +23,7 @@ public class DbUtil { return createDataSource(jdbcUrl, user, pass); } - public static DataSource createDataSource(String jdbcUrl, String username, String password) throws SQLException { + public static BoneCPDataSource createDataSource(String jdbcUrl, String username, String password) throws SQLException { BoneCPDataSource ds = new BoneCPDataSource(); ds.setLogStatementsEnabled(true); @@ -36,9 +36,9 @@ public class DbUtil { ds.setDefaultAutoCommit(false); ds.setIdleConnectionTestPeriodInSeconds(60); ds.setIdleMaxAgeInSeconds(240); - ds.setMaxConnectionsPerPartition(2); - ds.setMinConnectionsPerPartition(0); - ds.setPartitionCount(1); + ds.setMaxConnectionsPerPartition(4); + ds.setMinConnectionsPerPartition(2); + ds.setPartitionCount(2); ds.setAcquireIncrement(1); ds.setStatementsCacheSize(1000); ds.setReleaseHelperThreads(1); diff --git a/src/test/java/io/trygvis/test/jdbc/AsyncConsumerExample.java b/src/test/java/io/trygvis/test/jdbc/AsyncConsumerExample.java index 361c2c5..5bcffe7 100644 --- a/src/test/java/io/trygvis/test/jdbc/AsyncConsumerExample.java +++ b/src/test/java/io/trygvis/test/jdbc/AsyncConsumerExample.java @@ -38,8 +38,6 @@ public class AsyncConsumerExample { Long a = Long.valueOf(task.arguments.get(0)); Long b = Long.valueOf(task.arguments.get(1)); - System.out.println("a + b = " + a + " + " + b + " = " + (a + b)); - return singletonList(newTask(outputName, new Date(), Long.toString(a + b))); } }; @@ -82,8 +80,8 @@ public class AsyncConsumerExample { }, 1000, 1000); long start = currentTimeMillis(); - controller.start(new ScheduledThreadPoolExecutor(1)); - Thread.sleep(5 * 1000); + controller.start(new ScheduledThreadPoolExecutor(4)); + Thread.sleep(60 * 1000); controller.stop(); long end = currentTimeMillis(); timer.cancel(); diff --git a/src/test/java/io/trygvis/test/spring/TestConfig.java b/src/test/java/io/trygvis/test/spring/TestConfig.java index a1d95c0..4df8ce1 100755 --- a/src/test/java/io/trygvis/test/spring/TestConfig.java +++ b/src/test/java/io/trygvis/test/spring/TestConfig.java @@ -1,6 +1,7 @@ package io.trygvis.test.spring; import com.jolbox.bonecp.BoneCPDataSource; +import io.trygvis.test.DbUtil; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; @@ -15,17 +16,16 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; import org.springframework.transaction.support.TransactionTemplate; import javax.sql.DataSource; +import java.sql.SQLException; @Configuration @ComponentScan(basePackages = "io.trygvis") @EnableTransactionManagement -//@EnableJpaRepositories(basePackages = "io.trygvis.data") public class TestConfig { @Bean public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() throws Exception { return new PropertySourcesPlaceholderConfigurer() {{ -// setLocation(new UrlResource("file:environment.properties")); setProperties(System.getProperties()); setLocalOverride(true); }}; @@ -36,131 +36,15 @@ public class TestConfig { return new JdbcTemplate(dataSource); } -// public SpringBeanJobFactory springBeanJobFactory() { -// SpringBeanJobFactory factory = new SpringBeanJobFactory(); -// return factory; -// } - -/* - @Bean - public SchedulerFactoryBean quartz(DataSource dataSource, PlatformTransactionManager transactionManager) { - SchedulerFactoryBean bean = new SchedulerFactoryBean(); - bean.setApplicationContextSchedulerContextKey("applicationContext"); - bean.setDataSource(dataSource); - bean.setTransactionManager(transactionManager); -// bean.setJobFactory(new JobFactory() { -// public Job newJob(TriggerFiredBundle bundle, Scheduler scheduler) throws SchedulerException { -// Class klass = bundle.getJobDetail().getJobClass(); -// } -// }); - - Properties quartzProperties = new Properties(); - quartzProperties.setProperty("org.quartz.scheduler.skipUpdateCheck", "true"); -// quartzProperties.setProperty("org.quartz.jobStore.selectWithLockSQL", "false"); - quartzProperties.setProperty("org.quartz.jobStore.driverDelegateClass", PostgreSQLDelegate.class.getName()); - quartzProperties.setProperty("org.quartz.scheduler.jmx.export", "true"); - bean.setQuartzProperties(quartzProperties); - return bean; - } -*/ - - // This turns out to be fairly useless as Spring won't register them automatically. - // It's probably better to use @Scheduled/@Async instead - /* - @Bean(name = "my-job") - public JobDetailFactoryBean myJobDetailBean() { - JobDetailFactoryBean bean = new JobDetailFactoryBean(); - bean.setJobClass(MyJob.class); - bean.setDurability(true); - - return bean; - } - - @Bean - public CronTriggerFactoryBean myJobTrigger(JobDetail jobDetail) { - CronTriggerFactoryBean bean = new CronTriggerFactoryBean(); - bean.setName("my-trigger"); - bean.setBeanName("my-job"); - bean.setJobDetail(jobDetail); - bean.setCronExpression("0/10 * * * * ?"); - - return bean; - } - */ - @Bean public DataSource dataSource(@Value("${database.url}") String jdbcUrl, @Value("${database.username}") String username, - @Value("${database.password}") String password) { - BoneCPDataSource ds = new BoneCPDataSource(); - - ds.setLogStatementsEnabled(true); - - ds.setJdbcUrl(jdbcUrl); - ds.setUsername(username); - ds.setPassword(password); + @Value("${database.password}") String password) throws SQLException { + BoneCPDataSource ds = DbUtil.createDataSource(jdbcUrl, username, password); - ds.setDefaultAutoCommit(false); - ds.setIdleConnectionTestPeriodInSeconds(60); - ds.setIdleMaxAgeInSeconds(240); - ds.setMaxConnectionsPerPartition(40); - ds.setMinConnectionsPerPartition(0); - ds.setPartitionCount(1); - ds.setAcquireIncrement(1); - ds.setStatementsCacheSize(1000); - ds.setReleaseHelperThreads(3); - ds.setStatisticsEnabled(true); return new TransactionAwareDataSourceProxy(new LazyConnectionDataSourceProxy(ds)); } -/* - @Bean - public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource, - @Value("${hibernate.hbm2ddl.auto}") String hbm2ddl, - @Value("${hibernate.showSql:false}") boolean showSql, - @Value("${hibernate.dialect}") String dialect) { - LocalContainerEntityManagerFactoryBean x = new LocalContainerEntityManagerFactoryBean(); - x.setDataSource(dataSource); - x.setJpaPropertyMap(createJpaMap(hbm2ddl, showSql, dialect)); - x.setPackagesToScan(Article.class.getPackage().getName()); - HibernatePersistence persistenceProvider = new HibernatePersistence(); - x.setPersistenceProvider(persistenceProvider); - return x; - } - - public static Map createJpaMap(String hbm2ddl, boolean showSql, String dialect) { - Map map = new HashMap<>(); - map.put(HBM2DDL_AUTO, hbm2ddl); - map.put(FORMAT_SQL, showSql); - map.put(SHOW_SQL, showSql); - map.put(USE_SQL_COMMENTS, showSql); - map.put(GENERATE_STATISTICS, true); - map.put(NAMING_STRATEGY, ImprovedNamingStrategy.class.getName()); - - map.put(DEFAULT_CACHE_CONCURRENCY_STRATEGY, CacheConcurrencyStrategy.READ_WRITE.toString()); - map.put(CURRENT_SESSION_CONTEXT_CLASS, SpringSessionContext.class.getName()); -// map.put(CACHE_REGION_FACTORY, EhCacheRegionFactory.class.getName()); - map.put(USE_SECOND_LEVEL_CACHE, false); - map.put(USE_QUERY_CACHE, false); -// map.put(SHARED_CACHE_MODE, SharedCacheMode.ENABLE_SELECTIVE.toString()); - - map.put(DIALECT, dialect); - map.put("hibernate.temp.use_jdbc_metadata_defaults", "false"); - - return map; - } - - @Bean - public SessionFactory sessionFactory(LocalContainerEntityManagerFactoryBean entityManagerFactory) { - return ((HibernateEntityManagerFactory) entityManagerFactory.nativeEntityManagerFactory).getSessionFactory(); - } - - @Bean - public JpaTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) { - return new JpaTransactionManager(entityManagerFactory); - } -*/ - @Bean public PlatformTransactionManager transactionManager(DataSource dataSource) { return new DataSourceTransactionManager(dataSource); diff --git a/src/test/resources/logback.xml b/src/test/resources/logback.xml index 65b37a6..f6e0f47 100755 --- a/src/test/resources/logback.xml +++ b/src/test/resources/logback.xml @@ -1,19 +1,21 @@ - - + + + + + --> - + @@ -21,7 +23,7 @@ - + -- cgit v1.2.3