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.*; + [EMAIL PROTECTED] +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; + [EMAIL PROTECTED] +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.*; + + [EMAIL PROTECTED]( + 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"%> +<[EMAIL PROTECTED] 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"%> +<[EMAIL PROTECTED] 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>
