Rationalize the Reactor autoconfig

It didn't make sense not to do anything at all if a Reactor @Bean
was detected, so now we only back off creating the rootReactor if
one is present.
This commit is contained in:
Dave Syer
2014-06-05 12:52:23 +01:00
parent 36e0d44eb2
commit 32dff415c3
3 changed files with 31 additions and 8 deletions

View File

@@ -35,11 +35,11 @@ import reactor.spring.context.config.EnableReactor;
*/
@Configuration
@ConditionalOnClass(EnableReactor.class)
@ConditionalOnMissingBean(Reactor.class)
@AutoConfigureAfter(WebMvcAutoConfiguration.class)
public class ReactorAutoConfiguration {
@Bean
@ConditionalOnMissingBean(Reactor.class)
public Reactor rootReactor(Environment environment) {
return environment.getRootReactor();
}

View File

@@ -16,12 +16,16 @@
package org.springframework.boot.autoconfigure.reactor;
import static org.junit.Assert.assertNotNull;
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import reactor.core.Environment;
import reactor.core.Reactor;
import static org.junit.Assert.assertNotNull;
import reactor.core.spec.Reactors;
/**
* @author Dave Syer
@@ -38,4 +42,21 @@ public class ReactorAutoConfigurationTests {
this.context.close();
}
@Test
public void customReactor() {
this.context.register(TestConfiguration.class, ReactorAutoConfiguration.class);
this.context.refresh();
assertNotNull(this.context.getBean(Reactor.class));
this.context.close();
}
@Configuration
protected static class TestConfiguration {
@Bean
public Reactor reactor(Environment env) {
return Reactors.reactor().env(env).dispatcher(Environment.RING_BUFFER).get();
}
}
}