use of io.netty.bootstrap.ServerBootstrap in project android by JetBrains.
the class LocalTestServer method start.
public void start() throws Exception {
ServerBootstrap b = new ServerBootstrap();
myEventLoopGroup = new OioEventLoopGroup();
b.group(myEventLoopGroup).channel(OioServerSocketChannel.class).childHandler(new ChannelInitializer<SocketChannel>() {
@Override
protected void initChannel(SocketChannel ch) throws Exception {
ChannelPipeline p = ch.pipeline();
p.addLast(new HttpServerCodec());
// Note: Netty's decompressor uses jcraft jzlib, which is not exported as a library
// p.addLast(new HttpContentDecompressor());
// big enough to collect a full thread dump
p.addLast(new HttpObjectAggregator(32 * 1024));
p.addLast(new ChannelInboundHandlerAdapter() {
@Override
public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
ctx.flush();
}
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
if (!(msg instanceof FullHttpRequest)) {
return;
}
FullHttpResponse response = myResponseSupplier.apply((FullHttpRequest) msg);
response.headers().set(HttpHeaderNames.CONTENT_TYPE, "text/plain");
response.headers().set(HttpHeaderNames.CONTENT_LENGTH, response.content().readableBytes());
ctx.write(response).addListener(ChannelFutureListener.CLOSE);
}
@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
ctx.write(cause.toString()).addListener(ChannelFutureListener.CLOSE);
}
});
}
});
myChannel = b.bind(myPort).sync().channel();
}
use of io.netty.bootstrap.ServerBootstrap in project carbondata by apache.
the class DictionaryServer method bindToPort.
/**
* Binds dictionary server to an available port.
*
* @param port
*/
private void bindToPort(int port) {
long start = System.currentTimeMillis();
// Configure the server.
int i = 0;
while (i < 10) {
int newPort = port + i;
try {
ServerBootstrap bootstrap = new ServerBootstrap();
bootstrap.group(boss, worker);
bootstrap.channel(NioServerSocketChannel.class);
bootstrap.childHandler(new ChannelInitializer<SocketChannel>() {
@Override
public void initChannel(SocketChannel ch) throws Exception {
ChannelPipeline pipeline = ch.pipeline();
pipeline.addLast("LengthDecoder", new LengthFieldBasedFrameDecoder(1048576, 0, 2, 0, 2));
pipeline.addLast("DictionaryServerHandler", dictionaryServerHandler);
}
});
bootstrap.childOption(ChannelOption.SO_KEEPALIVE, true);
bootstrap.bind(newPort).sync();
LOGGER.audit("Dictionary Server started, Time spent " + (System.currentTimeMillis() - start) + " Listening on port " + newPort);
this.port = newPort;
break;
} catch (Exception e) {
LOGGER.error(e, "Dictionary Server Failed to bind to port:");
if (i == 9) {
throw new RuntimeException("Dictionary Server Could not bind to any port");
}
}
i++;
}
}
use of io.netty.bootstrap.ServerBootstrap in project asterixdb by apache.
the class HttpServer method doStart.
protected void doStart() throws InterruptedException {
/*
* This is a hacky way to ensure that IServlets with more specific paths are checked first.
* For example:
* "/path/to/resource/"
* is checked before
* "/path/to/"
* which in turn is checked before
* "/path/"
* Note that it doesn't work for the case where multiple paths map to a single IServlet
*/
Collections.sort(servlets, (l1, l2) -> l2.getPaths()[0].length() - l1.getPaths()[0].length());
ServerBootstrap b = new ServerBootstrap();
b.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class).childOption(ChannelOption.WRITE_BUFFER_WATER_MARK, WRITE_BUFFER_WATER_MARK).handler(new LoggingHandler(LogLevel.DEBUG)).childHandler(new HttpServerInitializer(this));
channel = b.bind(port).sync().channel();
}
use of io.netty.bootstrap.ServerBootstrap in project jackrabbit-oak by apache.
the class NetworkErrorProxy method connect.
public void connect() throws Exception {
log.info("Starting proxy with flip={}, skip={},{}", flipPosition, skipPosition, skipLength);
ServerBootstrap b = new ServerBootstrap().group(boss, worker).channel(NioServerSocketChannel.class).childHandler(new ChannelInitializer<SocketChannel>() {
@Override
public void initChannel(SocketChannel ch) throws Exception {
ch.pipeline().addLast(new ForwardHandler(host, outboundPort, flipPosition, skipPosition, skipLength));
}
});
ChannelFuture f = b.bind(this.inboundPort);
if (f.awaitUninterruptibly(1, TimeUnit.SECONDS)) {
log.debug("Bound on port {}", inboundPort);
} else {
log.debug("Binding on port {} timed out", inboundPort);
}
server = f.channel();
}
use of io.netty.bootstrap.ServerBootstrap in project intellij-community by JetBrains.
the class ExternalJavacManager method start.
public void start(int listenPort) {
final ServerBootstrap bootstrap = new ServerBootstrap().group(new NioEventLoopGroup(1, SharedThreadPool.getInstance())).channel(NioServerSocketChannel.class);
bootstrap.childOption(ChannelOption.TCP_NODELAY, true).childOption(ChannelOption.SO_KEEPALIVE, true);
final ChannelHandler compilationRequestsHandler = new CompilationRequestsHandler();
bootstrap.childHandler(new ChannelInitializer() {
@Override
protected void initChannel(Channel channel) throws Exception {
channel.pipeline().addLast(myChannelRegistrar, new ProtobufVarint32FrameDecoder(), new ProtobufDecoder(JavacRemoteProto.Message.getDefaultInstance()), new ProtobufVarint32LengthFieldPrepender(), new ProtobufEncoder(), compilationRequestsHandler);
}
});
try {
final InetAddress loopback = InetAddress.getByName(null);
myChannelRegistrar.add(bootstrap.bind(loopback, listenPort).syncUninterruptibly().channel());
myListenPort = listenPort;
} catch (UnknownHostException e) {
throw new RuntimeException(e);
}
}
Aggregations