You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by js...@apache.org on 2005/02/22 22:55:51 UTC

svn commit: r154899 - in incubator/beehive/trunk/controls/test/perf: ./ cases/ ctlsrc/org/apache/beehive/controls/perf/controls/custom/ src/org/apache/beehive/controls/perf/standalone/ webapps/controlsPerfWeb/jpf/test/controls/performance/declarative/ webapps/controlsPerfWeb/jpf/test/controls/performance/declarative/strlen/ webapps/controlsPerfWeb/jpf/test/controls/performance/declarative/strlenST/ webapps/controlsPerfWeb/jpf/test/controls/performance/programmatic/strlenEvent/ webapps/reportWeb/jpf/

Author: jsong
Date: Tue Feb 22 13:55:48 2005
New Revision: 154899

URL: http://svn.apache.org/viewcvs?view=rev&rev=154899
Log:
Contributed by Jamie Zyskowski: adding more perf scenarios, implement table view for result sets

Added:
    incubator/beehive/trunk/controls/test/perf/ctlsrc/org/apache/beehive/controls/perf/controls/custom/StrlenEventControl.java
    incubator/beehive/trunk/controls/test/perf/ctlsrc/org/apache/beehive/controls/perf/controls/custom/StrlenEventControlImpl.java
    incubator/beehive/trunk/controls/test/perf/ctlsrc/org/apache/beehive/controls/perf/controls/custom/StrlenEventControlListener.java
    incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/standalone/StrlenEventPgmTest.java
    incubator/beehive/trunk/controls/test/perf/webapps/controlsPerfWeb/jpf/test/controls/performance/declarative/
    incubator/beehive/trunk/controls/test/perf/webapps/controlsPerfWeb/jpf/test/controls/performance/declarative/strlen/
    incubator/beehive/trunk/controls/test/perf/webapps/controlsPerfWeb/jpf/test/controls/performance/declarative/strlen/Controller.jpf
    incubator/beehive/trunk/controls/test/perf/webapps/controlsPerfWeb/jpf/test/controls/performance/declarative/strlenST/
    incubator/beehive/trunk/controls/test/perf/webapps/controlsPerfWeb/jpf/test/controls/performance/declarative/strlenST/Controller.jpf
    incubator/beehive/trunk/controls/test/perf/webapps/controlsPerfWeb/jpf/test/controls/performance/programmatic/strlenEvent/
    incubator/beehive/trunk/controls/test/perf/webapps/controlsPerfWeb/jpf/test/controls/performance/programmatic/strlenEvent/Controller.jpf
    incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/tableview.jsp
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/webapps/reportWeb/jpf/Controller.jpf
    incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/index.jsp

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&r1=154898&r2=154899
==============================================================================
--- incubator/beehive/trunk/controls/test/perf/build.xml (original)
+++ incubator/beehive/trunk/controls/test/perf/build.xml Tue Feb 22 13:55:48 2005
@@ -5,7 +5,7 @@
 		<echo>
 Usage:
 bootstrap - for report web only (downloads cewolf jars)
-doc - build javadocs
+doc.build - build javadocs
 [re]build - builds everything
 [re]build.tests - build tests and utils
 [re]build.controls - build controls only

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=154898&r2=154899
==============================================================================
--- incubator/beehive/trunk/controls/test/perf/cases/controls-perf.xml (original)
+++ incubator/beehive/trunk/controls/test/perf/cases/controls-perf.xml Tue Feb 22 13:55:48 2005
@@ -24,6 +24,33 @@
 					<timeout>10000</timeout>
 				</controlsperf>
       </test>
+			<test name="StrlenDclTest_jpf">
+        <controlsperf>
+					<url>http://%{test.hostname}:%{test.port}/controlsPerfWeb/jpf/test/controls/performance/declarative/strlen/Controller.jpf</url>
+					<hash>-1989672960</hash>
+					<bar>4026</bar>
+					<drift>0.20</drift>
+					<timeout>10000</timeout>
+				</controlsperf>
+      </test>
+			<test name="StrlenEventPgmTest_standalone">
+        <controlsperf>
+					<cmdline>%{control.perf.root}/bin/perf StrlenEventPgmTest</cmdline>
+					<hash>-1989672960</hash>
+					<bar>4026</bar>
+					<drift>0.20</drift>
+					<timeout>10000</timeout>
+				</controlsperf>
+      </test>
+			<test name="StrlenEventPgmTest_jpf">
+        <controlsperf>
+					<url>http://%{test.hostname}:%{test.port}/controlsPerfWeb/jpf/test/controls/performance/programmatic/strlenEvent/Controller.jpf</url>
+					<hash>-1989672960</hash>
+					<bar>4026</bar>
+					<drift>0.20</drift>
+					<timeout>10000</timeout>
+				</controlsperf>
+      </test>
 			<test name="StrlenSTPgmTest_standalone">
         <controlsperf>
 					<cmdline>%{control.perf.root}/bin/perf StrlenSTPgmTest</cmdline>
@@ -36,6 +63,15 @@
 			<test name="StrlenSTPgmTest_jpf">
         <controlsperf>
 					<url>http://%{test.hostname}:%{test.port}/controlsPerfWeb/jpf/test/controls/performance/programmatic/strlenST/Controller.jpf</url>
+					<hash>-1989672960</hash>
+					<bar>16062</bar>
+					<drift>0.20</drift>
+					<timeout>10000</timeout>
+				</controlsperf>
+      </test>
+			<test name="StrlenSTDclTest_jpf">
+        <controlsperf>
+					<url>http://%{test.hostname}:%{test.port}/controlsPerfWeb/jpf/test/controls/performance/declarative/strlenST/Controller.jpf</url>
 					<hash>-1989672960</hash>
 					<bar>16062</bar>
 					<drift>0.20</drift>

Added: incubator/beehive/trunk/controls/test/perf/ctlsrc/org/apache/beehive/controls/perf/controls/custom/StrlenEventControl.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/ctlsrc/org/apache/beehive/controls/perf/controls/custom/StrlenEventControl.java?view=auto&rev=154899
==============================================================================
--- incubator/beehive/trunk/controls/test/perf/ctlsrc/org/apache/beehive/controls/perf/controls/custom/StrlenEventControl.java (added)
+++ incubator/beehive/trunk/controls/test/perf/ctlsrc/org/apache/beehive/controls/perf/controls/custom/StrlenEventControl.java Tue Feb 22 13:55:48 2005
@@ -0,0 +1,16 @@
+package org.apache.beehive.controls.perf.controls.custom;
+
+import org.apache.beehive.controls.api.bean.ControlInterface;
+import org.apache.beehive.controls.api.events.EventSet;
+
+@ControlInterface
+public interface StrlenEventControl
+{
+    @EventSet()
+    public interface EventSet0
+    {
+    	public void setLength(int p_val);
+    }
+	
+	public int stringLength(String input);
+}

Added: incubator/beehive/trunk/controls/test/perf/ctlsrc/org/apache/beehive/controls/perf/controls/custom/StrlenEventControlImpl.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/ctlsrc/org/apache/beehive/controls/perf/controls/custom/StrlenEventControlImpl.java?view=auto&rev=154899
==============================================================================
--- incubator/beehive/trunk/controls/test/perf/ctlsrc/org/apache/beehive/controls/perf/controls/custom/StrlenEventControlImpl.java (added)
+++ incubator/beehive/trunk/controls/test/perf/ctlsrc/org/apache/beehive/controls/perf/controls/custom/StrlenEventControlImpl.java Tue Feb 22 13:55:48 2005
@@ -0,0 +1,20 @@
+package org.apache.beehive.controls.perf.controls.custom;
+
+import org.apache.beehive.controls.api.bean.ControlImplementation;
+import org.apache.beehive.controls.api.bean.Threading;
+import org.apache.beehive.controls.api.bean.ThreadingPolicy;
+import org.apache.beehive.controls.api.events.Client;
+
+@ControlImplementation
+@Threading(ThreadingPolicy.MULTI_THREADED)
+public class StrlenEventControlImpl implements StrlenEventControl
+{
+	@Client
+	static StrlenEventControl.EventSet0 eventSet0;
+	
+	public int stringLength(String input){ 
+		//System.out.println("PERF**** calling setLength with: "+input.length());
+		eventSet0.setLength(input.length());
+		return input.length();
+	}
+}

Added: incubator/beehive/trunk/controls/test/perf/ctlsrc/org/apache/beehive/controls/perf/controls/custom/StrlenEventControlListener.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/ctlsrc/org/apache/beehive/controls/perf/controls/custom/StrlenEventControlListener.java?view=auto&rev=154899
==============================================================================
--- incubator/beehive/trunk/controls/test/perf/ctlsrc/org/apache/beehive/controls/perf/controls/custom/StrlenEventControlListener.java (added)
+++ incubator/beehive/trunk/controls/test/perf/ctlsrc/org/apache/beehive/controls/perf/controls/custom/StrlenEventControlListener.java Tue Feb 22 13:55:48 2005
@@ -0,0 +1,11 @@
+package org.apache.beehive.controls.perf.controls.custom;
+
+public class StrlenEventControlListener implements StrlenEventControl.EventSet0
+{
+	private transient int _length = -1;
+	public void setLength(int p_val){
+		//System.out.println("setting val to:"+p_val);
+		_length = p_val;
+	}
+	public int getLength(){return _length;}
+}

Added: incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/standalone/StrlenEventPgmTest.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/standalone/StrlenEventPgmTest.java?view=auto&rev=154899
==============================================================================
--- incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/standalone/StrlenEventPgmTest.java (added)
+++ incubator/beehive/trunk/controls/test/perf/src/org/apache/beehive/controls/perf/standalone/StrlenEventPgmTest.java Tue Feb 22 13:55:48 2005
@@ -0,0 +1,60 @@
+package org.apache.beehive.controls.perf.standalone;
+
+import org.apache.beehive.controls.perf.utils.Constants;
+import org.apache.beehive.controls.perf.utils.PerfUtil;
+
+// custom control
+import org.apache.beehive.controls.perf.controls.custom.StrlenEventControlBean;
+import org.apache.beehive.controls.perf.controls.custom.StrlenEventControlListener;
+
+public class StrlenEventPgmTest
+{
+  public static void main(String[] args) throws Exception
+  {
+    final int iterations = Constants.STRLEN_ITERATIONS;
+    String input = "";
+
+    PerfUtil util = new PerfUtil();
+    if(args.length == 0){
+      input = util.createString(Constants.DEFAULT_STR_SIZE);
+    }
+    else{
+      input = util.createString(Integer.parseInt(args[0]));
+    }
+  
+    StrlenEventPgmTest test = new StrlenEventPgmTest();
+    long cputime;
+    int stringSum = 0;
+
+    // programatically instantiate the control to be used by the test
+    StrlenEventControlBean control = (StrlenEventControlBean)java.beans.Beans.instantiate(null,"org.apache.beehive.controls.perf.controls.custom.StrlenEventControlBean");
+    StrlenEventControlListener listener = new StrlenEventControlListener();
+    control.addEventSet0Listener(listener);
+    
+    // warm up the vm
+    cputime = System.currentTimeMillis();
+    for(int i=0; i<iterations; i++){
+      stringSum += test.run(input,control,listener);
+    }
+    cputime = System.currentTimeMillis() - cputime;
+
+    // run it again for the real measurement
+    cputime = System.currentTimeMillis();
+    for(int i=0; i<iterations; i++){
+      stringSum += test.run(input,control,listener);
+    }
+    cputime = System.currentTimeMillis() - cputime;
+
+    // print the results
+    System.out.print(Constants.DELIM+test.getClass().getSimpleName()+" ");
+    System.out.print("hash "+stringSum+" ");
+    System.out.println("time "+cputime);
+
+  }
+
+  private int run(String input, StrlenEventControlBean control,StrlenEventControlListener listener) throws Exception
+  {
+  	control.stringLength(input);
+    return listener.getLength();
+  }
+}

Added: incubator/beehive/trunk/controls/test/perf/webapps/controlsPerfWeb/jpf/test/controls/performance/declarative/strlen/Controller.jpf
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/webapps/controlsPerfWeb/jpf/test/controls/performance/declarative/strlen/Controller.jpf?view=auto&rev=154899
==============================================================================
--- incubator/beehive/trunk/controls/test/perf/webapps/controlsPerfWeb/jpf/test/controls/performance/declarative/strlen/Controller.jpf (added)
+++ incubator/beehive/trunk/controls/test/perf/webapps/controlsPerfWeb/jpf/test/controls/performance/declarative/strlen/Controller.jpf Tue Feb 22 13:55:48 2005
@@ -0,0 +1,108 @@
+/*
+ *
+ * N E T U I
+ *
+ * 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.test.controls.performance.declarative.strlen;
+
+// logging
+import org.apache.log4j.Logger;
+import org.apache.log4j.Level;
+import org.apache.log4j.BasicConfigurator;
+
+// controls framework
+import org.apache.beehive.controls.api.bean.Control;
+
+// netui
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+// test tools
+import org.apache.beehive.test.tools.milton.common.Report;
+import org.apache.beehive.controls.perf.utils.Constants;
+import org.apache.beehive.controls.perf.utils.PerfUtil;
+
+// control used in scenario
+import org.apache.beehive.controls.perf.controls.custom.StrlenControlBean;
+
+@Jpf.Controller(
+		forwards = {
+				@Jpf.Forward(name=Report.RESULTS, path = Report.RESULTSJSP) 
+		})
+public class Controller extends PageFlowController
+{
+	// declare the control - instantiated by controls framework
+	@Control
+	public StrlenControlBean control;
+	
+	private Report _report = new Report();
+	private transient Logger logger = Logger.getRootLogger();
+	
+	@Jpf.Action()
+	protected Forward begin()
+	{
+		BasicConfigurator.configure();
+		try
+		{			
+			final int iterations = Constants.STRLEN_ITERATIONS;
+			PerfUtil util = new PerfUtil();
+			String input = util.createString(Constants.DEFAULT_STR_SIZE);
+			
+			log("TEST: StrlenDclJpfTest");
+			long cputime;
+			int hash = 0;
+			
+			// warm up the vm
+			cputime = System.currentTimeMillis();
+			for(int i=0; i<iterations; i++){
+				hash += run(input, control);
+			}
+			cputime = System.currentTimeMillis() - cputime;
+			
+			// run it again for the real measurement
+			cputime = System.currentTimeMillis();
+			for(int i=0; i<iterations; i++){
+				hash += run(input, control);
+			}
+			cputime = System.currentTimeMillis() - cputime;
+			
+			// log the results
+			log("hash "+hash);
+			log("time "+cputime);
+			_report.setStatus(Report.PASS);
+		}
+		catch(Exception e)
+		{
+			_report.setStatus(Report.FAIL);
+			_report.setExceptionStack(e);
+		}
+		
+		logger = null;
+		return new Forward(Report.RESULTS, Report.KEY, _report);
+	}
+	
+	
+	private int run(String p_input, StrlenControlBean p_control)
+	{
+		return p_control.stringLength(p_input);
+	}
+	
+	private void log(String message)
+	{
+		logger.info("PERF "+message);
+		_report.addMessage(message);
+	}
+		}

Added: incubator/beehive/trunk/controls/test/perf/webapps/controlsPerfWeb/jpf/test/controls/performance/declarative/strlenST/Controller.jpf
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/webapps/controlsPerfWeb/jpf/test/controls/performance/declarative/strlenST/Controller.jpf?view=auto&rev=154899
==============================================================================
--- incubator/beehive/trunk/controls/test/perf/webapps/controlsPerfWeb/jpf/test/controls/performance/declarative/strlenST/Controller.jpf (added)
+++ incubator/beehive/trunk/controls/test/perf/webapps/controlsPerfWeb/jpf/test/controls/performance/declarative/strlenST/Controller.jpf Tue Feb 22 13:55:48 2005
@@ -0,0 +1,106 @@
+/*
+ *
+ * N E T U I
+ *
+ * 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.test.controls.performance.declarative.strlenST;
+
+//for logging
+import org.apache.log4j.Logger;
+import org.apache.log4j.Level;
+import org.apache.log4j.BasicConfigurator;
+
+//controls framework
+import org.apache.beehive.controls.api.bean.Control;
+
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+import org.apache.beehive.test.tools.milton.common.Report;
+//perf imports
+import org.apache.beehive.controls.perf.controls.custom.StrlenControlSTBean;
+import org.apache.beehive.controls.perf.utils.Constants;
+import org.apache.beehive.controls.perf.utils.PerfUtil;
+
+@Jpf.Controller(
+		forwards = {
+				@Jpf.Forward(name=Report.RESULTS, path = Report.RESULTSJSP) 
+		})
+public class Controller extends PageFlowController
+{
+	
+	// declare the control - instantiated by controls framework
+	@Control
+	public StrlenControlSTBean control;
+	
+	private Report _report = new Report();
+	private transient Logger logger = Logger.getRootLogger();
+	
+	@Jpf.Action()
+	protected Forward begin()
+	{
+		BasicConfigurator.configure();
+		try
+		{
+			
+			final int iterations = Constants.STRLEN_ITERATIONS;
+			PerfUtil util = new PerfUtil();
+			String input = util.createString(Constants.DEFAULT_STR_SIZE);
+			
+			log("TEST: StrlenSTDclJpfTest");
+			long cputime;
+			int hash = 0;
+			
+			// warm up the vm
+			cputime = System.currentTimeMillis();
+			for(int i=0; i<iterations; i++){
+				hash += run(input, control);
+			}
+			cputime = System.currentTimeMillis() - cputime;
+			
+			// run it again for the real measurement
+			cputime = System.currentTimeMillis();
+			for(int i=0; i<iterations; i++){
+				hash += run(input, control);
+			}
+			cputime = System.currentTimeMillis() - cputime;
+			
+			// log the results
+			log("hash "+hash);
+			log("time "+cputime);
+			_report.setStatus(Report.PASS);
+		}
+		catch(Exception e)
+		{
+			_report.setStatus(Report.FAIL);
+			_report.setExceptionStack(e);
+		}
+		
+		logger = null;
+		return new Forward(Report.RESULTS, Report.KEY, _report);
+	}
+	
+	
+	private int run(String p_input, StrlenControlSTBean p_control)
+	{
+		return p_control.stringLength(p_input);
+	}
+	
+	private void log(String message)
+	{
+		logger.info("PERF "+message);
+		_report.addMessage(message);
+	}
+		}

Added: incubator/beehive/trunk/controls/test/perf/webapps/controlsPerfWeb/jpf/test/controls/performance/programmatic/strlenEvent/Controller.jpf
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/webapps/controlsPerfWeb/jpf/test/controls/performance/programmatic/strlenEvent/Controller.jpf?view=auto&rev=154899
==============================================================================
--- incubator/beehive/trunk/controls/test/perf/webapps/controlsPerfWeb/jpf/test/controls/performance/programmatic/strlenEvent/Controller.jpf (added)
+++ incubator/beehive/trunk/controls/test/perf/webapps/controlsPerfWeb/jpf/test/controls/performance/programmatic/strlenEvent/Controller.jpf Tue Feb 22 13:55:48 2005
@@ -0,0 +1,106 @@
+/*
+ *
+ * N E T U I
+ *
+ * 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.test.controls.performance.programmatic.strlenEvent;
+
+//for logging
+import org.apache.log4j.Logger;
+import org.apache.log4j.Level;
+import org.apache.log4j.BasicConfigurator;
+
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+import org.apache.beehive.test.tools.milton.common.Report;
+//perf imports
+import org.apache.beehive.controls.perf.controls.custom.StrlenEventControlBean;
+import org.apache.beehive.controls.perf.controls.custom.StrlenEventControlListener;
+import org.apache.beehive.controls.perf.utils.Constants;
+import org.apache.beehive.controls.perf.utils.PerfUtil;
+
+@Jpf.Controller(
+		forwards = {
+				@Jpf.Forward(name=Report.RESULTS, path = Report.RESULTSJSP) 
+		})
+public class Controller extends PageFlowController
+{
+	private Report _report = new Report();
+	private transient Logger logger = Logger.getRootLogger();
+	
+	@Jpf.Action()
+	protected Forward begin()
+	{
+		BasicConfigurator.configure();
+		try
+		{
+			// instantiate the control
+			StrlenEventControlBean control =(StrlenEventControlBean)java.beans.Beans.instantiate(
+					Thread.currentThread().getContextClassLoader(),
+			"org.apache.beehive.controls.perf.controls.custom.StrlenEventControlBean");
+		    StrlenEventControlListener listener = new StrlenEventControlListener();
+		    control.addEventSet0Listener(listener);
+			
+			final int iterations = Constants.STRLEN_ITERATIONS;
+			PerfUtil util = new PerfUtil();
+			String input = util.createString(Constants.DEFAULT_STR_SIZE);
+			
+			log("TEST: StrlenEventPgmJpfTest");
+			long cputime;
+			int hash = 0;
+			
+			// warm up the vm
+			cputime = System.currentTimeMillis();
+			for(int i=0; i<iterations; i++){
+				hash += run(input, control, listener);
+			}
+			cputime = System.currentTimeMillis() - cputime;
+			
+			// run it again for the real measurement
+			cputime = System.currentTimeMillis();
+			for(int i=0; i<iterations; i++){
+				hash += run(input, control, listener);
+			}
+			cputime = System.currentTimeMillis() - cputime;
+			
+			// log the results
+			log("hash "+hash);
+			log("time "+cputime);
+			_report.setStatus(Report.PASS);
+		}
+		catch(Exception e)
+		{
+			_report.setStatus(Report.FAIL);
+			_report.setExceptionStack(e);
+		}
+		
+		logger = null;
+		return new Forward(Report.RESULTS, Report.KEY, _report);
+	}
+	
+	
+	private int run(String p_input, StrlenEventControlBean p_control, StrlenEventControlListener p_listener)
+	{
+		p_control.stringLength(p_input);
+		return p_listener.getLength();
+	}
+	
+	private void log(String message)
+	{
+		logger.info("PERF "+message);
+		_report.addMessage(message);
+	}
+		}

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=154898&r2=154899
==============================================================================
--- 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 22 13:55:48 2005
@@ -93,11 +93,39 @@
 	}
 	
 	@Jpf.Action()
-	protected Forward tableview(ReportForm form)
+	protected Forward tableview()
 	{
-		Forward f = new Forward("error");
-		getRequest().setAttribute("msg", "NYI");
-		return f;
+		try
+		{
+			String filename = getRequest().getParameter("filename");
+			String controlKey = getRequest().getParameter("controlKey");
+			ensureControlInited(filename,controlKey);
+			PerfResultControlBean control = _controls.get(controlKey);
+			ResultSetDocument.ResultSet resultSet = control.getResultSet(filename);
+			return new Forward("tableview","resultSet",resultSet);
+		
+		}
+		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()

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=154898&r2=154899
==============================================================================
--- 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 22 13:55:48 2005
@@ -54,11 +54,13 @@
 				String filename = (String)xmlbeansFilenames[i];
 				allFilenames.add(filename);
 				ResultSetDocument.ResultSet xmlbeanResultSet = (ResultSetDocument.ResultSet)xmlbeanResultSets.get((Object)filename);
+				String sXmlBeans = "xmlbeans";
 				%>
 					<tr>
 						<td id="RESULT TABLE">
 							<netui:anchor action="tableview">
 								<netui:parameter name="filename" value="<%=(String)xmlbeansFilenames[i]%>"/>
+								<netui:parameter name="controlKey" value="<%=sXmlBeans%>"/>
 								<netui:label value="View"/>  
 							</netui:anchor>
 						</td>
@@ -109,11 +111,13 @@
 				String filename = (String) controlFilenames[i];
 				allFilenames.add(filename);
 				ResultSetDocument.ResultSet controlResultSet = (ResultSetDocument.ResultSet)controlResultSets.get((Object)filename);
+				String sControls = "controls";
 				%>
 					<tr>
 						<td id="RESULT TABLE">
 							<netui:anchor action="tableview">
 								<netui:parameter name="filename" value="<%=(String)controlFilenames[i]%>"/>
+								<netui:parameter name="controlKey" value="<%=sControls%>"/>
 								<netui:label value="View"/>  
 							</netui:anchor>
 						</td>

Added: incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/tableview.jsp
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/tableview.jsp?view=auto&rev=154899
==============================================================================
--- incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/tableview.jsp (added)
+++ incubator/beehive/trunk/controls/test/perf/webapps/reportWeb/jpf/tableview.jsp Tue Feb 22 13:55:48 2005
@@ -0,0 +1,88 @@
+<%@ 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"%>
+
+<% 
+ResultSetDocument.ResultSet resultSet = (ResultSetDocument.ResultSet)PageFlowUtils.getPageInput("resultSet", request);
+%>
+
+<netui:html>
+	<head>
+		<title>Runtime Performance Results</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 Table</h1>
+		<h2><a href="../index.jsp">Home</a></h2>
+	
+		<h4 class=margin>Result Set Environment</h4>
+		<table border="1" id="RESULT ENVIRONMENT">
+					<tr>
+						<td id="RESULT HEADINGS">Hostname</td>
+						<td id="RESULT HEADINGS">Date</td>
+						<td id="RESULT HEADINGS">OS</td>
+						<td id="RESULT HEADINGS">JVM</td>
+						<td id="RESULT HEADINGS">Note</td>
+					</tr>
+					<tr>
+						<td id="RESULT HOSTNAME"><% out.print(resultSet.getEnvironment().getHostname()); %></td>
+						<td id="RESULT DATE"><% out.print(resultSet.getEnvironment().getDate()); %></td>
+						<td id="RESULT OS"><% out.print(resultSet.getEnvironment().getOs()); %></td>
+						<td id="RESULT JVM"><% out.print(resultSet.getEnvironment().getJvm()); %></td>
+						<% if(null != resultSet.getEnvironment().getNote())
+						{%>
+							<td id="RESULT NOTE"><% out.print(resultSet.getEnvironment().getNote()); %></td>
+						<%}
+						else
+						{%>
+							<td id="RESULT NOTE"><%out.print(" ");%></td>
+						<%}%>
+					</tr>
+		</table>
+
+
+		<h4 class=margin>Result Set</h4>
+		<table border="1" id="RESULT SET">
+					<tr>
+						<td id="RESULT HEADINGS">Test Name</td>
+						<td id="RESULT HEADINGS">Time</td>
+						<td id="RESULT HEADINGS">Memory</td>
+						<td id="RESULT HEADINGS">Note</td>
+						<td id="RESULT HEADINGS">Custom Data</td>
+					</tr>
+		<%
+			Result[] results = resultSet.getResultArray();
+			for(int i=0; i<results.length; i++){
+				%>
+					<tr>
+						<td id="RESULT TESTNAME"><% out.print(results[i].getName()); %></td>
+						<td id="RESULT TIME"><% out.print(results[i].getTime()); %></td>
+						<td id="RESULT MEMORY"><% out.print(results[i].getMemory()); %></td>
+						<td id="RESULT NOTE"><% out.print(results[i].getNote()); %></td>
+						<%
+							Custom[] customs = results[i].getCustomArray();
+							for(int j=0; j<customs.length; j++){
+							%>
+								<td id="RESULT CUSTOM"><% out.print(customs[j]); %></td>
+							<%}
+						%>
+					</tr>
+				<%
+			}
+		%>
+		</table>
+
+	</netui:body>
+</netui:html>