Commit e5757946 authored by Andy Wilkinson's avatar Andy Wilkinson

Prevent endpoint's shutdown() method from being a destroy method

Closes gh-17407
parent 59978868
...@@ -33,7 +33,7 @@ import org.springframework.context.annotation.Configuration; ...@@ -33,7 +33,7 @@ import org.springframework.context.annotation.Configuration;
@ConditionalOnEnabledEndpoint(endpoint = ShutdownEndpoint.class) @ConditionalOnEnabledEndpoint(endpoint = ShutdownEndpoint.class)
public class ShutdownEndpointAutoConfiguration { public class ShutdownEndpointAutoConfiguration {
@Bean @Bean(destroyMethod = "")
@ConditionalOnMissingBean @ConditionalOnMissingBean
public ShutdownEndpoint shutdownEndpoint() { public ShutdownEndpoint shutdownEndpoint() {
return new ShutdownEndpoint(); return new ShutdownEndpoint();
......
...@@ -16,11 +16,15 @@ ...@@ -16,11 +16,15 @@
package org.springframework.boot.actuate.autoconfigure.context; package org.springframework.boot.actuate.autoconfigure.context;
import java.util.Map;
import org.junit.Test; import org.junit.Test;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.boot.actuate.context.ShutdownEndpoint; import org.springframework.boot.actuate.context.ShutdownEndpoint;
import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.boot.test.context.runner.ApplicationContextRunner;
import org.springframework.test.util.ReflectionTestUtils;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
...@@ -35,9 +39,15 @@ public class ShutdownEndpointAutoConfigurationTests { ...@@ -35,9 +39,15 @@ public class ShutdownEndpointAutoConfigurationTests {
.withConfiguration(AutoConfigurations.of(ShutdownEndpointAutoConfiguration.class)); .withConfiguration(AutoConfigurations.of(ShutdownEndpointAutoConfiguration.class));
@Test @Test
public void runShouldHaveEndpointBean() { @SuppressWarnings("unchecked")
this.contextRunner.withPropertyValues("management.endpoint.shutdown.enabled:true") public void runShouldHaveEndpointBeanThatIsNotDisposable() {
.run((context) -> assertThat(context).hasSingleBean(ShutdownEndpoint.class)); this.contextRunner.withPropertyValues("management.endpoint.shutdown.enabled:true").run((context) -> {
assertThat(context).hasSingleBean(ShutdownEndpoint.class);
ConfigurableListableBeanFactory beanFactory = context.getBeanFactory();
Map<String, Object> disposableBeans = (Map<String, Object>) ReflectionTestUtils.getField(beanFactory,
"disposableBeans");
assertThat(disposableBeans).isEmpty();
});
} }
@Test @Test
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment