You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by js...@apache.org on 2004/12/17 01:01:09 UTC

svn commit: r122600 - in incubator/beehive/trunk/controls/test: perf perf/cases perf/ctlsrc/org/apache/beehive/controls/perf/controls/custom perf/src/org/apache/beehive/controls/perf/tch perf/src/org/apache/beehive/controls/perf/utils perf/webapps perf/webapps/controlsPerfWeb/resources perf/webapps/reportWeb perf/webapps/reportWeb/WEB-INF perf/webapps/reportWeb/WEB-INF/src perf/webapps/reportWeb/WEB-INF/src/forms perf/webapps/reportWeb/WEB-INF/src/graphing perf/webapps/reportWeb/images perf/webapps/reportWeb/jpf tools/mantis

Author: jsong
Date: Thu Dec 16 16:00:59 2004
New Revision: 122600

URL: http://svn.apache.org/viewcvs?view=rev&rev=122600
Log:
Contributed by Jamie Zyskowski: add webapp to report perf data, clean up perf webapp build and run targets, fix doc target for mantis
Added:
   incubator/beehive/trunk/controls/test/perf/ctlsrc/org/apache/beehive/controls/perf/controls/custom/PerfResultControl.java
   incubator/beehive/trunk/controls/test/perf/ctlsrc/org/apache/beehive/controls/perf/controls/custom/PerfResultControlImpl.java
   incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/
   incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/
   incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/
   incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/forms/
   incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/forms/ControlsForm.java
   incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/forms/ReportForm.java
   incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/forms/XmlbeansForm.java
   incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/graphing/
   incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/graphing/SeriesProducer.java
   incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/graphing/SnapshotProducer.java
   incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/web.xml
   incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/error.jsp
   incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/images/
   incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/images/runtime.jpeg   (contents, props changed)
   incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/index.jsp
   incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/
   incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/Controller.jpf
   incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/controller.properties
   incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/index.jsp
   incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/snapshot.jsp
   incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/xmlbeans.jsp
   incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/runtimePerf.css
Removed:
   incubator/beehive/trunk/controls/test/perf/webapps/controlsPerfWeb/resources/
Modified:
   incubator/beehive/trunk/controls/test/perf/build.xml
   incubator/beehive/trunk/controls/test/perf/cases/controls-perf.xml
   incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/tch/PerfTest.java
   incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/tch/StandAlonePerfRunner.java
   incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/tch/WebPerfRunner.java
   incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/utils/Constants.java
   incubator/beehive/trunk/controls/test/perf/webapps/build.xml
   incubator/beehive/trunk/controls/test/tools/mantis/build.xml

Modified: incubator/beehive/trunk/controls/test/perf/build.xml
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/build.xml?view=diff&rev=122600&p1=incubator/beehive/trunk/controls/test/perf/build.xml&r1=122599&p2=incubator/beehive/trunk/controls/test/perf/build.xml&r2=122600
==============================================================================
--- incubator/beehive/trunk/controls/test/perf/build.xml	(original)
+++ incubator/beehive/trunk/controls/test/perf/build.xml	Thu Dec 16 16:00:59 2004
@@ -10,6 +10,8 @@
 clean - cleans everything
 clean.tests - just clean tests and utils
 clean.controls	- just clean controls
+checkin.tests - rebuild webapp, start server, deploy webapp, run perf scenarios, and shutdown server
+checkin.tests.client - just run the test client side of the scenarios (no webapp rebuilding, etc.)
 		</echo>
 	</target>
 
@@ -31,6 +33,12 @@
 	<property name="control.perf.build" value="${control.perf.root}/build"/>
 	<property name="control.perf.cases" value="${control.perf.root}/cases"/>
 	<property name="control.perf.temp" value="${control.perf.root}/temp"/>
+	<property name="control.perf.lib" value="${control.perf.root}/lib"/>
+	<property name="control.perf.logs" value="${control.perf.root}/logs"/>
+
+	<!-- graphing utils used in reportWeb -->
+	<property name="control.perf.external" value="${control.perf.root}/external"/>
+	<property name="cewolf.lib" value="${control.perf.external}/cewolf-0.9.8/lib"/>
 
 	<!-- test run configuration (for web-based scenarios) -->
 	<property name="test.hostname" value="localhost"/>
@@ -47,6 +55,9 @@
 	</path>
 
 	<path id="control.build.classpath">
+		<pathelement path="${control.perf.external}/perf-results.jar"/>
+		<pathelement path="${jsr173.jar}"/>
+		<pathelement path="${xbean.jar}"/>
 		<pathelement path="${controls.jar}"/>
 		<pathelement path="${velocitydep14.jar}"/>
 		<pathelement path="${control.perf.ctlbuild}"/>
@@ -54,9 +65,10 @@
 	</path>
 
 	<path id="tch.run.classpath">
+		<pathelement path="${jsr173.jar}"/>
 		<pathelement path="${tch.jar}"/>
 		<pathelement path="${tch.schema.jar}"/>
-		<pathelement path="${tch.xbean.jar}"/>
+		<pathelement path="${xbean.jar}"/>
 		<pathelement path="${ant.jar}"/>
 		<pathelement path="${ant.home}/lib/ant-launcher.jar"/>
 		<pathelement path="${jakarta.jar}"/>
@@ -77,6 +89,18 @@
            classpathref="tch.run.classpath"/>
 
 	<!-- build targets -->
+	<target name="bootstrap">
+		<mkdir dir="${control.perf.external}"/>
+		<get src="http://umn.dl.sourceforge.net/sourceforge/cewolf/cewolf-0.9.8.zip" 
+				 dest="${control.perf.external}/cewolf-0.9.8.zip" 
+				 verbose="true"/>
+		<unzip src="${control.perf.external}/cewolf-0.9.8.zip" dest="${control.perf.external}"/>
+	</target>
+
+	<target name="clean.bootstrap">
+		<delete dir="${control.perf.external}/cewolf-0.9.8"/>
+	</target>
+
 	<target name="build.controls">
 		<delete dir="${control.perf.ctlbuild}/lib"/>
 		<mkdir dir="${control.perf.ctlbuild}"/>
@@ -123,6 +147,7 @@
 		<delete dir="${control.perf.temp}"/>
 	</target>
 
+	<target name="build" depends="build.controls,build.tests,controlperf.jar"/>
 	<target name="rebuild" depends="rebuild.controls,rebuild.tests"/>
 	<target name="rebuild.controls" depends="clean.controls,build.controls"/>
 	<target name="rebuild.tests" depends="clean.tests,build.tests,controlperf.jar"/>
@@ -146,6 +171,7 @@
           <property name="control.perf.root" value="${control.perf.root}"/>
 	  	    <property name="test.hostname" value="${test.hostname}" />
 	   		  <property name="test.port" value="${test.port}" />
+					<property name="tch.log.basedir" value="${control.perf.logs}"/>
 					<property name="tch.log.date-format" value=""/>
           <property name="tch.replication.entry-point" value="ant -f ${control.perf.root}/build.xml run"/>
           <property name="tch.filter.frequencies" value="${test.freq}"/>
@@ -153,13 +179,13 @@
 	   		  <sysproperty key="gtlf.dtd.remote" value="${gtlf.dtd.remote}"/>
 	   		  <sysproperty key="gtlf.dtd.local" value="${gtlf.dtd.local}"/>
   	</tch>
-		<ant antfile="${controls.test.infra.dir}/tch/runtime/build.xml" target="generate-html-log" dir="${control.perf.root}">
-			<property name="gtlf.file" value="${control.perf.root}/${tch.base-logfile-name}.xml"/>
-			<property name="output.file" value="${control.perf.root}/${tch.base-logfile-name}.html"/>
+		<ant antfile="${controls.test.infra.dir}/tch/runtime/build.xml" target="generate-html-log" dir="${control.perf.logs}">
+			<property name="gtlf.file" value="${control.perf.logs}/${tch.base-logfile-name}.xml"/>
+			<property name="output.file" value="${control.perf.logs}/${tch.base-logfile-name}.html"/>
     </ant>
   </target>  
 
-	<target name="bvt_client">
+	<target name="checkin.tests.client">
 		<property name="test-suite" value="${control.perf.root}/cases/controls-perf.xml"/>
 		<property name="test.freq" value="bvt"/>
 		<property name="tch.log.debug-level" value="0"/>
@@ -169,7 +195,7 @@
 	</target>
 
 	<!-- run targets that start tomcat, buid/deploy webapp, run tests and then undeploy/stop -->	
-  <target name="bvt">
+  <target name="checkin.tests">
 		<parallel>
 			<echo message="start a new thread to build controlsWeb and start/deploy tomcat"/>
      	<ant antfile="webapps/build.xml" target="start"/>
@@ -181,7 +207,7 @@
 				<echo message="continue the new thread, deploy controlsWeb"/>
 				<ant antfile="webapps/build.xml" target="ensure.deployed"/>
 				<echo message="continue the new thread, run perf tests"/>
-				<antcall target="bvt_client"/>
+				<antcall target="checkin.tests.client"/>
 				<echo message="continue the new thread, undeploy controlsWeb"/>
 				<ant antfile="webapps/build.xml" target="undeploy"/>
 				<echo message="stop tomcat server, finish the new thread"/>

Modified: incubator/beehive/trunk/controls/test/perf/cases/controls-perf.xml
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/cases/controls-perf.xml?view=diff&rev=122600&p1=incubator/beehive/trunk/controls/test/perf/cases/controls-perf.xml&r1=122599&p2=incubator/beehive/trunk/controls/test/perf/cases/controls-perf.xml&r2=122600
==============================================================================
--- incubator/beehive/trunk/controls/test/perf/cases/controls-perf.xml	(original)
+++ incubator/beehive/trunk/controls/test/perf/cases/controls-perf.xml	Thu Dec 16 16:00:59 2004
@@ -10,7 +10,7 @@
 					<cmdline>%{control.perf.root}/bin/perf StrlenPgmTest</cmdline>
 					<hash>-1989672960</hash>
 					<bar>4026</bar>
-					<drift>0.10</drift>
+					<drift>0.20</drift>
 					<timeout>10000</timeout>
 				</controlsperf>
       </test>
@@ -19,7 +19,7 @@
 					<url>http://%{test.hostname}:%{test.port}/controlsPerfWeb/jpf/test/controls/performance/programmatic/strlen/Controller.jpf</url>
 					<hash>-1989672960</hash>
 					<bar>4026</bar>
-					<drift>0.10</drift>
+					<drift>0.20</drift>
 					<timeout>10000</timeout>
 				</controlsperf>
       </test>
@@ -28,7 +28,7 @@
 					<cmdline>%{control.perf.root}/bin/benchmark dproxy.StrlenDProxyTest</cmdline>
 					<hash>-1989672960</hash>
 					<bar>724</bar>
-					<drift>0.10</drift>
+					<drift>0.20</drift>
 					<timeout>10000</timeout>
 				</controlsperf>
       </test>
@@ -37,7 +37,7 @@
 					<url>http://%{test.hostname}:%{test.port}/controlsPerfWeb/jpf/test/controls/performance/benchmarks/strlen/dproxy/Controller.jpf</url>
 					<hash>-1989672960</hash>
 					<bar>1116</bar>
-					<drift>0.10</drift>
+					<drift>0.20</drift>
 					<timeout>10000</timeout>
 				</controlsperf>
       </test>
@@ -46,7 +46,7 @@
 					<cmdline>%{control.perf.root}/bin/benchmark methodinv.StrlenMethodInvTest</cmdline>
 					<hash>-1989672960</hash>
 					<bar>11397</bar>
-					<drift>0.10</drift>
+					<drift>0.20</drift>
 					<timeout>100000</timeout>
 				</controlsperf>
       </test>
@@ -55,7 +55,7 @@
 					<url>http://%{test.hostname}:%{test.port}/controlsPerfWeb/jpf/test/controls/performance/benchmarks/strlen/methodinv/Controller.jpf</url>
 					<hash>-1989672960</hash>
 					<bar>11928</bar>
-					<drift>0.10</drift>
+					<drift>0.20</drift>
 					<timeout>10000</timeout>
 				</controlsperf>
       </test>
@@ -64,7 +64,7 @@
 					<cmdline>%{control.perf.root}/bin/benchmark javabean.StrlenBeanTest</cmdline>
 					<hash>-1989672960</hash>
 					<bar>42</bar>
-					<drift>0.10</drift>
+					<drift>0.20</drift>
 					<timeout>1000</timeout>
 				</controlsperf>
       </test>
@@ -73,7 +73,7 @@
 					<url>http://%{test.hostname}:%{test.port}/controlsPerfWeb/jpf/test/controls/performance/benchmarks/strlen/javabean/Controller.jpf</url>
 					<hash>-1989672960</hash>
 					<bar>65</bar>
-					<drift>0.10</drift>
+					<drift>0.20</drift>
 					<timeout>1000</timeout>
 				</controlsperf>
       </test>
@@ -82,7 +82,7 @@
 					<cmdline>%{control.perf.root}/bin/benchmark javaclass.StrlenClassTest</cmdline>
 					<hash>-1989672960</hash>
 					<bar>42</bar>
-					<drift>0.10</drift>
+					<drift>0.20</drift>
 					<timeout>10000</timeout>
 				</controlsperf>
       </test>
@@ -91,7 +91,7 @@
 					<url>http://%{test.hostname}:%{test.port}/controlsPerfWeb/jpf/test/controls/performance/benchmarks/strlen/javaclass/Controller.jpf</url>
 					<hash>-1989672960</hash>
 					<bar>65</bar>
-					<drift>0.10</drift>
+					<drift>0.20</drift>
 					<timeout>10000</timeout>
 				</controlsperf>
       </test>
@@ -100,7 +100,7 @@
 					<cmdline>%{control.perf.root}/bin/perf VarargsPgmTest</cmdline>
 					<hash>-1284084288</hash>
 					<bar>4031</bar>
-					<drift>0.10</drift>
+					<drift>0.20</drift>
 					<timeout>10000</timeout>
 				</controlsperf>
       </test>
@@ -109,7 +109,7 @@
 					<url>http://%{test.hostname}:%{test.port}/controlsPerfWeb/jpf/test/controls/performance/programmatic/varargs/Controller.jpf</url>
 					<hash>-1284084288</hash>
 					<bar>4031</bar>
-					<drift>0.10</drift>
+					<drift>0.20</drift>
 					<timeout>10000</timeout>
 				</controlsperf>
       </test>
@@ -118,7 +118,7 @@
 					<cmdline>%{control.perf.root}/bin/perf VarretPgmTest</cmdline>
 					<hash>95000000</hash>
 					<bar>12242</bar>
-					<drift>0.10</drift>
+					<drift>0.20</drift>
 					<timeout>10000</timeout>
 				</controlsperf>
       </test>
@@ -127,7 +127,7 @@
 					<url>http://%{test.hostname}:%{test.port}/controlsPerfWeb/jpf/test/controls/performance/programmatic/varret/Controller.jpf</url>
 					<hash>95000000</hash>
 					<bar>12242</bar>
-					<drift>0.10</drift>
+					<drift>0.20</drift>
 					<timeout>10000</timeout>
 				</controlsperf>
       </test>

Added: incubator/beehive/trunk/controls/test/perf/ctlsrc/org/apache/beehive/controls/perf/controls/custom/PerfResultControl.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/ctlsrc/org/apache/beehive/controls/perf/controls/custom/PerfResultControl.java?view=auto&rev=122600
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/perf/ctlsrc/org/apache/beehive/controls/perf/controls/custom/PerfResultControl.java	Thu Dec 16 16:00:59 2004
@@ -0,0 +1,21 @@
+package org.apache.beehive.controls.perf.controls.custom;
+
+import org.apache.beehive.controls.api.bean.ControlInterface;
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import org.apache.xmlbeans.XmlException;
+import org.openuri.perf.*;
+
+@ControlInterface
+public interface PerfResultControl
+{
+	// init methods
+	public void loadResult(File p_result) throws XmlException,IOException;
+	public void loadResults(File p_dir) throws XmlException,IOException;
+	public void clearResultSets();
+	
+	public HashMap<String,ResultSetDocument.ResultSet> getResultSets();
+	public ResultSetDocument.ResultSet getResultSet(String p_filename);
+	public String getLatestFilename();
+}

Added: incubator/beehive/trunk/controls/test/perf/ctlsrc/org/apache/beehive/controls/perf/controls/custom/PerfResultControlImpl.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/ctlsrc/org/apache/beehive/controls/perf/controls/custom/PerfResultControlImpl.java?view=auto&rev=122600
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/perf/ctlsrc/org/apache/beehive/controls/perf/controls/custom/PerfResultControlImpl.java	Thu Dec 16 16:00:59 2004
@@ -0,0 +1,74 @@
+package org.apache.beehive.controls.perf.controls.custom;
+
+import org.apache.beehive.controls.api.bean.ControlImplementation;
+
+import java.util.HashMap;
+import java.util.Set;
+import java.util.Calendar;
+import java.util.Iterator;
+import org.openuri.perf.*;
+
+import java.io.File;
+import java.io.IOException;
+import org.apache.xmlbeans.XmlException;
+
+@ControlImplementation
+public class PerfResultControlImpl implements PerfResultControl
+{
+	private transient HashMap<String,ResultSetDocument.ResultSet> _resultSets = new HashMap<String,ResultSetDocument.ResultSet>();
+	private String _latestFilename = null;
+	
+	public void loadResult(File p_result) throws XmlException,IOException
+	{
+ 		ResultSetDocument doc = ResultSetDocument.Factory.parse(p_result);
+ 		doc.validate();
+ 		_resultSets.put(p_result.getAbsolutePath(),doc.getResultSet());
+ 		
+ 		if(null == _latestFilename)
+			_latestFilename = p_result.getAbsolutePath();
+		else
+		{
+			Calendar currentDate = ((ResultSetDocument.ResultSet)_resultSets.get((Object)_latestFilename)).getEnvironment().getDate();
+			Calendar candidateDate = doc.getResultSet().getEnvironment().getDate();
+			if(currentDate.getTimeInMillis() < candidateDate.getTimeInMillis())
+				_latestFilename = p_result.getAbsolutePath();
+		}			
+	}
+	
+	public void loadResults(File p_dir) throws XmlException,IOException
+	{
+		File[] files = p_dir.listFiles();
+		
+ 		for(int i=0; i<files.length; i++)
+		{
+			if(files[i].getName().endsWith(".xml"))
+			{
+ 				loadResult(files[i]);
+			}
+				
+		}
+		
+	}
+	
+
+  public HashMap<String,ResultSetDocument.ResultSet> getResultSets()
+  {
+    return _resultSets;
+  }
+
+  public void clearResultSets()
+  {
+    _resultSets.clear();
+  }
+  
+  public ResultSetDocument.ResultSet getResultSet(String p_filename)
+  {
+  	return _resultSets.get((Object)p_filename);
+  }
+  
+  public String getLatestFilename()
+  {
+  	return _latestFilename;
+  }
+
+}

Modified: incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/tch/PerfTest.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/tch/PerfTest.java?view=diff&rev=122600&p1=incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/tch/PerfTest.java&r1=122599&p2=incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/tch/PerfTest.java&r2=122600
==============================================================================
--- incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/tch/PerfTest.java	(original)
+++ incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/tch/PerfTest.java	Thu Dec 16 16:00:59 2004
@@ -21,7 +21,7 @@
   private String _sCmdline = null;
   private String _sUrl = null;
   private int _iHash;
-  private float _fBar;
+  private long _lBar;
   private float _fDrift;
   private long _lTimeout;
 
@@ -42,9 +42,10 @@
     if(null != _sCmdline && null == _sUrl)
     {
       StandAlonePerfRunner logicTask = new StandAlonePerfRunner(getResultHandler());
-      logicTask.init(_sCmdline,
+      logicTask.init(getLogicalTestName(),
+                     _sCmdline,
                      _iHash,
-                     _fBar,
+                     _lBar,
                      _fDrift,
                      _lTimeout);
       return logicTask;
@@ -52,9 +53,10 @@
     else if(null != _sUrl && null == _sCmdline)
     {
       WebPerfRunner logicTask = new WebPerfRunner(getResultHandler());
-      logicTask.init(_sUrl,
+      logicTask.init(getLogicalTestName(),
+                     _sUrl,
                      _iHash,
-                     _fBar,
+                     _lBar,
                      _fDrift,
                      _lTimeout);
       return logicTask;
@@ -93,7 +95,7 @@
 
   public void addConfiguredBar(Bar p_bar)
 	{
-		this._fBar = Float.parseFloat(handleValue(p_bar.getText()));
+		this._lBar = Long.parseLong(handleValue(p_bar.getText()));
 	}
 
   public void addConfiguredDrift(Drift p_drift)

Modified: incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/tch/StandAlonePerfRunner.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/tch/StandAlonePerfRunner.java?view=diff&rev=122600&p1=incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/tch/StandAlonePerfRunner.java&r1=122599&p2=incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/tch/StandAlonePerfRunner.java&r2=122600
==============================================================================
--- incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/tch/StandAlonePerfRunner.java	(original)
+++ incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/tch/StandAlonePerfRunner.java	Thu Dec 16 16:00:59 2004
@@ -17,6 +17,7 @@
  */
 public class StandAlonePerfRunner extends AbstractTestLogicTask
 {
+  private String _sTestname = null;
   private String _sCmdline = null;
   private int _iHash;
   private float _fBar;
@@ -30,13 +31,15 @@
     super("StandAlonePerfRunner",inResultHandler);
   }
 
-  public void init(String p_sCmdline,
+  public void init(String p_sTestname,
+                   String p_sCmdline,
                    int p_iHash,
                    float p_fBar,
                    float p_fDrift,
                    long p_lTimeout)
   {
     // set private members
+    this._sTestname = p_sTestname;
     this._sCmdline = p_sCmdline;
     this._iHash = p_iHash;
     this._fBar = p_fBar;
@@ -47,7 +50,7 @@
 
   public TaskContext run(TaskContext in)
   {
-    float fActualTime = -1;
+    long lActualTime = -1;
     int iActualHash = -1;
 
     // run the commandline
@@ -70,7 +73,7 @@
         if(sCurrent.startsWith("time=")){
           StringTokenizer stTime = new StringTokenizer(sCurrent,"=");
           stTime.nextToken();
-          fActualTime = Float.parseFloat(stTime.nextToken());
+          lActualTime = Long.parseLong(stTime.nextToken());
         }
         else if(sCurrent.startsWith("hash=")){
           StringTokenizer stHash = new StringTokenizer(sCurrent,"=");
@@ -80,17 +83,19 @@
       }
 
       // calculate the drift
-      float fActualDrift = ((fActualTime - _fBar)/_fBar);
+      float fActualDrift = ((lActualTime - _fBar)/_fBar);
 
       // log the test result
       _logger.inform("allowed hash="+_iHash);
       _logger.inform("actual hash="+iActualHash);
       _logger.inform("----------");
       _logger.inform("allowed time="+_fBar);
-      _logger.inform("actual time="+fActualTime);
+      _logger.inform("actual time="+lActualTime);
       _logger.inform("----------");
       _logger.inform("allowed drift (abs)="+_fDrift);
       _logger.inform("actual drift="+fActualDrift);
+
+      _logger.inform("\nTEST: "+_sTestname+"  time "+lActualTime+" hash "+iActualHash);
 
       // evaluate the result
       if(iActualHash != _iHash)

Modified: incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/tch/WebPerfRunner.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/tch/WebPerfRunner.java?view=diff&rev=122600&p1=incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/tch/WebPerfRunner.java&r1=122599&p2=incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/tch/WebPerfRunner.java&r2=122600
==============================================================================
--- incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/tch/WebPerfRunner.java	(original)
+++ incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/tch/WebPerfRunner.java	Thu Dec 16 16:00:59 2004
@@ -22,9 +22,10 @@
  */
 public class WebPerfRunner extends AbstractTestLogicTask
 {
+  private String _sTestname = null;
   private String _sUrl = null;
   private int _iHash;
-  private float _fBar;
+  private long _lBar;
   private float _fDrift;
   private long _lTimeout;
 
@@ -35,16 +36,18 @@
     super("WebPerfRunner",inResultHandler);
   }
 
-  public void init(String p_sUrl,
+  public void init(String p_sTestname,
+                   String p_sUrl,
                    int p_iHash,
-                   float p_fBar,
+                   long p_lBar,
                    float p_fDrift,
                    long p_lTimeout)
   {
     // set private members
+    this._sTestname = p_sTestname;
     this._sUrl = p_sUrl;
     this._iHash = p_iHash;
-    this._fBar = p_fBar;
+    this._lBar = p_lBar;
     this._fDrift = p_fDrift;
     this._lTimeout = p_lTimeout;
     this._logger = this.getResultLogger();
@@ -64,18 +67,21 @@
         return null;
       }
 
-      float actualDrift = ((urlreport.getTime()-_fBar)/_fBar);      
+      float actualDrift = ((urlreport.getTime()-_lBar)/_lBar);      
 
       // log the test result from UrlReport
       _logger.inform("allowed hash="+_iHash);
       _logger.inform("actual hash="+urlreport.getHash());
       _logger.inform("----------");
-      _logger.inform("allowed time="+_fBar);
+      _logger.inform("allowed time="+_lBar);
       _logger.inform("actual time="+urlreport.getTime());
       _logger.inform("----------");
       _logger.inform("allowed drift (abs)="+_fDrift);
       _logger.inform("actual drift="+actualDrift);
 
+      // log result for processing into perf-result
+      _logger.inform("\nTEST: "+_sTestname+"  time "+urlreport.getTime()+" hash "+urlreport.getHash());
+
       // evaluate the result
       if(urlreport.getHash() != _iHash)
       {
@@ -111,7 +117,7 @@
   {
     private String _url = null;
     private int _actualHash = -1;
-    private int _actualTime = -1;
+    private long _actualTime = -1;
 
     UrlReport(String p_url)
     {
@@ -177,7 +183,7 @@
         {
           StringTokenizer st2 = new StringTokenizer(current,"=");
           st2.nextToken();
-          _actualTime = Integer.parseInt(st2.nextToken());
+          _actualTime = Long.parseLong(st2.nextToken());
         }
       }
 
@@ -188,12 +194,12 @@
         return true;
     }
 
-    float getTime()
+    long getTime()
     {
       return _actualTime;
     }
     
-    float getHash()
+    int getHash()
     {
       return _actualHash;
     }

Modified: incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/utils/Constants.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/utils/Constants.java?view=diff&rev=122600&p1=incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/utils/Constants.java&r1=122599&p2=incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/utils/Constants.java&r2=122600
==============================================================================
--- incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/utils/Constants.java	(original)
+++ incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/utils/Constants.java	Thu Dec 16 16:00:59 2004
@@ -8,10 +8,8 @@
   public static final int DEFAULT_STR_SIZE = 2048;
 
   public static final int VARARGS_ITERATIONS = 1000000;
-  //public static final int DEFAULT_VARARG_INTERVAL = 64;
   public static final int DEFAULT_VARARG_SIZE = 10;
   public static final int[] DEFAULT_VARARG_PARAMS = new int[]{10,20,40,80,160,320};
-
 
   public static final int VARRET_ITERATIONS = 10000;
   public static final int[] DEFAULT_VARRET_PARAMS = new int[]{100,200,400,800,1600,3200};

Modified: incubator/beehive/trunk/controls/test/perf/webapps/build.xml
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/webapps/build.xml?view=diff&rev=122600&p1=incubator/beehive/trunk/controls/test/perf/webapps/build.xml&r1=122599&p2=incubator/beehive/trunk/controls/test/perf/webapps/build.xml&r2=122600
==============================================================================
--- incubator/beehive/trunk/controls/test/perf/webapps/build.xml	(original)
+++ incubator/beehive/trunk/controls/test/perf/webapps/build.xml	Thu Dec 16 16:00:59 2004
@@ -15,9 +15,11 @@
 
     <property environment="os"/>
     <property file="${os.BEEHIVE_HOME}/beehive.properties"/>
+    <property file="${os.BEEHIVE_HOME}/controls/test/common/path.properties"/>
 		<property name="controls.perf.root" value="${os.BEEHIVE_HOME}/controls/test/perf"/> 
 		<property name="buildWebapp.xml" value="${os.BEEHIVE_HOME}/test/ant/buildWebapp.xml"/> 
 		<property name="runTomcat.xml" value="${os.BEEHIVE_HOME}/test/ant/runTomcat.xml"/> 
+    <property name="webapp.stage.dir" value="${controls.perf.root}/webapps/stage"/>
     <property name="webapp.name" value="controlsPerfWeb"/>
     <property name="webapp.dir" location="${controls.perf.root}/webapps/${webapp.name}"/>
     <property name="webapp.waitfor.url" value="http://localhost:8080/${webapp.name}"/>
@@ -53,51 +55,74 @@
         <echo message="-----------------------------------------------------"/>
         <echo message="|    ${webapp.name} build starting    |"/>
         <echo message="-----------------------------------------------------"/>
-
-        <!--<property name="webapp.dir" location="./${webapp.name}"/>-->
+    		<antcall target="${webapp.name}.stage"/>
 
 				<ant antfile="${buildWebapp.xml}" target="deploy.beehive.webapp.runtime" inheritAll="false">
-					<property name="webapp.dir" value="${webapp.dir}" />
+					<property name="webapp.dir" value="${webapp.stage.dir}/${webapp.name}" />
 				</ant>
 
         <copy file="${webapp.dir}/WEB-INF/local-netui-config.xml" 
-              tofile="${webapp.dir}/WEB-INF/${netuiconfig.xml.name}" 
+              tofile="${webapp.stage.dir}/${webapp.name}/WEB-INF/${netuiconfig.xml.name}" 
               overwrite="true" failonerror="false"/>
 
 				<!-- TODO: remove this copy once milton.jar is not deleted by the updeploy.netui call -->	
-				<copy file="${beehive.dir}/controls/test/infra/milton/milton.jar" todir="${webapp.name}/WEB-INF/lib"/>
+				<!--copy file="${beehive.dir}/controls/test/infra/milton/milton.jar" todir="${webapp.name}/WEB-INF/lib"/-->
 				
-				<copy file="${controls.perf.root}/ctlbuild/lib/customcontrols.jar" todir="${webapp.name}/WEB-INF/lib"/>
-				<copy file="${controls.perf.root}/build/lib/controlperf.jar" todir="${webapp.name}/WEB-INF/lib"/>
-
         <ant antfile="${buildWebapp.xml}" target="build.webapp" inheritAll="false">
-            <property name="webapp.dir" location="${webapp.dir}"/>
+            <property name="webapp.dir" location="${webapp.stage.dir}/${webapp.name}"/>
         </ant>
-
+    	
         <echo message="----------------------------------------------"/>
         <echo message="|     ${webapp.name} build ending      |"/>
         <echo message="----------------------------------------------"/>
     </target>
 
+
+	<!-- staging targets -->	
+	<target name="controlsPerfWeb.stage" depends="clean">
+		<copy todir="${webapp.stage.dir}/${webapp.name}">
+			<fileset dir="${webapp.dir}"/>
+		</copy>
+
+		<!-- inject stuff -->
+    <ant antfile="${controls.test.dir}/webapps/build.xml" target="-inject.milton" inheritAll="false">
+        <property name="webapp.dir" location="${webapp.stage.dir}/${webapp.name}"/>
+        <property name="do.inject.milton" value="true"/>
+    </ant>
+		<copy file="${controls.perf.root}/ctlbuild/lib/customcontrols.jar" todir="${webapp.stage.dir}/${webapp.name}/WEB-INF/lib"/>
+		<copy file="${controls.perf.root}/build/lib/controlperf.jar" todir="${webapp.stage.dir}/${webapp.name}/WEB-INF/lib"/>
+	</target>
+
+	<target name="reportWeb.stage" depends="clean">
+		<copy todir="${webapp.stage.dir}/${webapp.name}">
+			<fileset dir="${webapp.dir}"/>
+		</copy>
+
+		<!-- inject stuff -->
+    <ant antfile="${controls.test.dir}/webapps/build.xml" target="-inject.milton" inheritAll="false">
+        <property name="webapp.dir" location="${webapp.stage.dir}/${webapp.name}"/>
+        <property name="do.inject.milton" value="true"/>
+    </ant>
+		<copy todir="${webapp.stage.dir}/${webapp.name}/WEB-INF/lib">
+			<fileset dir="${controls.perf.root}/external/cewolf-0.9.8/lib">
+							 <exclude name="servlet.jar"/>
+			</fileset>
+		</copy>
+		<copy file="${controls.perf.root}/external/perf-results.jar" todir="${webapp.stage.dir}/${webapp.name}/WEB-INF/lib"/>
+		<copy file="${controls.perf.root}/ctlbuild/lib/customcontrols.jar" todir="${webapp.stage.dir}/${webapp.name}/WEB-INF/lib"/>
+		<copy file="${webapp.dir}/jpf/controller.properties" todir="${webapp.stage.dir}/${webapp.name}/WEB-INF/classes/jpf"/>
+	</target>
+
     <target name="clean" description="Clean webapp">
         <echo message="----------------------------------------------"/>
         <echo message="|     ${webapp.name} clean starting    |"/>
         <echo message="----------------------------------------------"/>
 
         <ant antfile="${buildWebapp.xml}" target="undeploy.beehive.webapp.runtime" inheritAll="false">
-            <property name="webapp.dir" location="./${webapp.name}"/>
-        </ant>
-
-			<!--
-        <ant antfile="${deployNetui.ant}" target="clean.webapp" inheritAll="false">
-            <property name="webapp.dir" location="./${webapp.name}"/>
+            <property name="webapp.dir" location="${webapp.stage.dir}/${webapp.name}"/>
         </ant>
-			-->
-        <echo message="****************************************************"/>
-        <echo message="* milton.jar is deleted by undeploy.netui.runtime, *"/>
-        <echo message="* please put it back to ${webapp.name}/WEB-INF/lib/   *"/>
-        <echo message="****************************************************"/>
 
+				<delete dir="${webapp.stage.dir}/${webapp.name}"/>
 
         <echo message="----------------------------------------------"/>
         <echo message="|     ${webapp.name} clean ending      |"/>
@@ -120,8 +145,8 @@
             <property name="catalina.username" value="manager"/>
             <property name="catalina.password" value="manager"/>
             <property name="context.path" value="${webapp.name}"/>
-            <property name="webapp.dir" value="${webapp.dir}"/>
-            <property name="webapp.root" value="${basedir}/${webapp.name}"/>
+            <property name="webapp.dir" value="${webapp.stage.dir}/${webapp.name}"/>
+            <property name="webapp.root" value="${webapp.stage.dir}/${webapp.name}"/>
         </ant>
     </target>
 

Added: incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/forms/ControlsForm.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/forms/ControlsForm.java?view=auto&rev=122600
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/forms/ControlsForm.java	Thu Dec 16 16:00:59 2004
@@ -0,0 +1,7 @@
+package jpf.forms;
+
+public class ControlsForm
+{
+    public String filename;
+
+}

Added: incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/forms/ReportForm.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/forms/ReportForm.java?view=auto&rev=122600
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/forms/ReportForm.java	Thu Dec 16 16:00:59 2004
@@ -0,0 +1,10 @@
+package jpf.forms;
+
+public class ReportForm
+{
+    public String filename;
+    public String regex;
+    public String xvals;
+    public String yvals;
+    public String type;
+}

Added: incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/forms/XmlbeansForm.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/forms/XmlbeansForm.java?view=auto&rev=122600
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/forms/XmlbeansForm.java	Thu Dec 16 16:00:59 2004
@@ -0,0 +1,7 @@
+package jpf.forms;
+
+public class XmlbeansForm
+{
+    public String filename;
+
+}

Added: incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/graphing/SeriesProducer.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/graphing/SeriesProducer.java?view=auto&rev=122600
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/graphing/SeriesProducer.java	Thu Dec 16 16:00:59 2004
@@ -0,0 +1,135 @@
+package graphing;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+import java.util.Iterator;
+import java.io.Serializable;
+import org.jfree.data.CategoryDataset;
+import org.jfree.data.DefaultCategoryDataset;
+import de.laures.cewolf.DatasetProduceException;
+import de.laures.cewolf.DatasetProducer;
+import de.laures.cewolf.CategoryItemLinkGenerator;
+import java.io.File;
+import java.io.IOException;
+import java.io.FileNotFoundException;
+import org.apache.xmlbeans.XmlException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jfree.chart.entity.CategoryItemEntity;
+import org.jfree.chart.tooltips.CategoryToolTipGenerator;
+
+//Controls
+import org.apache.beehive.controls.api.bean.Control;
+import org.apache.beehive.controls.perf.controls.custom.PerfResultControlBean;
+import org.apache.beehive.controls.perf.controls.custom.StrlenControlBean;
+
+// xmlbeans
+import org.openuri.perf.*;
+
+public class SeriesProducer implements DatasetProducer, Serializable {
+	
+	// TODO: implement this method correctly
+	public Object produceDataset(Map params) throws DatasetProduceException {	
+		
+		// keys used to retreive params passed from the jsp form
+		String k_dir = "dir";
+		String k_regex = "regex";
+		String dir = (String)params.get((Object)k_dir);
+		String regex = (String)params.get((Object)k_regex);	
+		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
+		
+		try
+		{
+		    // programatically instantiate the control to be used
+		    PerfResultControlBean perfresult = (PerfResultControlBean)java.beans.Beans.instantiate(this.getClass().getClassLoader(),"org.apache.beehive.controls.perf.controls.custom.PerfResultControlBean");
+			System.out.println("dir="+dir);
+			System.out.println("regex="+regex);
+			
+			perfresult.loadResults(new File(dir));
+			
+			
+			/*
+			ResultSetDocument.ResultSet[] resultSets = (ResultSetDocument.ResultSet[]) perfresult.getResultSets().toArray();	
+			System.out.println("number of result sets: "+resultSets.length);
+
+			for(int q=0; q<resultSets.length; q++)
+			{	
+				System.out.println("processing result set: "+q);
+				Result[] results = resultSets[q].getResultArray();
+				System.out.println("getting date");
+				String date = resultSets[q].getEnvironment().getDate().toString();
+				for(int i=0; i<results.length; i++)
+				{
+					String name = results[i].getName();
+					Custom[] customs = results[i].getCustomArray();
+					
+					if(customs.length > 0)
+					{
+						for(int j=0; j<customs.length; j++)
+						{
+							name = name+"["+customs[j].getName()+"="+customs[j].getValue()+"]";
+						}
+					}				
+					
+					
+					if(name.matches(regex))
+					{
+						System.out.println("adding data name: "+name);
+						
+						if(results[i].isSetTime())
+						{
+							dataset.addValue( (Number) results[i].getTime(), name, date);
+						}
+						else if(results[i].isSetMemory())
+						{
+							dataset.addValue( (Number) results[i].getMemory(), name, date);
+						}
+						else
+						{
+							dataset.addValue( (double)500,"UNRECOGNIZED PERF VALUE","UNRECOGNIZED PERF VALUE");
+						}
+					}
+					
+				}
+			}*/
+					
+			return dataset;
+			
+		}
+		catch(ClassNotFoundException cnfe)
+		{
+			dataset.addValue((double)500,"ClassNotFoundException","ClassNotFoundException");
+			cnfe.printStackTrace();
+			return dataset;
+		}
+		catch(IOException ioe)
+		{
+			dataset.addValue((double)500,"IOE","IOE");
+			ioe.printStackTrace();
+			return dataset;
+		}
+		catch(XmlException xmle)
+		{
+			dataset.addValue((double)500,"XMLException","XMLException");
+			xmle.printStackTrace();
+			return dataset;
+		}
+		
+	}
+    
+	public boolean hasExpired(Map params, Date since) {		
+		return (System.currentTimeMillis() - since.getTime())  > 5000;
+	}
+
+	public String getProducerId() {
+		return "Example DatasetProducer";
+	}
+	
+	
+
+	
+}

Added: incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/graphing/SnapshotProducer.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/graphing/SnapshotProducer.java?view=auto&rev=122600
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/graphing/SnapshotProducer.java	Thu Dec 16 16:00:59 2004
@@ -0,0 +1,117 @@
+package graphing;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+import java.util.Iterator;
+import java.io.Serializable;
+import org.jfree.data.CategoryDataset;
+import org.jfree.data.DefaultCategoryDataset;
+import de.laures.cewolf.DatasetProduceException;
+import de.laures.cewolf.DatasetProducer;
+import de.laures.cewolf.CategoryItemLinkGenerator;
+import java.io.File;
+import java.io.IOException;
+import java.io.FileNotFoundException;
+import org.apache.xmlbeans.XmlException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jfree.chart.entity.CategoryItemEntity;
+import org.jfree.chart.tooltips.CategoryToolTipGenerator;
+
+//Controls
+import org.apache.beehive.controls.api.bean.Control;
+import org.apache.beehive.controls.perf.controls.custom.PerfResultControlBean;
+import org.apache.beehive.controls.perf.controls.custom.StrlenControlBean;
+
+//xmlbeans
+import org.openuri.perf.*;
+import org.openuri.perf.Result;
+
+public class SnapshotProducer implements DatasetProducer, Serializable {
+	
+	public Object produceDataset(Map params) throws DatasetProduceException {
+		
+		// keys used to retreive params passed from the jsp form
+		String k_regex = "regex";
+		String k_filename = "filename";
+		String regex = (String)params.get((Object)k_regex);	
+		String filename = (String)params.get((Object)k_filename);
+		ResultSetDocument.ResultSet resultset = null;
+		
+		try{
+			ResultSetDocument doc = ResultSetDocument.Factory.parse(new File(filename));
+			resultset = doc.getResultSet();
+		}
+		catch(XmlException xe){
+			System.out.println("got xml exception: "+xe.getMessage());
+			xe.printStackTrace();
+		}
+		catch(IOException ioe){
+			System.out.println("got ioe: "+ioe.getMessage());
+			ioe.printStackTrace();
+		}
+		
+		if(null != resultset)
+			System.out.println("got results "+resultset.getEnvironment().getDate().toString());
+		else
+			System.out.println("resutls are null :-(");
+		
+		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
+		
+		
+		// loop through results and populate the data set
+		Result[] results = resultset.getResultArray();
+		for(int i=0; i<results.length; i++)
+		{
+			String name = results[i].getName();
+			Custom[] customs = results[i].getCustomArray();
+			
+			if(customs.length > 0)
+			{
+				for(int j=0; j<customs.length; j++)
+				{
+					name = name+"["+customs[j].getName()+"="+customs[j].getValue()+"]";
+				}
+			}				
+			
+			
+			if(name.matches(regex))
+			{
+								
+				if(results[i].isSetTime())
+				{
+					System.out.println("adding time data: "+name);
+					dataset.addValue( (Number) results[i].getTime(), name, "scenarios");
+				}
+				else if(results[i].isSetMemory())
+				{
+					System.out.println("adding mem data: "+name);
+					dataset.addValue( (Number) results[i].getMemory(), name, "scenarios");
+				}
+				else
+				{
+					System.out.println("ERROR finding data");
+					dataset.addValue( (double)500,"UNRECOGNIZED PERF VALUE","UNRECOGNIZED PERF VALUE");
+				}
+			}
+			
+		}
+		
+		return dataset;
+		
+	}
+	
+	
+	
+	public boolean hasExpired(Map params, Date since) {		
+		return (System.currentTimeMillis() - since.getTime())  > 10000;
+	}
+	
+	public String getProducerId() {
+		return "SnapshotProducer";
+	}
+}

Added: incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/web.xml
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/web.xml?view=auto&rev=122600
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/web.xml	Thu Dec 16 16:00:59 2004
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
+    version="2.4">
+
+    <display-name>Beehive Web Application</display-name>
+
+    <filter>
+        <filter-name>PageFlowJspFilter</filter-name>
+        <filter-class>org.apache.beehive.netui.pageflow.PageFlowJspFilter</filter-class>
+    </filter>
+
+    <filter-mapping>
+        <filter-name>PageFlowJspFilter</filter-name>
+        <url-pattern>*.jsp</url-pattern>
+        <dispatcher>FORWARD</dispatcher>
+    </filter-mapping>
+
+		<servlet>
+ 	   	<servlet-name>CewolfServlet</servlet-name>
+    	<servlet-class>de.laures.cewolf.CewolfRenderer</servlet-class>
+ 		</servlet>
+  	<servlet-mapping>
+    	<servlet-name>CewolfServlet</servlet-name>
+    	<url-pattern>/jpf/cewolf/*</url-pattern>
+  	</servlet-mapping>
+
+
+    <!-- Action Servlet Configuration (with debugging) -->
+    <servlet>
+        <servlet-name>action</servlet-name>
+        <servlet-class>org.apache.beehive.netui.pageflow.PageFlowActionServlet</servlet-class>
+        <init-param>
+            <param-name>config</param-name>
+            <param-value>/WEB-INF/.pageflow-struts-generated/jpf-struts-config.xml</param-value>
+        </init-param>
+        <init-param>
+            <param-name>config/-global</param-name>
+            <param-value>/WEB-INF/.pageflow-struts-generated/jpf-struts-config--global.xml</param-value>
+        </init-param>
+        <init-param>
+            <param-name>debug</param-name>
+            <param-value>2</param-value>
+        </init-param>
+        <init-param>
+            <param-name>detail</param-name>
+            <param-value>2</param-value>
+        </init-param>
+        <load-on-startup>2</load-on-startup>
+    </servlet>
+
+    <!-- Struts Action Servlet Mappings -->
+    <!-- Note that because Struts takes the *last* mapping here as the extension to add to
+         actions posted from forms, we must have *.do come after *.jpf. -->
+    <servlet-mapping>
+        <servlet-name>action</servlet-name>
+        <url-pattern>*.jpf</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>action</servlet-name>
+        <url-pattern>*.do</url-pattern>
+    </servlet-mapping>
+
+    <welcome-file-list>
+        <welcome-file>index.jsp</welcome-file>
+    </welcome-file-list>
+
+    <error-page>
+        <error-code>500</error-code>
+        <location>/error.jsp</location>
+    </error-page>
+
+    <jsp-config>
+        <!-- Define the NetUI tag library TLDs -->
+        <taglib>
+            <taglib-uri>beehive-netui-tags-html.tld</taglib-uri>
+            <taglib-location>/WEB-INF/beehive-netui-tags-html.tld</taglib-location>
+        </taglib>
+        <taglib>
+            <taglib-uri>beehive-netui-tags-databinding.tld</taglib-uri>
+            <taglib-location>/WEB-INF/beehive-netui-tags-databinding.tld</taglib-location>
+        </taglib>
+        <taglib>
+            <taglib-uri>beehive-netui-tags-template.tld</taglib-uri>
+            <taglib-location>/WEB-INF/beehive-netui-tags-template.tld</taglib-location>
+        </taglib>
+    </jsp-config>
+
+</web-app>

Added: incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/error.jsp
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/error.jsp?view=auto&rev=122600
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/error.jsp	Thu Dec 16 16:00:59 2004
@@ -0,0 +1,7 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui"%>
+<netui:html>
+  <netui:body>
+  	  <p>ERROR: <netui:span value="${requestScope.msg}"/>
+  </netui:body>
+</netui:html>

Added: incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/images/runtime.jpeg
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/images/runtime.jpeg?view=auto&rev=122600
==============================================================================
Binary file. No diff available.

Added: incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/index.jsp
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/index.jsp?view=auto&rev=122600
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/index.jsp	Thu Dec 16 16:00:59 2004
@@ -0,0 +1,31 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-databinding-1.0" prefix="netui-data"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-template-1.0" prefix="netui-template"%>
+
+
+
+<netui:html>
+	<head>
+		<title>report web</title>
+		<link rel="stylesheet" type="text/css" href="runtimePerf.css" />
+    <meta content="text/html; charset=windows-1252" http-equiv=Content-Type>
+	</head>
+
+	<netui:body>
+		<img src="images/runtime.jpeg" align="left">
+		<img src="images/runtime.jpeg" align="right">
+		<h1 class=margin>Runtime Performance Web</h1>
+		<br><br><br><netui:label value="Runtime Perf Home"/>
+
+		<br><br>
+				This web application is a work in progress, however the core
+				functionality that allows the analysis of result sets is
+				functional. Click below to begin.
+
+		<br><a href="jpf/Controller.jpf">View Available Results</a>
+
+	</netui:body>
+</netui:html>
+
+

Added: incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/Controller.jpf
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/Controller.jpf?view=auto&rev=122600
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/Controller.jpf	Thu Dec 16 16:00:59 2004
@@ -0,0 +1,211 @@
+/*
+ *
+ *
+ * Copyright 2004 The Apache Software Foundation.
+ *
+ * All Rights Reserved. Unpublished rights reserved under the copyright laws
+ * of the United States. The software contained on this media is proprietary
+ * to and embodies the confidential technology of BEA Systems, Inc. The
+ * possession or receipt of this information does not convey any right to
+ * disclose its contents, reproduce it, or use,  or license the use,
+ * for manufacture or sale, the information or anything described
+ * therein. Any use, disclosure, or reproduction without BEA System's
+ * prior written permission is strictly prohibited.
+ *
+ * $Header:$
+ */
+package jpf;
+
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.FormData;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+import java.util.Properties;
+import java.util.HashMap;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.FileNotFoundException;
+import org.apache.xmlbeans.XmlException;
+
+//Controls
+import org.apache.beehive.controls.api.bean.Control;
+import org.apache.beehive.controls.perf.controls.custom.PerfResultControlBean;
+
+//xmlbeans
+import org.openuri.perf.*;
+
+//report web utils
+import jpf.forms.*;
+
+
+@Jpf.Controller(
+		forwards = {
+				@Jpf.Forward(name="index",path="index.jsp"),
+				@Jpf.Forward(name="snapshot",path="snapshot.jsp"),
+				@Jpf.Forward(name="xmlbeans",path="xmlbeans.jsp"),
+				@Jpf.Forward(name="error",path="/error.jsp")
+		})
+public class Controller extends PageFlowController
+{
+	private static HashMap<String,PerfResultControlBean> _controls = new HashMap<String,PerfResultControlBean>();
+	private static boolean _isInited = false;
+	private static Properties _props = null;
+	
+	
+	@Jpf.Action()
+	protected Forward begin()
+	{	
+		try
+		{
+			initializeProperties();
+			initializeControl(_props.getProperty("xmlbeansdir"),"xmlbeans");
+			initializeControl(_props.getProperty("controlsdir"),"controls");
+			_isInited = true;
+			return new Forward("index","controls",_controls);
+		}
+		catch(ClassNotFoundException cnfe)
+		{
+			Forward f = new Forward("error");
+			getRequest().setAttribute("msg", "ClassNotFouncException "+cnfe.getMessage());
+			cnfe.printStackTrace();
+			return f;
+		}
+		catch(XmlException xe)
+		{
+			Forward f = new Forward("error");
+			getRequest().setAttribute("msg", "XmlException "+xe.getMessage());
+			xe.printStackTrace();
+			return f;
+		}
+		catch(IOException ioe)
+		{
+			Forward f = new Forward("error");
+			getRequest().setAttribute("msg", "IOException "+ioe.getMessage());
+			ioe.printStackTrace();
+			return f;
+		}
+		
+	}
+	
+	@Jpf.Action()
+	protected Forward snapshot(ReportForm form)
+	{
+		// defaults
+		getRequest().setAttribute("chartid","CHARTID");
+		getRequest().setAttribute("title","Runtime Performance");
+		
+		// from form
+		getRequest().setAttribute("filename",form.filename);
+		getRequest().setAttribute("regex",form.regex);
+		getRequest().setAttribute("type",form.type);
+		getRequest().setAttribute("xlabel",form.xvals);
+		getRequest().setAttribute("ylabel",form.yvals);
+		return new Forward("snapshot");
+	}
+	
+	@Jpf.Action()
+	protected Forward xmlbeans(XmlbeansForm form)
+	{		
+		initializeProperties();
+		// from form
+		System.out.println("inside xmlbeans()");
+		System.out.println("filename="+form.filename);
+		String filename = form.filename;
+		
+		// if no filename given, use the newest
+		if( (null == filename  || filename.equalsIgnoreCase(""))
+				&& _isInited)
+		{
+			filename = ((PerfResultControlBean)_controls.get("xmlbeans")).getLatestFilename();
+		}
+		else if((null == filename  || filename.equalsIgnoreCase(""))
+				&& !_isInited)
+		{
+
+			try
+			{
+				initializeControl(_props.getProperty("xmlbeansdir"),"xmlbeans");
+			}
+			catch(ClassNotFoundException cnfe)
+			{
+				Forward f = new Forward("error");
+				getRequest().setAttribute("msg", "ClassNotFouncException "+cnfe.getMessage());
+				cnfe.printStackTrace();
+				return f;
+			}
+			catch(XmlException xe)
+			{
+				Forward f = new Forward("error");
+				getRequest().setAttribute("msg", "XmlException "+xe.getMessage());
+				xe.printStackTrace();
+				return f;
+			}
+			catch(IOException ioe)
+			{
+				Forward f = new Forward("error");
+				getRequest().setAttribute("msg", "IOException "+ioe.getMessage());
+				ioe.printStackTrace();
+				return f;
+			}
+			filename = ((PerfResultControlBean)_controls.get("xmlbeans")).getLatestFilename();
+		}
+		
+		ResultSetDocument.ResultSet resultSet = ((PerfResultControlBean)_controls.get("xmlbeans")).getResultSet(filename);
+		getRequest().setAttribute("date",resultSet.getEnvironment().getDate().toString());
+		getRequest().setAttribute("jvm",resultSet.getEnvironment().getJvm());
+		getRequest().setAttribute("os",resultSet.getEnvironment().getOs());
+		getRequest().setAttribute("filename",filename);
+		// set various regexes so the jsp can pass them to the data producer(s)
+		// TODO: figure out why these strings can't just be in the jsp
+		// TODO: didn't work as of 12/14/2004
+		getRequest().setAttribute("CursorWalk",".*CursorWalk.*");
+		getRequest().setAttribute("CursorGetSetGet",".*CursorGet.*");
+		getRequest().setAttribute("BisLoad",".*BisLoad.*");
+		getRequest().setAttribute("DomWalk",".*DomWalk.*");
+		getRequest().setAttribute("POValidate",".*POValidate.*");
+		getRequest().setAttribute("POTopDown",".*POTopDown[^Save].*");
+		getRequest().setAttribute("POTopDownSave",".*POTopDownSave.*");
+		getRequest().setAttribute("PrimTopDown",".*[^N]PrimTopDown.*");
+		getRequest().setAttribute("NPrimTopDown",".*NPrimTopDown.*");
+		return new Forward("xmlbeans");
+	}
+	
+	@Jpf.Action()
+	protected Forward controls(ControlsForm form)
+	{
+		initializeProperties();
+		getRequest().setAttribute("msg","not yet implemented");
+		return new Forward("error");
+	}
+	
+	private void initializeControl(String p_dir,String p_key) throws XmlException,IOException,ClassNotFoundException
+	{
+		PerfResultControlBean control = (PerfResultControlBean) java.beans.Beans.instantiate(this.getClass().getClassLoader(),
+		"org.apache.beehive.controls.perf.controls.custom.PerfResultControlBean");
+		control.loadResults(new File(p_dir));
+		_controls.put(p_key,control);
+	}
+	
+	private void initializeProperties()
+	{
+		if(null != _props) return;
+		try
+		{
+			_props = new Properties();
+			FileInputStream in = new FileInputStream(getServletContext().getRealPath("/jpf/controller.properties"));
+			_props.load(in);
+			in.close();
+			_props.list(System.out);
+		}
+		catch(FileNotFoundException fnfe)
+		{
+			fnfe.printStackTrace();
+		}
+		catch(IOException ioe)
+		{
+			ioe.printStackTrace();
+		}		
+	}
+}

Added: incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/controller.properties
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/controller.properties?view=auto&rev=122600
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/controller.properties	Thu Dec 16 16:00:59 2004
@@ -0,0 +1,2 @@
+xmlbeansdir=/home/dev/sandbox/runtimePerf/xmlbeans/reports
+controlsdir=/home/beehive/beehive/trunk/controls/test/perf/logs/results

Added: incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/index.jsp
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/index.jsp?view=auto&rev=122600
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/index.jsp	Thu Dec 16 16:00:59 2004
@@ -0,0 +1,124 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-databinding-1.0" prefix="netui-data"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-template-1.0" prefix="netui-template"%>
+<%@ page import="org.apache.beehive.controls.perf.controls.custom.PerfResultControlBean"%>
+<%@ page import="org.openuri.perf.*"%>
+<%@ page import="java.util.Iterator"%>
+<%@ page import="java.util.HashMap"%>
+<%@ page import="java.util.Set"%>
+<%@ page import="org.apache.beehive.netui.pageflow.PageFlowUtils"%>
+
+<% 
+HashMap<String,PerfResultControlBean> controls = (HashMap<String,PerfResultControlBean>)PageFlowUtils.getPageInput("controls", request); 
+PerfResultControlBean xmlbeanResults = (PerfResultControlBean)controls.get("xmlbeans");
+PerfResultControlBean controlResults = (PerfResultControlBean)controls.get("controls");
+%>
+<netui:html>
+	<head>
+		<title>report web</title>
+		<link rel="stylesheet" type="text/css" href="../runtimePerf.css" />
+ 	  <meta content="text/html; charset=windows-1252" http-equiv=Content-Type>
+	</head>
+	
+	<netui:body>
+
+		<img src="../images/runtime.jpeg" align="left">
+		<img src="../images/runtime.jpeg" align="right">
+		<h1 class=margin>Runtime Performance Result Summary</h1>
+		<h2><a href="../index.jsp">Home</a></h2>
+	
+	
+		<br><br><h4 class=margin>XMLBeans Result Sets</h4>
+		<table border="1" id="XMLBEANS SUMMARY TABLE">
+					<tr>
+						<td id="XMLBEANS HEADINGS">Filename</td>
+						<td id="XMLBEANS HEADINGS">Date</td>
+						<td id="XMLBEANS HEADINGS">OS</td>
+						<td id="XMLBEANS HEADINGS">JVM</td>
+						<td id="XMLBEANS HEADINGS">Result Count</td>
+					</tr>
+		<%
+			HashMap<String,ResultSetDocument.ResultSet> xmlbeanResultSets = xmlbeanResults.getResultSets();
+			Set keys = xmlbeanResultSets.keySet();
+			Iterator it = keys.iterator();
+			while(it.hasNext()){
+				String filename = (String) it.next();
+				ResultSetDocument.ResultSet xmlbeanResultSet = (ResultSetDocument.ResultSet)xmlbeanResultSets.get((Object)filename);
+				%>
+					<tr>
+						<td id="RESULT FILENAME"><% out.print(filename); %></td>
+						<td id="RESULT DATE"><% out.print(xmlbeanResultSet.getEnvironment().getDate()); %></td>
+						<td id="RESULT OS"><% out.print(xmlbeanResultSet.getEnvironment().getOs()); %></td>
+						<td id="RESULT JVM"><% out.print(xmlbeanResultSet.getEnvironment().getJvm()); %></td>
+						<td id="RESULT NUMRESULTS"><% out.print(xmlbeanResultSet.getResultArray().length); %></td>
+					</tr>
+				<%
+			}
+		%>
+		</table>
+
+		<h4 class=margin>XMLBeans Analysis</h4>
+		<netui:form action="xmlbeans">
+			Filename (if none provided, latest by date):
+			<netui:textBox dataSource="actionForm.filename"/>
+			<netui:button value="Submit" type="submit"/> 
+		</netui:form>
+
+
+
+		<h4 class=margin>Controls Result Sets</h4>
+		<table border="1" id="CONTROLS SUMMARY TABLE">
+					<tr>
+						<td id="CONTROLS HEADINGS">Filename</td>
+						<td id="CONTROLS HEADINGS">Date</td>
+						<td id="CONTROLS HEADINGS">OS</td>
+						<td id="CONTROLS HEADINGS">JVM</td>
+						<td id="CONTROLS HEADINGS">Result Count</td>
+					</tr>
+		<%
+			HashMap<String,ResultSetDocument.ResultSet> controlResultSets = controlResults.getResultSets();
+			keys = controlResultSets.keySet();
+			it = keys.iterator();
+			while(it.hasNext()){
+				String filename = (String) it.next();
+				ResultSetDocument.ResultSet controlResultSet = (ResultSetDocument.ResultSet)controlResultSets.get((Object)filename);
+				%>
+					<tr>
+						<td id="RESULT FILENAME"><% out.print(filename); %></td>
+						<td id="RESULT DATE"><% out.print(controlResultSet.getEnvironment().getDate()); %></td>
+						<td id="RESULT OS"><% out.print(controlResultSet.getEnvironment().getOs()); %></td>
+						<td id="RESULT JVM"><% out.print(controlResultSet.getEnvironment().getJvm()); %></td>
+						<td id="RESULT NUMRESULTS"><% out.print(controlResultSet.getResultArray().length); %></td>
+					</tr>
+				<%
+			}
+		%>
+		</table>
+
+		<h4 class=margin>Controls Analysis</h4>
+		<netui:form action="controls">
+			Filename (if none provided, latest by date):
+			<netui:textBox dataSource="actionForm.filename"/>
+			<netui:button value="Submit" type="submit"/> 
+		</netui:form>
+
+
+
+		<h4 class=margin>Custom Graph Form</h4>
+		<netui:form action="snapshot">
+			Filename:
+			<netui:textBox dataSource="actionForm.filename"/>
+			Regex:
+			<netui:textBox dataSource="actionForm.regex"/>
+			X axis:
+			<netui:textBox dataSource="actionForm.xvals"/>
+			Y axis:
+			<netui:textBox dataSource="actionForm.yvals"/>
+			Type:
+			<netui:textBox dataSource="actionForm.type"/>
+			<netui:button value="Submit" type="submit"/> 
+		</netui:form>
+
+	</netui:body>
+</netui:html>

Added: incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/snapshot.jsp
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/snapshot.jsp?view=auto&rev=122600
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/snapshot.jsp	Thu Dec 16 16:00:59 2004
@@ -0,0 +1,27 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@taglib uri='http://cewolf.sourceforge.net/taglib/cewolf.tld' prefix='cewolf' %>
+
+<html>
+
+  <body>
+	  <jsp:useBean id="snapshot_data" class="graphing.SnapshotProducer"/>
+	  <cewolf:chart 
+		  id="${requestScope.chartid}"
+		  title="${requestScope.title}" 
+		  type="${requestScope.type}" 
+		  xaxislabel="${requestScope.xlabel}" 
+		  yaxislabel="${requestScope.ylabel}">
+		  <cewolf:data>
+		      <cewolf:producer id="snapshot_data">
+		      	<cewolf:param name="filename" value="${requestScope.filename}" />
+		      	<cewolf:param name="regex" value="${requestScope.regex}"/>
+		      </cewolf:producer>
+		  </cewolf:data>
+    </cewolf:chart>
+	  <p>
+		<cewolf:img chartid="${requestScope.chartid}" renderer="cewolf" width="600" height="400"/>
+	  <P> 
+
+  </body>
+
+</html>

Added: incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/xmlbeans.jsp
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/xmlbeans.jsp?view=auto&rev=122600
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/xmlbeans.jsp	Thu Dec 16 16:00:59 2004
@@ -0,0 +1,186 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-databinding-1.0" prefix="netui-data"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-template-1.0" prefix="netui-template"%>
+<%@taglib uri='http://cewolf.sourceforge.net/taglib/cewolf.tld' prefix='cewolf' %>
+
+<netui:html>
+	<head>
+		<title>report web</title>
+		<link rel="stylesheet" type="text/css" href="runtimePerf.css" />
+ 	  <meta content="text/html; charset=windows-1252" http-equiv=Content-Type>
+	</head>
+
+  <netui:body>
+
+		<h3 class=margin>XMLBeans Runtime Performance</h3>
+		<p>Date: <netui:label value="${requestScope.date}"/>	
+		<p>JVM: <netui:label value="${requestScope.jvm}"/>	
+		<p>OS: <netui:label value="${requestScope.os}"/>	
+		<p>Filename: <netui:label value="${requestScope.filename}"/>	
+
+	  <jsp:useBean id="cursorwalk_data" class="graphing.SnapshotProducer"/>
+	  <cewolf:chart 
+		  id="CursorWalk"
+		  title="Cursor Walk" 
+		  type="verticalbar" 
+		  xaxislabel="scneario" 
+		  yaxislabel="time(ms)">
+		  <cewolf:data>
+		      <cewolf:producer id="cursorwalk_data">
+		      	<cewolf:param name="filename" value="${requestScope.filename}" />
+		      	<cewolf:param name="regex" value="${requestScope.CursorWalk}" />
+		      </cewolf:producer>
+		  </cewolf:data>
+    </cewolf:chart>
+	  <p>
+		<cewolf:img chartid="CursorWalk" renderer="cewolf" width="600" height="400"/>
+	  <P> 
+
+	  <jsp:useBean id="cursorgetsetget_data" class="graphing.SnapshotProducer"/>
+	  <cewolf:chart 
+		  id="CursorGetSetGet"
+		  title="Cursor Get vs. Get-Set-Get" 
+		  type="verticalbar" 
+		  xaxislabel="scneario" 
+		  yaxislabel="time(ms)">
+		  <cewolf:data>
+		      <cewolf:producer id="cursorgetsetget_data">
+		      	<cewolf:param name="filename" value="${requestScope.filename}" />
+		      	<cewolf:param name="regex" value="${requestScope.CursorGetSetGet}" />
+		      </cewolf:producer>
+		  </cewolf:data>
+    </cewolf:chart>
+	  <p>
+		<cewolf:img chartid="CursorGetSetGet" renderer="cewolf" width="600" height="400"/>
+	  <P> 
+
+	  <jsp:useBean id="bisload_data" class="graphing.SnapshotProducer"/>
+	  <cewolf:chart 
+		  id="BisLoad"
+		  title="Buffered Input Stream Load" 
+		  type="verticalbar" 
+		  xaxislabel="scneario" 
+		  yaxislabel="time(ms)">
+		  <cewolf:data>
+		      <cewolf:producer id="bisload_data">
+		      	<cewolf:param name="filename" value="${requestScope.filename}" />
+		      	<cewolf:param name="regex" value="${requestScope.BisLoad}" />
+		      </cewolf:producer>
+		  </cewolf:data>
+    </cewolf:chart>
+	  <p>
+		<cewolf:img chartid="BisLoad" renderer="cewolf" width="600" height="700"/>
+	  <P> 
+
+	  <jsp:useBean id="domwalk_data" class="graphing.SnapshotProducer"/>
+	  <cewolf:chart 
+		  id="DomWalk"
+		  title="DOM Walk (NodeList and GetNextSibling)" 
+		  type="verticalbar" 
+		  xaxislabel="scneario" 
+		  yaxislabel="time(ms)">
+		  <cewolf:data>
+		      <cewolf:producer id="domwalk_data">
+		      	<cewolf:param name="filename" value="${requestScope.filename}" />
+		      	<cewolf:param name="regex" value="${requestScope.DomWalk}" />
+		      </cewolf:producer>
+		  </cewolf:data>
+    </cewolf:chart>
+	  <p>
+		<cewolf:img chartid="DomWalk" renderer="cewolf" width="600" height="700"/>
+	  <P> 
+
+	  <jsp:useBean id="povalidate_data" class="graphing.SnapshotProducer"/>
+	  <cewolf:chart 
+		  id="POValidate"
+		  title="Purchase Order Validation" 
+		  type="verticalbar" 
+		  xaxislabel="scneario" 
+		  yaxislabel="time(ms)">
+		  <cewolf:data>
+		      <cewolf:producer id="povalidate_data">
+		      	<cewolf:param name="filename" value="${requestScope.filename}" />
+		      	<cewolf:param name="regex" value="${requestScope.POValidate}" />
+		      </cewolf:producer>
+		  </cewolf:data>
+    </cewolf:chart>
+	  <p>
+		<cewolf:img chartid="POValidate" renderer="cewolf" width="600" height="400"/>
+	  <P> 
+
+	  <jsp:useBean id="potopdown_data" class="graphing.SnapshotProducer"/>
+	  <cewolf:chart 
+		  id="POTopDown"
+		  title="Purchase Order Top Down Construction (in memory)" 
+		  type="verticalbar" 
+		  xaxislabel="scneario" 
+		  yaxislabel="time(ms)">
+		  <cewolf:data>
+		      <cewolf:producer id="potopdown_data">
+		      	<cewolf:param name="filename" value="${requestScope.filename}" />
+		      	<cewolf:param name="regex" value="${requestScope.POTopDown}"/>
+		      </cewolf:producer>
+		  </cewolf:data>
+    </cewolf:chart>
+	  <p>
+		<cewolf:img chartid="POTopDown" renderer="cewolf" width="600" height="400"/>
+	  <P> 
+
+	  <jsp:useBean id="potopdownsave_data" class="graphing.SnapshotProducer"/>
+	  <cewolf:chart 
+		  id="POTopDownSave"
+		  title="Purchase Order Top Down Construct and Save" 
+		  type="verticalbar" 
+		  xaxislabel="scneario" 
+		  yaxislabel="time(ms)">
+		  <cewolf:data>
+		      <cewolf:producer id="potopdownsave_data">
+		      	<cewolf:param name="filename" value="${requestScope.filename}" />
+		      	<cewolf:param name="regex" value="${requestScope.POTopDownSave}"/>
+		      </cewolf:producer>
+		  </cewolf:data>
+    </cewolf:chart>
+	  <p>
+		<cewolf:img chartid="POTopDownSave" renderer="cewolf" width="600" height="400"/>
+	  <P>
+ 
+	  <jsp:useBean id="primtopdown_data" class="graphing.SnapshotProducer"/>
+	  <cewolf:chart 
+		  id="PrimTopDown"
+		  title="Primitive Types Top Down Construction (im memory)" 
+		  type="verticalbar" 
+		  xaxislabel="scneario" 
+		  yaxislabel="time(ms)">
+		  <cewolf:data>
+		      <cewolf:producer id="primtopdown_data">
+		      	<cewolf:param name="filename" value="${requestScope.filename}" />
+		      	<cewolf:param name="regex" value="${requestScope.PrimTopDown}"/>
+		      </cewolf:producer>
+		  </cewolf:data>
+    </cewolf:chart>
+	  <p>
+		<cewolf:img chartid="PrimTopDown" renderer="cewolf" width="600" height="400"/>
+	  <P> 
+
+	  <jsp:useBean id="nprimtopdown_data" class="graphing.SnapshotProducer"/>
+	  <cewolf:chart 
+		  id="NPrimTopDown"
+		  title="Non-Primitive Types Top Down Construction (in memory)" 
+		  type="verticalbar" 
+		  xaxislabel="scneario" 
+		  yaxislabel="time(ms)">
+		  <cewolf:data>
+		      <cewolf:producer id="nprimtopdown_data">
+		      	<cewolf:param name="filename" value="${requestScope.filename}" />
+		      	<cewolf:param name="regex" value="${requestScope.NPrimTopDown}"/>
+		      </cewolf:producer>
+		  </cewolf:data>
+    </cewolf:chart>
+	  <p>
+		<cewolf:img chartid="NPrimTopDown" renderer="cewolf" width="600" height="400"/>
+	  <P> 
+
+  </netui:body>
+
+</netui:html>

Added: incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/runtimePerf.css
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/runtimePerf.css?view=auto&rev=122600
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/runtimePerf.css	Thu Dec 16 16:00:59 2004
@@ -0,0 +1,5 @@
+h1 {color: rgb(100,100,100); font-size=125%; text-align: center}
+h2 {color: rgb(100,100,100); font-size=100%; text-align: center}
+h3 {color: rgb(0,100,100); font-size: 90%}
+h4 {color: rgb(100,100,100); font-size=150%;}
+p {margin-left: 100px: color: rgb(0,100,100); font-size: 90%}

Modified: incubator/beehive/trunk/controls/test/tools/mantis/build.xml
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/tools/mantis/build.xml?view=diff&rev=122600&p1=incubator/beehive/trunk/controls/test/tools/mantis/build.xml&r1=122599&p2=incubator/beehive/trunk/controls/test/tools/mantis/build.xml&r2=122600
==============================================================================
--- incubator/beehive/trunk/controls/test/tools/mantis/build.xml	(original)
+++ incubator/beehive/trunk/controls/test/tools/mantis/build.xml	Thu Dec 16 16:00:59 2004
@@ -69,7 +69,7 @@
 			sourcepath="${src.dir}"
 			destdir="${doc.dir}"
 			source="1.5"
-			packagenames="org.apache.beehive.mantis.*"
+			packagenames="org.apache.beehive.test.tools.mantis.*"
 			classpathref="classpath"
 		/>
 	</target>