package org.renat.jetty;

import java.net.BindException;

import org.mortbay.http.HttpListener;
import org.mortbay.http.SocketListener;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.servlet.ServletHttpContext;
import org.mortbay.util.MultiException;

/**
 * Класс запускающий сервер jetty
 * @author Renat Zubairov
 */
public class JettyStarter {

	public static void main(String[] args) throws Exception {
		// начальный порт
		int portNumber = 8080;		
		// количество попыток найти свободный порт
		int tryCount = 100;
		HttpListener listener = null;		
		Server server = new Server();
		server.addWebApplication("/",".");
		for(int i=0;i<tryCount;i++) {
			try {
				listener = server.addListener(":" + String.valueOf(portNumber));				
				server.start();
				System.out.println("Server started on port " + portNumber);
				i=tryCount;				
			} catch (MultiException e) {
				if (e.getException(0) instanceof BindException) {
					System.err.println("Port " + portNumber + " is busy");				
					portNumber++;
					server.removeListener(listener);
					System.err.println("Trying port " + portNumber);					
				} else {
					throw e;
				}
			}
		}
	}
}
