[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>&nbsp;
+						<%
+					}
+					%>
+						</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>&nbsp;
+						<%
+					}
+					%>
+						</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>&nbsp;
+						<%
+					}
+						%>
+						</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>&nbsp;
+							<%
+						}
+						%>
+						</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