KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > console > plugins > monitor > CreateSnapshotServlet


1 /*
2   * JBoss, Home of Professional Open Source
3   * Copyright 2005, JBoss Inc., and individual contributors as indicated
4   * by the @authors tag. See the copyright.txt in the distribution for a
5   * full listing of individual contributors.
6   *
7   * This is free software; you can redistribute it and/or modify it
8   * under the terms of the GNU Lesser General Public License as
9   * published by the Free Software Foundation; either version 2.1 of
10   * the License, or (at your option) any later version.
11   *
12   * This software is distributed in the hope that it will be useful,
13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15   * Lesser General Public License for more details.
16   *
17   * You should have received a copy of the GNU Lesser General Public
18   * License along with this software; if not, write to the Free
19   * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20   * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21   */

22 package org.jboss.console.plugins.monitor;
23
24 import java.io.IOException JavaDoc;
25
26 import javax.management.MBeanServer JavaDoc;
27 import javax.management.MalformedObjectNameException JavaDoc;
28 import javax.management.ObjectName JavaDoc;
29 import javax.servlet.ServletException JavaDoc;
30 import javax.servlet.http.HttpServletRequest JavaDoc;
31 import javax.servlet.http.HttpServletResponse JavaDoc;
32
33 import org.jboss.logging.Logger;
34 import org.jboss.monitor.SnapshotRecordingMonitor;
35 import org.jboss.mx.util.MBeanServerLocator;
36
37 /**
38  * Created by IntelliJ IDEA.
39  * User: wburke
40  * Date: Nov 25, 2003
41  * Time: 5:53:01 PM
42  * To change this template use Options | File Templates.
43  */

44 public class CreateSnapshotServlet extends javax.servlet.http.HttpServlet JavaDoc
45 {
46    private static final Logger log = Logger.getLogger(CreateSnapshotServlet.class);
47    
48    protected void doGet(HttpServletRequest JavaDoc req, HttpServletResponse JavaDoc resp)
49            throws ServletException JavaDoc, IOException JavaDoc
50    {
51       doit(req, resp);
52    }
53
54    protected void doPost(HttpServletRequest JavaDoc req, HttpServletResponse JavaDoc resp)
55            throws ServletException JavaDoc, IOException JavaDoc
56    {
57       doit(req, resp);
58    }
59
60    protected void error(String JavaDoc msg, HttpServletRequest JavaDoc req, HttpServletResponse JavaDoc resp)
61            throws ServletException JavaDoc, IOException JavaDoc
62    {
63       req.setAttribute("error", "Error: " + msg);
64       //this.getServletContext().getRequestDispatcher("/createThresholdMonitor.jsp").forward(req, resp);
65
req.getRequestDispatcher("/createSnapshot.jsp").forward(req, resp);
66       return;
67    }
68
69    protected void doit(HttpServletRequest JavaDoc req, HttpServletResponse JavaDoc resp)
70            throws ServletException JavaDoc, IOException JavaDoc
71    {
72
73       String JavaDoc monitorName = req.getParameter("monitorName").trim();
74       log.debug(monitorName);
75       String JavaDoc objectName = req.getParameter("objectName").trim();
76       log.debug(objectName);
77       MBeanServer JavaDoc mbeanServer = MBeanServerLocator.locateJBoss();
78       ObjectName JavaDoc oname = null;
79       try
80       {
81          oname = new ObjectName JavaDoc(objectName);
82       }
83       catch (MalformedObjectNameException JavaDoc e)
84       {
85          error("Malformed ObjectName ", req, resp);
86          return;
87       }
88       String JavaDoc attribute = req.getParameter("attribute").trim();
89       log.debug(attribute);
90       Object JavaDoc val = null;
91       try
92       {
93          val = mbeanServer.getAttribute(oname, attribute);
94       }
95       catch (Exception JavaDoc e)
96       {
97          error("Unable to pull attribute value from MBean, does the attribute exist? ", req, resp);
98          return;
99       }
100       String JavaDoc period = req.getParameter("period").trim();
101       log.debug(period);
102       long timePeriod = 0;
103       try
104       {
105          timePeriod = Long.parseLong(period);
106       }
107       catch (NumberFormatException JavaDoc e)
108       {
109          error("Illegal format for watch period.", req, resp);
110          return;
111       }
112       try
113       {
114          SnapshotRecordingMonitor monitor = new SnapshotRecordingMonitor();
115
116          monitor.setMonitorName(monitorName);
117          monitor.setObservedObject(oname);
118          monitor.setObservedAttribute(attribute);
119          monitor.setPeriod(timePeriod);
120          ObjectName JavaDoc sname = new ObjectName JavaDoc("jboss.snapshot:name=" + monitorName);
121          mbeanServer.registerMBean(monitor, sname);
122          resp.sendRedirect("/web-console/manageSnapshot.jsp?monitorObjectName=" + java.net.URLEncoder.encode(sname.toString()));
123       }
124       catch (Exception JavaDoc ex)
125       {
126          error("Failed to create non-persisted monitor: " + ex.toString(), req, resp);
127       }
128
129
130    }
131
132 }
133
Popular Tags