Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
35d062f5
Commit
35d062f5
authored
Jun 20, 2017
by
Stephane Nicoll
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Alias spring.datasource.name to Hikari's poolName property
Closes gh-9547
parent
78a9ace5
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
45 additions
and
38 deletions
+45
-38
DataSourceConfiguration.java
...work/boot/autoconfigure/jdbc/DataSourceConfiguration.java
+6
-1
DataSourceJmxConfigurationTests.java
...t/autoconfigure/jdbc/DataSourceJmxConfigurationTests.java
+2
-2
HikariDataSourceConfigurationTests.java
...utoconfigure/jdbc/HikariDataSourceConfigurationTests.java
+37
-35
No files found.
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration.java
View file @
35d062f5
...
...
@@ -77,7 +77,12 @@ abstract class DataSourceConfiguration {
@Bean
@ConfigurationProperties
(
prefix
=
"spring.datasource.hikari"
)
public
HikariDataSource
dataSource
(
DataSourceProperties
properties
)
{
return
createDataSource
(
properties
,
HikariDataSource
.
class
);
HikariDataSource
dataSource
=
createDataSource
(
properties
,
HikariDataSource
.
class
);
if
(
properties
.
getName
()
!=
null
)
{
dataSource
.
setPoolName
(
properties
.
getName
());
}
return
dataSource
;
}
}
...
...
spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/DataSourceJmxConfigurationTests.java
View file @
35d062f5
...
...
@@ -75,7 +75,7 @@ public class DataSourceJmxConfigurationTests {
throws
MalformedObjectNameException
{
String
poolName
=
UUID
.
randomUUID
().
toString
();
load
(
"spring.datasource.type="
+
HikariDataSource
.
class
.
getName
(),
"spring.datasource.
hikari.pool-
name="
+
poolName
,
"spring.datasource.name="
+
poolName
,
"spring.datasource.hikari.register-mbeans=true"
);
assertThat
(
this
.
context
.
getBeansOfType
(
HikariDataSource
.
class
)).
hasSize
(
1
);
assertThat
(
this
.
context
.
getBean
(
HikariDataSource
.
class
).
isRegisterMbeans
())
...
...
@@ -89,7 +89,7 @@ public class DataSourceJmxConfigurationTests {
String
poolName
=
UUID
.
randomUUID
().
toString
();
load
(
"spring.datasource.type="
+
HikariDataSource
.
class
.
getName
(),
"spring.jmx.enabled=false"
,
"spring.datasource.
hikari.pool-
name="
+
poolName
,
"spring.datasource.name="
+
poolName
,
"spring.datasource.hikari.register-mbeans=true"
);
assertThat
(
this
.
context
.
getBeansOfType
(
HikariDataSource
.
class
)).
hasSize
(
1
);
assertThat
(
this
.
context
.
getBean
(
HikariDataSource
.
class
).
isRegisterMbeans
())
...
...
spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/HikariDataSourceConfigurationTests.java
View file @
35d062f5
...
...
@@ -24,12 +24,8 @@ import com.zaxxer.hikari.HikariDataSource;
import
org.junit.After
;
import
org.junit.Test
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.boot.test.util.TestPropertyValues
;
import
org.springframework.context.annotation.AnnotationConfigApplicationContext
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.util.ReflectionUtils
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
...
...
@@ -38,33 +34,31 @@ import static org.assertj.core.api.Assertions.assertThat;
* Tests for {@link HikariDataSourceConfiguration}.
*
* @author Dave Syer
* @author Stephane Nicoll
*/
public
class
HikariDataSourceConfigurationTests
{
private
static
final
String
PREFIX
=
"spring.datasource.hikari."
;
private
final
AnnotationConfigApplicationContext
context
=
new
AnnotationConfigApplicationContext
();
private
AnnotationConfigApplicationContext
context
;
@After
public
void
restore
()
{
public
void
close
()
{
if
(
this
.
context
!=
null
)
{
this
.
context
.
close
();
}
EmbeddedDatabaseConnection
.
override
=
null
;
}
@Test
public
void
testDataSourceExists
()
throws
Exception
{
this
.
context
.
register
(
HikariDataSourceConfiguration
.
class
);
this
.
context
.
refresh
();
assertThat
(
this
.
context
.
getBean
(
DataSource
.
class
)).
isNotNull
();
assertThat
(
this
.
context
.
getBean
(
HikariDataSource
.
class
)).
isNotNull
();
load
();
assertThat
(
this
.
context
.
getBeansOfType
(
DataSource
.
class
)).
hasSize
(
1
);
assertThat
(
this
.
context
.
getBeansOfType
(
HikariDataSource
.
class
)).
hasSize
(
1
);
}
@Test
public
void
testDataSourcePropertiesOverridden
()
throws
Exception
{
this
.
context
.
register
(
HikariDataSourceConfiguration
.
class
);
TestPropertyValues
.
of
(
PREFIX
+
"jdbcUrl:jdbc:foo//bar/spam"
)
.
applyTo
(
this
.
context
);
TestPropertyValues
.
of
(
PREFIX
+
"maxLifetime:1234"
).
applyTo
(
this
.
context
);
this
.
context
.
refresh
();
load
(
"spring.datasource.hikari.jdbc-url=jdbc:foo//bar/spam"
,
"spring.datasource.hikari.max-lifetime=1234"
);
HikariDataSource
ds
=
this
.
context
.
getBean
(
HikariDataSource
.
class
);
assertThat
(
ds
.
getJdbcUrl
()).
isEqualTo
(
"jdbc:foo//bar/spam"
);
assertThat
(
ds
.
getMaxLifetime
()).
isEqualTo
(
1234
);
...
...
@@ -73,12 +67,7 @@ public class HikariDataSourceConfigurationTests {
@Test
public
void
testDataSourceGenericPropertiesOverridden
()
throws
Exception
{
this
.
context
.
register
(
HikariDataSourceConfiguration
.
class
);
TestPropertyValues
.
of
(
PREFIX
+
"dataSourceProperties.dataSourceClassName:org.h2.JDBCDataSource"
)
.
applyTo
(
this
.
context
);
this
.
context
.
refresh
();
load
(
"spring.datasource.hikari.data-source-properties.dataSourceClassName=org.h2.JDBCDataSource"
);
HikariDataSource
ds
=
this
.
context
.
getBean
(
HikariDataSource
.
class
);
assertThat
(
ds
.
getDataSourceProperties
().
getProperty
(
"dataSourceClassName"
))
.
isEqualTo
(
"org.h2.JDBCDataSource"
);
...
...
@@ -86,12 +75,26 @@ public class HikariDataSourceConfigurationTests {
@Test
public
void
testDataSourceDefaultsPreserved
()
throws
Exception
{
this
.
context
.
register
(
HikariDataSourceConfiguration
.
class
);
this
.
context
.
refresh
();
load
();
HikariDataSource
ds
=
this
.
context
.
getBean
(
HikariDataSource
.
class
);
assertThat
(
ds
.
getMaxLifetime
()).
isEqualTo
(
1800000
);
}
@Test
public
void
nameIsAliasedToPoolName
()
{
load
(
"spring.datasource.name=myDS"
);
HikariDataSource
ds
=
this
.
context
.
getBean
(
HikariDataSource
.
class
);
assertThat
(
ds
.
getPoolName
()).
isEqualTo
(
"myDS"
);
}
@Test
public
void
poolNameTakesPrecedenceOverName
()
{
load
(
"spring.datasource.name=myDS"
,
"spring.datasource.hikari.pool-name=myHikariDS"
);
HikariDataSource
ds
=
this
.
context
.
getBean
(
HikariDataSource
.
class
);
assertThat
(
ds
.
getPoolName
()).
isEqualTo
(
"myHikariDS"
);
}
@SuppressWarnings
(
"unchecked"
)
public
static
<
T
>
T
getField
(
Class
<?>
target
,
String
name
)
{
Field
field
=
ReflectionUtils
.
findField
(
target
,
name
,
null
);
...
...
@@ -99,16 +102,15 @@ public class HikariDataSourceConfigurationTests {
return
(
T
)
ReflectionUtils
.
getField
(
field
,
target
);
}
@Configuration
@EnableConfigurationProperties
protected
static
class
HikariDataSourceConfiguration
{
@Bean
@ConfigurationProperties
(
prefix
=
"spring.datasource.hikari"
)
public
DataSource
dataSource
()
{
return
DataSourceBuilder
.
create
().
type
(
HikariDataSource
.
class
).
build
();
}
private
void
load
(
String
...
environment
)
{
AnnotationConfigApplicationContext
ctx
=
new
AnnotationConfigApplicationContext
();
TestPropertyValues
.
of
(
environment
)
.
and
(
"spring.datasource.initialize"
,
"false"
)
.
and
(
"spring.datasource.type"
,
HikariDataSource
.
class
.
getName
())
.
applyTo
(
ctx
);
ctx
.
register
(
DataSourceAutoConfiguration
.
class
);
ctx
.
refresh
();
this
.
context
=
ctx
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment