From 0a04b74379fadcf00fd7e47a0ac9b96e2fad61fb Mon Sep 17 00:00:00 2001 From: Christian Dupuis Date: Wed, 18 Dec 2013 21:11:58 +0100 Subject: [PATCH] Allow configuration of domainName and key for endpoint JMX export --- .../EndpointMBeanExportAutoConfiguration.java | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/EndpointMBeanExportAutoConfiguration.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/EndpointMBeanExportAutoConfiguration.java index b6fdead0fa8..beae6ae3db9 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/EndpointMBeanExportAutoConfiguration.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/EndpointMBeanExportAutoConfiguration.java @@ -16,15 +16,19 @@ package org.springframework.boot.actuate.autoconfigure; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.actuate.endpoint.Endpoint; import org.springframework.boot.actuate.endpoint.jmx.EndpointMBeanExporter; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; +import org.springframework.boot.bind.RelaxedPropertyResolver; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.env.Environment; import org.springframework.jmx.export.MBeanExporter; +import org.springframework.util.StringUtils; /** * {@link EnableAutoConfiguration Auto-configuration} to enable JMX export for @@ -38,10 +42,24 @@ import org.springframework.jmx.export.MBeanExporter; @ConditionalOnExpression("${endpoints.jmx.enabled:true}") class EndpointMBeanExportAutoConfiguration { + private RelaxedPropertyResolver environment; + + @Autowired + public void setEnvironment(Environment environment) { + this.environment = new RelaxedPropertyResolver(environment); + } + @Bean public EndpointMBeanExporter endpointMBeanExporter() { - // TODO add configuration for domain name - return new EndpointMBeanExporter(); + EndpointMBeanExporter mbeanExporter = new EndpointMBeanExporter(); + String domainName = this.environment.getProperty("endpoints.jmx.domain_name"); + if (StringUtils.hasText(domainName)) { + mbeanExporter.setDomainName(domainName); + } + String key = this.environment.getProperty("endpoints.jmx.key"); + if (StringUtils.hasText(key)) { + mbeanExporter.setKey(key); + } + return mbeanExporter; } - } \ No newline at end of file