Allow ConditionalOnEnabledEndpoint to be set at class level

See gh-15451
This commit is contained in:
Stephane Nicoll
2019-01-07 13:45:35 +01:00
parent 580c73a026
commit 2d2aa96c05
3 changed files with 34 additions and 15 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2012-2018 the original author or authors.
* Copyright 2012-2019 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.
@@ -148,6 +148,14 @@ public class ConditionalOnEnabledEndpointTests {
.run((context) -> assertThat(context).hasBean("fooBar"));
}
@Test
public void outcomeWhenEndpointEnabledPropertyIsFalseOnClassShouldNotMatch() {
this.contextRunner.withPropertyValues("management.endpoint.foo.enabled=false")
.withUserConfiguration(
FooEndpointEnabledByDefaultTrueOnConfigurationConfiguration.class)
.run((context) -> assertThat(context).doesNotHaveBean("foo"));
}
@Endpoint(id = "foo", enableByDefault = true)
static class FooEndpointEnabledByDefaultTrue {
@@ -193,6 +201,17 @@ public class ConditionalOnEnabledEndpointTests {
}
@Configuration
@ConditionalOnEnabledEndpoint(endpoint = FooEndpointEnabledByDefaultTrue.class)
static class FooEndpointEnabledByDefaultTrueOnConfigurationConfiguration {
@Bean
public FooEndpointEnabledByDefaultTrue foo() {
return new FooEndpointEnabledByDefaultTrue();
}
}
@Configuration
static class FooEndpointEnabledByDefaultFalseConfiguration {