Honor the endpoint.enabled property when registering MBeans
Fixes gh-2873 Closes gh-2890
This commit is contained in:
parent
ef49ced12a
commit
b16a973d6a
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2013-2014 the original author or authors.
|
||||
* Copyright 2013-2015 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.
|
||||
|
|
@ -138,7 +138,8 @@ public class EndpointMBeanExporter extends MBeanExporter implements SmartLifecyc
|
|||
protected void locateAndRegisterEndpoints() {
|
||||
Map<String, Endpoint> endpoints = this.beanFactory.getBeansOfType(Endpoint.class);
|
||||
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());
|
||||
this.registeredEndpoints.add(endpointEntry.getValue());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2013 the original author or authors.
|
||||
* Copyright 2013-2015 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.
|
||||
|
|
@ -37,7 +37,9 @@ import org.springframework.jmx.support.ObjectNameManager;
|
|||
import org.springframework.util.ObjectUtils;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
/**
|
||||
* Tests for {@link EndpointMBeanExporter}
|
||||
|
|
@ -73,6 +75,36 @@ public class EndpointMBeanExporterTests {
|
|||
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
|
||||
public void testRegistrationTwoEndpoints() throws Exception {
|
||||
this.context = new GenericApplicationContext();
|
||||
|
|
|
|||
Loading…
Reference in New Issue