51
51
* @author Stephane Nicoll
52
52
* @author Andy Wilkinson
53
53
* @author Tommy Ludwig
54
+ * @author Yanming Zhou
54
55
*/
55
56
class DataSourcePoolMetricsAutoConfigurationTests {
56
57
@@ -156,14 +157,15 @@ void hikariDataSourceInstrumentationCanBeDisabled() {
156
157
157
158
@ Test
158
159
void allHikariDataSourcesCanBeInstrumented () {
159
- this .contextRunner .withUserConfiguration (TwoHikariDataSourcesConfiguration .class )
160
+ this .contextRunner .withUserConfiguration (MultipleHikariDataSourcesConfiguration .class )
160
161
.withConfiguration (AutoConfigurations .of (DataSourceAutoConfiguration .class ))
161
162
.run ((context ) -> {
162
- context .getBean ("firstDataSource" , DataSource .class ).getConnection ();
163
- context .getBean ("secondOne" , DataSource .class ).getConnection ();
163
+ context .getBean ("standardDataSource" , DataSource .class ).getConnection ();
164
+ context .getBean ("nonDefault" , DataSource .class ).getConnection ();
165
+ context .getBean ("nonAutowire" , DataSource .class ).getConnection ();
164
166
MeterRegistry registry = context .getBean (MeterRegistry .class );
165
- registry .get ("hikaricp.connections" ).tags ( "pool" , "firstDataSource" ). meter ();
166
- registry . get ( "hikaricp.connections" ). tags ( "pool" , "secondOne" ). meter ( );
167
+ assertThat ( registry .find ("hikaricp.connections" ).meters ()). map (( meter ) -> meter . getId (). getTag ( "pool" ))
168
+ . containsOnly ( "standardDataSource" , "nonDefault" );
167
169
});
168
170
}
169
171
@@ -182,16 +184,17 @@ void someHikariDataSourcesCanBeInstrumented() {
182
184
183
185
@ Test
184
186
void allHikariDataSourcesCanBeInstrumentedWhenUsingLazyInitialization () {
185
- this .contextRunner .withUserConfiguration (TwoHikariDataSourcesConfiguration .class )
187
+ this .contextRunner .withUserConfiguration (MultipleHikariDataSourcesConfiguration .class )
186
188
.withConfiguration (AutoConfigurations .of (DataSourceAutoConfiguration .class ))
187
189
.withInitializer (
188
190
(context ) -> context .addBeanFactoryPostProcessor (new LazyInitializationBeanFactoryPostProcessor ()))
189
191
.run ((context ) -> {
190
- context .getBean ("firstDataSource" , DataSource .class ).getConnection ();
191
- context .getBean ("secondOne" , DataSource .class ).getConnection ();
192
+ context .getBean ("standardDataSource" , DataSource .class ).getConnection ();
193
+ context .getBean ("nonDefault" , DataSource .class ).getConnection ();
194
+ context .getBean ("nonAutowire" , DataSource .class ).getConnection ();
192
195
MeterRegistry registry = context .getBean (MeterRegistry .class );
193
- registry .get ("hikaricp.connections" ).tags ( "pool" , "firstDataSource" ). meter ();
194
- registry . get ( "hikaricp.connections" ). tags ( "pool" , "secondOne" ). meter ( );
196
+ assertThat ( registry .find ("hikaricp.connections" ).meters ()). map (( meter ) -> meter . getId (). getTag ( "pool" ))
197
+ . containsOnly ( "standardDataSource" , "nonDefault" );
195
198
});
196
199
}
197
200
@@ -257,16 +260,21 @@ private DataSource createDataSource() {
257
260
}
258
261
259
262
@ Configuration (proxyBeanMethods = false )
260
- static class TwoHikariDataSourcesConfiguration {
263
+ static class MultipleHikariDataSourcesConfiguration {
261
264
262
265
@ Bean
263
- DataSource firstDataSource () {
264
- return createHikariDataSource ("firstDataSource " );
266
+ DataSource standardDataSource () {
267
+ return createHikariDataSource ("standardDataSource " );
265
268
}
266
269
267
- @ Bean
268
- DataSource secondOne () {
269
- return createHikariDataSource ("secondOne" );
270
+ @ Bean (defaultCandidate = false )
271
+ DataSource nonDefault () {
272
+ return createHikariDataSource ("nonDefault" );
273
+ }
274
+
275
+ @ Bean (autowireCandidate = false )
276
+ DataSource nonAutowire () {
277
+ return createHikariDataSource ("nonAutowire" );
270
278
}
271
279
272
280
}
0 commit comments