ReplServlet.java 1.37 KB
package fi.codecrew.moya.management;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.UnavailableException;
import javax.servlet.annotation.WebServlet;

import net.matlux.NreplServer;

@WebServlet(loadOnStartup = 5)
public class ReplServlet implements Servlet {

	private static final int NREPL_DEFAULT_PORT = 1112;
	private NreplServer nreplServer;
	private ServletConfig servletConfig;

	@Override
	public void init(ServletConfig config) throws ServletException {
		servletConfig = config;
		int port = NREPL_DEFAULT_PORT;
		String portStr = config.getInitParameter("port");
		if (portStr != null) {
			port = Integer.parseInt(portStr);
		}
		nreplServer = new NreplServer(port);
	}

	@Override
	public ServletConfig getServletConfig() {
		return servletConfig;
	}

	@Override
	public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
		throw new UnavailableException("This servlet doesn't really serve.");
	}

	@Override
	public String getServletInfo() {
		return "REPL Servlet for introspecting the JVM";
	}

	public NreplServer getNreplServer() {
		return nreplServer;
	}

	@Override
	public void destroy() {
		if (nreplServer != null) {
			nreplServer.stop();
		}
	}
}