[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