MCPcopy
hub / github.com/dianping/cat / CatHandler

Enum CatHandler

integration/URL/CatFilter.java:55–290  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

53 }
54
55 private static enum CatHandler implements Handler {
56 ENVIRONMENT {
57
58 @Override
59 public void handle(Context ctx) throws IOException, ServletException {
60 HttpServletRequest req = ctx.getRequest();
61 boolean top = !Cat.getManager().hasContext();
62
63 ctx.setTop(top);
64
65 if (top) {
66 ctx.setType(CatConstants.TYPE_URL);
67
68 setTraceMode(req);
69 } else {
70 ctx.setType(CatConstants.TYPE_URL_FORWARD);
71 }
72
73 ctx.handle();
74 }
75
76 protected void setTraceMode(HttpServletRequest req) {
77 String traceMode = "X-CAT-TRACE-MODE";
78 String headMode = req.getHeader(traceMode);
79
80 if ("true".equals(headMode)) {
81 Cat.getManager().setTraceMode(true);
82 }
83 }
84 },
85
86 ID_SETUP {
87 private String m_servers;
88
89 private String getCatServer() {
90 if (m_servers == null) {
91 DefaultMessageManager manager = (DefaultMessageManager) Cat.getManager();
92 List<Server> servers = manager.getConfigManager().getServers();
93
94 m_servers = Joiners.by(',').join(servers, new IBuilder<Server>() {
95 @Override
96 public String asString(Server server) {
97 String ip = server.getIp();
98 Integer httpPort = server.getHttpPort();
99
100 return ip + ":" + httpPort;
101 }
102 });
103 }
104
105 return m_servers;
106 }
107
108 @Override
109 public void handle(Context ctx) throws IOException, ServletException {
110 boolean isTraceMode = Cat.getManager().isTraceMode();
111 HttpServletResponse res = ctx.getResponse();
112

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected