/**
* Dianping.com Inc.
* Copyright (c) 2003-2013 All Rights Reserved.
*/
package com.dianping.pigeon.console;
import java.net.URL;
import com.dianping.pigeon.console.servlet.*;
import com.dianping.pigeon.console.servlet.json.*;
import com.dianping.pigeon.log.Logger;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.servlet.Context;
import org.mortbay.jetty.servlet.DefaultServlet;
import org.mortbay.jetty.servlet.ServletHolder;
import com.dianping.pigeon.log.LoggerLoader;
import com.dianping.pigeon.remoting.http.provider.JettyHttpServerProcessor;
import com.dianping.pigeon.remoting.provider.config.ServerConfig;
public class JettyConsoleProcessor implements JettyHttpServerProcessor {
protected final Logger logger = LoggerLoader.getLogger(this.getClass());
@Override
public void preStart(ServerConfig serverConfig, Server server, Context context) {
int port = server.getConnectors()[0].getPort();
context.addServlet(new ServletHolder(new ServiceServlet(serverConfig, port)), "/services");
context.addServlet(new ServletHolder(new ServicePublishServlet(serverConfig, port)), "/services.publish");
context.addServlet(new ServletHolder(new ServiceUnpublishServlet(serverConfig, port)), "/services.unpublish");
context.addServlet(new ServletHolder(new ServiceOnlineServlet(serverConfig, port)), "/services.online");
context.addServlet(new ServletHolder(new ServiceOfflineServlet(serverConfig, port)), "/services.offline");
context.addServlet(new ServletHolder(new RegionStatusServlet(serverConfig, port)), "/region");
context.addServlet(new ServletHolder(new RequestQualityServlet(serverConfig, port)), "/requestQuality");
ServiceJsonServlet serviceJsonServlet = new ServiceJsonServlet(serverConfig, port);
context.addServlet(new ServletHolder(serviceJsonServlet), "/services.json");
context.addServlet(new ServletHolder(serviceJsonServlet), "/meta");
InvokeJsonServlet invokeJsonServlet = new InvokeJsonServlet(serverConfig, port);
context.addServlet(new ServletHolder(invokeJsonServlet), "/invoke.json");
context.addServlet(new ServletHolder(invokeJsonServlet), "/invoke");
DependencyJsonServlet dependencyJsonServlet = new DependencyJsonServlet(serverConfig, port);
context.addServlet(new ServletHolder(dependencyJsonServlet), "/dependencies.json");
context.addServlet(new ServletHolder(dependencyJsonServlet), "/dependencies");
StatisticsJsonServlet statisticsJsonServlet = new StatisticsJsonServlet(serverConfig, port);
context.addServlet(new ServletHolder(statisticsJsonServlet), "/stats.json");
context.addServlet(new ServletHolder(statisticsJsonServlet), "/stats");
ServiceStatusJsonServlet serviceStatusJsonServlet = new ServiceStatusJsonServlet(serverConfig, port);
context.addServlet(new ServletHolder(serviceStatusJsonServlet), "/services.status");
context.addServlet(new ServletHolder(serviceStatusJsonServlet), "/status");
ProviderOnlineStatusServlet providerOnlineStatusServlet = new ProviderOnlineStatusServlet();
context.addServlet(new ServletHolder(providerOnlineStatusServlet), "/onlineStatus");
JarJsonServlet jarJsonServlet = new JarJsonServlet(serverConfig, port);
context.addServlet(new ServletHolder(jarJsonServlet), "/jars");
TraceStatsJsonServlet statsJsonServlet = new TraceStatsJsonServlet();
context.addServlet(new ServletHolder(statsJsonServlet), "/trace");
GroupInfoServlet groupInfoServlet = new GroupInfoServlet(serverConfig, port);
context.addServlet(new ServletHolder(groupInfoServlet), "/group");
ServletHolder holder = new ServletHolder(new DefaultServlet());
URL url = JettyConsoleProcessor.class.getClassLoader().getResource("statics");
if (url == null) {
logger.error("can't find console static files!");
return;
}
String staticsDir = url.toExternalForm();
holder.setInitParameter("resourceBase", staticsDir);
holder.setInitParameter("gzip", "false");
// context.addServlet(holder, "/jquery/*");
// context.addServlet(holder, "/ztree/*");
// context.addServlet(holder, "/bootstrap/*");
context.addServlet(holder, "/bootstrap/css/bootstrap-responsive.min.css");
context.addServlet(holder, "/bootstrap/css/bootstrap.min.css");
context.addServlet(holder, "/bootstrap/img/glyphicons-halflings-white.png");
context.addServlet(holder, "/bootstrap/img/glyphicons-halflings.png");
context.addServlet(holder, "/bootstrap/js/bootstrap.min.js");
context.addServlet(holder, "/jquery/jquery-1.7.2.min.js");
context.addServlet(holder, "/jquery/jquery-ui.css");
context.addServlet(holder, "/jquery/jquery-ui.js");
context.addServlet(holder, "/jquery/jquery.easy-confirm-dialog.js");
context.addServlet(holder, "/ztree/img/diy/1_close.png");
context.addServlet(holder, "/ztree/img/diy/1_open.png");
context.addServlet(holder, "/ztree/img/diy/2.png");
context.addServlet(holder, "/ztree/img/diy/3.png");
context.addServlet(holder, "/ztree/img/diy/4.png");
context.addServlet(holder, "/ztree/img/diy/5.png");
context.addServlet(holder, "/ztree/img/diy/6.png");
context.addServlet(holder, "/ztree/img/diy/7.png");
context.addServlet(holder, "/ztree/img/diy/8.png");
context.addServlet(holder, "/ztree/img/diy/9.png");
context.addServlet(holder, "/ztree/img/line_conn.gif");
context.addServlet(holder, "/ztree/img/loading.gif");
context.addServlet(holder, "/ztree/img/zTreeStandard.gif");
context.addServlet(holder, "/ztree/img/zTreeStandard.png");
context.addServlet(holder, "/ztree/jquery.ztree.core-3.3.min.js");
context.addServlet(holder, "/ztree/ztree.css");
}
}