1
2
3
4
5
6
7
8
9
10 package ch.qos.logback.access.net;
11
12 import java.io.BufferedInputStream;
13 import java.io.ObjectInputStream;
14 import java.net.ServerSocket;
15 import java.net.Socket;
16 import java.util.ArrayList;
17 import java.util.List;
18
19 import ch.qos.logback.access.spi.AccessEvent;
20
21
22
23
24
25 public class MockSocketServer extends Thread {
26
27 static final int PORT = 4560;
28
29 final int loopLen;
30
31 List<AccessEvent> accessEventList = new ArrayList<AccessEvent>();
32 boolean finished = false;
33
34 MockSocketServer(int loopLen) {
35 super();
36 this.loopLen = loopLen;
37 }
38
39 @Override
40 public void run() {
41 ObjectInputStream ois = null;
42 ServerSocket serverSocket = null;
43
44 AccessEvent event;
45 try {
46 serverSocket = new ServerSocket(PORT);
47 Socket socket = serverSocket.accept();
48 ois = new ObjectInputStream(new BufferedInputStream(socket
49 .getInputStream()));
50 for (int i = 0; i < loopLen; i++) {
51 event = (AccessEvent) ois.readObject();
52 accessEventList.add(event);
53 }
54 } catch (Exception se) {
55 se.printStackTrace();
56 } finally {
57
58 if (ois != null) {
59 try {
60 ois.close();
61 } catch (Exception e) {
62 }
63 }
64 if (serverSocket != null) {
65 try {
66 serverSocket.close();
67 } catch (Exception e) {
68 }
69 }
70 }
71 finished = true;
72 }
73 }