All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.leopard.myjetty.workbench.WebappServlet Maven / Gradle / Ivy

package io.leopard.myjetty.workbench;

import java.io.IOException;
import java.io.OutputStream;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.util.StringUtils;

import io.leopard.myjetty.web.freemarker.JsonView;
import io.leopard.myjetty.web.freemarker.MyJettyView;
import io.leopard.myjetty.webapp.WebappServiceImpl;

public class WebappServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;

	private WebappController webappController = WebappController.getInstance();

	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String uri = request.getRequestURI();
		System.out.println("doGet uri:" + uri);
		if ("/workbench/webapp".equals(uri)) {
			this.index(request, response);
		}
		else if ("/workbench/webapp/".equals(uri)) {
			this.index(request, response);
		}
		else if ("/workbench/webapp/index".equals(uri)) {
			this.index(request, response);
		}
		else if ("/workbench/webapp/start".equals(uri)) {
			this.start(request, response);
		}
		else if ("/workbench/webapp/stop".equals(uri)) {
			this.stop(request, response);
		}
		else if ("/workbench/webapp/restart".equals(uri)) {
			this.restart(request, response);
		}
		else if ("/workbench/webapp/update".equals(uri)) {
			this.update(request, response);
		}
		else if ("/workbench/webapp/compile".equals(uri)) {
			this.compile(request, response);
		}
		else if ("/workbench/webapp/deploy".equals(uri)) {
			this.deploy(request, response);
		}
		else if ("/workbench/webapp/packaging".equals(uri)) {
			this.packaging(request, response);
		}

		else {
			throw new ServletException("未知地址[" + uri + "].");
		}
	}

	protected void index(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String projectId = this.getProjectId(request);

		MyJettyView view = new MyJettyView("webapp");
		view.addObject("projectId", projectId);
		view.render(request, response);
	}

	protected String getProjectId(HttpServletRequest request) {
		String projectId = request.getParameter("projectId");
		if (StringUtils.isEmpty(projectId)) {
			// TODO ahai
			// projectId = WebappServiceImpl.getInstance().getDefaultProjectId();
			// if (projectId == null) {
			// projectId = "";
			// }
		}
		return projectId;
	}

	protected void start(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/plain; charset=UTF-8");
		String projectId = this.getProjectId(request);
		this.webappController.start(projectId);

		JsonView view = new JsonView("starting");
		view.render(request, response);
	}

	protected void stop(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/plain; charset=UTF-8");
		String projectId = this.getProjectId(request);
		this.webappController.stop(projectId);

		JsonView view = new JsonView("stop");
		view.render(request, response);
	}

	protected void restart(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/plain; charset=UTF-8");
		String projectId = this.getProjectId(request);
		webappController.restart(projectId);

		JsonView view = new JsonView("restart");
		view.render(request, response);
	}

	protected void deploy(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/plain; charset=UTF-8");
		String projectId = this.getProjectId(request);

		OutputStream output = response.getOutputStream();
		webappController.svnupdate(projectId, output);
		webappController.packaging(projectId, output);
		webappController.restart(projectId);

		// JsonView view = new JsonView("deploy");
		// view.render(request, response);
	}

	protected void packaging(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/plain; charset=UTF-8");
		String projectId = this.getProjectId(request);
		this.webappController.packaging(projectId, response.getOutputStream());

		response.flushBuffer();

		// JsonView view = new JsonView("packaging");
		// view.render(request, response);
	}

	protected void compile(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/plain; charset=UTF-8");
		String projectId = this.getProjectId(request);
		this.webappController.compile(projectId, response.getOutputStream());

		// JsonView view = new JsonView("compile");
		// view.render(request, response);
	}

	protected void update(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/plain; charset=UTF-8");

		String projectId = this.getProjectId(request);
		this.webappController.svnupdate(projectId, response.getOutputStream());
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy