1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.jdiagnose.library.web.spring;
17
18 import javax.servlet.http.HttpServletRequest;
19 import javax.servlet.http.HttpServletResponse;
20
21 import org.jdiagnose.runtime.DiagnosticRunner;
22 import org.springframework.beans.factory.BeanNameAware;
23 import org.springframework.web.servlet.ModelAndView;
24 import org.springframework.web.servlet.mvc.ParameterizableViewController;
25 import org.springframework.web.servlet.view.RedirectView;
26
27 /***
28 */
29 public class DiagnosticsController extends ParameterizableViewController implements BeanNameAware {
30
31 private String beanName;
32
33 private static final org.apache.log4j.Category log = org.apache.log4j.Category.getInstance(DiagnosticsController.class);
34
35 private Runners runners;
36
37 /***
38 * @see org.springframework.web.servlet.mvc.AbstractController#handleRequestInternal(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
39 */
40 protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
41 String runnerParameter = request.getParameter("runner");
42 DiagnosticRunner runner = (DiagnosticRunner) runners.getRunners().get(runnerParameter);
43 if(runner != null && request.getParameter("action") != null) {
44 log.debug("running runner asynchronously");
45 runner.runAsynchronously();
46 return new ModelAndView(new RedirectView(request.getContextPath() + request.getServletPath() + "?runner=" + runnerParameter));
47 } else {
48 log.debug("returning diagnostics view with runner");
49 return new ModelAndView(getViewName(), "runner", runner);
50 }
51 }
52
53 /***
54 * @see org.springframework.beans.factory.BeanNameAware#setBeanName(java.lang.String)
55 */
56 public void setBeanName(String beanName) {
57 this.beanName = beanName;
58 }
59
60 /***
61 * @param runners The runners to set.
62 */
63 public void setRunners(Runners runners) {
64 this.runners = runners;
65 }
66 }