Merge branch '1.3.x'

This commit is contained in:
Andy Wilkinson 2016-02-22 16:07:47 +00:00
commit cc4562f96a
1 changed files with 12 additions and 4 deletions

View File

@ -18,6 +18,7 @@ package org.springframework.boot.autoconfigure.jdbc;
import javax.sql.DataSource; import javax.sql.DataSource;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
@ -25,6 +26,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType; import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
@ -48,8 +50,8 @@ import org.springframework.jmx.support.JmxUtils;
@EnableConfigurationProperties(DataSourceProperties.class) @EnableConfigurationProperties(DataSourceProperties.class)
public class JndiDataSourceAutoConfiguration { public class JndiDataSourceAutoConfiguration {
@Autowired(required = false) @Autowired
private MBeanExporter mbeanExporter; private ApplicationContext context;
@Bean(destroyMethod = "") @Bean(destroyMethod = "")
@ConditionalOnMissingBean @ConditionalOnMissingBean
@ -61,8 +63,14 @@ public class JndiDataSourceAutoConfiguration {
} }
private void excludeMBeanIfNecessary(Object candidate, String beanName) { private void excludeMBeanIfNecessary(Object candidate, String beanName) {
if (this.mbeanExporter != null && JmxUtils.isMBean(candidate.getClass())) { try {
this.mbeanExporter.addExcludedBean(beanName); MBeanExporter mbeanExporter = this.context.getBean(MBeanExporter.class);
if (JmxUtils.isMBean(candidate.getClass())) {
mbeanExporter.addExcludedBean(beanName);
}
}
catch (NoSuchBeanDefinitionException ex) {
// No exporter. Exclusion is unnecessary
} }
} }