Author: jsong
Date: Tue Feb 8 14:46:35 2005
New Revision: 152954
URL: http://svn.apache.org/viewcvs?view=rev&rev=152954
Log:
Contributed by Jamie Zyskowski: updates to reportWeb, resetting bar for dual
proc results
Added:
incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/graphing/postprocessors/
incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/graphing/postprocessors/VerticalXLabel.java
incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/series.jsp
Modified:
incubator/beehive/trunk/controls/test/perf/cases/controls-perf.xml
incubator/beehive/trunk/controls/test/perf/webapps/build.xml
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/jpf/Controller.jpf
incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/controls.jsp
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
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&r1=152953&r2=152954
==============================================================================
--- incubator/beehive/trunk/controls/test/perf/cases/controls-perf.xml
(original)
+++ incubator/beehive/trunk/controls/test/perf/cases/controls-perf.xml Tue Feb
8 14:46:35 2005
@@ -4,6 +4,7 @@
<test-suite testunit="controls-perf">
<test-metadata>
<freq>bvt</freq>
+ <description>Values tuned for
cg2kcc09.bea.com</description>
</test-metadata>
<test name="StrlenPgmTest_standalone">
<controlsperf>
@@ -27,7 +28,7 @@
<controlsperf>
<cmdline>%{control.perf.root}/bin/perf
StrlenSTPgmTest</cmdline>
<hash>-1989672960</hash>
- <bar>5288</bar>
+ <bar>16062</bar>
<drift>0.20</drift>
<timeout>10000</timeout>
</controlsperf>
@@ -36,7 +37,7 @@
<controlsperf>
<url>http://%{test.hostname}:%{test.port}/controlsPerfWeb/jpf/test/controls/performance/programmatic/strlenST/Controller.jpf</url>
<hash>-1989672960</hash>
- <bar>5288</bar>
+ <bar>16062</bar>
<drift>0.20</drift>
<timeout>10000</timeout>
</controlsperf>
@@ -63,7 +64,7 @@
<controlsperf>
<cmdline>%{control.perf.root}/bin/benchmark
methodinv.StrlenMethodInvTest</cmdline>
<hash>-1989672960</hash>
- <bar>3054</bar>
+ <bar>10000</bar>
<drift>0.20</drift>
<timeout>100000</timeout>
</controlsperf>
@@ -72,7 +73,7 @@
<controlsperf>
<url>http://%{test.hostname}:%{test.port}/controlsPerfWeb/jpf/test/controls/performance/benchmarks/strlen/methodinv/Controller.jpf</url>
<hash>-1989672960</hash>
- <bar>3054</bar>
+ <bar>10000</bar>
<drift>0.20</drift>
<timeout>10000</timeout>
</controlsperf>
@@ -117,7 +118,7 @@
<controlsperf>
<cmdline>%{control.perf.root}/bin/perf
VarargsPgmTest</cmdline>
<hash>-1284084288</hash>
- <bar>2914</bar>
+ <bar>5172</bar>
<drift>0.20</drift>
<timeout>10000</timeout>
</controlsperf>
@@ -126,7 +127,7 @@
<controlsperf>
<url>http://%{test.hostname}:%{test.port}/controlsPerfWeb/jpf/test/controls/performance/programmatic/varargs/Controller.jpf</url>
<hash>-1284084288</hash>
- <bar>2914</bar>
+ <bar>5172</bar>
<drift>0.20</drift>
<timeout>10000</timeout>
</controlsperf>
@@ -135,7 +136,7 @@
<controlsperf>
<cmdline>%{control.perf.root}/bin/perf
VarretPgmTest</cmdline>
<hash>95000000</hash>
- <bar>4176</bar>
+ <bar>10874</bar>
<drift>0.20</drift>
<timeout>10000</timeout>
</controlsperf>
@@ -144,7 +145,7 @@
<controlsperf>
<url>http://%{test.hostname}:%{test.port}/controlsPerfWeb/jpf/test/controls/performance/programmatic/varret/Controller.jpf</url>
<hash>95000000</hash>
- <bar>4176</bar>
+ <bar>10874</bar>
<drift>0.20</drift>
<timeout>10000</timeout>
</controlsperf>
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&r1=152953&r2=152954
==============================================================================
--- incubator/beehive/trunk/controls/test/perf/webapps/build.xml (original)
+++ incubator/beehive/trunk/controls/test/perf/webapps/build.xml Tue Feb 8
14:46:35 2005
@@ -22,7 +22,9 @@
<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}"/>
+ <property name="test.hostname" value="localhost"/>
+ <property name="test.port" value="8080"/>
+ <property name="webapp.waitfor.url"
value="http://${test.hostname}:${test.port}/${webapp.name}"/>
<target name="usage">
<echo message="" />
@@ -94,7 +96,7 @@
<property name="webapp.dir"
location="${webapp.stage.dir}/${webapp.name}"/>
<property name="do.inject.milton" value="true"/>
</ant>
- <ant antfile="${controls.test.dir}/webapps/build.xml"
target="-inject.milton" inheritAll="false">
+ <ant antfile="${controls.test.root}/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>
@@ -125,9 +127,9 @@
<echo message="| ${webapp.name} clean starting |"/>
<echo message="----------------------------------------------"/>
- <clean-webapp webappDir="${webapp.stage.dir}/${webapp.name}"/>
-
- <delete
dir="${webapp.stage.dir}/${webapp.name}"/>
+ <!--clean-webapp webappDir="${webapp.stage.dir}/${webapp.name}"/-->
+
+ <delete failonerror="false"
dir="${webapp.stage.dir}/${webapp.name}"/>
<echo message="----------------------------------------------"/>
<echo message="| ${webapp.name} clean ending |"/>
Modified:
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=diff&r1=152953&r2=152954
==============================================================================
---
incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/graphing/SeriesProducer.java
(original)
+++
incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/graphing/SeriesProducer.java
Tue Feb 8 14:46:35 2005
@@ -3,12 +3,16 @@
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
+import java.util.HashSet;
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.Dataset;
import org.jfree.data.DefaultCategoryDataset;
+import org.jfree.data.XYSeriesCollection;
+import org.jfree.data.XYSeries;
import de.laures.cewolf.DatasetProduceException;
import de.laures.cewolf.DatasetProducer;
import de.laures.cewolf.CategoryItemLinkGenerator;
@@ -27,109 +31,154 @@
import org.apache.beehive.controls.perf.controls.custom.PerfResultControlBean;
import org.apache.beehive.controls.perf.controls.custom.StrlenControlBean;
-// xmlbeans
+//xmlbeans
import org.openuri.perf.*;
+import org.openuri.perf.Result;
public class SeriesProducer implements DatasetProducer, Serializable {
- // TODO: implement this method correctly
- public Object produceDataset(Map params) throws DatasetProduceException
{
+ 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 k_filename = "filename";
+ String k_xaxis = "xaxis";
+ String k_yaxis = "yaxis";
+ // retreive the param values
String regex = (String)params.get((Object)k_regex);
- DefaultCategoryDataset dataset = new DefaultCategoryDataset();
+ String filename = (String)params.get((Object)k_filename);
+ String xaxis = (String)params.get((Object)k_xaxis);
+ String yaxis = (String)params.get((Object)k_yaxis);
- 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;
-
+ // get the result set specified by filename
+ ResultSetDocument.ResultSet resultset = null;
+ try{
+ ResultSetDocument doc =
ResultSetDocument.Factory.parse(new File(filename));
+ resultset = doc.getResultSet();
}
- catch(ClassNotFoundException cnfe)
- {
-
dataset.addValue((double)500,"ClassNotFoundException","ClassNotFoundException");
- cnfe.printStackTrace();
- return dataset;
+ catch(XmlException xe){
+ System.out.println("got xml exception:
"+xe.getMessage());
+ xe.printStackTrace();
}
- catch(IOException ioe)
- {
- dataset.addValue((double)500,"IOE","IOE");
+ catch(IOException ioe){
+ System.out.println("got ioe: "+ioe.getMessage());
ioe.printStackTrace();
- return dataset;
- }
- catch(XmlException xmle)
- {
-
dataset.addValue((double)500,"XMLException","XMLException");
- xmle.printStackTrace();
- return dataset;
}
+ if(null != resultset)
+ System.out.println("got results
"+resultset.getEnvironment().getDate().toString());
+ else
+ System.out.println("resutls are null :-(");
+
+
+ // map matching test names to result ids
+ HashMap<Long,String> names = getNames(regex,resultset);
+ return getXYSeriesDataset(regex,names,xaxis,yaxis,resultset);
}
-
+
public boolean hasExpired(Map params, Date since) {
- return (System.currentTimeMillis() - since.getTime()) > 5000;
+ return (System.currentTimeMillis() - since.getTime()) > 10000;
}
-
+
public String getProducerId() {
- return "Example DatasetProducer";
+ return "SnapshotProducer";
}
+ ////////////
+ // utilities
+ ////////////
+ private Dataset getXYSeriesDataset(String p_seriesName,
HashMap<Long,String> p_names, String p_xvalue, String p_yvalue,
ResultSetDocument.ResultSet p_resultset)
+ {
+ System.out.println("getXYSeriesDataset START");
+ XYSeries xyseries = new XYSeries(p_seriesName);
+ Dataset dataset = new XYSeriesCollection(xyseries);
+ Result[] results = p_resultset.getResultArray();
+ for(int i=0; i<results.length; i++)
+ {
+ if(p_names.containsKey(results[i].getId()))
+ {
+ String name = p_names.get(results[i].getId());
+ if(p_yvalue.equalsIgnoreCase("time") &&
results[i].isSetTime())
+ {
+ System.out.println("adding y-axis time
data for: "+name);
+ Float xvalue =
Float.parseFloat(getCustomValue(p_xvalue,results[i]));
+ xyseries.add((Number) xvalue,(Number)
results[i].getTime());
+ }
+ else if(p_yvalue.equalsIgnoreCase("memory") &&
results[i].isSetMemory())
+ {
+ System.out.println("adding y-axis
memory data for: "+name);
+ Float xvalue =
Float.parseFloat(getCustomValue(p_xvalue,results[i]));
+ xyseries.add((Number) xvalue,(Number)
results[i].getMemory());
+ }
+ else if(p_xvalue.equalsIgnoreCase("time") &&
results[i].isSetTime())
+ {
+ System.out.println("adding x-axis time
data for: "+name);
+ Float yvalue =
Float.parseFloat(getCustomValue(p_yvalue,results[i]));
+ System.out.println("adding y-axis
custom data ("+yvalue+") for:"+name);
+
xyseries.add((Number)results[i].getTime(),(Number)yvalue);
+ }
+ else if(p_xvalue.equalsIgnoreCase("memory") &&
results[i].isSetMemory())
+ {
+ System.out.println("adding x-axis
memory data for: "+name);
+ Float yvalue =
Float.parseFloat(getCustomValue(p_yvalue,results[i]));
+ System.out.println("adding y-axis
custom data ("+yvalue+") for:"+name);
+
xyseries.add((Number)results[i].getMemory(),(Number)yvalue);
+ }
+ else if(null !=
getCustomValue(p_yvalue,results[i]) &&
+ null !=
getCustomValue(p_xvalue,results[i]))
+ {
+ System.out.println("adding custom
y-axis data ("+p_yvalue+") for: "+name);
+ System.out.println("adding custom
x-axis data ("+p_xvalue+") for: "+name);
+ Float yvalue =
Float.parseFloat(getCustomValue(p_yvalue,results[i]));
+ Float xvalue =
Float.parseFloat(getCustomValue(p_xvalue,results[i]));
+
xyseries.add((Number)xvalue,(Number)yvalue);
+ }
+ else
+ {
+ System.out.println("ERROR finding data
for test: "+name);
+ }
+ }
+ }
+ return dataset;
+ }
-
+ private HashMap<Long,String> getNames(String p_regex,
ResultSetDocument.ResultSet p_resultset)
+ {
+
+ Result[] results = p_resultset.getResultArray();
+ HashMap<Long,String> names = new HashMap<Long,String>();
+ for(int i=0; i<results.length; i++)
+ {
+ String name = results[i].getName();
+ Long id = results[i].getId();
+ 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(p_regex))
+ {
+ names.put(id,name);
+ }
+ }
+ return names;
+ }
+ private String getCustomValue(String p_name, Result p_result)
+ {
+ Custom[] customs = p_result.getCustomArray();
+ for(int i=0; i<customs.length; i++)
+ {
+ if(p_name.equalsIgnoreCase(customs[i].getName()))
+ {
+ return customs[i].getValue();
+ }
+ }
+ return null;
+ }
}
Modified:
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=diff&r1=152953&r2=152954
==============================================================================
---
incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/graphing/SnapshotProducer.java
(original)
+++
incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/graphing/SnapshotProducer.java
Tue Feb 8 14:46:35 2005
@@ -1,31 +1,39 @@
package graphing;
-import java.text.SimpleDateFormat;
+//import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
+//import java.util.HashSet;
import java.util.Map;
-import java.util.Set;
-import java.util.Iterator;
+//import java.util.Set;
+//import java.util.Iterator;
import java.io.Serializable;
-import org.jfree.data.CategoryDataset;
+//import org.jfree.chart.JFreeChart;
+//import org.jfree.chart.plot.CategoryPlot;
+//import org.jfree.chart.axis.HorizontalCategoryAxis;
+//import org.jfree.data.CategoryDataset;
+import org.jfree.data.Dataset;
import org.jfree.data.DefaultCategoryDataset;
+//import org.jfree.data.XYSeriesCollection;
+//import org.jfree.data.XYSeries;
import de.laures.cewolf.DatasetProduceException;
import de.laures.cewolf.DatasetProducer;
-import de.laures.cewolf.CategoryItemLinkGenerator;
+//import de.laures.cewolf.CategoryItemLinkGenerator;
+//import de.laures.cewolf.ChartPostProcessor;
import java.io.File;
import java.io.IOException;
-import java.io.FileNotFoundException;
+//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;
+//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;
+//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.*;
@@ -45,11 +53,13 @@
String filename = (String)params.get((Object)k_filename);
String xaxis = (String)params.get((Object)k_xaxis);
String yaxis = (String)params.get((Object)k_yaxis);
- ResultSetDocument.ResultSet resultset = null;
-
- if(null == yaxis) yaxis = "time";
- if(null == xaxis) xaxis = "name";
+ if(null == xaxis || xaxis.equalsIgnoreCase(""))
+ xaxis = "name";
+ if(null == yaxis || yaxis.equalsIgnoreCase(""))
+ yaxis = "time";
+ // get the result set specified by filename
+ ResultSetDocument.ResultSet resultset = null;
try{
ResultSetDocument doc =
ResultSetDocument.Factory.parse(new File(filename));
resultset = doc.getResultSet();
@@ -68,86 +78,108 @@
else
System.out.println("resutls are null :-(");
- DefaultCategoryDataset dataset = new DefaultCategoryDataset();
- // loop through results and populate the data set
- Result[] results = resultset.getResultArray();
+
+ // map matching test names to result ids
+ HashMap<Long,String> names = getNames(regex,resultset);
+ return getDefaultDataset(names,xaxis,yaxis,resultset);
+ }
+
+ public boolean hasExpired(Map params, Date since) {
+ return (System.currentTimeMillis() - since.getTime()) > 10000;
+ }
+
+ public String getProducerId() {
+ return "SnapshotProducer";
+ }
+
+ ////////////
+ // utilities
+ ////////////
+ private Dataset getDefaultDataset(HashMap<Long,String> p_names, String
p_xvalue, String p_yvalue, ResultSetDocument.ResultSet p_resultset)
+ {
+ System.out.println("getDefaultDataset START");
+ DefaultCategoryDataset dataset = new DefaultCategoryDataset();
+ Result[] results = p_resultset.getResultArray();
for(int i=0; i<results.length; i++)
{
- String name = results[i].getName();
- Custom[] customs = results[i].getCustomArray();
-
- if(customs.length > 0)
+ if(p_names.containsKey(results[i].getId()))
{
- for(int j=0; j<customs.length; j++)
+ String name = p_names.get(results[i].getId());
+ if(p_yvalue.equalsIgnoreCase("time") &&
results[i].isSetTime())
{
- name =
name+"["+customs[j].getName()+"="+customs[j].getValue()+"]";
- }
- }
-
-
- if(name.matches(regex))
- {
- if(yaxis.equalsIgnoreCase("time") &&
results[i].isSetTime())
- {
- System.out.println("adding y-axis time
data for test: "+name);
- if(xaxis.equalsIgnoreCase("name") ||
- null ==
getCustomValue(xaxis,results[i]))
- dataset.addValue( (Number)
results[i].getTime(), name, "scenarios");
+ System.out.println("adding y-axis time
data for: "+name);
+ if(p_xvalue.equalsIgnoreCase("name") ||
+ null ==
getCustomValue(p_xvalue,results[i]))
+ dataset.addValue( (Number)
results[i].getTime(), name, name);
else
{
- Float xvalue =
Float.parseFloat(getCustomValue(xaxis,results[i]));
- dataset.addValue( (Number)
results[i].getTime(), xvalue, "scneraios");
+ Float xvalue =
Float.parseFloat(getCustomValue(p_xvalue,results[i]));
+ dataset.addValue( (Number)
results[i].getTime(), name, xvalue);
}
}
- else if(yaxis.equalsIgnoreCase("memory") &&
results[i].isSetMemory())
+ else if(p_yvalue.equalsIgnoreCase("memory") &&
results[i].isSetMemory())
{
- System.out.println("adding y-axis
memory data for test: "+name);
- if(null ==
getCustomValue(xaxis,results[i]))
- dataset.addValue( (Number)
results[i].getMemory(), name, "scenarios");
+ System.out.println("adding y-axis
memory data for: "+name);
+ if(null ==
getCustomValue(p_xvalue,results[i]))
+ dataset.addValue( (Number)
results[i].getMemory(), name, name);
else
{
- Float xvalue =
Float.parseFloat(getCustomValue(xaxis,results[i]));
- dataset.addValue( (Number)
results[i].getMemory(), xvalue, "scneraios");
+ Float xvalue =
Float.parseFloat(getCustomValue(p_xvalue,results[i]));
+ dataset.addValue( (Number)
results[i].getMemory(), name, xvalue);
}
}
- else if(xaxis.equalsIgnoreCase("memory") &&
+ else if(p_xvalue.equalsIgnoreCase("memory") &&
results[i].isSetMemory() &&
- null !=
getCustomValue(yaxis,results[i]))
+ null !=
getCustomValue(p_yvalue,results[i]))
{
- System.out.println("adding x-axis
memory data for test: "+name);
- Float yvalue =
Float.parseFloat(getCustomValue(yaxis,results[i]));
- dataset.addValue( (Number)yvalue,
name+"[mem="+results[i].getMemory()+"]","scenarios");
- }
- else if(null !=
getCustomValue(yaxis,results[i]) &&
- null !=
getCustomValue(xaxis,results[i]))
- {
- System.out.println("adding custom
y-axis data ("+yaxis+") for test: "+name);
- System.out.println("adding custom
x-axis data ("+xaxis+") for test: "+name);
- Float yvalue =
Float.parseFloat(getCustomValue(yaxis,results[i]));
- Float xvalue =
Float.parseFloat(getCustomValue(xaxis,results[i]));
- dataset.addValue( (Number)yvalue,
xvalue, "scenarios");
+ System.out.println("adding x-axis
memory data for: "+p_names.get(results[i].getId()));
+ Float yvalue =
Float.parseFloat(getCustomValue(p_yvalue,results[i]));
+ System.out.println("adding y-axis
custom data ("+yvalue+") for:"+name);
+ dataset.addValue( (Number)yvalue, name,
results[i].getMemory());
+ }
+ else if(null !=
getCustomValue(p_yvalue,results[i]) &&
+ null !=
getCustomValue(p_xvalue,results[i]))
+ {
+ System.out.println("adding custom
y-axis data ("+p_yvalue+") for: "+name);
+ System.out.println("adding custom
x-axis data ("+p_xvalue+") for: "+name);
+ Float yvalue =
Float.parseFloat(getCustomValue(p_yvalue,results[i]));
+ Float xvalue =
Float.parseFloat(getCustomValue(p_xvalue,results[i]));
+ dataset.addValue( (Number)yvalue, name,
xvalue);
}
else
{
System.out.println("ERROR finding data
for test: "+name);
- //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";
+ private HashMap<Long,String> getNames(String p_regex,
ResultSetDocument.ResultSet p_resultset)
+ {
+
+ Result[] results = p_resultset.getResultArray();
+ HashMap<Long,String> names = new HashMap<Long,String>();
+ for(int i=0; i<results.length; i++)
+ {
+ String name = results[i].getName();
+ Long id = results[i].getId();
+ 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(p_regex))
+ {
+ names.put(id,name);
+ }
+ }
+ return names;
}
private String getCustomValue(String p_name, Result p_result)
Added:
incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/graphing/postprocessors/VerticalXLabel.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/graphing/postprocessors/VerticalXLabel.java?view=auto&rev=152954
==============================================================================
---
incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/graphing/postprocessors/VerticalXLabel.java
(added)
+++
incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/WEB-INF/src/graphing/postprocessors/VerticalXLabel.java
Tue Feb 8 14:46:35 2005
@@ -0,0 +1,27 @@
+package graphing.postprocessors;
+
+import java.util.Map;
+import de.laures.cewolf.ChartPostProcessor;
+import org.jfree.chart.JFreeChart;
+import org.jfree.chart.plot.CategoryPlot;
+//import org.jfree.chart.axis.CategoryAxis;
+//import org.jfree.chart.axis.Axis;
+import org.jfree.chart.axis.HorizontalCategoryAxis;
+
+public class VerticalXLabel implements ChartPostProcessor
+{
+ public void processChart(Object chart, Map params)
+ {
+ // TODO: figure out how to make the angle better
+ // for reading the labels - v0.9.8 of JFreeChart
+ // doens't seem to support this, and that's the version
+ // that comes with cewolf v0.9.8.
+
+ // set the xaxis labels vertical
+ CategoryPlot plot = ((JFreeChart)chart).getCategoryPlot();
+ HorizontalCategoryAxis axis =
(HorizontalCategoryAxis)plot.getDomainAxis();
+ axis.setVerticalCategoryLabels(true);
+
+ }
+}
+
Modified:
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=diff&r1=152953&r2=152954
==============================================================================
---
incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/Controller.jpf
(original)
+++
incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/Controller.jpf
Tue Feb 8 14:46:35 2005
@@ -44,6 +44,7 @@
forwards = {
@Jpf.Forward(name="index",path="index.jsp"),
@Jpf.Forward(name="snapshot",path="snapshot.jsp"),
+ @Jpf.Forward(name="series",path="series.jsp"),
@Jpf.Forward(name="xmlbeans",path="xmlbeans.jsp"),
@Jpf.Forward(name="controls",path="controls.jsp"),
@Jpf.Forward(name="error",path="/error.jsp")
@@ -108,6 +109,26 @@
getRequest().setAttribute("width",form.width);
getRequest().setAttribute("height",form.height);
return new Forward("snapshot");
+ }
+
+ @Jpf.Action()
+ protected Forward series(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("xaxis",form.xaxis);
+ getRequest().setAttribute("xlabel",form.xlabel);
+ getRequest().setAttribute("yaxis",form.yaxis);
+ getRequest().setAttribute("ylabel",form.ylabel);
+ getRequest().setAttribute("width",form.width);
+ getRequest().setAttribute("height",form.height);
+ return new Forward("series");
}
@Jpf.Action()
Modified:
incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/controls.jsp
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/controls.jsp?view=diff&r1=152953&r2=152954
==============================================================================
---
incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/controls.jsp
(original)
+++
incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/controls.jsp
Tue Feb 8 14:46:35 2005
@@ -19,11 +19,14 @@
<p>OS: <netui:label value="${requestScope.os}"/>
<p>Filename: <netui:label value="${requestScope.filename}"/>
+ <jsp:useBean id="verticalxlabel"
class="graphing.postprocessors.VerticalXLabel"/>
+
<jsp:useBean id="strlenpgm_data" class="graphing.SnapshotProducer"/>
<cewolf:chart
id="StrlenPgm"
title="String Length Custom Control"
type="verticalbar"
+ showlegend="false"
xaxislabel="scneario"
yaxislabel="time(ms)">
<cewolf:data>
@@ -32,9 +35,10 @@
<cewolf:param name="regex"
value="${requestScope.StrlenPgm}" />
</cewolf:producer>
</cewolf:data>
+ <cewolf:chartpostprocessor id="verticalxlabel"/>
</cewolf:chart>
<p>
- <cewolf:img chartid="StrlenPgm" renderer="cewolf" width="600"
height="400"/>
+ <cewolf:img chartid="StrlenPgm" renderer="cewolf" width="800"
height="800"/>
<P>
@@ -43,6 +47,7 @@
id="VarargsPgm"
title="Variable Arguments Custom Control"
type="verticalbar"
+ showlegend="false"
xaxislabel="scneario"
yaxislabel="time(ms)">
<cewolf:data>
@@ -51,9 +56,10 @@
<cewolf:param name="regex"
value="${requestScope.VarargsPgm}" />
</cewolf:producer>
</cewolf:data>
+ <cewolf:chartpostprocessor id="verticalxlabel"/>
</cewolf:chart>
<p>
- <cewolf:img chartid="VarargsPgm" renderer="cewolf" width="600"
height="400"/>
+ <cewolf:img chartid="VarargsPgm" renderer="cewolf" width="800"
height="800"/>
<P>
<jsp:useBean id="varretpgm_data" class="graphing.SnapshotProducer"/>
@@ -61,6 +67,7 @@
id="VarretPgm"
title="Variable Return Value Size Custom Control"
type="verticalbar"
+ showlegend="false"
xaxislabel="scneario"
yaxislabel="time(ms)">
<cewolf:data>
@@ -69,9 +76,10 @@
<cewolf:param name="regex"
value="${requestScope.VarretPgm}" />
</cewolf:producer>
</cewolf:data>
+ <cewolf:chartpostprocessor id="verticalxlabel"/>
</cewolf:chart>
<p>
- <cewolf:img chartid="VarretPgm" renderer="cewolf" width="600"
height="400"/>
+ <cewolf:img chartid="VarretPgm" renderer="cewolf" width="800"
height="800"/>
<P>
</netui:body>
Modified:
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=diff&r1=152953&r2=152954
==============================================================================
--- incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/index.jsp
(original)
+++ incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/index.jsp
Tue Feb 8 14:46:35 2005
@@ -110,14 +110,18 @@
</netui:form>
<h4 class=margin>Custom Series Graph Form</h4>
- <netui:form action="snapshot">
+ <netui:form action="series">
Filename:
<netui:textBox dataSource="actionForm.filename"/>
Regex:
<netui:textBox dataSource="actionForm.regex"/>
- X axis label:
+ X axis:
+ <netui:textBox dataSource="actionForm.xaxis"/>
+ X label:
<netui:textBox dataSource="actionForm.xlabel"/>
- Y axis label:
+ Y axis:
+ <netui:textBox dataSource="actionForm.yaxis"/>
+ Y label:
<netui:textBox dataSource="actionForm.ylabel"/>
Type:
<netui:textBox dataSource="actionForm.type"/>
@@ -128,20 +132,19 @@
<netui:button value="Submit" type="submit"/>
</netui:form>
-
<h4 class=margin>Custom Snapshot Graph Form</h4>
<netui:form action="snapshot">
Filename:
<netui:textBox dataSource="actionForm.filename"/>
Regex:
<netui:textBox dataSource="actionForm.regex"/>
- X axis value name:
+ X axis:
<netui:textBox dataSource="actionForm.xaxis"/>
- X axis label:
+ X label:
<netui:textBox dataSource="actionForm.xlabel"/>
- Y axis value name:
+ Y axis:
<netui:textBox dataSource="actionForm.yaxis"/>
- Y axis label:
+ Y label:
<netui:textBox dataSource="actionForm.ylabel"/>
Type:
<netui:textBox dataSource="actionForm.type"/>
Added:
incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/series.jsp
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/series.jsp?view=auto&rev=152954
==============================================================================
--- incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/series.jsp
(added)
+++ incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/series.jsp
Tue Feb 8 14:46:35 2005
@@ -0,0 +1,30 @@
+<%@ 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="series_data" class="graphing.SeriesProducer"/>
+ <cewolf:chart
+ id="${requestScope.chartid}"
+ title="${requestScope.title}"
+ type="${requestScope.type}"
+ showlegend="${false}"
+ xaxislabel="${requestScope.xlabel}"
+ yaxislabel="${requestScope.ylabel}">
+ <cewolf:data>
+ <cewolf:producer id="series_data">
+ <cewolf:param name="filename"
value="${requestScope.filename}" />
+ <cewolf:param name="regex"
value="${requestScope.regex}"/>
+ <cewolf:param name="xaxis"
value="${requestScope.xaxis}"/>
+ <cewolf:param name="yaxis"
value="${requestScope.yaxis}"/>
+ </cewolf:producer>
+ </cewolf:data>
+ </cewolf:chart>
+ <p>
+ <cewolf:img chartid="${requestScope.chartid}" renderer="cewolf"
width="${requestScope.width}" height="${requestScope.height}"/>
+ <P>
+
+ </body>
+
+</html>
Modified:
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=diff&r1=152953&r2=152954
==============================================================================
---
incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/snapshot.jsp
(original)
+++
incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/snapshot.jsp
Tue Feb 8 14:46:35 2005
@@ -5,10 +5,12 @@
<body>
<jsp:useBean id="snapshot_data" class="graphing.SnapshotProducer"/>
+ <jsp:useBean id="verticalxlabel"
class="graphing.postprocessors.VerticalXLabel"/>
<cewolf:chart
id="${requestScope.chartid}"
title="${requestScope.title}"
type="${requestScope.type}"
+ showlegend="${false}"
xaxislabel="${requestScope.xlabel}"
yaxislabel="${requestScope.ylabel}">
<cewolf:data>
@@ -19,6 +21,7 @@
<cewolf:param name="yaxis"
value="${requestScope.yaxis}"/>
</cewolf:producer>
</cewolf:data>
+ <cewolf:chartpostprocessor id="verticalxlabel"/>
</cewolf:chart>
<p>
<cewolf:img chartid="${requestScope.chartid}" renderer="cewolf"
width="${requestScope.width}" height="${requestScope.height}"/>
Modified:
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=diff&r1=152953&r2=152954
==============================================================================
---
incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/xmlbeans.jsp
(original)
+++
incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/xmlbeans.jsp
Tue Feb 8 14:46:35 2005
@@ -18,12 +18,15 @@
<p>JVM: <netui:label value="${requestScope.jvm}"/>
<p>OS: <netui:label value="${requestScope.os}"/>
<p>Filename: <netui:label value="${requestScope.filename}"/>
+
+ <jsp:useBean id="verticalxlabel"
class="graphing.postprocessors.VerticalXLabel"/>
<jsp:useBean id="cursorwalk_data" class="graphing.SnapshotProducer"/>
<cewolf:chart
id="CursorWalk"
title="Cursor Walk"
type="verticalbar"
+ showlegend="false"
xaxislabel="scneario"
yaxislabel="time(ms)">
<cewolf:data>
@@ -32,9 +35,10 @@
<cewolf:param name="regex"
value="${requestScope.CursorWalk}" />
</cewolf:producer>
</cewolf:data>
+ <cewolf:chartpostprocessor id="verticalxlabel"/>
</cewolf:chart>
<p>
- <cewolf:img chartid="CursorWalk" renderer="cewolf" width="600"
height="400"/>
+ <cewolf:img chartid="CursorWalk" renderer="cewolf" width="800"
height="800"/>
<P>
<jsp:useBean id="cursorgetsetget_data"
class="graphing.SnapshotProducer"/>
@@ -42,6 +46,7 @@
id="CursorGetSetGet"
title="Cursor Get vs. Get-Set-Get"
type="verticalbar"
+ showlegend="false"
xaxislabel="scneario"
yaxislabel="time(ms)">
<cewolf:data>
@@ -50,9 +55,10 @@
<cewolf:param name="regex"
value="${requestScope.CursorGetSetGet}" />
</cewolf:producer>
</cewolf:data>
+ <cewolf:chartpostprocessor id="verticalxlabel"/>
</cewolf:chart>
<p>
- <cewolf:img chartid="CursorGetSetGet" renderer="cewolf"
width="600" height="400"/>
+ <cewolf:img chartid="CursorGetSetGet" renderer="cewolf"
width="800" height="800"/>
<P>
<jsp:useBean id="bisload_data" class="graphing.SnapshotProducer"/>
@@ -60,6 +66,7 @@
id="BisLoad"
title="Buffered Input Stream Load"
type="verticalbar"
+ showlegend="false"
xaxislabel="scneario"
yaxislabel="time(ms)">
<cewolf:data>
@@ -68,9 +75,10 @@
<cewolf:param name="regex"
value="${requestScope.BisLoad}" />
</cewolf:producer>
</cewolf:data>
+ <cewolf:chartpostprocessor id="verticalxlabel"/>
</cewolf:chart>
<p>
- <cewolf:img chartid="BisLoad" renderer="cewolf" width="600"
height="700"/>
+ <cewolf:img chartid="BisLoad" renderer="cewolf" width="800"
height="800"/>
<P>
<jsp:useBean id="domwalk_data" class="graphing.SnapshotProducer"/>
@@ -78,6 +86,7 @@
id="DomWalk"
title="DOM Walk (NodeList and GetNextSibling)"
type="verticalbar"
+ showlegend="false"
xaxislabel="scneario"
yaxislabel="time(ms)">
<cewolf:data>
@@ -86,9 +95,10 @@
<cewolf:param name="regex"
value="${requestScope.DomWalk}" />
</cewolf:producer>
</cewolf:data>
+ <cewolf:chartpostprocessor id="verticalxlabel"/>
</cewolf:chart>
<p>
- <cewolf:img chartid="DomWalk" renderer="cewolf" width="600"
height="700"/>
+ <cewolf:img chartid="DomWalk" renderer="cewolf" width="800"
height="800"/>
<P>
<jsp:useBean id="povalidate_data" class="graphing.SnapshotProducer"/>
@@ -96,6 +106,7 @@
id="POValidate"
title="Purchase Order Validation"
type="verticalbar"
+ showlegend="false"
xaxislabel="scneario"
yaxislabel="time(ms)">
<cewolf:data>
@@ -104,9 +115,10 @@
<cewolf:param name="regex"
value="${requestScope.POValidate}" />
</cewolf:producer>
</cewolf:data>
+ <cewolf:chartpostprocessor id="verticalxlabel"/>
</cewolf:chart>
<p>
- <cewolf:img chartid="POValidate" renderer="cewolf" width="600"
height="400"/>
+ <cewolf:img chartid="POValidate" renderer="cewolf" width="800"
height="800"/>
<P>
<jsp:useBean id="potopdown_data" class="graphing.SnapshotProducer"/>
@@ -114,6 +126,7 @@
id="POTopDown"
title="Purchase Order Top Down Construction (in memory)"
type="verticalbar"
+ showlegend="false"
xaxislabel="scneario"
yaxislabel="time(ms)">
<cewolf:data>
@@ -122,9 +135,10 @@
<cewolf:param name="regex"
value="${requestScope.POTopDown}"/>
</cewolf:producer>
</cewolf:data>
+ <cewolf:chartpostprocessor id="verticalxlabel"/>
</cewolf:chart>
<p>
- <cewolf:img chartid="POTopDown" renderer="cewolf" width="600"
height="400"/>
+ <cewolf:img chartid="POTopDown" renderer="cewolf" width="800"
height="800"/>
<P>
<jsp:useBean id="potopdownsave_data"
class="graphing.SnapshotProducer"/>
@@ -132,6 +146,7 @@
id="POTopDownSave"
title="Purchase Order Top Down Construct and Save"
type="verticalbar"
+ showlegend="false"
xaxislabel="scneario"
yaxislabel="time(ms)">
<cewolf:data>
@@ -140,9 +155,10 @@
<cewolf:param name="regex"
value="${requestScope.POTopDownSave}"/>
</cewolf:producer>
</cewolf:data>
+ <cewolf:chartpostprocessor id="verticalxlabel"/>
</cewolf:chart>
<p>
- <cewolf:img chartid="POTopDownSave" renderer="cewolf"
width="600" height="400"/>
+ <cewolf:img chartid="POTopDownSave" renderer="cewolf"
width="800" height="800"/>
<P>
<jsp:useBean id="primtopdown_data" class="graphing.SnapshotProducer"/>
@@ -150,6 +166,7 @@
id="PrimTopDown"
title="Primitive Types Top Down Construction (im memory)"
type="verticalbar"
+ showlegend="false"
xaxislabel="scneario"
yaxislabel="time(ms)">
<cewolf:data>
@@ -158,9 +175,10 @@
<cewolf:param name="regex"
value="${requestScope.PrimTopDown}"/>
</cewolf:producer>
</cewolf:data>
+ <cewolf:chartpostprocessor id="verticalxlabel"/>
</cewolf:chart>
<p>
- <cewolf:img chartid="PrimTopDown" renderer="cewolf" width="600"
height="400"/>
+ <cewolf:img chartid="PrimTopDown" renderer="cewolf" width="800"
height="800"/>
<P>
<jsp:useBean id="nprimtopdown_data"
class="graphing.SnapshotProducer"/>
@@ -168,6 +186,7 @@
id="NPrimTopDown"
title="Non-Primitive Types Top Down Construction (in memory)"
type="verticalbar"
+ showlegend="false"
xaxislabel="scneario"
yaxislabel="time(ms)">
<cewolf:data>
@@ -176,9 +195,10 @@
<cewolf:param name="regex"
value="${requestScope.NPrimTopDown}"/>
</cewolf:producer>
</cewolf:data>
+ <cewolf:chartpostprocessor id="verticalxlabel"/>
</cewolf:chart>
<p>
- <cewolf:img chartid="NPrimTopDown" renderer="cewolf"
width="600" height="400"/>
+ <cewolf:img chartid="NPrimTopDown" renderer="cewolf"
width="800" height="800"/>
<P>
</netui:body>