From 62e02d3d81af78cebfccd1dc3674a22695403818 Mon Sep 17 00:00:00 2001 From: Christian Dupuis Date: Fri, 10 Jan 2014 11:32:18 +0100 Subject: [PATCH] Add initialSize configuration property to datasource auto configuration fixes #206 --- .../jdbc/AbstractDataSourceConfiguration.java | 12 +++++++++++- .../jdbc/CommonsDataSourceConfiguration.java | 8 +++++++- .../jdbc/TomcatDataSourceConfiguration.java | 3 ++- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/AbstractDataSourceConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/AbstractDataSourceConfiguration.java index d77b3274d3..98a22d0519 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/AbstractDataSourceConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/AbstractDataSourceConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2013 the original author or authors. + * Copyright 2012-2014 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -47,6 +47,8 @@ public abstract class AbstractDataSourceConfiguration implements BeanClassLoader private int minIdle = 8; + private int initialSize = 10; + private String validationQuery; private boolean testOnBorrow = false; @@ -122,6 +124,10 @@ public abstract class AbstractDataSourceConfiguration implements BeanClassLoader this.driverClassName = driverClassName; } + public void setInitialSize(int initialSize) { + this.initialSize = initialSize; + } + public void setUrl(String url) { this.url = url; } @@ -158,6 +164,10 @@ public abstract class AbstractDataSourceConfiguration implements BeanClassLoader this.testOnReturn = testOnReturn; } + public int getInitialSize() { + return this.initialSize; + } + protected int getMaxActive() { return this.maxActive; } diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/CommonsDataSourceConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/CommonsDataSourceConfiguration.java index 707f1025fe..9e6fea594b 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/CommonsDataSourceConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/CommonsDataSourceConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2013 the original author or authors. + * Copyright 2012-2014 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -42,6 +42,11 @@ public class CommonsDataSourceConfiguration extends AbstractDataSourceConfigurat private BasicDataSource pool; + public CommonsDataSourceConfiguration() { + // Ensure to set the correct default value for Commons DBCP + setInitialSize(0); + } + @Bean public DataSource dataSource() { logger.info("Hint: using Commons DBCP BasicDataSource. It's going to work, " @@ -55,6 +60,7 @@ public class CommonsDataSourceConfiguration extends AbstractDataSourceConfigurat if (getPassword() != null) { this.pool.setPassword(getPassword()); } + this.pool.setInitialSize(getInitialSize()); this.pool.setMaxActive(getMaxActive()); this.pool.setMaxIdle(getMaxIdle()); this.pool.setMinIdle(getMinIdle()); diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/TomcatDataSourceConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/TomcatDataSourceConfiguration.java index a8f44ff984..85d30d0128 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/TomcatDataSourceConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/TomcatDataSourceConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2013 the original author or authors. + * Copyright 2012-2014 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -45,6 +45,7 @@ public class TomcatDataSourceConfiguration extends AbstractDataSourceConfigurati if (getPassword() != null) { this.pool.setPassword(getPassword()); } + this.pool.setInitialSize(getInitialSize()); this.pool.setMaxActive(getMaxActive()); this.pool.setMaxIdle(getMaxIdle()); this.pool.setMinIdle(getMinIdle());