[jboss-svn-commits] JBL Code SVN: r16452 - in labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console: management-esb and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Nov 9 00:48:37 EST 2007
Author: tcunning
Date: 2007-11-09 00:48:36 -0500 (Fri, 09 Nov 2007)
New Revision: 16452
Added:
labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console/management-web/src/main/webapp/deployments.jsp
labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console/management-web/src/main/webapp/deploymentstats.jsp
Modified:
labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console/management-esb/jboss-esb.xml
labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console/management-web/src/main/webapp/index.jsp
labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console/management-web/src/main/webapp/operations.jsp
labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/StatisticsHelper.java
Log:
bug:JBESB-1106
Add new console page for deployments.
Modified: labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/StatisticsHelper.java
===================================================================
--- labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/StatisticsHelper.java 2007-11-09 05:48:08 UTC (rev 16451)
+++ labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/StatisticsHelper.java 2007-11-09 05:48:36 UTC (rev 16452)
@@ -21,10 +21,15 @@
*/
package org.jboss.soa.esb.monitoring.server;
+import java.util.ArrayList;
+import java.util.Hashtable;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
import javax.management.AttributeNotFoundException;
import javax.management.InstanceNotFoundException;
import javax.management.MBeanException;
@@ -39,6 +44,7 @@
import org.hibernate.SQLQuery;
import org.jboss.mx.util.MBeanServerLocator;
import org.jboss.soa.esb.monitoring.pojo.*;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
/**
* StatisticsHelper is a helper class which contains methods used in displaying
@@ -222,6 +228,94 @@
}
/**
+ * Return the list of distinct deployments for a server
+ * * @param sess hibernate session
+ * @param servername server name
+ * @return list of distinct deployments for a server
+ */
+ public static List<String> getDeploymentsForServer(Session sess, String servername) {
+ String query = "SELECT DISTINCT jmxa.objectname "
+ + "FROM JMXAttribute jmxa, JMXData jmxd "
+ + "WHERE jmxa.statid = jmxd.statid "
+ + "AND jmxa.objectname LIKE '%deployment=%' "
+ + "AND jmxd.server = :servername";
+ SQLQuery sqlq = sess.createSQLQuery(query);
+ sqlq.setString("servername", servername);
+ List result = sqlq.list();
+ Hashtable<String, String> deployments = new Hashtable<String, String>();
+ for (int i = 0; i < result.size(); i++) {
+ String objectname = (String) result.get(i);
+ Pattern pat = Pattern.compile("deployment=([^,]+)[,]?");
+ Matcher mat = pat.matcher(objectname);
+ while (mat.find()) {
+ String deploy = (String) mat.group(1);
+ deployments.put(deploy, deploy);
+ }
+ }
+ return new ArrayList<String>(deployments.keySet());
+ }
+
+
+ /**
+ * Return the list of distinct ObjectNames for a specific server
+ * @param sess hibernate session
+ * @param servername server name
+ * @return list of distinct ObjectNames for a specific server
+ */
+ public static List getObjectNamesForDeployment(Session sess, String servername, String deployment) {
+ String query = "SELECT DISTINCT jmxa.objectname "
+ + "FROM JMXAttribute jmxa, JMXData jmxd "
+ + "WHERE jmxa.statid = jmxd.statid "
+ + "AND jmxd.server = :servername "
+ + "AND jmxa.objectname LIKE '%" + ListenerTagNames.DEPLOYMENT_NAME_TAG
+ + "=" + deployment + "%'";
+ SQLQuery sqlq = sess.createSQLQuery(query);
+ sqlq.setString("servername", servername);
+ List result = sqlq.list();
+ return result;
+ }
+
+ public static String getServiceCategory(String objectName) {
+ Pattern pat = Pattern.compile(ListenerTagNames.SERVICE_CATEGORY_NAME_TAG + "=([^,]+)[,]?");
+ Matcher mat = pat.matcher(objectName);
+ if (mat.find()) {
+ String deploy = (String) mat.group(1);
+ return deploy;
+ }
+ return null;
+ }
+
+ public static String getListenerName(String objectName) {
+ Pattern pat = Pattern.compile(ListenerTagNames.LISTENER_NAME_TAG + "=([^,]+)[,]?");
+ Matcher mat = pat.matcher(objectName);
+ if (mat.find()) {
+ String deploy = (String) mat.group(1);
+ return deploy;
+ }
+ return null;
+ }
+
+ public static String getDeployment(String objectName) {
+ Pattern pat = Pattern.compile(ListenerTagNames.DEPLOYMENT_NAME_TAG + "=([^,]+)[,]?");
+ Matcher mat = pat.matcher(objectName);
+ if (mat.find()) {
+ String deploy = (String) mat.group(1);
+ return deploy;
+ }
+ return null;
+ }
+
+ public static String getServiceName(String objectName) {
+ Pattern pat = Pattern.compile(ListenerTagNames.SERVICE_NAME_TAG + "=([^,]+)[,]?");
+ Matcher mat = pat.matcher(objectName);
+ if (mat.find()) {
+ String service = (String) mat.group(1);
+ return service;
+ }
+ return null;
+ }
+
+ /**
* List of distinct attribute names by server and objectname.
* @param sess hibernate session
* @param servername server name
Modified: labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console/management-esb/jboss-esb.xml
===================================================================
--- labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console/management-esb/jboss-esb.xml 2007-11-09 05:48:08 UTC (rev 16451)
+++ labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console/management-esb/jboss-esb.xml 2007-11-09 05:48:36 UTC (rev 16452)
@@ -30,7 +30,7 @@
name="DataFilerService"
description="Service that files data into the database">
<listeners>
- <jms-listener name="JMS-DFListener"
+ <jms-listener name="JMS-DataFilerListener"
busidref="DataFilerChannel"
maxThreads="1"
/>
@@ -48,7 +48,7 @@
name="OperationsFilerService"
description="Service that files data into the database">
<listeners>
- <jms-listener name="JMS-DFListener"
+ <jms-listener name="JMS-OperationsFilerListener"
busidref="OperationsFilerChannel"
maxThreads="1"
/>
@@ -65,7 +65,7 @@
name="InvokerFilerService"
description="Service that files data into the database">
<listeners>
- <jms-listener name="JMS-DFListener"
+ <jms-listener name="JMS-InvokerFilerListener"
busidref="InvokerFilerChannel"
maxThreads="1"
/>
Added: labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console/management-web/src/main/webapp/deployments.jsp
===================================================================
--- labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console/management-web/src/main/webapp/deployments.jsp (rev 0)
+++ labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console/management-web/src/main/webapp/deployments.jsp 2007-11-09 05:48:36 UTC (rev 16452)
@@ -0,0 +1,84 @@
+<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
+<%@ page session="true" %>
+<%@ page import="
+ java.util.Enumeration,
+ java.util.List,
+ java.util.Hashtable,
+ org.hibernate.Session,
+ org.hibernate.Transaction,
+ org.jboss.soa.esb.monitoring.MonitoringSessionFactory,
+ org.jboss.soa.esb.monitoring.pojo.*,
+ org.jboss.soa.esb.monitoring.server.OperationsHelper,
+ org.jboss.soa.esb.monitoring.server.StatisticsHelper
+"%>
+<html>
+<head>
+ <title>JBoss ESB Monitoring Console</title>
+ <link rel="stylesheet" href="style_master.css" type="text/css">
+ <meta http-equiv="cache-control" content="no-cache">
+</head>
+<body>
+ <table>
+ <tr>
+ <td><img src="images/logo.gif" align="left" border="0" alt="JBoss"></td>
+ <td valign="middle">
+ <h1>JBoss ESB Management Console</h1>
+ </td>
+ </tr>
+ </table>
+ <table cellpadding="5"/>
+ <tr>
+ <td><a href="/jbossesb/operations.jsp">Management</a></td>
+ <td><a href="/jbossesb">Monitoring</a></td>
+ </tr>
+ </table>
+<hr>
+ <form action="collect.jsp" method="post">
+ <nobr>
+ Current polling interval is <b><code><%=StatisticsHelper.getCollectionInterval()%></code></b> minutes.
+ Press the button to manually <input type="submit" value="Collect Statistics"/>
+ </nobr>
+ </form>
+<%
+Session sess = null;
+Transaction tx = null;
+try {
+ sess = MonitoringSessionFactory.getInstance().openSession();
+ tx = sess.beginTransaction();
+ List serverNames = StatisticsHelper.getServerNames(sess);
+ for (int i = 0; i<serverNames.size(); i++) {
+ String serverName = (String) serverNames.get(i);
+%>
+<hr>
+ <h1><code><%=serverName%></code></h1>
+<%
+ String lastDeploy = "";
+
+ List deployments = StatisticsHelper.getDeploymentsForServer(sess, serverName);
+ for (int j = 0; j < deployments.size(); j++) {
+ String deployment = (String) deployments.get(j);
+ %>
+ <li><b><a href="deploymentstats.jsp?deployment=<%=deployment%>&servername=<%=serverName%>"><%=deployment%></a></b></li>
+ <%
+ }
+ }
+ if (serverNames.size() == 0) {
+ %>
+ No records found in database.
+ <%
+ }
+} catch (Exception e) {
+ e.printStackTrace();
+} finally {
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ tx = null;
+
+ sess.flush();
+ sess.close();
+ sess = null;
+}
+%>
+</body>
+</html>
\ No newline at end of file
Added: labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console/management-web/src/main/webapp/deploymentstats.jsp
===================================================================
--- labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console/management-web/src/main/webapp/deploymentstats.jsp (rev 0)
+++ labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console/management-web/src/main/webapp/deploymentstats.jsp 2007-11-09 05:48:36 UTC (rev 16452)
@@ -0,0 +1,156 @@
+<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
+<%@ page session="true" %>
+<%@ page import="
+ java.util.Enumeration,
+ java.util.List,
+ java.util.Hashtable,
+ org.hibernate.Session,
+ org.hibernate.Transaction,
+ org.jboss.soa.esb.monitoring.MonitoringSessionFactory,
+ org.jboss.soa.esb.monitoring.pojo.*,
+ org.jboss.soa.esb.monitoring.server.OperationsHelper,
+ org.jboss.soa.esb.monitoring.server.StatisticsHelper
+"%>
+<html>
+<head>
+ <title>JBoss ESB Monitoring Console</title>
+ <link rel="stylesheet" href="style_master.css" type="text/css">
+ <meta http-equiv="cache-control" content="no-cache">
+</head>
+<body>
+ <table>
+ <tr>
+ <td><img src="images/logo.gif" align="left" border="0" alt="JBoss"></td>
+ <td valign="middle">
+ <h1>JBoss ESB Management Console</h1>
+ </td>
+ </tr>
+ </table>
+ <table cellpadding="5"/>
+ <tr>
+ <td><a href="/jbossesb/operations.jsp">Management</a></td>
+ <td><a href="/jbossesb">Monitoring</a></td>
+ <td><a href="/jbossesb/deployments.jsp">Back to Deployments list</a></td>
+ </tr>
+ </table>
+<hr>
+ <form action="collect.jsp" method="post">
+ <nobr>
+ Current polling interval is <b><code><%=StatisticsHelper.getCollectionInterval()%></code></b> minutes.
+ Press the button to manually <input type="submit" value="Collect Statistics"/>
+ </nobr>
+
+ </form>
+<%
+Session sess = null;
+Transaction tx = null;
+try {
+ sess = MonitoringSessionFactory.getInstance().openSession();
+ tx = sess.beginTransaction();
+ String serverName = request.getParameter("servername");
+ String deployment = request.getParameter("deployment");
+%>
+<hr>
+ <h1><code><%=deployment%></code></h1>
+<%
+ String lastDeploy = "";
+
+%>
+ <h3>Listeners</h3>
+ <table>
+ <tr><th>Listener</th><th>Attributes</th><th>Operations</th></tr>
+ <%
+ List objectnames = StatisticsHelper.getObjectNamesForDeployment(sess, serverName, deployment);
+ for (int k = 0; k < objectnames.size(); k++) {
+ String objectname = (String) objectnames.get(k);
+ List operations = OperationsHelper.getOperations(sess, serverName, objectname);
+
+ if (StatisticsHelper.getListenerName(objectname) != null) {
+ %>
+ <tr><td><%=StatisticsHelper.getListenerName(objectname)%></td><td>
+ <%
+ List attributeNames = StatisticsHelper.getAttributes(sess, serverName, objectname);
+ for (int l = 0; l < attributeNames.size(); l++) {
+ JMXAttribute jmxattr = (JMXAttribute) attributeNames.get(l);
+ String attributeName = jmxattr.getAttribute();
+ %>
+ <a href="attribute.jsp?servername=<%=serverName%>&id=<%=jmxattr.getId()%>"><%=attributeName%></a>
+ <%
+ }
+ %>
+ </td><td>
+ <%
+ for (int l = 0; l < operations.size(); l++) {
+ JMXOperation jmxoper = (JMXOperation) operations.get(l);
+ String operation = jmxoper.getReturntype() + " " + jmxoper.getOperation()
+ + " (" + jmxoper.getDescription() + ")";
+ %>
+ <a href="invoke.jsp?id=<%=jmxoper.getId()%>"><%=operation%></a>
+ <%
+ }
+ %>
+ </td></tr>
+ <%
+ }
+ }
+ %>
+ </table>
+
+ <h3>Services</h3>
+ <table>
+ <tr><th>Service</th><th>Attributes</th><th>Operations</th></tr>
+ <%
+ for (int k = 0; k < objectnames.size(); k++) {
+ String objectname = (String) objectnames.get(k);
+ List operations = OperationsHelper.getOperations(sess, serverName, objectname);
+ if (StatisticsHelper.getServiceName(objectname) != null) {
+ String category = "";
+ if (StatisticsHelper.getServiceCategory(objectname) != null) {
+ category = StatisticsHelper.getServiceCategory(objectname);
+ }
+ %>
+ <tr>
+ <td><%=StatisticsHelper.getServiceName(objectname)%> <%=category%></td><td>
+ <%
+ List attributeNames = StatisticsHelper.getAttributes(sess, serverName, objectname);
+ for (int l = 0; l < attributeNames.size(); l++) {
+ JMXAttribute jmxattr = (JMXAttribute) attributeNames.get(l);
+ String attributeName = jmxattr.getAttribute();
+ %>
+ <a href="attribute.jsp?servername=<%=serverName%>&id=<%=jmxattr.getId()%>"><%=attributeName%></a>
+ <%
+ }
+ %>
+ </td><td>
+ <%
+ for (int l = 0; l < operations.size(); l++) {
+ JMXOperation jmxoper = (JMXOperation) operations.get(l);
+ String operation = jmxoper.getReturntype() + " " + jmxoper.getOperation()
+ + " (" + jmxoper.getDescription() + ")";
+ %>
+ <a href="invoke.jsp?id=<%=jmxoper.getId()%>"><%=operation%></a>
+ <%
+ }
+ %>
+ </td></tr>
+ <%
+ }
+ }
+ %>
+ </table>
+ <%
+} catch (Exception e) {
+ e.printStackTrace();
+} finally {
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ tx = null;
+
+ sess.flush();
+ sess.close();
+ sess = null;
+}
+%>
+</body>
+</html>
Modified: labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console/management-web/src/main/webapp/index.jsp
===================================================================
--- labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console/management-web/src/main/webapp/index.jsp 2007-11-09 05:48:08 UTC (rev 16451)
+++ labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console/management-web/src/main/webapp/index.jsp 2007-11-09 05:48:36 UTC (rev 16452)
@@ -26,6 +26,7 @@
<table cellpadding="5"/>
<tr>
<td><a href="/jbossesb/operations.jsp">Management</a></td>
+ <td><a href="/jbossesb/deployments.jsp">Deployments</a></td>
</tr>
</table>
<hr>
Modified: labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console/management-web/src/main/webapp/operations.jsp
===================================================================
--- labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console/management-web/src/main/webapp/operations.jsp 2007-11-09 05:48:08 UTC (rev 16451)
+++ labs/jbossesb/workspace/platform/JBESB_4_2_1_SOA_4_2/product/tools/console/management-web/src/main/webapp/operations.jsp 2007-11-09 05:48:36 UTC (rev 16452)
@@ -28,6 +28,7 @@
<tr>
<td><a href="/jbossesb/">Monitoring</a></td>
<td><a href="/jbossesb/results.jsp">Operation Invocation Results</a></td>
+ <td><a href="/jbossesb/deployments.jsp">Deployments</a></td>
</tr>
</table>
<hr>
More information about the jboss-svn-commits
mailing list