/[projects]/miscJava/CircuitBreaker/src/main/java/dk/thoerup/circuitbreaker/web/CircuitBreakerServletBase.java
ViewVC logotype

Annotation of /miscJava/CircuitBreaker/src/main/java/dk/thoerup/circuitbreaker/web/CircuitBreakerServletBase.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 417 - (hide annotations) (download)
Thu Oct 8 07:07:14 2009 UTC (14 years, 8 months ago) by torben
Original Path: CircuitBreaker/src/dk/thoerup/curcuitbreaker/web/CircuitBreakerServletBase.java
File size: 2532 byte(s)
Finished v1 of web interface
1 torben 411 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 torben 414 * 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 torben 411 * Example:
16     * <pre>
17 torben 414 * public class CircuitBreakerServlet extends CircuitBreakerServletBase {
18 torben 411 * private static final long serialVersionUID = 1L;
19     * }
20     * </pre>
21 torben 417 *
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 torben 411 */
29    
30 torben 416 public class CircuitBreakerServletBase extends javax.servlet.http.HttpServlet {
31 torben 411
32 torben 414 private static final long serialVersionUID = 1L;
33 torben 416
34 torben 417 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 torben 416 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 torben 417 return new ViewCircuitBreaker(readOnly);
55     if (command.equals("action"))
56     return new ActionCommand(readOnly);
57 torben 416
58 torben 417 throw new ServletException("No such command:" + command);
59 torben 416 }
60 torben 414
61 torben 411 public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
62 torben 416 Command cmd = getCommand( req.getParameter("command"));
63 torben 411
64 torben 416 String response = cmd.execute(req,resp);
65 torben 411
66     resp.setDateHeader("Expires", 0);
67     resp.setHeader("Pragma", "no-cache");
68     resp.setHeader("Cache-Control", "no-cache");
69    
70     resp.getWriter().print(response);
71     }
72    
73 torben 416 @Override
74     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
75     doGet(req, resp);
76     }
77    
78 torben 411 }

Properties

Name Value
svn:mergeinfo

  ViewVC Help
Powered by ViewVC 1.1.20