/** * */ package com.dianping.pigeon.console.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.dianping.pigeon.log.Logger; import com.dianping.pigeon.config.ConfigManagerLoader; import com.dianping.pigeon.console.Utils; import com.dianping.pigeon.log.LoggerLoader; import com.dianping.pigeon.remoting.ServiceFactory; import com.dianping.pigeon.remoting.common.util.Constants; import com.dianping.pigeon.remoting.provider.config.ServerConfig; public class ServicePublishServlet extends HttpServlet { protected final Logger logger = LoggerLoader.getLogger(this.getClass()); /** * */ private static final long serialVersionUID = 1L; public ServicePublishServlet(ServerConfig serverConfig, int port) { } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String ip = Utils.getIpAddr(request); logger.info("publishing all services, from " + ip); if (Utils.isGranted(request)) { boolean autoPublishEnable = ConfigManagerLoader.getConfigManager().getBooleanValue( Constants.KEY_AUTOPUBLISH_ENABLE, true); boolean isPublish = autoPublishEnable; String force = request.getParameter("force"); if ("true".equalsIgnoreCase(force)) { isPublish = true; } if (isPublish) { try { ServiceFactory.publishAllServices(); response.getWriter().println("ok"); } catch (Throwable e) { logger.error("Error while publishing all services", e); response.getWriter().println("error:" + e.getMessage()); } } else { logger.warn("auto publish is disabled!"); response.getWriter().println("ok"); } } else { logger.warn("Forbidden!"); response.getWriter().println("forbidden"); } } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }