Merge branch '1.2.x'

This commit is contained in:
Andy Wilkinson 2015-04-30 15:30:42 +01:00
commit 080c8ff286
2 changed files with 34 additions and 1 deletions

View File

@ -154,7 +154,8 @@ public class EndpointMBeanExporter extends MBeanExporter implements SmartLifecyc
protected void locateAndRegisterEndpoints() { protected void locateAndRegisterEndpoints() {
Map<String, Endpoint> endpoints = this.beanFactory.getBeansOfType(Endpoint.class); Map<String, Endpoint> endpoints = this.beanFactory.getBeansOfType(Endpoint.class);
for (Map.Entry<String, Endpoint> endpointEntry : endpoints.entrySet()) { for (Map.Entry<String, Endpoint> endpointEntry : endpoints.entrySet()) {
if (!this.registeredEndpoints.contains(endpointEntry.getValue())) { if (!this.registeredEndpoints.contains(endpointEntry.getValue())
&& endpointEntry.getValue().isEnabled()) {
registerEndpoint(endpointEntry.getKey(), endpointEntry.getValue()); registerEndpoint(endpointEntry.getKey(), endpointEntry.getValue());
this.registeredEndpoints.add(endpointEntry.getValue()); this.registeredEndpoints.add(endpointEntry.getValue());
} }

View File

@ -45,8 +45,10 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.instanceOf;
import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThat; import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
/** /**
* Tests for {@link EndpointMBeanExporter} * Tests for {@link EndpointMBeanExporter}
@ -81,6 +83,36 @@ public class EndpointMBeanExporterTests {
assertEquals(3, mbeanInfo.getAttributes().length); assertEquals(3, mbeanInfo.getAttributes().length);
} }
@Test
public void testSkipRegistrationOfDisabledEndpoint() throws Exception {
this.context = new GenericApplicationContext();
this.context.registerBeanDefinition("endpointMbeanExporter",
new RootBeanDefinition(EndpointMBeanExporter.class));
MutablePropertyValues mvp = new MutablePropertyValues();
mvp.add("enabled", Boolean.FALSE);
this.context.registerBeanDefinition("endpoint1", new RootBeanDefinition(
TestEndpoint.class, null, mvp));
this.context.refresh();
MBeanExporter mbeanExporter = this.context.getBean(EndpointMBeanExporter.class);
assertFalse(mbeanExporter.getServer().isRegistered(
getObjectName("endpoint1", this.context)));
}
@Test
public void testRegistrationOfEnabledEndpoint() throws Exception {
this.context = new GenericApplicationContext();
this.context.registerBeanDefinition("endpointMbeanExporter",
new RootBeanDefinition(EndpointMBeanExporter.class));
MutablePropertyValues mvp = new MutablePropertyValues();
mvp.add("enabled", Boolean.TRUE);
this.context.registerBeanDefinition("endpoint1", new RootBeanDefinition(
TestEndpoint.class, null, mvp));
this.context.refresh();
MBeanExporter mbeanExporter = this.context.getBean(EndpointMBeanExporter.class);
assertTrue(mbeanExporter.getServer().isRegistered(
getObjectName("endpoint1", this.context)));
}
@Test @Test
public void testRegistrationTwoEndpoints() throws Exception { public void testRegistrationTwoEndpoints() throws Exception {
this.context = new GenericApplicationContext(); this.context = new GenericApplicationContext();