package org.wso2.training.tomcat.embed;

import org.apache.catalina.Context;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.startup.Tomcat;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;

public class EmbeddedTomcat {
    public static void main(String[] args) throws LifecycleException {
        Tomcat tomcat = new Tomcat();
        tomcat.setPort(8888);
        Context ctx = tomcat.addContext("/", new File(".").getAbsolutePath());

        tomcat.addServlet(ctx, "HelloTomcat", new HttpServlet() {
            protected void service(HttpServletRequest req, HttpServletResponse resp)
                    throws ServletException, IOException {
                PrintWriter responseWriter = resp.getWriter();
                responseWriter.println("You are running Tomcat in Embedded mode");
                responseWriter.flush();
            }
        });

        ctx.addServletMapping("/*", "HelloTomcat");
        tomcat.start();
        tomcat.getServer().await();
    }
}