/[projects]/CircuitBreaker/src/dk/thoerup/curcuitbreaker/web/CircuitBreakerServletBase.java
ViewVC logotype

Contents of /CircuitBreaker/src/dk/thoerup/curcuitbreaker/web/CircuitBreakerServletBase.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 423 - (show annotations) (download)
Thu Oct 8 12:32:09 2009 UTC (14 years, 7 months ago) by torben
File size: 2569 byte(s)
Remember to set correct content-type
1 package dk.thoerup.curcuitbreaker.web;
2
3 import java.io.IOException;
4
5 import javax.servlet.ServletException;
6 import javax.servlet.http.*;
7
8 /**
9 * This is a web interface for viewing and controlling the CircuitBreakers currently registered in CircuitBreakerManager
10 * <p>
11 * To use this servlet in you .war module just create a simple servlet that extends this class (instead of HttpServlet)
12 * The new custom servlet doesn't need to implement any of the standard servlet methods - its all done in this implementation.
13 *
14 * <p>
15 * Example:
16 * <pre>
17 * public class CircuitBreakerServlet extends CircuitBreakerServletBase {
18 * private static final long serialVersionUID = 1L;
19 * }
20 * </pre>
21 *
22 * If you add a servlet init pameter to your deployment descriptor with the name 'readonly' and a integer value > 0, you can disable the
23 * control buttons:
24 * <p>
25 * &lt;init-param>&lt;param-name>readonly&lt;/param-name>&lt;param-value>1&lt;/param-value>&lt;/init-param>
26 * <!-- <init-param><param-name>readonly</param-name><param-value>1</param-value></init-param> -->
27 *
28 */
29
30 public class CircuitBreakerServletBase extends javax.servlet.http.HttpServlet {
31
32 private static final long serialVersionUID = 1L;
33
34 private boolean readOnly = false;
35
36
37
38 @Override
39 public void init() throws ServletException {
40 super.init();
41
42 String readOnlyStr = getInitParameter("readonly");
43 if (readOnlyStr != null && readOnlyStr.trim().length() >0) {
44 int readOnlyInt = Integer.parseInt(readOnlyStr.trim());
45 readOnly = (readOnlyInt > 0);
46 }
47 }
48
49 private Command getCommand(String command) throws ServletException {
50 if (command == null || command.equals("list"))
51 return new ListCircuitBreakers();
52
53 if (command.equals("view"))
54 return new ViewCircuitBreaker(readOnly);
55 if (command.equals("action"))
56 return new ActionCommand(readOnly);
57
58 throw new ServletException("No such command:" + command);
59 }
60
61 public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
62 Command cmd = getCommand( req.getParameter("command"));
63
64 String response = cmd.execute(req,resp);
65
66 resp.setDateHeader("Expires", 0);
67 resp.setHeader("Pragma", "no-cache");
68 resp.setHeader("Cache-Control", "no-cache");
69 resp.setContentType("text/html");
70
71 resp.getWriter().print(response);
72 }
73
74 @Override
75 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
76 doGet(req, resp);
77 }
78
79 }

Properties

Name Value
svn:mergeinfo

  ViewVC Help
Powered by ViewVC 1.1.20