Skip to content

Commit a9a7583

Browse files
Tianwei-Lidotta
authored andcommitted
add a unit test to test reactive stream support for downloading files
1 parent 5b0cdc5 commit a9a7583

File tree

6 files changed

+647
-0
lines changed

6 files changed

+647
-0
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
/*
2+
* Copyright 2012 The Netty Project
3+
*
4+
* The Netty Project licenses this file to you under the Apache License,
5+
* version 2.0 (the "License"); you may not use this file except in compliance
6+
* with the License. You may obtain a copy of the License at:
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12+
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13+
* License for the specific language governing permissions and limitations
14+
* under the License.
15+
*/
16+
package org.asynchttpclient.reactivestreams;
17+
18+
import io.netty.bootstrap.ServerBootstrap;
19+
import io.netty.channel.EventLoopGroup;
20+
import io.netty.channel.nio.NioEventLoopGroup;
21+
import io.netty.channel.socket.nio.NioServerSocketChannel;
22+
import io.netty.handler.logging.LogLevel;
23+
import io.netty.handler.logging.LoggingHandler;
24+
import io.netty.util.concurrent.Future;
25+
26+
27+
public final class HttpStaticFileServer {
28+
static private EventLoopGroup bossGroup;
29+
static private EventLoopGroup workerGroup;
30+
31+
public static void start(int port) throws Exception {
32+
bossGroup = new NioEventLoopGroup(1);
33+
workerGroup = new NioEventLoopGroup();
34+
ServerBootstrap b = new ServerBootstrap();
35+
b.group(bossGroup, workerGroup)
36+
.channel(NioServerSocketChannel.class)
37+
.handler(new LoggingHandler(LogLevel.INFO))
38+
.childHandler(new HttpStaticFileServerInitializer());
39+
40+
b.bind(port).sync().channel();
41+
System.err.println("Open your web browser and navigate to " +
42+
("http") + "://127.0.0.1:" + port + '/');
43+
}
44+
45+
public static void shutdown() {
46+
Future bossFuture = bossGroup.shutdownGracefully();
47+
Future workerFuture = workerGroup.shutdownGracefully();
48+
try {
49+
bossFuture.await();
50+
workerFuture.await();
51+
} catch (InterruptedException e) {
52+
e.printStackTrace();
53+
}
54+
}
55+
}

0 commit comments

Comments
 (0)