View Javadoc
1 package net.sourceforge.backpedal.impl.server; 2 3 import net.mikehogan.veggie.exceptions.VeggieSystemException; 4 import net.sourceforge.backpedal.api.server.BackpedalServer; 5 import net.sourceforge.backpedal.api.server.ServerControl; 6 import net.sourceforge.backpedal.api.server.ServerRunnable; 7 import net.sourceforge.backpedal.impl.AbstractComponent; 8 9 import java.io.IOException; 10 import java.net.ServerSocket; 11 12 public class BackpedalServerImpl extends AbstractComponent implements BackpedalServer{ 13 private final ServerControl control; 14 private final ServerRunnable serverRunnable; 15 private int port = 0; 16 private boolean configured = false; 17 private Thread serverThread = null; 18 19 public BackpedalServerImpl(ServerControl control, ServerRunnable serverRunnable) { 20 this.control = control; 21 this.serverRunnable = serverRunnable; 22 } 23 24 public void setPort(int port) { 25 this.port = port; 26 configured = true; 27 } 28 29 public void start() { 30 if (!configured) { 31 throw new IllegalStateException("Not configured"); 32 } 33 if (serverThread == null) { 34 doStart(); 35 } else { 36 throw new IllegalStateException("Server already started"); 37 } 38 } 39 40 private void doStart() { 41 try { 42 serverRunnable.setServerControl(control); 43 serverRunnable.setServerSocket(new ServerSocket(port)); 44 serverThread = new Thread(serverRunnable.getRunnable()); 45 serverThread.start(); 46 log().info("Backpedal server started on port " + port); 47 } catch (IOException e) { 48 throw new VeggieSystemException("Exception trying to start backpedal server", e); 49 } 50 } 51 52 public void stop() { 53 control.stopRunning(); 54 serverThread.interrupt(); 55 } 56 }

This page was automatically generated by Maven