Skip to content

Commit 6db4330

Browse files
committed
Prevent Elasticsearch from configuring Netty's available processors
1 parent c0e06f1 commit 6db4330

File tree

1 file changed

+53
-43
lines changed

1 file changed

+53
-43
lines changed

spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/HealthIndicatorAutoConfigurationTests.java

Lines changed: 53 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,8 @@
7979
*/
8080
public class HealthIndicatorAutoConfigurationTests {
8181

82-
public final ContextLoader contextLoader = new ContextLoader()
83-
.autoConfig(HealthIndicatorAutoConfiguration.class,
84-
ManagementServerProperties.class);
82+
public final ContextLoader contextLoader = new ContextLoader().autoConfig(
83+
HealthIndicatorAutoConfiguration.class, ManagementServerProperties.class);
8584

8685
@Test
8786
public void defaultHealthIndicator() {
@@ -99,12 +98,12 @@ public void defaultHealthIndicatorsDisabled() {
9998
public void defaultHealthIndicatorsDisabledWithCustomOne() {
10099
this.contextLoader.config(CustomHealthIndicator.class)
101100
.env("management.health.defaults.enabled:false").load(context -> {
102-
Map<String, HealthIndicator> beans = context
103-
.getBeansOfType(HealthIndicator.class);
104-
assertThat(beans).hasSize(1);
105-
assertThat(context.getBean("customHealthIndicator"))
106-
.isSameAs(beans.values().iterator().next());
107-
});
101+
Map<String, HealthIndicator> beans = context
102+
.getBeansOfType(HealthIndicator.class);
103+
assertThat(beans).hasSize(1);
104+
assertThat(context.getBean("customHealthIndicator"))
105+
.isSameAs(beans.values().iterator().next());
106+
});
108107
}
109108

110109
@Test
@@ -132,16 +131,18 @@ public void notRedisHealthIndicator() {
132131

133132
@Test
134133
public void mongoHealthIndicator() {
135-
this.contextLoader.autoConfigFirst(MongoAutoConfiguration.class,
136-
MongoDataAutoConfiguration.class)
134+
this.contextLoader
135+
.autoConfigFirst(MongoAutoConfiguration.class,
136+
MongoDataAutoConfiguration.class)
137137
.env("management.health.diskspace.enabled:false")
138138
.load(hasSingleHealthIndicator(MongoHealthIndicator.class));
139139
}
140140

141141
@Test
142142
public void notMongoHealthIndicator() {
143-
this.contextLoader.autoConfigFirst(MongoAutoConfiguration.class,
144-
MongoDataAutoConfiguration.class)
143+
this.contextLoader
144+
.autoConfigFirst(MongoAutoConfiguration.class,
145+
MongoDataAutoConfiguration.class)
145146
.env("management.health.mongo.enabled:false",
146147
"management.health.diskspace.enabled:false")
147148
.load(hasSingleHealthIndicator(ApplicationHealthIndicator.class));
@@ -152,10 +153,10 @@ public void combinedHealthIndicator() {
152153
this.contextLoader.autoConfigFirst(MongoAutoConfiguration.class,
153154
RedisAutoConfiguration.class, MongoDataAutoConfiguration.class,
154155
SolrAutoConfiguration.class).load(context -> {
155-
Map<String, HealthIndicator> beans = context
156-
.getBeansOfType(HealthIndicator.class);
157-
assertThat(beans).hasSize(4);
158-
});
156+
Map<String, HealthIndicator> beans = context
157+
.getBeansOfType(HealthIndicator.class);
158+
assertThat(beans).hasSize(4);
159+
});
159160
}
160161

161162
@Test
@@ -167,9 +168,9 @@ public void dataSourceHealthIndicator() {
167168

168169
@Test
169170
public void dataSourceHealthIndicatorWithSeveralDataSources() {
170-
this.contextLoader.config(EmbeddedDataSourceConfiguration.class,
171-
DataSourceConfig.class).env("management.health.diskspace.enabled:false")
172-
.load(context -> {
171+
this.contextLoader
172+
.config(EmbeddedDataSourceConfiguration.class, DataSourceConfig.class)
173+
.env("management.health.diskspace.enabled:false").load(context -> {
173174
Map<String, HealthIndicator> beans = context
174175
.getBeansOfType(HealthIndicator.class);
175176
assertThat(beans).hasSize(1);
@@ -182,34 +183,38 @@ public void dataSourceHealthIndicatorWithSeveralDataSources() {
182183

183184
@Test
184185
public void dataSourceHealthIndicatorWithAbstractRoutingDataSource() {
185-
this.contextLoader.config(EmbeddedDataSourceConfiguration.class,
186-
RoutingDatasourceConfig.class)
186+
this.contextLoader
187+
.config(EmbeddedDataSourceConfiguration.class,
188+
RoutingDatasourceConfig.class)
187189
.env("management.health.diskspace.enabled:false")
188190
.load(hasSingleHealthIndicator(DataSourceHealthIndicator.class));
189191
}
190192

191193
@Test
192194
public void dataSourceHealthIndicatorWithCustomValidationQuery() {
193-
this.contextLoader.config(DataSourceConfig.class,
194-
DataSourcePoolMetadataProvidersConfiguration.class,
195-
HealthIndicatorAutoConfiguration.class).env(
196-
"spring.datasource.test.validation-query:SELECT from FOOBAR",
197-
"management.health.diskspace.enabled:false").load(context -> {
198-
Map<String, HealthIndicator> beans = context
199-
.getBeansOfType(HealthIndicator.class);
200-
assertThat(beans).hasSize(1);
201-
HealthIndicator healthIndicator = beans.values().iterator().next();
202-
assertThat(healthIndicator.getClass()).isEqualTo(DataSourceHealthIndicator.class);
203-
DataSourceHealthIndicator dataSourceHealthIndicator = (DataSourceHealthIndicator) healthIndicator;
204-
assertThat(dataSourceHealthIndicator.getQuery()).isEqualTo("SELECT from FOOBAR");
205-
});
195+
this.contextLoader
196+
.config(DataSourceConfig.class,
197+
DataSourcePoolMetadataProvidersConfiguration.class,
198+
HealthIndicatorAutoConfiguration.class)
199+
.env("spring.datasource.test.validation-query:SELECT from FOOBAR",
200+
"management.health.diskspace.enabled:false")
201+
.load(context -> {
202+
Map<String, HealthIndicator> beans = context
203+
.getBeansOfType(HealthIndicator.class);
204+
assertThat(beans).hasSize(1);
205+
HealthIndicator healthIndicator = beans.values().iterator().next();
206+
assertThat(healthIndicator.getClass())
207+
.isEqualTo(DataSourceHealthIndicator.class);
208+
DataSourceHealthIndicator dataSourceHealthIndicator = (DataSourceHealthIndicator) healthIndicator;
209+
assertThat(dataSourceHealthIndicator.getQuery())
210+
.isEqualTo("SELECT from FOOBAR");
211+
});
206212
}
207213

208214
@Test
209215
public void notDataSourceHealthIndicator() {
210216
this.contextLoader.config(EmbeddedDataSourceConfiguration.class)
211-
.env(
212-
"management.health.db.enabled:false",
217+
.env("management.health.db.enabled:false",
213218
"management.health.diskspace.enabled:false")
214219
.load(hasSingleHealthIndicator(ApplicationHealthIndicator.class));
215220
}
@@ -283,25 +288,30 @@ public void notJmsHealthIndicator() {
283288

284289
@Test
285290
public void elasticsearchHealthIndicator() {
286-
this.contextLoader.autoConfigFirst(JestClientConfiguration.class,
287-
JestAutoConfiguration.class, ElasticsearchAutoConfiguration.class)
291+
this.contextLoader
292+
.autoConfigFirst(JestClientConfiguration.class,
293+
JestAutoConfiguration.class, ElasticsearchAutoConfiguration.class)
288294
.env("spring.data.elasticsearch.cluster-nodes:localhost:0",
289295
"management.health.diskspace.enabled:false")
296+
.systemProperty("es.set.netty.runtime.available.processors", "false")
290297
.load(hasSingleHealthIndicator(ElasticsearchHealthIndicator.class));
291298
}
292299

293300
@Test
294301
public void elasticsearchJestHealthIndicator() {
295-
this.contextLoader.autoConfigFirst(JestClientConfiguration.class,
296-
JestAutoConfiguration.class)
302+
this.contextLoader
303+
.autoConfigFirst(JestClientConfiguration.class,
304+
JestAutoConfiguration.class)
297305
.env("management.health.diskspace.enabled:false")
306+
.systemProperty("es.set.netty.runtime.available.processors", "false")
298307
.load(hasSingleHealthIndicator(ElasticsearchJestHealthIndicator.class));
299308
}
300309

301310
@Test
302311
public void notElasticsearchHealthIndicator() {
303-
this.contextLoader.autoConfigFirst(JestClientConfiguration.class,
304-
JestAutoConfiguration.class, ElasticsearchAutoConfiguration.class)
312+
this.contextLoader
313+
.autoConfigFirst(JestClientConfiguration.class,
314+
JestAutoConfiguration.class, ElasticsearchAutoConfiguration.class)
305315
.env("management.health.elasticsearch.enabled:false",
306316
"spring.data.elasticsearch.properties.path.home:target",
307317
"management.health.diskspace.enabled:false")

0 commit comments

Comments
 (0)