|
1 | 1 | package httpserver; |
2 | 2 |
|
3 | | -import httpserver.file.FileOperator; |
4 | 3 | import httpserver.file.PathExaminer; |
5 | 4 |
|
6 | 5 | import java.io.IOException; |
7 | | -import java.net.ServerSocket; |
8 | | -import java.net.Socket; |
9 | | -import java.nio.file.Path; |
10 | | -import java.nio.file.Paths; |
11 | 6 | import java.util.concurrent.ExecutorService; |
12 | 7 | import java.util.concurrent.Executors; |
13 | 8 |
|
14 | 9 | public class App { |
| 10 | + |
| 11 | + private static ExecutorService threadPool; |
| 12 | + private static ServerFactory serverFactory; |
| 13 | + private static SocketHandlerFactory socketHandlerFactory; |
| 14 | + |
15 | 15 | public static void main(String[] args) throws IOException { |
| 16 | + threadPool = Executors.newFixedThreadPool(16); |
| 17 | + serverFactory = new ServerFactory(new PathExaminer(), new ServerSocketFactory()); |
| 18 | + socketHandlerFactory = new SocketHandlerFactory(); |
| 19 | + |
16 | 20 | int port = Integer.parseInt(args[1]); |
17 | 21 | String fileDirectory = args[3]; |
18 | 22 |
|
19 | | - Path root = new PathExaminer().getPath(fileDirectory); |
20 | | - ServerSocket serverSocket = new ServerSocket(port); |
21 | | - Path logPath = Paths.get(root.toString(), "logs"); |
22 | | - |
23 | | - ExecutorService pool = Executors.newFixedThreadPool(16); |
24 | | - |
25 | | - while (true) { |
26 | | - Socket clientSocket = serverSocket.accept(); |
27 | | - SocketHandler socketHandler = new SocketHandler(root, |
28 | | - new FileLogger(logPath, new FileOperator()), |
29 | | - clientSocket.getInputStream(), |
30 | | - clientSocket.getOutputStream()); |
31 | | - pool.execute(socketHandler); |
32 | | - } |
| 23 | + Server server = serverFactory.makeServer(port, fileDirectory); |
| 24 | + server.start(threadPool, socketHandlerFactory); |
33 | 25 | } |
34 | 26 | } |
0 commit comments