Commit 18d99245 authored by Andy Wilkinson's avatar Andy Wilkinson

Merge branch '1.3.x

parents bf8a8167 c2db9fa3
/* /*
* Copyright 2012-2015 the original author or authors. * Copyright 2012-2016 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
...@@ -44,6 +44,7 @@ import org.springframework.util.Assert; ...@@ -44,6 +44,7 @@ import org.springframework.util.Assert;
* {@link MBeanServer}. * {@link MBeanServer}.
* *
* @author Stephane Nicoll * @author Stephane Nicoll
* @author Andy Wilkinson
* @since 1.3.0 * @since 1.3.0
*/ */
public class SpringApplicationAdminMXBeanRegistrar public class SpringApplicationAdminMXBeanRegistrar
...@@ -80,7 +81,9 @@ public class SpringApplicationAdminMXBeanRegistrar ...@@ -80,7 +81,9 @@ public class SpringApplicationAdminMXBeanRegistrar
@Override @Override
public void onApplicationEvent(ApplicationReadyEvent event) { public void onApplicationEvent(ApplicationReadyEvent event) {
this.ready = true; if (this.applicationContext.equals(event.getApplicationContext())) {
this.ready = true;
}
} }
@Override @Override
......
...@@ -30,18 +30,22 @@ import org.junit.Test; ...@@ -30,18 +30,22 @@ import org.junit.Test;
import org.junit.rules.ExpectedException; import org.junit.rules.ExpectedException;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.ApplicationListener; import org.springframework.context.ApplicationListener;
import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.ConfigurableApplicationContext;
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.event.ContextRefreshedEvent; import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.test.util.ReflectionTestUtils;
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 SpringApplicationAdminMXBeanRegistrar}. * Tests for {@link SpringApplicationAdminMXBeanRegistrar}.
* *
* @author Stephane Nicoll * @author Stephane Nicoll
* @author Andy Wilkinson
*/ */
public class SpringApplicationAdminMXBeanRegistrarTests { public class SpringApplicationAdminMXBeanRegistrarTests {
...@@ -87,6 +91,25 @@ public class SpringApplicationAdminMXBeanRegistrarTests { ...@@ -87,6 +91,25 @@ public class SpringApplicationAdminMXBeanRegistrarTests {
assertThat(isApplicationReady(objectName)).isTrue(); assertThat(isApplicationReady(objectName)).isTrue();
} }
@Test
public void eventsFromOtherContextsAreIgnored() throws MalformedObjectNameException {
SpringApplicationAdminMXBeanRegistrar registrar = new SpringApplicationAdminMXBeanRegistrar(
OBJECT_NAME);
ConfigurableApplicationContext context = mock(
ConfigurableApplicationContext.class);
registrar.setApplicationContext(context);
registrar.onApplicationEvent(new ApplicationReadyEvent(new SpringApplication(),
null, mock(ConfigurableApplicationContext.class)));
assertThat(isApplicationReady(registrar)).isFalse();
registrar.onApplicationEvent(
new ApplicationReadyEvent(new SpringApplication(), null, context));
assertThat(isApplicationReady(registrar)).isTrue();
}
private boolean isApplicationReady(SpringApplicationAdminMXBeanRegistrar registrar) {
return (Boolean) ReflectionTestUtils.getField(registrar, "ready");
}
@Test @Test
public void environmentIsExposed() { public void environmentIsExposed() {
final ObjectName objectName = createObjectName(OBJECT_NAME); final ObjectName objectName = createObjectName(OBJECT_NAME);
......
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