Polish RSocket server bootstrap

See gh-16021
pull/16575/head
Brian Clozel 6 years ago
parent d4c47a13a0
commit 71362299ae

@ -18,9 +18,10 @@ package org.springframework.boot.autoconfigure.rsocket;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import io.netty.buffer.PooledByteBufAllocator;
import io.rsocket.RSocketFactory; import io.rsocket.RSocketFactory;
import io.rsocket.SocketAcceptor; import io.rsocket.SocketAcceptor;
import io.rsocket.transport.netty.server.TcpServerTransport;
import reactor.netty.http.server.HttpServer;
import org.springframework.beans.factory.ObjectProvider; import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.AutoConfigureAfter;
@ -33,7 +34,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.context.properties.PropertyMapper; import org.springframework.boot.context.properties.PropertyMapper;
import org.springframework.boot.rsocket.netty.NettyRSocketBootstrap; import org.springframework.boot.rsocket.server.RSocketServerBootstrap;
import org.springframework.boot.rsocket.netty.NettyRSocketServerFactory; import org.springframework.boot.rsocket.netty.NettyRSocketServerFactory;
import org.springframework.boot.rsocket.server.RSocketServerFactory; import org.springframework.boot.rsocket.server.RSocketServerFactory;
import org.springframework.boot.rsocket.server.ServerRSocketFactoryCustomizer; import org.springframework.boot.rsocket.server.ServerRSocketFactoryCustomizer;
@ -57,8 +58,8 @@ import org.springframework.messaging.rsocket.RSocketStrategies;
* @since 2.2.0 * @since 2.2.0
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass({ RSocketFactory.class, RSocketStrategies.class, @ConditionalOnClass({ RSocketFactory.class, RSocketStrategies.class, HttpServer.class,
PooledByteBufAllocator.class }) TcpServerTransport.class })
@ConditionalOnBean(MessageHandlerAcceptor.class) @ConditionalOnBean(MessageHandlerAcceptor.class)
@AutoConfigureAfter(RSocketStrategiesAutoConfiguration.class) @AutoConfigureAfter(RSocketStrategiesAutoConfiguration.class)
@EnableConfigurationProperties(RSocketProperties.class) @EnableConfigurationProperties(RSocketProperties.class)
@ -105,10 +106,10 @@ public class RSocketServerAutoConfiguration {
} }
@Bean @Bean
public NettyRSocketBootstrap nettyRSocketBootstrap( public RSocketServerBootstrap nettyRSocketBootstrap(
RSocketServerFactory rSocketServerFactory, RSocketServerFactory rSocketServerFactory,
SocketAcceptor socketAcceptor) { SocketAcceptor socketAcceptor) {
return new NettyRSocketBootstrap(rSocketServerFactory, socketAcceptor); return new RSocketServerBootstrap(rSocketServerFactory, socketAcceptor);
} }
} }

@ -19,7 +19,7 @@ package org.springframework.boot.autoconfigure.rsocket;
import org.junit.Test; import org.junit.Test;
import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.rsocket.netty.NettyRSocketBootstrap; import org.springframework.boot.rsocket.server.RSocketServerBootstrap;
import org.springframework.boot.rsocket.server.RSocketServerFactory; import org.springframework.boot.rsocket.server.RSocketServerFactory;
import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.boot.test.context.runner.ApplicationContextRunner;
import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner; import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner;
@ -46,7 +46,7 @@ public class RSocketServerAutoConfigurationTests {
contextRunner.run((context) -> assertThat(context) contextRunner.run((context) -> assertThat(context)
.doesNotHaveBean(WebServerFactoryCustomizer.class) .doesNotHaveBean(WebServerFactoryCustomizer.class)
.doesNotHaveBean(RSocketServerFactory.class) .doesNotHaveBean(RSocketServerFactory.class)
.doesNotHaveBean(NettyRSocketBootstrap.class)); .doesNotHaveBean(RSocketServerBootstrap.class));
} }
@Test @Test
@ -55,7 +55,7 @@ public class RSocketServerAutoConfigurationTests {
contextRunner.run((context) -> assertThat(context) contextRunner.run((context) -> assertThat(context)
.doesNotHaveBean(WebServerFactoryCustomizer.class) .doesNotHaveBean(WebServerFactoryCustomizer.class)
.doesNotHaveBean(RSocketServerFactory.class) .doesNotHaveBean(RSocketServerFactory.class)
.doesNotHaveBean(NettyRSocketBootstrap.class)); .doesNotHaveBean(RSocketServerBootstrap.class));
} }
@Test @Test
@ -67,7 +67,7 @@ public class RSocketServerAutoConfigurationTests {
.run((context) -> assertThat(context) .run((context) -> assertThat(context)
.doesNotHaveBean(WebServerFactoryCustomizer.class) .doesNotHaveBean(WebServerFactoryCustomizer.class)
.doesNotHaveBean(RSocketServerFactory.class) .doesNotHaveBean(RSocketServerFactory.class)
.doesNotHaveBean(NettyRSocketBootstrap.class)); .doesNotHaveBean(RSocketServerBootstrap.class));
} }
@Test @Test
@ -87,7 +87,7 @@ public class RSocketServerAutoConfigurationTests {
contextRunner.withPropertyValues("spring.rsocket.server.port=0") contextRunner.withPropertyValues("spring.rsocket.server.port=0")
.run((context) -> assertThat(context) .run((context) -> assertThat(context)
.hasSingleBean(RSocketServerFactory.class) .hasSingleBean(RSocketServerFactory.class)
.hasSingleBean(NettyRSocketBootstrap.class)); .hasSingleBean(RSocketServerBootstrap.class));
} }
private ApplicationContextRunner createContextRunner() { private ApplicationContextRunner createContextRunner() {

@ -14,13 +14,11 @@
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.boot.rsocket.netty; package org.springframework.boot.rsocket.server;
import io.rsocket.SocketAcceptor; import io.rsocket.SocketAcceptor;
import org.springframework.boot.rsocket.context.RSocketServerInitializedEvent; import org.springframework.boot.rsocket.context.RSocketServerInitializedEvent;
import org.springframework.boot.rsocket.server.RSocketServer;
import org.springframework.boot.rsocket.server.RSocketServerFactory;
import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.ApplicationEventPublisherAware; import org.springframework.context.ApplicationEventPublisherAware;
import org.springframework.context.SmartLifecycle; import org.springframework.context.SmartLifecycle;
@ -31,14 +29,14 @@ import org.springframework.context.SmartLifecycle;
* @author Brian Clozel * @author Brian Clozel
* @since 2.2.0 * @since 2.2.0
*/ */
public class NettyRSocketBootstrap public class RSocketServerBootstrap
implements ApplicationEventPublisherAware, SmartLifecycle { implements ApplicationEventPublisherAware, SmartLifecycle {
private final RSocketServer rSocketServer; private final RSocketServer rSocketServer;
private ApplicationEventPublisher applicationEventPublisher; private ApplicationEventPublisher applicationEventPublisher;
public NettyRSocketBootstrap(RSocketServerFactory serverFactoryProvider, public RSocketServerBootstrap(RSocketServerFactory serverFactoryProvider,
SocketAcceptor socketAcceptor) { SocketAcceptor socketAcceptor) {
this.rSocketServer = serverFactoryProvider.create(socketAcceptor); this.rSocketServer = serverFactoryProvider.create(socketAcceptor);
} }
Loading…
Cancel
Save