Commit 17b71df2 authored by Stephane Nicoll's avatar Stephane Nicoll

Merge branch '1.3.x'

parents ccaa19d5 bbb29dd7
...@@ -33,7 +33,6 @@ import org.springframework.boot.bind.RelaxedPropertyResolver; ...@@ -33,7 +33,6 @@ import org.springframework.boot.bind.RelaxedPropertyResolver;
import org.springframework.context.EnvironmentAware; import org.springframework.context.EnvironmentAware;
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.context.annotation.Primary;
import org.springframework.core.env.Environment; import org.springframework.core.env.Environment;
import org.springframework.integration.config.EnableIntegration; import org.springframework.integration.config.EnableIntegration;
import org.springframework.integration.jmx.config.EnableIntegrationMBeanExport; import org.springframework.integration.jmx.config.EnableIntegrationMBeanExport;
...@@ -87,7 +86,6 @@ public class IntegrationAutoConfiguration { ...@@ -87,7 +86,6 @@ public class IntegrationAutoConfiguration {
} }
@Bean @Bean
@Primary
public IntegrationMBeanExporter integrationMbeanExporter() { public IntegrationMBeanExporter integrationMbeanExporter() {
IntegrationMBeanExporter exporter = new IntegrationMBeanExporter(); IntegrationMBeanExporter exporter = new IntegrationMBeanExporter();
String defaultDomain = this.propertyResolver.getProperty("default-domain"); String defaultDomain = this.propertyResolver.getProperty("default-domain");
......
...@@ -27,10 +27,15 @@ import org.junit.Test; ...@@ -27,10 +27,15 @@ import org.junit.Test;
import org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration; import org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration;
import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.integration.support.channel.HeaderChannelRegistry; import org.springframework.integration.support.channel.HeaderChannelRegistry;
import org.springframework.jmx.export.MBeanExporter;
import org.springframework.test.context.support.TestPropertySourceUtils; import org.springframework.test.context.support.TestPropertySourceUtils;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
/** /**
* Tests for {@link IntegrationAutoConfiguration}. * Tests for {@link IntegrationAutoConfiguration}.
...@@ -98,6 +103,14 @@ public class IntegrationAutoConfigurationTests { ...@@ -98,6 +103,14 @@ public class IntegrationAutoConfigurationTests {
"org.springframework.integration.monitor"); "org.springframework.integration.monitor");
} }
@Test
public void primaryExporterIsAllowed() {
load(CustomMBeanExporter.class);
assertThat(this.context.getBeansOfType(MBeanExporter.class)).hasSize(2);
assertThat(this.context.getBean(MBeanExporter.class)).isSameAs(
this.context.getBean("myMBeanExporter"));
}
private static void assertDomains(MBeanServer mBeanServer, boolean expected, private static void assertDomains(MBeanServer mBeanServer, boolean expected,
String... domains) { String... domains) {
List<String> actual = Arrays.asList(mBeanServer.getDomains()); List<String> actual = Arrays.asList(mBeanServer.getDomains());
...@@ -106,12 +119,30 @@ public class IntegrationAutoConfigurationTests { ...@@ -106,12 +119,30 @@ public class IntegrationAutoConfigurationTests {
} }
} }
private void load(String... environment) { public void load(String... environment) {
load(null, environment);
}
private void load(Class<?> config, String... environment) {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
if (config != null) {
ctx.register(config);
}
TestPropertySourceUtils.addInlinedPropertiesToEnvironment(ctx, environment); TestPropertySourceUtils.addInlinedPropertiesToEnvironment(ctx, environment);
ctx.register(JmxAutoConfiguration.class, IntegrationAutoConfiguration.class); ctx.register(JmxAutoConfiguration.class, IntegrationAutoConfiguration.class);
ctx.refresh(); ctx.refresh();
this.context = ctx; this.context = ctx;
} }
@Configuration
static class CustomMBeanExporter {
@Bean
@Primary
public MBeanExporter myMBeanExporter() {
return mock(MBeanExporter.class);
}
}
} }
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