Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ua.org.msangel.r;
- import java.io.IOException;
- public class ServerManager {
- private static final int DEFAULT_PORT = 8080;
- private int port;
- public static String newline = System.getProperty("line.separator");
- Server serverThread;
- public ServerManager() {
- this(DEFAULT_PORT);
- }
- public ServerManager(int port) {
- this.port = port;
- serverThread = new Server(port);
- }
- synchronized private void startServer() {
- if (serverThread.isInterrupted()
- || serverThread.getState() == Thread.State.TERMINATED) {
- serverThread = new Server(this.port);
- }
- if (serverThread.getState() == Thread.State.NEW) {
- serverThread.start();
- } else {
- // System.out.println("Unknow thread state:"+serverThread.getState());
- // Unknow thread state:TIMED_WAITING
- // if already run
- }
- }
- synchronized private void stopServer() {
- if (serverThread.isAlive()) {
- serverThread.disconnectAll();
- serverThread.interrupt();
- serverThread.stop();
- }
- }
- synchronized private void restartServer() {
- this.stopServer();
- this.startServer();
- }
- synchronized private String getServerStatus() {
- return serverThread.getStatus();
- }
- public void startMonitor() {
- char c = '0';
- while (c != '5') {
- System.out.println("Available actions:" + newline + //
- "1: Status" + newline + //
- "2: Start" + newline + //
- "3: Stop" + newline + //
- "4: Restart" + newline + //
- "5: Exit");
- try {
- int tmp = System.in.read();
- while (System.in.available() > 0) {
- System.in.read();
- }
- c = (char) tmp;
- } catch (IOException e) {
- e.printStackTrace();
- }
- switch (c) {
- case '1':
- System.out.println(this.getServerStatus());
- break;
- case '2':
- this.startServer();
- break;
- case '3':
- this.stopServer();
- break;
- case '4':
- this.restartServer();
- break;
- case '5':
- System.out.println("exiting start");
- break;
- }
- }
- this.stopServer();
- }
- public static void main(String[] args) {
- ServerManager serverManager = new ServerManager();
- //serverManager.startMonitor();
- serverManager.test();
- }
- private void test() {
- System.out.println("begin of program");
- this.startServer();
- try {
- Thread.sleep(10000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- System.out.println("end of sleep");
- this.serverThread.interrupt();
- System.out.println("interrupt done ");
- this.serverThread.disconnectAll();
- System.out.println("set to null");
- System.out.println("end of program");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement