You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2004/09/21 22:22:41 UTC

cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/engine StandardJMeterEngine.java

sebb        2004/09/21 13:22:41

  Modified:    src/core/org/apache/jmeter/engine Tag: rel-2_0
                        StandardJMeterEngine.java
  Log:
  Allow non- Test Elements (e.g. Functions) to register as TestListeners
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.43.2.5  +23 -4     jakarta-jmeter/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java
  
  Index: StandardJMeterEngine.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java,v
  retrieving revision 1.43.2.4
  retrieving revision 1.43.2.5
  diff -u -r1.43.2.4 -r1.43.2.5
  --- StandardJMeterEngine.java	2 Jul 2004 18:05:00 -0000	1.43.2.4
  +++ StandardJMeterEngine.java	21 Sep 2004 20:22:40 -0000	1.43.2.5
  @@ -21,6 +21,8 @@
   import java.io.PrintWriter;
   import java.io.Serializable;
   import java.io.StringWriter;
  +import java.util.ArrayList;
  +import java.util.Collection;
   import java.util.Date;
   import java.util.HashMap;
   import java.util.HashSet;
  @@ -117,6 +119,15 @@
       }
       // End of code to allow engine to be controlled remotely
       
  +    /*
  +     * Allow functions etc to register for testStopped notification
  +     */
  +    private static List testList = null;
  +    public static synchronized void register(TestListener tl)
  +    {
  +    	testList.add(tl);
  +    }
  +    
       public StandardJMeterEngine()
       {
           allThreads = new HashMap();
  @@ -215,16 +226,20 @@
   
       protected void notifyTestListenersOfEnd()
       {
  +    	log.info("Notifying listeners of end of test");
  +    	
           Iterator iter = testListeners.getSearchResults().iterator();
           while (iter.hasNext())
           {
  +        	TestListener it = (TestListener)iter.next();
  +        	log.info("Notifying test listener: " + it.getClass().getName());
               if (host == null)
               {
  -                ((TestListener) iter.next()).testEnded();
  +                it.testEnded();
               }
               else
               {
  -                ((TestListener) iter.next()).testEnded(host);
  +                it.testEnded(host);
               }
           }
           log.info("Test has ended");
  @@ -284,6 +299,7 @@
       {
           log.info("Running the test!");
           running = true;
  +        testList = new ArrayList();
   
           SearchByClass testPlan = new SearchByClass(TestPlan.class);
           getTestTree().traverse(testPlan);
  @@ -306,6 +322,9 @@
           testListeners = new SearchByClass(TestListener.class);
           getTestTree().traverse(testListeners);
           log.info("About to call test listeners");
  +        Collection col = testListeners.getSearchResults();
  +        col.addAll(testList);
  +        testList=null;
           notifyTestListenersOfStart();
           
           getTestTree().traverse(new TurnElementsOn());
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org