Skip to content

Commit

Permalink
Change the transport SPI to use channel type instead of channel insta…
Browse files Browse the repository at this point in the history
…nces
  • Loading branch information
vietj committed Oct 5, 2017
1 parent 1d94769 commit 1bebf35
Show file tree
Hide file tree
Showing 8 changed files with 27 additions and 27 deletions.
Expand Up @@ -292,7 +292,7 @@ private void createNewConnection(Waiter waiter) {
sslHelper.validate(vertx);
Bootstrap bootstrap = new Bootstrap();
bootstrap.group(context.nettyEventLoop());
bootstrap.channelFactory(() -> vertx.transport().socketChannel(false));
bootstrap.channel(vertx.transport().channelType(false));
connector.connect(this, bootstrap, context, peerHost, ssl, pool.version(), host, port, waiter);
}

Expand Down
Expand Up @@ -71,7 +71,7 @@ private static void checkPort(int port) {
public static AsyncResolveConnectHelper doBind(VertxInternal vertx, SocketAddress socketAddress,
ServerBootstrap bootstrap) {
AsyncResolveConnectHelper asyncResolveConnectHelper = new AsyncResolveConnectHelper();
bootstrap.channelFactory(() -> vertx.transport().serverChannel(socketAddress.path() != null));
bootstrap.channel(vertx.transport().serverChannelType(socketAddress.path() != null));
if (socketAddress.path() != null) {
java.net.SocketAddress converted = vertx.transport().convert(socketAddress, true);
ChannelFuture future = bootstrap.bind(converted);
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/io/vertx/core/net/impl/NetClientImpl.java
Expand Up @@ -178,7 +178,7 @@ protected void doConnect(SocketAddress remoteAddress, String serverName, Handler
sslHelper.validate(vertx);
Bootstrap bootstrap = new Bootstrap();
bootstrap.group(context.nettyEventLoop());
bootstrap.channelFactory(() -> vertx.transport().socketChannel(remoteAddress.path() != null));
bootstrap.channel(vertx.transport().channelType(remoteAddress.path() != null));

applyConnectionOptions(bootstrap);

Expand Down
Expand Up @@ -84,21 +84,19 @@ public DatagramChannel datagramChannel(InternetProtocolFamily family) {
}

@Override
public Channel socketChannel(boolean domain) {
public Class<? extends Channel> channelType(boolean domain) {
if (domain) {
return new EpollDomainSocketChannel();
return EpollDomainSocketChannel.class;
} else {
return new EpollSocketChannel();
return EpollSocketChannel.class;
}
}

@Override
public ServerChannel serverChannel(boolean domain) {
public Class<? extends ServerChannel> serverChannelType(boolean domain) {
if (domain) {
return new EpollServerDomainSocketChannel();
} else {
return new EpollServerSocketChannel();
return EpollServerDomainSocketChannel.class;
}
return EpollServerSocketChannel.class;
}

@Override
Expand Down
Expand Up @@ -29,6 +29,7 @@
import io.netty.channel.kqueue.KQueueSocketChannel;
import io.netty.channel.socket.DatagramChannel;
import io.netty.channel.socket.InternetProtocolFamily;
import io.netty.channel.socket.SocketChannel;
import io.netty.channel.unix.DomainSocketAddress;

import java.net.InetSocketAddress;
Expand Down Expand Up @@ -84,20 +85,20 @@ public DatagramChannel datagramChannel(InternetProtocolFamily family) {
}

@Override
public Channel socketChannel(boolean domain) {
public Class<? extends Channel> channelType(boolean domain) {
if (domain) {
return new KQueueDomainSocketChannel();
return KQueueDomainSocketChannel.class;
} else {
return new KQueueSocketChannel();
return KQueueSocketChannel.class;
}
}

@Override
public ServerChannel serverChannel(boolean domain) {
public Class<? extends ServerChannel> serverChannelType(boolean domain) {
if (domain) {
return new KQueueServerDomainSocketChannel();
return KQueueServerDomainSocketChannel.class;
} else {
return new KQueueServerSocketChannel();
return KQueueServerSocketChannel.class;
}
}

Expand Down
17 changes: 9 additions & 8 deletions src/main/java/io/vertx/core/net/impl/transport/Transport.java
Expand Up @@ -25,6 +25,7 @@
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.DatagramChannel;
import io.netty.channel.socket.InternetProtocolFamily;
import io.netty.channel.socket.SocketChannel;
import io.netty.channel.socket.nio.NioDatagramChannel;
import io.netty.channel.socket.nio.NioServerSocketChannel;
import io.netty.channel.socket.nio.NioSocketChannel;
Expand Down Expand Up @@ -152,25 +153,25 @@ public DatagramChannel datagramChannel(InternetProtocolFamily family) {
}

/**
* @return a new socket channel
* @param domain wether to create a domain socket or a regular socket
* @return the type for channel
* @param domain wether to create a unix domain channel or a socket channel
*/
public Channel socketChannel(boolean domain) {
public Class<? extends Channel> channelType(boolean domain) {
if (domain) {
throw new IllegalArgumentException();
}
return new NioSocketChannel();
return NioSocketChannel.class;
}

/**
* @return a new server socket channel
* @param domain wether to create a domain socket or a regular socket
* @return the type for server channel
* @param domain wether to create a server unix domain channel or a regular server socket channel
*/
public ServerChannel serverChannel(boolean domain) {
public Class<? extends ServerChannel> serverChannelType(boolean domain) {
if (domain) {
throw new IllegalArgumentException();
}
return new NioServerSocketChannel();
return NioServerSocketChannel.class;
}

private void setOption(String name, Object value, BiConsumer<ChannelOption<Object>, Object> consumer) {
Expand Down
2 changes: 1 addition & 1 deletion src/test/java/io/vertx/test/core/EventLoopGroupTest.java
Expand Up @@ -66,7 +66,7 @@ public void testNettyServerUsesContextEventLoop() throws Exception {
awaitLatch(latch);
ServerBootstrap bs = new ServerBootstrap();
bs.group(context.nettyEventLoop());
bs.channelFactory(() -> ((VertxInternal)vertx).transport().serverChannel(false)) ;
bs.channel(((VertxInternal)vertx).transport().serverChannelType(false)) ;
bs.option(ChannelOption.SO_BACKLOG, 100);
bs.childHandler(new ChannelInitializer<SocketChannel>() {
@Override
Expand Down
Expand Up @@ -318,7 +318,7 @@ public void testAsyncResolveConnectIsNotifiedOnChannelEventLoop() throws Excepti
AtomicReference<Thread> channelThread = new AtomicReference<>();
CountDownLatch connectLatch = new CountDownLatch(1);
Bootstrap bootstrap = new Bootstrap();
bootstrap.channelFactory(() -> ((VertxInternal)vertx).transport().socketChannel(false));
bootstrap.channel(((VertxInternal)vertx).transport().channelType(false));
bootstrap.group(vertx.nettyEventLoopGroup());
bootstrap.resolver(((VertxInternal) vertx).nettyAddressResolverGroup());
bootstrap.handler(new ChannelInitializer<Channel>() {
Expand Down

0 comments on commit 1bebf35

Please sign in to comment.