#set($symbol_pound='#')
#set($symbol_dollar='$')
#set($symbol_escape='\' )
package ${package};
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.nio.file.Files;
import java.nio.file.Paths;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;
public class Application extends AbstractHandler {
private static final int DEFAULT_PORT = 5000;
private static final int PAGE_SIZE = 3000;
private static final String INDEX_HTML = loadIndex();
private static String loadIndex() {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(Application.class.getResourceAsStream("/index.html")))) {
final StringBuilder page = new StringBuilder(PAGE_SIZE);
String line = null;
while ((line = reader.readLine()) != null) {
page.append(line);
}
return page.toString();
} catch (final Exception exception) {
return getStackTrace(exception);
}
}
private static String getStackTrace(final Throwable throwable) {
final StringWriter stringWriter = new StringWriter();
final PrintWriter printWriter = new PrintWriter(stringWriter, true);
throwable.printStackTrace(printWriter);
return stringWriter.getBuffer().toString();
}
private static int getPort() {
String port = System.getenv().get("PORT");
return port == null ? DEFAULT_PORT : Integer.parseInt(port);
}
public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html;charset=utf-8");
response.setStatus(HttpServletResponse.SC_OK);
baseRequest.setHandled(true);
response.getWriter().println(INDEX_HTML);
}
public static void main(String[] args) throws Exception {
Server server = new Server(getPort());
server.setHandler(new Application());
server.start();
server.join();
}
}