[jboss-svn-commits] JBL Code SVN: r14282 - in labs/jbossesb/trunk/product/tools/console: management and 16 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Aug 15 22:21:31 EDT 2007


Author: tcunning
Date: 2007-08-15 22:21:31 -0400 (Wed, 15 Aug 2007)
New Revision: 14282

Added:
   labs/jbossesb/trunk/product/tools/console/management-esb/
   labs/jbossesb/trunk/product/tools/console/management-esb/build.xml
   labs/jbossesb/trunk/product/tools/console/management-esb/db.properties
   labs/jbossesb/trunk/product/tools/console/management-esb/deployment.xml
   labs/jbossesb/trunk/product/tools/console/management-esb/jbm-queue-service.xml
   labs/jbossesb/trunk/product/tools/console/management-esb/jbmq-queue-service.xml
   labs/jbossesb/trunk/product/tools/console/management-esb/jboss-esb.xml
   labs/jbossesb/trunk/product/tools/console/management-esb/jboss-service.xml
   labs/jbossesb/trunk/product/tools/console/management-esb/readme.txt
   labs/jbossesb/trunk/product/tools/console/management-esb/src/
   labs/jbossesb/trunk/product/tools/console/management-esb/src/main/
   labs/jbossesb/trunk/product/tools/console/management-esb/src/main/java/
   labs/jbossesb/trunk/product/tools/console/management-esb/src/main/resources/
   labs/jbossesb/trunk/product/tools/console/management-web/lib/jcommon-1.0.10.jar
   labs/jbossesb/trunk/product/tools/console/management-web/lib/jfreechart-1.0.6.jar
   labs/jbossesb/trunk/product/tools/console/management-web/lib/mysql-connector-java-3.1.12-bin.jar
   labs/jbossesb/trunk/product/tools/console/management-web/lib/ojdbc14.jar
   labs/jbossesb/trunk/product/tools/console/management-web/src/main/webapp/attribute.jsp
   labs/jbossesb/trunk/product/tools/console/management-web/src/main/webapp/collect.jsp
   labs/jbossesb/trunk/product/tools/console/management-web/src/main/webapp/images/
   labs/jbossesb/trunk/product/tools/console/management-web/src/main/webapp/images/logo.gif
   labs/jbossesb/trunk/product/tools/console/management-web/src/main/webapp/style_master.css
   labs/jbossesb/trunk/product/tools/console/management-web/web.xml
   labs/jbossesb/trunk/product/tools/console/management/hsqldb.properties
   labs/jbossesb/trunk/product/tools/console/management/mysql.properties
   labs/jbossesb/trunk/product/tools/console/management/oracle.properties
   labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/CastingHelper.java
   labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/client/
   labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/client/DataCollector.java
   labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/client/DataCollectorAction.java
   labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/
   labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/BeanRegistrationServlet.java
   labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFiler.java
   labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerAction.java
   labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerJob.java
   labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerScheduler.java
   labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerSchedulerMBean.java
   labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/StatisticsHelper.java
   labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/TimeSeriesChartProducer.java
   labs/jbossesb/trunk/product/tools/console/management/src/main/resources/
   labs/jbossesb/trunk/product/tools/console/management/src/main/resources/hsqldb/
   labs/jbossesb/trunk/product/tools/console/management/src/main/resources/hsqldb/monitoring-mappings.hbm.xml
   labs/jbossesb/trunk/product/tools/console/management/src/main/resources/mysql/
   labs/jbossesb/trunk/product/tools/console/management/src/main/resources/mysql/monitoring-mappings.hbm.xml
   labs/jbossesb/trunk/product/tools/console/management/src/main/resources/oracle/
   labs/jbossesb/trunk/product/tools/console/management/src/main/resources/oracle/monitoring-mappings.hbm.xml
Removed:
   labs/jbossesb/trunk/product/tools/console/management-web/src/main/webapp/WEB-INF/
   labs/jbossesb/trunk/product/tools/console/management/target/
Modified:
   labs/jbossesb/trunk/product/tools/console/management-web/build.xml
   labs/jbossesb/trunk/product/tools/console/management-web/src/main/webapp/index.jsp
   labs/jbossesb/trunk/product/tools/console/management/build.xml
   labs/jbossesb/trunk/product/tools/console/management/monitoring.cfg.xml
   labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/JMXTest.java
   labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/StatisticsBean.java
   labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/StatisticsData.java
   labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/pojo/JMXAttribute.java
   labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/pojo/JMXData.java
   labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/pojo/JMXPattern.java
Log:
bug:JBESB-738
Commit monitoring jar, war, and esb.


Modified: labs/jbossesb/trunk/product/tools/console/management/build.xml
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/build.xml	2007-08-16 01:47:20 UTC (rev 14281)
+++ labs/jbossesb/trunk/product/tools/console/management/build.xml	2007-08-16 02:21:31 UTC (rev 14282)
@@ -1,8 +1,11 @@
 <?xml version="1.0"?>
 <project name="jboss-esb-console" default="jar" basedir=".">
+	<property name="esb.root.dir" location="../../.."/>
+	<property name="console.dir" value="${esb.root.dir}/tools/console"/>
+	<property file="${esb.root.dir}/tools/console/management-esb/db.properties"/>	
 	<property name="mgmt.dir" location="."/>
 	<property name="lib.dir" location="${mgmt.dir}/../lib"/>
-	<property name="build.dir" location="${mgmt.dir}/build"/>
+	<property name="mgmt.build.dir" location="${mgmt.dir}/build"/>
 	<property name="src.java.dir" location="${mgmt.dir}/src/main/java"/>
 	
 	<fileset id="lib" dir="${lib.dir}">
@@ -10,40 +13,77 @@
 	</fileset>
 	
 	<path id="build.classpath">
-		<fileset refid="lib" />
+		<fileset dir="${esb.root.dir}/tools/console/management-web/lib">
+			<include name="*.jar"/>
+		</fileset>
+		<fileset dir="${esb.root.dir}/lib/ext">
+			<include name="*.jar"/>
+		</fileset>
+		<fileset refid="lib"/>
 	</path>
 
+	<target name="clean">
+		<delete dir="${mgmt.build.dir}"/>
+	</target>
+
 	<target name="init">
-		<mkdir dir="${build.dir}"/>
-		<mkdir dir="${build.dir}/classes"/>
+		<mkdir dir="${mgmt.build.dir}"/>
+		<mkdir dir="${mgmt.build.dir}/classes"/>
 	</target>
 
 	<target name="compile" depends="init" 
 			description="Build the management war">
+		<echo>${esb.root.dir}</echo>
+		<mkdir dir="${mgmt.build.dir}/classes"/>
 		<javac classpathref="build.classpath" 
-			        destdir="${build.dir}/classes" 
-			          debug="on" 
+			        destdir="${mgmt.build.dir}/classes" 
+			        debug="on" 
+				includes="org/jboss/soa/esb/monitoring/**"
 				source="1.5"
 				target="1.5"
-			    deprecation="${javac.deprecation}" 
+			    	deprecation="${javac.deprecation}" 
 			        nowarn="on">
-			<src path="${src.java.dir}" />
+			<src path="${src.java.dir}"/>
+                	<src path="${esb.root.dir}/rosetta/src"/>
 		</javac>
-		<copy file="monitoring-mappings.hbm.xml"
+		<copy file="${mgmt.dir}/src/main/resources/${db}/monitoring-mappings.hbm.xml"
 			todir="build/classes/org/jboss/soa/esb/monitoring">
 		</copy>
 	</target>
 
 	<target name="jar" depends="compile" 
 			description="Build the distribution .jar file">
-		<jar jarfile="${build.dir}/management.jar">
-			<fileset dir="${build.dir}/classes">
-				<include name="**/*.class"/>
+		<mkdir dir="${mgmt.dir}/build"/>
+		<property file="${db}.properties"/>
+		<echo>${db}</echo>
+		<echo>${console.dir}</echo>
+		<copy file="monitoring.cfg.xml" todir="${mgmt.build.dir}" overwrite="true">
+			<filterset>	
+				<filter token="connection.datasource" value="${connection.datasource}"/>
+				<filter token="db.dialect" value="${db.dialect}"/>
+			</filterset>
+		</copy>
+		<jar jarfile="${mgmt.build.dir}/management-client.jar">
+			<fileset dir="${mgmt.build.dir}/classes">
+				<include name="org/jboss/soa/esb/monitoring/*.class"/>
+				<include name="org/jboss/soa/esb/monitoring/pojo/*.class"/>
+				<include name="org/jboss/soa/esb/monitoring/client/*.class"/>
 				<include name="**/*.xml"/>
 			</fileset>
-			<fileset dir="${mgmt.dir}">
+			<fileset dir="${mgmt.build.dir}">
 				<include name="monitoring.cfg.xml"/>
 			</fileset>
 		</jar>
+	        <jar jarfile="${mgmt.build.dir}/management-server.jar">
+                        <fileset dir="${mgmt.build.dir}/classes">
+				<include name="org/jboss/soa/esb/monitoring/*.class"/>
+                                <include name="org/jboss/soa/esb/monitoring/pojo/*.class"/>
+				<include name="org/jboss/soa/esb/monitoring/server/*.class"/>
+                                <include name="**/*.xml"/>
+                        </fileset>
+                        <fileset dir="${mgmt.build.dir}">
+                                <include name="monitoring.cfg.xml"/>
+                        </fileset>
+                </jar>
 	</target>
 </project>

Added: labs/jbossesb/trunk/product/tools/console/management/hsqldb.properties
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/hsqldb.properties	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management/hsqldb.properties	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,3 @@
+db.dialect=org.hibernate.dialect.HSQLDialect
+connection.datasource=java:/DefaultDS
+db.datasource=DefaultDS

Modified: labs/jbossesb/trunk/product/tools/console/management/monitoring.cfg.xml
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/monitoring.cfg.xml	2007-08-16 01:47:20 UTC (rev 14281)
+++ labs/jbossesb/trunk/product/tools/console/management/monitoring.cfg.xml	2007-08-16 02:21:31 UTC (rev 14282)
@@ -5,8 +5,8 @@
 <hibernate-configuration>
 <session-factory>
       <property name="hibernate.session_factory_name">SessionFactory</property>
-      <property name="connection.datasource">java:/DefaultDS</property>
-      <property name="dialect">org.hibernate.dialect.HSQLDialect</property>
+      <property name="connection.datasource">@connection.datasource@</property>
+      <property name="dialect">@db.dialect@</property>
       <property name="hibernate.session_factory_name">java:/comp/env/hibernate/MonitoringSessionFactory</property>
       <property name="hibernate.show_sql">true</property> 
      <!-- Mapping files -->

Added: labs/jbossesb/trunk/product/tools/console/management/mysql.properties
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/mysql.properties	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management/mysql.properties	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,3 @@
+db.dialect=org.hibernate.dialect.MySQLDialect
+connection.datasource=java:/ManagementDS
+db.datasource=ManagementDS

Added: labs/jbossesb/trunk/product/tools/console/management/oracle.properties
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/oracle.properties	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management/oracle.properties	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,3 @@
+db.dialect=org.hibernate.dialect.Oracle10gDialect
+connection.datasource=java:/ManagementDS
+db.datasource=ManagementDS

Added: labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/CastingHelper.java
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/CastingHelper.java	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/CastingHelper.java	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,70 @@
+package org.jboss.soa.esb.monitoring;
+
+public class CastingHelper {
+	public static Integer getInteger(Object obj) {
+		if (obj instanceof String) {
+			try {
+				return (new Integer((String) obj));
+			} catch (Exception e) {
+				return null;
+			}
+		} else if (obj instanceof Integer) {
+			return (Integer) obj;
+		} 
+		
+		return null;
+	}
+	
+	public static Float getFloat(Object obj) {
+		if (obj instanceof String) {
+			try {
+				return (new Float((String) obj));
+			} catch (Exception e) {
+				return null;
+			}
+		} else if (obj instanceof Float) {
+			return (Float) obj;
+		}
+		return null;
+	}
+	
+	public static Double getDouble(Object obj) {
+		if (obj instanceof String) {
+			try {
+				return (new Double((String) obj));
+			} catch (Exception e) {
+				return null;
+			}
+		} else if (obj instanceof Double) {
+			return (Double) obj;
+		}
+		return null;
+	}
+	
+	public static Long getLong(Object obj) {
+		if (obj instanceof String) {
+			try {
+				return (new Long((String) obj));
+			} catch (Exception e) {
+				return null;
+			}
+		} else if (obj instanceof Long) {
+			return (Long) obj;
+		}
+		return null;
+	}
+	
+	public static Object castObject(String type, Object data) {
+		if (type.equals("int") || type.equals("java.lang.Integer")) {
+			return CastingHelper.getInteger(data);
+		} else if (type.equals("float") || type.equals("java.lang.Float")) {
+			return CastingHelper.getFloat(data);
+		} else if (type.equals("double") || type.equals("java.lang.Double")) {
+			return CastingHelper.getDouble(data);
+		} else if (type.equals("long") || type.equals("java.lang.Long")) {
+			return CastingHelper.getLong(data);
+		} else {
+			return data;
+		}
+	}
+}

Modified: labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/JMXTest.java
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/JMXTest.java	2007-08-16 01:47:20 UTC (rev 14281)
+++ labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/JMXTest.java	2007-08-16 02:21:31 UTC (rev 14282)
@@ -1,7 +1,9 @@
 package org.jboss.soa.esb.monitoring;
 
 import javax.naming.*;
-import javax.management.*;
+
+import org.jboss.soa.esb.monitoring.client.DataCollector;
+
 import java.util.*;
 
 public class JMXTest {
@@ -11,6 +13,7 @@
 	/**
 	* @param args the command line arguments
 	*/
+	@SuppressWarnings("unchecked")
 	public static void main(String[] args) throws Exception
 	{
 		Hashtable environment = new Hashtable();
@@ -20,7 +23,7 @@
 		InitialContext ic = new InitialContext(environment);
 		
 		DataCollector dcollector = new DataCollector(ic);
-		dcollector.insertData();
+		dcollector.collectData();
 		StatisticsData data = dcollector.getData();
 		data.print();
 		

Modified: labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/StatisticsBean.java
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/StatisticsBean.java	2007-08-16 01:47:20 UTC (rev 14281)
+++ labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/StatisticsBean.java	2007-08-16 02:21:31 UTC (rev 14282)
@@ -1,8 +1,10 @@
 package org.jboss.soa.esb.monitoring;
 
+import java.io.Serializable;
 import java.util.Date;
 
-public class StatisticsBean {
+public class StatisticsBean implements Serializable {
+	private static final long serialVersionUID = -3039074516951343026L;
 	private String objectName;
 	private String attribute;
 	private String server;
@@ -12,6 +14,7 @@
 	
 	public StatisticsBean(String f_objectName, String f_attribute, String f_server,
 			Date f_collectionTime, String f_type,  Object f_data) {
+		data = CastingHelper.castObject(f_type, f_data);
 		objectName = f_objectName;
 		attribute = f_attribute;
 		server = f_server;
@@ -70,12 +73,14 @@
 	
 	public String toString() {
 		String objectData = "";
-		if (type.equals("java.lang.String")) {
-			objectData = (String) data;
-		} else if (type.equals("java.lang.Integer")) {
+		if (data instanceof Integer) {
 			objectData = ((Integer) data).toString();
-		} else if (type.equals("java.lang.Float")) {
+		} else if (data instanceof Float) {
 			objectData = ((Float) data).toString();
+		} else if (data instanceof Double) {
+			objectData = ((Double) data).toString();
+		} else if (data instanceof Long) {
+			objectData = ((Long) data).toString();
 		}
 		return "objectName[" + objectName +"] attribute[" + attribute
 			+ "] server[" + server + "collectionTime[" + collectionTime 

Modified: labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/StatisticsData.java
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/StatisticsData.java	2007-08-16 01:47:20 UTC (rev 14281)
+++ labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/StatisticsData.java	2007-08-16 02:21:31 UTC (rev 14282)
@@ -1,9 +1,11 @@
 package org.jboss.soa.esb.monitoring;
 
+import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 
-public class StatisticsData {
+public class StatisticsData implements Serializable {
+	private static final long serialVersionUID = -2081662961582149106L;
 	private List<StatisticsBean> list;
 	
 	public StatisticsData() {

Added: labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/client/DataCollector.java
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/client/DataCollector.java	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/client/DataCollector.java	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,137 @@
+package org.jboss.soa.esb.monitoring.client;
+
+import java.io.IOException;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.util.Date;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import javax.management.MBeanAttributeInfo;
+import javax.management.MBeanInfo;
+import javax.management.MBeanServerConnection;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
+import org.apache.log4j.Logger;
+import org.hibernate.Session;
+import org.jboss.soa.esb.monitoring.MonitoringSessionFactory;
+import org.jboss.soa.esb.monitoring.StatisticsBean;
+import org.jboss.soa.esb.monitoring.StatisticsData;
+import org.jboss.soa.esb.monitoring.pojo.JMXPattern;
+
+public class DataCollector {
+	Logger logger = Logger.getLogger(DataCollector.class);
+	private Context context;
+	private MBeanServerConnection server;
+	private StatisticsData data;
+	
+	public DataCollector() {
+		try {
+			context = new InitialContext();
+			server = (MBeanServerConnection) context.lookup("jmx/invoker/RMIAdaptor");      
+		} catch (NamingException e) {
+			logger.error("", e);
+		}
+		data = new StatisticsData();
+	}
+	
+	public DataCollector(Context f_context) {
+		context = f_context;
+		try {
+			server = (MBeanServerConnection) context.lookup("jmx/invoker/RMIAdaptor");
+		} catch (NamingException e) {
+			logger.error("", e);
+		}      
+		data = new StatisticsData();
+
+	}
+	
+	public MBeanServerConnection getServer() {
+		return server;
+	}
+	
+	public List getClassPatterns() {
+		Session sess = (Session) MonitoringSessionFactory.getInstance().openSession();
+		sess.beginTransaction();
+		List result = sess.createQuery("from JMXPattern").list();
+		sess.close();
+		return result;
+	}
+	
+	public List<ObjectName> getObjectNames(JMXPattern jmc, MBeanServerConnection server) {		
+		List<ObjectName> list = new ArrayList<ObjectName>();
+		ObjectName namePattern;
+		try {
+			namePattern = new ObjectName(jmc.getClasspattern());
+			Set result = server.queryNames(namePattern, null);
+			Iterator iter = result.iterator();
+			while (iter.hasNext()) {
+				ObjectName on = (ObjectName) iter.next();
+				if (on.getKeyPropertyListString().contains(jmc.getKeyvalue())) {
+					list.add(on);
+					logger.info(jmc.getKeyvalue() + " matches " + on.getKeyPropertyListString());
+				} else {
+					logger.info(jmc.getKeyvalue() + " does not match " + on.getKeyPropertyListString());
+				}
+			}
+		} catch (MalformedObjectNameException e) {
+			logger.error("", e);
+		} catch (NullPointerException e) {
+			logger.error("", e);
+		} catch (IOException e) {
+			logger.error("", e);
+		}
+			
+		return list;
+	}	
+	
+	public void insertAttributes(ObjectName on) {
+		MBeanInfo  info = null;
+		Date date = new Date(System.currentTimeMillis());
+		InetAddress addr = null;
+		try {
+			addr = InetAddress.getLocalHost();
+		} catch (UnknownHostException e) {
+			logger.error("", e);
+		}
+		
+		try {
+			info = server.getMBeanInfo(on);
+			MBeanAttributeInfo[] mai = info.getAttributes();
+			for (int i = 0; i < mai.length; i++) {
+				StatisticsBean sb = new StatisticsBean(on.toString(), mai[i].getName(),
+						addr.getHostName(), date, mai[i].getType(), 
+						server.getAttribute(on, mai[i].getName()));
+				if (sb.getData() != null) {
+					ArrayList<StatisticsBean> list = (ArrayList<StatisticsBean>) data.getList();
+					list.add(sb);
+				}
+			}
+		} catch (Exception e) {
+			logger.error("", e);
+		}
+	}
+	
+	public void collectData() {
+		List jmxPatterns = getClassPatterns();
+		for (int i = 0; i < jmxPatterns.size(); i++) {
+			JMXPattern jmxc = (JMXPattern) jmxPatterns.get(i);
+			List<ObjectName> objectNames = getObjectNames(jmxc, server);
+			for (int j = 0; j < objectNames.size(); j++) {
+				ObjectName on = (ObjectName) objectNames.get(j);
+				insertAttributes(on);
+			}
+		}
+	}
+	
+	public StatisticsData getData() {
+		return data;
+	}
+	
+}

Added: labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/client/DataCollectorAction.java
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/client/DataCollectorAction.java	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/client/DataCollectorAction.java	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,56 @@
+package org.jboss.soa.esb.monitoring.client;
+
+import java.net.URI;
+import java.util.List;
+import java.util.UUID;
+
+import javax.naming.InitialContext;
+
+import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.couriers.DeliverOnlyCourier;
+import org.jboss.soa.esb.actions.AbstractActionLifecycle;
+import org.jboss.soa.esb.addressing.Call;
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.couriers.CourierFactory;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.listeners.RegistryUtil;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.monitoring.StatisticsData;
+
+public class DataCollectorAction extends AbstractActionLifecycle {
+	  protected ConfigTree  _config;
+	  private static Logger logger = Logger.getLogger(DataCollectorAction.class);
+	  public DataCollectorAction(ConfigTree config) { _config = config; }
+	  
+	  public Message collectStatistics(Message message) throws Exception {
+		  if (message.getProperties().getProperty("COMMAND_MESSAGE") != null) {
+			InitialContext ic = new InitialContext();
+
+			DataCollector dcollector = new DataCollector(ic);
+			dcollector.collectData();
+			StatisticsData data = dcollector.getData();
+			
+	        List list = RegistryUtil.getEprs("JBossESB-Internal", "DataFilerService");
+	        for (int i = 0; i < list.size(); i++) {
+	        	EPR epr = (EPR)list.get(i);
+
+				Message esbMessage = MessageFactory.getInstance().getMessage();
+		        Call call = new Call();
+		        call.setMessageID(new URI(UUID.randomUUID().toString()));
+	        	esbMessage.getProperties().setProperty("COMMAND_MESSAGE", "foo");
+		        esbMessage.getBody().add(data);
+
+	        	DeliverOnlyCourier sender = CourierFactory.getCourier(epr);
+	        	
+	            URI uri = new URI(UUID.randomUUID().toString());
+	            esbMessage.getHeader().getCall().setMessageID(uri);
+	            sender.deliver(esbMessage);
+	        }
+		  } else {
+			  logger.error("DataCollectorAction received a message which was not a command message");
+			  message = null;
+		  }
+		  return message;
+	  }
+}

Modified: labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/pojo/JMXAttribute.java
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/pojo/JMXAttribute.java	2007-08-16 01:47:20 UTC (rev 14281)
+++ labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/pojo/JMXAttribute.java	2007-08-16 02:21:31 UTC (rev 14282)
@@ -8,11 +8,11 @@
  */
 public class JMXAttribute  implements java.io.Serializable {
 
+	private static final long serialVersionUID = 1295239741130189196L;
+	private Long id;
+	private String objectname;
+	private String attribute;
 
-     private Long id;
-     private String objectname;
-     private String attribute;
-
     public JMXAttribute() {
     }
 

Modified: labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/pojo/JMXData.java
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/pojo/JMXData.java	2007-08-16 01:47:20 UTC (rev 14281)
+++ labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/pojo/JMXData.java	2007-08-16 02:21:31 UTC (rev 14282)
@@ -9,19 +9,21 @@
  */
 public class JMXData  implements java.io.Serializable {
 
+	private static final long serialVersionUID = -1862113692118964270L;
+	private Long id;
+	private JMXAttribute attribute;
+	private String server;
+	private Date statdate;
+	private Float timevalue;
+	private Integer countvalue;
+	private String textvalue;
 
-     private Long id;
-     private JMXAttribute attribute;
-     private Date statdate;
-     private Float timevalue;
-     private Integer countvalue;
-     private String textvalue;
-
     public JMXData() {
     }
 
-    public JMXData(JMXAttribute attribute, Date statdate, Float timevalue, Integer countvalue, String textvalue) {
+    public JMXData(JMXAttribute attribute, String server, Date statdate, Float timevalue, Integer countvalue, String textvalue) {
        this.attribute = attribute;
+       this.server = server;
        this.statdate = statdate;
        this.timevalue = timevalue;
        this.countvalue = countvalue;
@@ -35,6 +37,7 @@
     public void setId(Long id) {
         this.id = id;
     }
+    
     public JMXAttribute getAttribute() {
         return this.attribute;
     }
@@ -42,6 +45,15 @@
     public void setAttribute(JMXAttribute attribute) {
         this.attribute = attribute;
     }
+    
+    public String getServer() {
+    	return server;
+    }
+    
+    public void setServer(String f_server) {
+    	server = f_server;
+    }
+    
     public Date getStatdate() {
         return this.statdate;
     }
@@ -49,6 +61,7 @@
     public void setStatdate(Date statdate) {
         this.statdate = statdate;
     }
+    
     public Float getTimevalue() {
         return this.timevalue;
     }
@@ -56,6 +69,7 @@
     public void setTimevalue(Float timevalue) {
         this.timevalue = timevalue;
     }
+    
     public Integer getCountvalue() {
         return this.countvalue;
     }
@@ -63,6 +77,7 @@
     public void setCountvalue(Integer countvalue) {
         this.countvalue = countvalue;
     }
+    
     public String getTextvalue() {
         return this.textvalue;
     }

Modified: labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/pojo/JMXPattern.java
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/pojo/JMXPattern.java	2007-08-16 01:47:20 UTC (rev 14281)
+++ labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/pojo/JMXPattern.java	2007-08-16 02:21:31 UTC (rev 14282)
@@ -8,11 +8,11 @@
  */
 public class JMXPattern  implements java.io.Serializable {
 
+	private static final long serialVersionUID = 5166687617223133915L;
+	private Long id;
+	private String classpattern;
+	private String keyvalue;
 
-     private Long id;
-     private String classpattern;
-     private String keyvalue;
-
     public JMXPattern() {
     }
 
@@ -28,6 +28,7 @@
     public void setId(Long id) {
         this.id = id;
     }
+    
     public String getClasspattern() {
         return this.classpattern;
     }
@@ -35,6 +36,7 @@
     public void setClasspattern(String classpattern) {
         this.classpattern = classpattern;
     }
+    
     public String getKeyvalue() {
         return this.keyvalue;
     }
@@ -42,10 +44,4 @@
     public void setKeyvalue(String keyvalue) {
         this.keyvalue = keyvalue;
     }
-
-
-
-
-}
-
-
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/BeanRegistrationServlet.java
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/BeanRegistrationServlet.java	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/BeanRegistrationServlet.java	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,67 @@
+package org.jboss.soa.esb.monitoring.server;
+
+import javax.management.InstanceAlreadyExistsException;
+import javax.management.InstanceNotFoundException;
+import javax.management.MBeanRegistrationException;
+import javax.management.MBeanServer;
+import javax.management.MalformedObjectNameException;
+import javax.management.NotCompliantMBeanException;
+import javax.management.ObjectName;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+
+import org.apache.log4j.Logger;
+import org.jboss.mx.util.MBeanServerLocator;
+
+public class BeanRegistrationServlet extends HttpServlet {
+	private static final long serialVersionUID = 5501281194727672262L;
+	
+	Logger logger = Logger.getLogger(BeanRegistrationServlet.class);
+	
+	public void init(ServletConfig config) throws ServletException {
+		MBeanServer mbeanServer = null;
+		ObjectName dataSchedulerName = null;
+		try {
+			mbeanServer = MBeanServerLocator.locateJBoss();
+		} catch (IllegalStateException ise) {
+			logger.error("", ise);
+			return;
+		}
+		
+		try {
+			dataSchedulerName = new ObjectName("jboss.esb:service=DataFilerScheduler");
+		} catch (MalformedObjectNameException e) {
+			logger.error("", e);
+		} catch (NullPointerException e) {
+			logger.error("", e);
+		}
+		
+		if (mbeanServer.isRegistered(dataSchedulerName)) {
+			try {
+				mbeanServer.unregisterMBean(dataSchedulerName);
+			} catch (InstanceNotFoundException e) {
+				logger.error("", e);
+			} catch (MBeanRegistrationException e) {
+				logger.error("", e);
+			}
+		}
+		
+		// Grab initial poll minute frequency from web.xml
+		String pollString = config.getInitParameter("pollMinuteFrequency");
+		int pollMinuteFrequency = Integer.parseInt(pollString);
+		
+		try {
+			DataFilerScheduler dfs = new DataFilerScheduler();
+			dfs.setPollMinuteFrequency(pollMinuteFrequency);
+			mbeanServer.registerMBean(dfs, dataSchedulerName);
+		} catch (InstanceAlreadyExistsException e) {
+            logger.error("", e);
+		} catch (MBeanRegistrationException e) {
+			logger.error("", e);
+		} catch (NotCompliantMBeanException e) {
+			logger.error("", e);
+		}
+		
+	}
+}

Added: labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFiler.java
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFiler.java	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFiler.java	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,123 @@
+package org.jboss.soa.esb.monitoring.server;
+
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.hibernate.Session;
+import org.hibernate.Transaction;
+import org.jboss.soa.esb.monitoring.MonitoringSessionFactory;
+import org.jboss.soa.esb.monitoring.StatisticsBean;
+import org.jboss.soa.esb.monitoring.StatisticsData;
+import org.jboss.soa.esb.monitoring.pojo.*;
+
+public class DataFiler {
+	private StatisticsData data;
+	private static final Logger logger = Logger.getLogger(DataFiler.class);
+	
+	public DataFiler() {
+	}
+	
+	public DataFiler(StatisticsData f_data) {
+		data = f_data;
+	}
+	
+	public JMXAttribute getAttribute(Session sess, String objectname, String attribute) {
+		String query = "from JMXAttribute jmxa "
+					+ "where objectname = :objectname and attribute = :attribute";
+				
+		List result = sess.createQuery(query)
+			.setString("objectname", objectname)
+			.setString("attribute", attribute).list();
+		
+		if (result.size() > 0) {
+			JMXAttribute jmxa = (JMXAttribute) result.get(0);
+			return jmxa;
+		}
+		return null;
+	}
+
+	public void insertData(Session sess, StatisticsBean f_sb, JMXAttribute attr) {
+		JMXData jmxd = null;
+		if (attr.getAttribute().matches("(?i).*Count")) {
+			if (f_sb.getType().equals("java.lang.Integer")) {
+				Integer data = new Integer(0);
+				try {
+					data = (Integer) f_sb.getData();
+				} catch (Exception e) {
+				}
+				jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), null, data, null);
+			} else if (f_sb.getType().equals("long")) {
+				Long data = (Long) f_sb.getData();
+				jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), null, new Integer(data.intValue()), null);
+			} else if (f_sb.getType().equals("int")) {
+				Integer data = (Integer) f_sb.getData();
+				jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), null, data, null);
+			} else {
+				logger.error ("ERROR - found type of " + f_sb.getType() + " for " + f_sb.getAttribute());
+				return;
+			} 
+		} else if (attr.getAttribute().matches("(?i).*Time")) {
+			if (f_sb.getType().equals("java.lang.Double")) {
+				Double tmp = (Double) f_sb.getData();
+				Float data = new Float(tmp.floatValue());
+				jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), data, null, null);
+			} else if (f_sb.getType().equals("java.lang.Float")) {
+				Float data = (Float) f_sb.getData();
+				jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), data, null, null);
+			} else if (f_sb.getType().equals("java.lang.Long")) {
+				Long temp = (Long) f_sb.getData();
+				Float data = new Float(temp.floatValue());
+				jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), data, null, null);
+			} else if (f_sb.getType().equals("java.lang.Integer")) {
+				Integer temp = (Integer) f_sb.getData();
+				Float data = new Float(temp.floatValue());
+				jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), data, null, null);				
+			} else {
+				logger.error ("ERROR - found type of " + f_sb.getType() + " for " + f_sb.getAttribute());
+				return;
+			} 
+		} else {
+			if (f_sb.getType().equals("java.lang.String")) {
+				String data = (String) f_sb.getData();
+				jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), null, null, data);			
+			} else {
+				logger.error ("ERROR - found type of " + f_sb.getType() + " for " + f_sb.getAttribute());
+				return;
+			} 
+		}
+		
+
+		jmxd.setAttribute(attr);
+		try {
+			sess.save(jmxd);
+		} catch (Exception e) {
+			logger.error("Problem saving " + jmxd.toString(), e);
+		}
+	}
+		
+	public void insertStatistics(StatisticsBean f_sb) {
+		Session sess = (Session) MonitoringSessionFactory.getInstance().openSession();
+		Transaction tx = sess.beginTransaction();
+
+		JMXAttribute attr = getAttribute(sess, f_sb.getObjectName(), f_sb.getAttribute());
+		if (attr == null) {
+			attr = new JMXAttribute(f_sb.getObjectName(), f_sb.getAttribute());
+			sess.save(attr);
+			insertData(sess, f_sb, attr);
+		} else {
+			insertData(sess, f_sb, attr);
+		}
+		tx.commit();
+
+		sess.flush();
+		sess.close();
+	}
+	
+	public void persistData() {
+		List list = data.getList();
+		for (int i = 0; i < list.size(); i++) {
+			StatisticsBean bean = (StatisticsBean) list.get(i);
+			insertStatistics(bean);
+		}
+	}
+}

Added: labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerAction.java
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerAction.java	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerAction.java	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,32 @@
+
+
+package org.jboss.soa.esb.monitoring.server;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.AbstractActionLifecycle;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.monitoring.StatisticsData;
+
+public class DataFilerAction extends AbstractActionLifecycle {
+	  protected ConfigTree  _config;
+
+	  private static final Logger logger = Logger.getLogger(DataFilerAction.class);
+	  
+	  public DataFilerAction(ConfigTree config) { _config = config; }
+
+	  public Message fileMessage(Message message) throws Exception {
+		  if ((message.getProperties() != null) &&
+				  (message.getProperties().getProperty("COMMAND_MESSAGE") != null)) {
+			  StatisticsData statData = (StatisticsData) message.getBody().get();
+			  logger.error("Filing Data!!!!!!");
+			  statData.print();
+			  DataFiler df = new DataFiler(statData);
+			  df.persistData();
+		  } else {
+			  logger.error("DataCollectorAction received a message which was not a command message");
+			  message = null;
+		  }
+		  return message;
+	  }
+}

Added: labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerJob.java
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerJob.java	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerJob.java	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,67 @@
+package org.jboss.soa.esb.monitoring.server;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.List;
+import java.util.UUID;
+
+import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.couriers.DeliverOnlyCourier;
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.addressing.MalformedEPRException;
+import org.jboss.soa.esb.couriers.CourierException;
+import org.jboss.soa.esb.couriers.CourierFactory;
+import org.jboss.soa.esb.listeners.RegistryUtil;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.services.registry.RegistryException;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+
+public class DataFilerJob implements Job {
+	private static Logger logger = Logger.getLogger(DataFilerJob.class);
+	
+	public static final String JOB_GROUP = "ESB";
+	public static final String JOB_NAME = "DataFiler";
+	
+	public void execute (JobExecutionContext jobExecutionContext) 
+		throws JobExecutionException {
+		logger.error("Collect statistics from EPRs");
+		List list;
+		try {
+			list = RegistryUtil.getEprs("JBossESB-Internal", "DataCollectorService");
+			if (list != null) {
+				for (int i = 0; i < list.size(); i++) {
+					EPR epr = (EPR)list.get(i); 
+					Message esbMessage = MessageFactory.getInstance().getMessage();
+					DeliverOnlyCourier sender = CourierFactory.getCourier(epr);
+					esbMessage.getProperties().setProperty("COMMAND_MESSAGE", "foo"); 
+					esbMessage.getBody().setByteArray("get statistics".getBytes());
+					
+				    URI uri = new URI(UUID.randomUUID().toString());
+				    esbMessage.getHeader().getCall().setMessageID(uri);
+				    sender.deliver(esbMessage);
+				
+					Message noncmdMessage = MessageFactory.getInstance().getMessage();
+					noncmdMessage.getBody().setByteArray("get statistics".getBytes());
+					
+				    URI noncmdURI = new URI(UUID.randomUUID().toString());
+				    esbMessage.getHeader().getCall().setMessageID(noncmdURI);
+				    sender.deliver(noncmdMessage);			    
+				}
+			}
+		} catch (RegistryException e) {
+			logger.error("", e);
+		} catch (CourierException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (MalformedEPRException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (URISyntaxException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+}

Added: labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerScheduler.java
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerScheduler.java	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerScheduler.java	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,88 @@
+package org.jboss.soa.esb.monitoring.server;
+
+import java.util.Date;
+
+import org.apache.log4j.Logger;
+import org.quartz.JobDetail;
+import org.quartz.Scheduler;
+import org.quartz.SchedulerException;
+import org.quartz.SchedulerFactory;
+import org.quartz.SimpleTrigger;
+import org.quartz.impl.StdSchedulerFactory;
+
+public class DataFilerScheduler implements DataFilerSchedulerMBean {
+	private static final Logger logger = Logger.getLogger(DataFilerScheduler.class);
+	private static final int DEFAULT_POLL_MINUTE_FREQ = 2;
+	
+	private int pollMinuteFrequency = DEFAULT_POLL_MINUTE_FREQ;
+	
+	public int getPollMinuteFrequency() {
+		return pollMinuteFrequency;
+	}
+
+	public void setPollMinuteFrequency(int f_pollMinuteFrequency) {
+		pollMinuteFrequency = f_pollMinuteFrequency;
+		
+		long ctime = System.currentTimeMillis();
+		
+		try {
+			SchedulerFactory schedulerFactory = new StdSchedulerFactory();
+			Scheduler scheduler = schedulerFactory.getScheduler();
+			scheduler.deleteJob(DataFilerJob.JOB_GROUP, DataFilerJob.JOB_NAME);
+			
+			JobDetail jobDetail = new JobDetail(DataFilerJob.JOB_GROUP, DataFilerJob.JOB_NAME, DataFilerJob.class);
+			SimpleTrigger simpleTrigger = new SimpleTrigger(DataFilerJob.JOB_GROUP, DataFilerJob.JOB_NAME);
+			simpleTrigger.setStartTime(new Date(ctime));
+			simpleTrigger.setRepeatInterval(1000 * 60 * pollMinuteFrequency);
+			simpleTrigger.setRepeatCount(-1);
+			
+			scheduler.scheduleJob(jobDetail, simpleTrigger);
+			scheduler.start();
+		} catch (SchedulerException se) {
+			logger.error("", se);
+		} catch (Exception e) {
+			logger.error("", e);
+		}
+	}
+
+	public String getName() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public int getState() {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	public String getStateString() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public void jbossInternalLifecycle(String arg0) throws Exception {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public void create() throws Exception {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public void destroy() {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public void start() throws Exception {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public void stop() {
+		// TODO Auto-generated method stub
+		
+	}
+	
+}

Added: labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerSchedulerMBean.java
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerSchedulerMBean.java	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerSchedulerMBean.java	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,8 @@
+package org.jboss.soa.esb.monitoring.server;
+
+import org.jboss.system.ServiceMBean;
+
+public interface DataFilerSchedulerMBean extends ServiceMBean {
+	public int getPollMinuteFrequency();
+	public void setPollMinuteFrequency(int f_pollMinuteFrequency);
+}

Added: labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/StatisticsHelper.java
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/StatisticsHelper.java	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/StatisticsHelper.java	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,176 @@
+package org.jboss.soa.esb.monitoring.server;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+import javax.management.AttributeNotFoundException;
+import javax.management.InstanceNotFoundException;
+import javax.management.MBeanException;
+import javax.management.MBeanServer;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
+import javax.management.ReflectionException;
+
+import org.apache.log4j.Logger;
+import org.hibernate.Query;
+import org.hibernate.Session;
+import org.hibernate.SQLQuery;
+import org.jboss.mx.util.MBeanServerLocator;
+import org.jboss.soa.esb.monitoring.pojo.*;
+
+public class StatisticsHelper {
+	private static final Logger logger = Logger.getLogger(StatisticsHelper.class);
+	
+	public static final int COUNT_ATTRIBUTE = 0;
+	public static final int BYTES_ATTRIBUTE = 1;
+	public static final int TIME_ATTRIBUTE = 2;
+	public static final int TEXT_ATTRIBUTE = 3;
+	
+	public static String getSelected(int arg1, int arg2) {
+		if (arg1 == arg2) {
+			return "SELECTED";
+		}
+		return "";
+	}
+	
+	public static int getAttributeType(String attribute) {
+		int attributeType = -1;
+		if (attribute.matches("(?i).*Count")) {
+			attributeType = COUNT_ATTRIBUTE;
+		} else if (attribute.matches("(?i).*Bytes")) { 
+			attributeType = BYTES_ATTRIBUTE;
+		} else if (attribute.matches("(?i).*Time")) {
+			attributeType = TIME_ATTRIBUTE;
+		} else {
+			attributeType = TEXT_ATTRIBUTE;
+		}
+		return attributeType;
+	}
+
+	public static int getCollectionInterval() {
+		MBeanServer mbeanServer = null;
+		ObjectName dataSchedulerName = null;
+		Integer pollFreq = -1;
+		try {
+			mbeanServer = MBeanServerLocator.locateJBoss();
+		} catch (IllegalStateException ise) {
+			logger.error("", ise);
+			return -1;
+		}
+		
+		try {
+			dataSchedulerName = new ObjectName("jboss.esb:service=DataFilerScheduler");
+		} catch (MalformedObjectNameException e) {
+			logger.error("", e);
+		} catch (NullPointerException e) {
+			logger.error("", e);
+		}
+		
+		try {
+			pollFreq = (Integer) mbeanServer.getAttribute(dataSchedulerName, "PollMinuteFrequency");
+		} catch (AttributeNotFoundException e) {
+			logger.error("", e);
+		} catch (InstanceNotFoundException e) {
+			logger.error("", e);
+		} catch (MBeanException e) {
+			logger.error("", e);
+		} catch (ReflectionException e) {
+			logger.error("", e);
+		}
+		return pollFreq.intValue();
+	}
+	
+	public static List getTimeAttributes(Session sess) {
+		String query = "from JMXAttribute jmxa where jmxa.attribute like '%Time'";
+		List result = sess.createQuery(query).list();;	
+		return result;
+	}
+	
+	public static List getCountAttributes(Session sess) {
+		String query = "from JMXAttribute jmxa where jmxa.attribute like '%Count'";
+		List result = sess.createQuery(query).list();
+		return result;
+	}
+		
+	public static List getAllAttributes(Session sess) {
+		String query = "from JMXAttribute";
+		List result = sess.createQuery(query).list();	
+		return result;
+	}
+	
+	public static List getObjectNames(Session sess) {
+		String query = "SELECT DISTINCT jmxa.objectname "
+			+ "FROM JMXAttribute jmxa";
+		List result = sess.createQuery(query).list();
+		return result;
+	}
+
+	public static JMXAttribute getByStatId(Session sess, Long id) {
+		String query = "from JMXAttribute where id = :id";  
+		Query q = sess.createQuery(query);
+		q.setLong("id", id);
+		List result = q.list();
+		if (result != null) {
+			return (JMXAttribute) result.get(0);
+		}
+		return null;
+	}
+	
+	public static List getServerNames(Session sess) {
+		String query = "SELECT DISTINCT jmxd.server "
+			+ "FROM JMXData jmxd";
+		List result = sess.createQuery(query).list();
+		return result;
+	}
+	
+	public static List getObjectNamesForServer(Session sess, String servername) {
+		String query = "SELECT DISTINCT jmxa.objectname "
+			+ "FROM JMXAttribute jmxa, JMXData jmxd "
+			+ "WHERE jmxa.statid = jmxd.statid "
+			+ "AND jmxd.server = :servername";
+		SQLQuery sqlq = sess.createSQLQuery(query);
+		sqlq.setString("servername", servername);
+		List result = sqlq.list();
+		return result;
+	}
+	
+	public static List getAttributes(Session sess, String servername, String objectname) {
+		String query = "SELECT DISTINCT jmxa.* "
+			+ "FROM JMXAttribute jmxa, JMXData jmxd "
+			+ "WHERE jmxa.statid = jmxd.statid "
+			+ "AND jmxd.server = :servername "
+			+ "AND jmxa.objectname = :objectname";
+		SQLQuery sqlq = sess.createSQLQuery(query);
+		sqlq.setString("objectname", objectname);
+		sqlq.addEntity(JMXAttribute.class);
+		sqlq.setString("servername", servername);
+		List result = sqlq.list();
+		return result;
+	} 
+	
+	public static List getData(Session sess, String servername, Integer attributeId,
+			Integer timerange) {
+		String query = "SELECT data.* from JMXData data "
+			+ "WHERE data.statid = :attributeid "
+			+ "AND data.server = :servername ";
+		if (timerange.intValue() != -1) {
+			query += "AND data.statdate > :datemin ";
+		}
+			
+			query += "ORDER BY data.statdate";
+		SQLQuery q = sess.createSQLQuery(query);
+		q.setInteger("attributeid", attributeId);
+		q.setString("servername", servername);
+		if (timerange.intValue() != -1) {
+			Calendar calendar = Calendar.getInstance();
+			calendar.setTime(new Date());
+			calendar.add(Calendar.MINUTE, (timerange.intValue() * -1));
+			q.setTimestamp("datemin", new java.sql.Timestamp(calendar.getTimeInMillis()));
+		}
+		q.addEntity(JMXData.class);
+		List result = q.list();
+		return result;
+	}
+}
+

Added: labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/TimeSeriesChartProducer.java
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/TimeSeriesChartProducer.java	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/TimeSeriesChartProducer.java	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,77 @@
+package org.jboss.soa.esb.monitoring.server;
+
+import java.awt.Color;
+import java.io.File;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+
+import org.apache.log4j.Logger;
+import org.jfree.chart.ChartFactory;
+import org.jfree.chart.ChartUtilities;
+import org.jfree.chart.JFreeChart;
+import org.jfree.chart.axis.DateAxis;
+import org.jfree.chart.plot.XYPlot;
+import org.jfree.chart.renderer.xy.XYItemRenderer;
+import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
+import org.jfree.data.time.Minute;
+import org.jfree.data.time.TimeSeries;
+import org.jfree.data.time.TimeSeriesCollection;
+import org.jfree.ui.RectangleInsets;
+
+
+public class TimeSeriesChartProducer {
+	private static final Logger logger = Logger.getLogger(TimeSeriesChartProducer.class);
+	private TimeSeries ts;
+	private String title;
+	
+	public TimeSeriesChartProducer(String title, Class klass) {
+		ts = new TimeSeries(title, klass);	
+		this.title = title;
+	}
+	
+	public void addMinute(Minute min, Number num) {
+		ts.addOrUpdate(min, num);
+	}
+	
+	public JFreeChart createChart(String chartTitle) {
+		TimeSeriesCollection dataset = new TimeSeriesCollection();
+		dataset.addSeries(ts);
+		dataset.setDomainIsPointsInTime(true);
+		
+		JFreeChart jfc = ChartFactory.createTimeSeriesChart(
+				chartTitle,
+				"Date", title,
+				dataset, true,
+				true, false
+			);
+		jfc.setBackgroundPaint(Color.white);
+		XYPlot plot = (XYPlot) jfc.getPlot();
+		plot.setBackgroundPaint(Color.lightGray);
+		plot.setDomainGridlinePaint(Color.white);
+		plot.setRangeGridlinePaint(Color.white);
+		plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));
+		plot.setDomainCrosshairVisible(true);
+		plot.setRangeCrosshairVisible(true);
+		
+        XYItemRenderer r = plot.getRenderer();
+        if (r instanceof XYLineAndShapeRenderer) {
+            XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r;
+            renderer.setBaseShapesVisible(true);
+            renderer.setBaseShapesFilled(true);
+        }
+
+        DateAxis axis = (DateAxis) plot.getDomainAxis();
+        axis.setDateFormatOverride(new SimpleDateFormat("MM-dd HH:mm:ss"));
+		
+		return jfc;
+	}
+	
+	public void saveChart(String chartTitle, File outFile) {
+		JFreeChart chart = createChart(chartTitle);
+		try {
+			ChartUtilities.saveChartAsJPEG(outFile, chart, 500, 300);
+		} catch (IOException ioe) {
+			logger.error("", ioe);
+		}
+	}
+}

Added: labs/jbossesb/trunk/product/tools/console/management/src/main/resources/hsqldb/monitoring-mappings.hbm.xml
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/src/main/resources/hsqldb/monitoring-mappings.hbm.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management/src/main/resources/hsqldb/monitoring-mappings.hbm.xml	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping>
+	<class name="org.jboss.soa.esb.monitoring.pojo.JMXPattern" table="JMXPATTERN">
+		<id name="id" column="id" type="java.lang.Long" unsaved-value="0">
+			<generator class="native"/>
+		</id>
+		<property name="classpattern" type="java.lang.String" column="classpattern"/>
+		<property name="keyvalue" type="java.lang.String" column="keyvalue"/>
+	</class>
+	<class name="org.jboss.soa.esb.monitoring.pojo.JMXData" table="JMXDATA">
+		<id name="id" column="id" type="java.lang.Long" unsaved-value="0">
+			<generator class="native"/>
+		</id>	
+		<many-to-one name="attribute" column="STATID"/>
+		<property name="server" type="java.lang.String" column="SERVER"/>
+		<property name="statdate" type="timestamp" column="STATDATE"/>
+		<property name="timevalue" type="java.lang.Float" column="timevalue"/>
+		<property name="countvalue" type="java.lang.Integer" column="countvalue"/>
+		<property name="textvalue" type="java.lang.String" column="textvalue"/>
+	</class>
+	<class name="org.jboss.soa.esb.monitoring.pojo.JMXAttribute" table="JMXATTRIBUTE">
+                <id name="id" column="statid" type="java.lang.Long" unsaved-value="0">
+			<generator class="native"/>
+		</id>	
+		<property name="objectname" type="java.lang.String" column="objectname"/>
+		<property name="attribute" type="java.lang.String" column="attribute"/>
+	</class>
+</hibernate-mapping>

Added: labs/jbossesb/trunk/product/tools/console/management/src/main/resources/mysql/monitoring-mappings.hbm.xml
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/src/main/resources/mysql/monitoring-mappings.hbm.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management/src/main/resources/mysql/monitoring-mappings.hbm.xml	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping>
+	<class name="org.jboss.soa.esb.monitoring.pojo.JMXPattern" table="JMXPATTERN">
+		<id name="id" column="id" type="java.lang.Long" unsaved-value="0">
+			<generator class="native"/>
+		</id>
+		<property name="classpattern" type="java.lang.String" column="classpattern"/>
+		<property name="keyvalue" type="java.lang.String" column="keyvalue"/>
+	</class>
+	<class name="org.jboss.soa.esb.monitoring.pojo.JMXData" table="JMXDATA">
+		<id name="id" column="id" type="java.lang.Long" unsaved-value="0">
+			<generator class="native"/>
+		</id>	
+		<many-to-one name="attribute" column="STATID"/>
+		<property name="server" type="java.lang.String" column="SERVER"/>
+		<property name="statdate" type="java.util.Date" column="STATDATE"/>
+		<property name="timevalue" type="java.lang.Float" column="timevalue"/>
+		<property name="countvalue" type="java.lang.Integer" column="countvalue"/>
+		<property name="textvalue" type="java.lang.String" column="textvalue"/>
+	</class>
+	<class name="org.jboss.soa.esb.monitoring.pojo.JMXAttribute" table="JMXATTRIBUTE">
+                <id name="id" column="statid" type="java.lang.Long" unsaved-value="0">
+			<generator class="native"/>
+		</id>	
+		<property name="objectname" type="java.lang.String" column="objectname"/>
+		<property name="attribute" type="java.lang.String" column="attribute"/>
+	</class>
+</hibernate-mapping>

Added: labs/jbossesb/trunk/product/tools/console/management/src/main/resources/oracle/monitoring-mappings.hbm.xml
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/src/main/resources/oracle/monitoring-mappings.hbm.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management/src/main/resources/oracle/monitoring-mappings.hbm.xml	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping>
+	<class name="org.jboss.soa.esb.monitoring.pojo.JMXPattern" table="JMXPATTERN">
+		<id name="id" column="id" type="java.lang.Long" unsaved-value="0">
+			<generator class="sequence">
+				<param name="sequence">SEQ_JMX_PATTERN</param>
+			</generator>
+		</id>
+		<property name="classpattern" type="java.lang.String" column="classpattern"/>
+		<property name="keyvalue" type="java.lang.String" column="keyvalue"/>
+	</class>
+	<class name="org.jboss.soa.esb.monitoring.pojo.JMXData" table="JMXDATA">
+		<id name="id" column="id" type="java.lang.Long" unsaved-value="0">
+			<generator class="sequence">
+				<param name="sequence">SEQ_JMX_DATA</param>
+			</generator>
+		</id>	
+		<many-to-one name="attribute" column="STATID"/>
+		<property name="server" type="java.lang.String" column="SERVER"/>
+		<property name="statdate" type="java.util.Date" column="STATDATE"/>
+		<property name="timevalue" type="java.lang.Float" column="timevalue"/>
+		<property name="countvalue" type="java.lang.Integer" column="countvalue"/>
+		<property name="textvalue" type="java.lang.String" column="textvalue"/>
+	</class>
+	<class name="org.jboss.soa.esb.monitoring.pojo.JMXAttribute" table="JMXATTRIBUTE">
+                <id name="id" column="statid" type="java.lang.Long" unsaved-value="0">
+			<generator class="sequence">	
+				<param name="sequence">SEQ_JMX_ATTRIBUTE</param>
+			</generator>
+		</id>	
+		<property name="objectname" type="java.lang.String" column="objectname"/>
+		<property name="attribute" type="java.lang.String" column="attribute"/>
+	</class>
+</hibernate-mapping>

Added: labs/jbossesb/trunk/product/tools/console/management-esb/build.xml
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management-esb/build.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management-esb/build.xml	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,106 @@
+<?xml version="1.0"?>
+
+<project name="management-esb" default="esb" basedir=".">
+
+	<property name="console.dir" location="${pwd}/../.."/>
+	<property name="product.dir" location="${console.dir}/../.."/>
+	<property name="install.dir" value="${product.dir}/install"/>
+	<property file="${install.dir}/deployment.properties"/> 
+
+	<property name="mgmt.esb.dir" location="."/>
+        <property file="${mgmt.esb.dir}/db.properties"/>
+	<property file="${console.dir}/management/${db}.properties"/>
+	<property name="build.dir" location="${mgmt.esb.dir}/build"/>
+
+	<target name="clean">
+		<delete dir="${mgmt.esb.dir}/build"/>
+		<ant dir="${console.dir}/management-web" target="clean"/>
+		<ant dir="${console.dir}/management" target="clean"/>
+	</target>
+
+	<target name="messaging-config">
+        	<property name="org.jboss.esb.server.deploy.dir"
+            		value="${org.jboss.esb.server.home}/server/${org.jboss.esb.server.config}/deploy"/>
+			
+		<condition property="messaging.present">
+			<available file="${org.jboss.esb.server.deploy.dir}/jboss-messaging"/>
+		</condition>
+		<condition property="messaging.present">
+			<available file="${org.jboss.esb.server.deploy.dir}/jboss-messaging.sar"/>
+		</condition>
+
+		<condition property="jbossmq.present">
+			<not>
+				<isset property="messaging.present"/>
+			</not>
+		</condition>
+		
+		<condition property="management.ds.available">
+                <available file="${mgmt.esb.dir}/src/main/resources/${db}/management-ds.xml"/>
+        </condition>
+	</target> 
+        
+	<!-- dependencies specific to JBoss Messaging -->
+	<target name="messaging-dependencies" if="messaging.present">
+		<property name="jms.service.file" value="jbm-queue-service.xml"/>
+		<property name="jms.description" value="JBoss Messaging"/>
+	</target>
+
+	<!-- dependencies specific to JBoss MQ -->
+	<target name="jbossmq-dependencies" if="jbossmq.present">             
+		<property name="jms.service.file" value="jbmq-queue-service.xml"/>
+		<property name="jms.description" value="JBoss MQ"/>
+	</target>
+
+	<target name="build-war">
+		<ant dir="${console.dir}/management-web" target="war"/>
+	</target>
+
+	<target name="copy-metainf">
+		<mkdir dir="${build.dir}/META-INF" />
+		<copy todir="${build.dir}/META-INF" overwrite="true">
+			<fileset dir="${basedir}" includes="jboss-esb.xml" />
+			<fileset dir="${basedir}" includes="deployment.xml" />
+			<fileset dir="${basedir}" includes="jboss-service.xml"/>
+		</copy>
+	</target>
+
+	<target name="esb" depends="messaging-config,messaging-dependencies,jbossmq-dependencies,build-war,copy-metainf"
+		description="Build the management ESB">
+		<mkdir dir="${mgmt.esb.dir}/build"/>	
+		<mkdir dir="${mgmt.esb.dir}/build/META-INF"/>
+		<jar destfile="${mgmt.esb.dir}/build/management.esb">
+			<fileset dir="${mgmt.esb.dir}">
+				<include name="${jms.service.file}"/>
+			</fileset>
+			<fileset dir="${build.dir}">
+				<include name="META-INF/**"/>
+			</fileset>
+			<fileset dir="${console.dir}/management/build">
+				<include name="management-server.jar"/>
+			</fileset>
+			<fileset dir="${console.dir}/management-web/build/">
+				<include name="management.war"/>	
+			</fileset>
+			<fileset dir="${mgmt.esb.dir}/src/main/resources/${db}">
+				<include name="*.sql"/>
+			</fileset>
+		</jar>
+	</target>
+
+	<target name="copy-datasource" if="management.ds.available">
+		<copy file="${mgmt.esb.dir}/src/main/resources/${db}/management-ds.xml" todir="${org.jboss.esb.server.home}/server/default/deploy" overwrite="true"/>
+	</target>
+	
+	<target name="deploy" depends="esb,copy-datasource" description="Deploy the WAR">
+		<copy file="${mgmt.esb.dir}/build/management.esb" todir="${org.jboss.esb.server.home}/server/default/deploy" overwrite="true"/>
+                <copy file="${mgmt.esb.dir}/src/main/resources/jbossesbmanagement-service.xml"	
+			todir="${org.jboss.esb.server.home}/server/default/deploy"	
+			overwrite="true">
+			<filterset>
+                                <filter token="db.datasource" value="${db.datasource}"/>
+				<filter token="connection.datasource" value="${connection.datasource}"/>
+                        </filterset>
+		</copy>
+	</target> 
+</project>

Added: labs/jbossesb/trunk/product/tools/console/management-esb/db.properties
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management-esb/db.properties	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management-esb/db.properties	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,2 @@
+db=hsqldb
+pollMinuteFrequency=10

Added: labs/jbossesb/trunk/product/tools/console/management-esb/deployment.xml
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management-esb/deployment.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management-esb/deployment.xml	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,3 @@
+<jbossesb-deployment>
+  <depends>jboss.esb.quickstart.destination:service=Queue,name=DataFilerQueue</depends>
+</jbossesb-deployment>

Added: labs/jbossesb/trunk/product/tools/console/management-esb/jbm-queue-service.xml
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management-esb/jbm-queue-service.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management-esb/jbm-queue-service.xml	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+  <mbean code="org.jboss.jms.server.destination.QueueService"
+    name="jboss.esb.quickstart.destination:service=Queue,name=DataFilerQueue"
+    xmbean-dd="xmdesc/Queue-xmbean.xml">
+	<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+	<depends>jboss.messaging:service=PostOffice</depends>
+  </mbean>
+</server>

Added: labs/jbossesb/trunk/product/tools/console/management-esb/jbmq-queue-service.xml
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management-esb/jbmq-queue-service.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management-esb/jbmq-queue-service.xml	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+  <mbean code="org.jboss.mq.server.jmx.Queue"
+    name="jboss.esb.quickstart.destination:service=Queue,name=DataFilerQueue">
+    <depends optional-attribute-name="DestinationManager">
+      jboss.mq:service=DestinationManager
+    </depends>
+  </mbean>
+</server>

Added: labs/jbossesb/trunk/product/tools/console/management-esb/jboss-esb.xml
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management-esb/jboss-esb.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management-esb/jboss-esb.xml	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,36 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" parameterReloadSecs="5">
+
+    <providers>
+          <jms-provider name="JBossMQ" connection-factory="ConnectionFactory"
+                        jndi-URL="jnp://127.0.0.1:1099" jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
+                        jndi-pkg-prefix="org.jboss.naming:org.jnp.interfaces">
+              <jms-bus busid="DataFilerChannel">
+                  <jms-message-filter
+                      dest-type="QUEUE"
+                      dest-name="queue/DataFilerQueue"
+                  />
+              </jms-bus>
+          </jms-provider>
+      </providers>
+      
+      <services>
+        <service 
+        	category="JBossESB-Internal" 
+        	name="DataFilerService" 
+        	description="Service that files data into the database">
+            <listeners>
+                <jms-listener name="JMS-DFListener"
+                    busidref="DataFilerChannel"
+                    maxThreads="1"
+                />
+            </listeners>
+            <actions>
+                   <action name="datafileraction" 
+                   	class="org.jboss.soa.esb.monitoring.server.DataFilerAction" 
+                   	process="fileMessage" 
+                   	/>      
+            </actions>
+        </service>
+      </services>
+</jbossesb>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/console/management-esb/jboss-service.xml
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management-esb/jboss-service.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management-esb/jboss-service.xml	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<server>
+  <mbean code="org.jboss.soa.esb.monitoring.client.DataFilerService"
+        name="jboss.esb:service=DataFilerService">
+  </mbean>
+</server>

Added: labs/jbossesb/trunk/product/tools/console/management-esb/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management-esb/readme.txt	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management-esb/readme.txt	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,7 @@
+How to install:
+
+Steps: 
+1) Copy your database's JDBC driver jar into the lib directory of your
+appserver (ex: jboss-4.2.1.GA/server/default/lib)
+
+The data collection 

Modified: labs/jbossesb/trunk/product/tools/console/management-web/build.xml
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management-web/build.xml	2007-08-16 01:47:20 UTC (rev 14281)
+++ labs/jbossesb/trunk/product/tools/console/management-web/build.xml	2007-08-16 02:21:31 UTC (rev 14282)
@@ -10,20 +10,39 @@
 	<property name="mgmt.web.dir" location="."/>
 	<property name="db" value="hsqldb"/>
 
+	<target name="clean">
+		<delete dir="${mgmt.web.dir}/build"/>
+	</target>
+
 	<target name="build-jar">
 		<echo>${console.dir}</echo>
 		<ant dir="${console.dir}/management" target="jar"/>
 	</target>
 
-	<target name="war" depends="build-jar"
+	<target name="create-webxml">
+	      <mkdir dir="${mgmt.web.dir}/build"/>
+              <copy file="${mgmt.web.dir}/web.xml"
+                        todir="${mgmt.web.dir}/build"
+                        overwrite="true">
+                        <filterset>
+                                <filter token="pollMinuteFrequency"
+                                        value="${pollMinuteFrequency}"/>
+                        </filterset>
+                </copy>
+	</target>
+
+	<target name="war" depends="create-webxml,build-jar"
 		description="Build the management WAR">
-		<mkdir dir="${mgmt.web.dir}/build"/>	
 		<war destfile="${mgmt.web.dir}/build/management.war" 
-			webxml="${mgmt.web.dir}/src/main/webapp/WEB-INF/web.xml"
+			webxml="${mgmt.web.dir}/build/web.xml"
 			basedir="${mgmt.web.dir}/src/main/webapp">
 			<lib dir="${console.dir}/management/build">
 				<include name="*.jar"/>
 			</lib>
+			<lib dir="${mgmt.web.dir}/lib">
+				<include name="jfreechart-1.0.6.jar"/>
+				<include name="jcommon-1.0.10.jar"/>
+			</lib>
 		</war>
 	</target>
 	

Added: labs/jbossesb/trunk/product/tools/console/management-web/lib/jcommon-1.0.10.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/tools/console/management-web/lib/jcommon-1.0.10.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/tools/console/management-web/lib/jfreechart-1.0.6.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/tools/console/management-web/lib/jfreechart-1.0.6.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/tools/console/management-web/lib/mysql-connector-java-3.1.12-bin.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/tools/console/management-web/lib/mysql-connector-java-3.1.12-bin.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/tools/console/management-web/lib/ojdbc14.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/tools/console/management-web/lib/ojdbc14.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/tools/console/management-web/src/main/webapp/attribute.jsp
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management-web/src/main/webapp/attribute.jsp	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management-web/src/main/webapp/attribute.jsp	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,160 @@
+<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
+<%@ page session="true" %>
+<%@ page import="
+	java.io.File,
+	java.text.NumberFormat,
+	java.text.SimpleDateFormat,
+	java.util.List,
+	org.hibernate.Session,
+	org.hibernate.Transaction,
+	org.jboss.soa.esb.monitoring.MonitoringSessionFactory,
+	org.jboss.soa.esb.monitoring.pojo.*,
+	org.jboss.soa.esb.monitoring.server.StatisticsHelper,
+	org.jboss.soa.esb.monitoring.server.TimeSeriesChartProducer,
+	org.jfree.data.time.Minute,
+	org.jfree.chart.JFreeChart
+"%>
+<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>
+      <tr>
+      	<td></td>
+      	<td><a href="/management">Back to Console index</a></td>
+   </table>
+<hr>
+<%
+Long id = new Long(request.getParameter("id"));
+String servername = request.getParameter("servername");
+int maxrecords = 10;
+try {
+	maxrecords = Integer.parseInt(request.getParameter("maxrecords"));	
+} catch (Exception e) {}
+int timerange = -1;
+try {
+	timerange = Integer.parseInt(request.getParameter("timerange"));
+} catch (Exception e) {}
+
+Session sess = MonitoringSessionFactory.getInstance().openSession();
+Transaction tx = sess.beginTransaction();
+JMXAttribute jmxa = (JMXAttribute) sess.load(JMXAttribute.class, id);
+
+Integer intId = new Integer(id.intValue());
+List dataList = StatisticsHelper.getData(sess, servername, intId, new Integer(timerange));
+
+String attribute = jmxa.getAttribute();
+int attributeType = StatisticsHelper.getAttributeType(attribute);
+	
+TimeSeriesChartProducer tscp = new TimeSeriesChartProducer(attribute, Minute.class);
+JFreeChart jfc = tscp.createChart(attribute);
+
+for (int i = 0; i < dataList.size(); i++) {
+	JMXData jmxd = (JMXData) dataList.get(i);
+	switch (attributeType) {
+		case StatisticsHelper.COUNT_ATTRIBUTE:
+		case StatisticsHelper.BYTES_ATTRIBUTE:
+			tscp.addMinute(new Minute(jmxd.getStatdate()), jmxd.getCountvalue());
+			break;
+		case StatisticsHelper.TIME_ATTRIBUTE:
+			tscp.addMinute(new Minute(jmxd.getStatdate()), jmxd.getTimevalue());
+			break;
+		default:
+			break;
+	}
+}
+
+if ((attributeType == StatisticsHelper.COUNT_ATTRIBUTE)
+		|| (attributeType == StatisticsHelper.BYTES_ATTRIBUTE) 
+		|| (attributeType == StatisticsHelper.TIME_ATTRIBUTE)) {
+String image = "image-" + session.getId() + ".jpg";
+String realFile = session.getServletContext().getRealPath("") + File.separator 
+	+ image;
+File file = new File(realFile);
+tscp.saveChart(attribute, file);
+%>
+<center>
+<img src="/management/<%=image%>">
+</center>
+<%
+} else {
+%>
+<h1><code><%=attribute%></code></h1>
+<%
+}
+%><br>
+<form action="/management/attribute.jsp">
+<b>Selection</b>:  Graph and list records from the last <select name="timerange">
+				<option value="5" <%=StatisticsHelper.getSelected(5, timerange)%>>5 minutes
+				<option value="60" <%=StatisticsHelper.getSelected(60, timerange)%>>1 hour
+				<option value="1440" <%=StatisticsHelper.getSelected(1440, timerange)%>>1 day
+				<option value="10080" <%=StatisticsHelper.getSelected(10080, timerange)%>>1 week
+				<option value="44640" <%=StatisticsHelper.getSelected(44640, timerange)%>>1 month
+				<option value="-1" <%=StatisticsHelper.getSelected(-1, timerange)%>>All
+			</select> and the 
+list the last <input type="text" name="maxrecords" value="<%=maxrecords%>"></input> records
+		<input type="hidden" name="id" value="<%=id%>">
+		<input type="hidden" name="servername" value="<%=servername%>">
+		<input type="submit" value="submit">
+</form>
+<hr>
+<center>
+<table>
+<tr>
+<th>Collection Date</th>
+<th><%=attribute%></th>
+</tr>
+<%
+NumberFormat nf = NumberFormat.getInstance();
+SimpleDateFormat formatter = new SimpleDateFormat("MM-dd HH:mm:ss");
+for (int i = dataList.size()-1; (i>=0 && (dataList.size()-i <= maxrecords)); i--) {
+	JMXData jmxd = (JMXData) dataList.get(i);
+
+	%>
+	<%
+	
+	switch (attributeType) {
+		case StatisticsHelper.COUNT_ATTRIBUTE:
+		case StatisticsHelper.BYTES_ATTRIBUTE:
+	%>
+		<tr>
+			<td><%=formatter.format(jmxd.getStatdate())%></td>
+			<td align="right"><%=jmxd.getCountvalue()%></td>
+		</tr>
+	<%		
+			break;
+		case StatisticsHelper.TIME_ATTRIBUTE:
+	%>
+		<tr>
+			<td><%=formatter.format(jmxd.getStatdate())%></td>
+			<td align="right"><%=nf.format(jmxd.getTimevalue())%></td>
+		</tr>
+	<%
+			break;
+		default:		
+	%>
+		<tr>
+			<td><%=formatter.format(jmxd.getStatdate())%></td>
+			<td align="right"><%=jmxd.getTextvalue()%></td>
+		</tr>
+	<%
+			break;
+	}
+
+}
+sess.flush();
+sess.close();
+%>
+</table>
+</center>
+</body>
+</html>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/console/management-web/src/main/webapp/collect.jsp
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management-web/src/main/webapp/collect.jsp	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management-web/src/main/webapp/collect.jsp	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,39 @@
+<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
+<%@ page session="true" %>
+<%@ page import="
+		org.jboss.soa.esb.addressing.EPR,
+		org.jboss.soa.esb.couriers.CourierFactory,
+		org.jboss.internal.soa.esb.couriers.DeliverOnlyCourier,
+		org.jboss.soa.esb.listeners.RegistryUtil,
+		org.jboss.soa.esb.message.Message,
+		org.jboss.soa.esb.message.format.MessageFactory,
+		java.net.URI,
+		java.util.*
+"%>
+<%
+List list = RegistryUtil.getEprs("JBossESB-Internal", "DataCollectorService");
+if (list != null) {
+	for (int i = 0; i < list.size(); i++) {
+		EPR epr = (EPR)list.get(i); 
+		Message esbMessage = MessageFactory.getInstance().getMessage();
+		DeliverOnlyCourier sender = CourierFactory.getCourier(epr);
+		esbMessage.getProperties().setProperty("COMMAND_MESSAGE", "foo"); 
+		esbMessage.getBody().setByteArray("get statistics".getBytes());
+		
+	    URI uri = new URI(UUID.randomUUID().toString());
+	    esbMessage.getHeader().getCall().setMessageID(uri);
+	    sender.deliver(esbMessage);
+	
+		Message noncmdMessage = MessageFactory.getInstance().getMessage();
+		noncmdMessage.getBody().setByteArray("get statistics".getBytes());
+		
+	    URI noncmdURI = new URI(UUID.randomUUID().toString());
+	    esbMessage.getHeader().getCall().setMessageID(noncmdURI);
+	    sender.deliver(noncmdMessage);
+	}
+}
+
+RequestDispatcher disp;
+disp = getServletContext().getRequestDispatcher("/index.jsp"); 
+disp.forward(request, response);
+%>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/console/management-web/src/main/webapp/images/logo.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/tools/console/management-web/src/main/webapp/images/logo.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: labs/jbossesb/trunk/product/tools/console/management-web/src/main/webapp/index.jsp
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management-web/src/main/webapp/index.jsp	2007-08-16 01:47:20 UTC (rev 14281)
+++ labs/jbossesb/trunk/product/tools/console/management-web/src/main/webapp/index.jsp	2007-08-16 02:21:31 UTC (rev 14282)
@@ -1,101 +1,75 @@
 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
 <%@ page session="true" %>
 <%@ page import="
-		org.jboss.soa.esb.addressing.EPR,
-		org.jboss.soa.esb.monitoring.JMXHelper,
-		javax.naming.InitialContext,
-		javax.management.MBeanOperationInfo,
-		javax.management.MBeanParameterInfo,
-       	org.jboss.internal.soa.esb.services.registry.*,
-		java.util.* 
+	java.util.List,
+	org.hibernate.Session,
+	org.hibernate.Transaction,
+	org.jboss.soa.esb.monitoring.MonitoringSessionFactory,
+	org.jboss.soa.esb.monitoring.pojo.*,
+	org.jboss.soa.esb.monitoring.server.StatisticsHelper
 "%>
-<%
-String objectName = request.getParameter("objectName");
-if (objectName == null || "".equals(objectName)) {
-	objectName = "jboss.esb:service=MessageCounter";
-}
-InitialContext ic = new InitialContext();
-JMXHelper jmxh = new JMXHelper(ic);
-MBeanOperationInfo[] info = jmxh.getOperators(objectName);
-%>
 <html>
 <head>
-    <title>JBoss ESB - Service List</title>
-    <link rel='stylesheet' href='./styles.css'>
+   <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>
-<h2>Classname</h2>: <%=jmxh.getClassName(objectName)%>
-<h2>Properties</h2>
-<table>
+   <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>
+<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>
 <%
-   boolean hasWriteable = false;
-   for(int a = 0; a < attributeInfo.length; a ++)
-   {
-      MBeanAttributeInfo attrInfo = attributeInfo[a];
-      String attrName = attrInfo.getName();
-      String attrType = attrInfo.getType();
-      AttrResultInfo attrResult = Server.getMBeanAttributeResultInfo(objectNameString, attrInfo);
-      String attrValue = attrResult.getAsText();
-      String access = "";
-      if( attrInfo.isReadable() )
-         access += "R";
-      if( attrInfo.isWritable() )
-      {
-         access += "W";
-         hasWriteable = true;
-      }
-      String attrDescription = fixDescription(attrInfo.getDescription());
-      %>
-                      <tr>
-                          <td><%= attrName %></td>
-                          <td><%= attrType %></td>
-                          <td><%= access %></td>
-                		  <td><%= attrValue %></td>
-					  </tr>
-	 <%
-   }
-	 %>
+Session sess = MonitoringSessionFactory.getInstance().openSession();
+Transaction 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>
+<% 
+	List objectNames = StatisticsHelper.getObjectNamesForServer(sess, serverName);
+	for (int j = 0; j < objectNames.size(); j++) {
+		String objectName = (String) objectNames.get(j);
+		%>
+		<li><b><%=objectName%></b></li>
+		<ul>
+		<%
+		List attributeNames = StatisticsHelper.getAttributes(sess, serverName, objectName);
+		for (int k = 0; k < attributeNames.size(); k++) {
+			JMXAttribute jmxattr = (JMXAttribute) attributeNames.get(k);
+			String attributeName = jmxattr.getAttribute();
+			%>
+			<li><a href="attribute.jsp?servername=<%=serverName%>&id=<%=jmxattr.getId()%>"><%=attributeName%></a></li>
+			<%
+		}
+		%>
+		</ul>
+		<%
+	}
 
-</table>
-<h2>Operations</h2>
+}
 
-<%
-for (int i=0; i<info.length; i++) {
-	MBeanParameterInfo[] mpi = info[i].getSignature();
-	
+if (serverNames.size() == 0) {
 	%>
-	<table>
-	<tr>
-		<th>Method</th>
-		<th>Arguments</th>
-		<th>Invoke</th>
-	</tr>
-	<form method="post" action="execute">
-	<input type="hidden" name="action" value="<%=info[i].getName()%>">
-	<input type="hidden" name="objectname" value="<%=objectName%>">
-	<input type="hidden" name="argindex" value="<%=mpi.length%>">
-	<tr>
-		<td><%=info[i].getReturnType()%> <%=info[i].getName()%></td>
-		<td>(
-		<%
-			for (int j = 0; j < mpi.length; j++) {
-				 String delim = "";
-				 if (j != mpi.length - 1) {
-					delim = ",";	 
-				 }
-
-				 %>
-				 <%=mpi[j].getType() + " " + mpi[j].getName()%><%=delim %>
-				 <%
-			}	
-		%>
-		)</td>
-		<td><input type="submit" value="Invoke"></td>
-	</tr>	
-	</form>
-	<%
+	No records found in database.
+	<% 
 }
+sess.flush();
+sess.close();
 %>
-</table>
+	</ul>
 </body>
 </html>

Added: labs/jbossesb/trunk/product/tools/console/management-web/src/main/webapp/style_master.css
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management-web/src/main/webapp/style_master.css	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management-web/src/main/webapp/style_master.css	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,64 @@
+BODY {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 14px;
+	background-color : White;
+}
+
+H1{  
+	font-family: Verdana, Arial, Helvetica, sans-serif; 
+	font-size: 25px; 
+	font-weight: bold; 
+	color: #000099}
+H2 {
+	 font-family: Verdana, Arial, Helvetica, sans-serif; 
+	 font-size: 20px; 
+	 font-weight: bold; 
+	 color: #000000
+}
+H3 {
+	 font-family: Verdana, Arial, Helvetica, sans-serif; 
+	 font-size: 17px; 
+	 font-weight: bold; 
+	 color: #000000
+}
+TH {
+	background-color : #000099;
+	color: #DEB887;
+	 font-weight: bold; 
+}.bg_table {
+	background-color : #DEB887;
+}
+}.bg_cell{
+	background-color : #ffffff;
+}
+A:ACTIVE {
+	font-family: Arial, Helvetica, sans-serif;
+	font-size: 14px;
+	color:Red;
+	background-color: #DEB887;
+	text-decoration : underline;
+	font-weight:bold;
+}
+ A:HOVER {
+	font-family:Arial, Helvetica, sans-serif;
+	font-size: 14px;
+	color:Red;
+	text-decoration : underline;
+	font-weight:bold;
+}
+  A:LINK {
+	font-family:  Arial, Helvetica, sans-serif;
+	font-size: 14px;
+	color:#000099;
+	text-decoration : underline;
+	font-weight:bold;
+}
+   A:VISITED {
+	font-family: Arial, Helvetica, sans-serif;
+	font-size: 14px;
+	color:Purple;
+	text-decoration : underline;
+	font-weight:bold;
+}
+
+

Added: labs/jbossesb/trunk/product/tools/console/management-web/web.xml
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management-web/web.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/management-web/web.xml	2007-08-16 02:21:31 UTC (rev 14282)
@@ -0,0 +1,23 @@
+<!DOCTYPE web-app PUBLIC
+ "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+ "http://java.sun.com/dtd/web-app_2_3.dtd" >
+
+<web-app>
+  <display-name>Archetype Created Web Application</display-name>
+   
+  <servlet>
+	<servlet-name>BeanRegistration</servlet-name>
+	<servlet-class>org.jboss.soa.esb.monitoring.server.BeanRegistrationServlet</servlet-class>
+	<load-on-startup>1</load-on-startup>
+	<init-param>	
+		<param-name>pollMinuteFrequency</param-name>
+		<param-value>@pollMinuteFrequency@</param-value>
+	</init-param>
+  </servlet>
+
+  <servlet-mapping>
+	<servlet-name>BeanRegistration</servlet-name>
+	<url-pattern>/beanregistrationservlet</url-pattern>
+  </servlet-mapping>
+
+</web-app>




More information about the jboss-svn-commits mailing list