You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by se...@apache.org on 2012/08/23 00:56:56 UTC

svn commit: r1376300 - in /jmeter/trunk: src/components/org/apache/jmeter/config/ src/components/org/apache/jmeter/control/ src/components/org/apache/jmeter/timers/ src/core/org/apache/jmeter/ src/core/org/apache/jmeter/engine/ src/core/org/apache/jmet...

Author: sebb
Date: Wed Aug 22 22:56:54 2012
New Revision: 1376300

URL: http://svn.apache.org/viewvc?rev=1376300&view=rev
Log:
TestListener interface could perhaps be split up. 
Bugzilla Id: 53749

Added:
    jmeter/trunk/src/core/org/apache/jmeter/testelement/TestIterationListener.java   (with props)
    jmeter/trunk/src/core/org/apache/jmeter/testelement/TestListener.java
      - copied, changed from r1375825, jmeter/trunk/src/core/org/apache/jmeter/testelement/TestListener.java
    jmeter/trunk/src/core/org/apache/jmeter/testelement/TestStateListener.java   (with props)
Modified:
    jmeter/trunk/src/components/org/apache/jmeter/config/KeystoreConfig.java
    jmeter/trunk/src/components/org/apache/jmeter/control/ThroughputController.java
    jmeter/trunk/src/components/org/apache/jmeter/timers/ConstantThroughputTimer.java
    jmeter/trunk/src/components/org/apache/jmeter/timers/SyncTimer.java
    jmeter/trunk/src/core/org/apache/jmeter/JMeter.java
    jmeter/trunk/src/core/org/apache/jmeter/engine/ConvertListeners.java
    jmeter/trunk/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java
    jmeter/trunk/src/core/org/apache/jmeter/engine/util/FunctionParser.java
    jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java
    jmeter/trunk/src/core/org/apache/jmeter/reporters/ResultCollector.java
    jmeter/trunk/src/core/org/apache/jmeter/reporters/Summariser.java
    jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteListenerWrapper.java
    jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteSampleListenerImpl.java
    jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteTestListenerWrapper.java
    jmeter/trunk/src/core/org/apache/jmeter/testelement/TestPlan.java
    jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java
    jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellTestElement.java
    jmeter/trunk/src/functions/org/apache/jmeter/functions/StringFromFile.java
    jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CacheManager.java
    jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CookieManager.java
    jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/modifier/ParamModifier.java
    jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
    jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.java
    jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/JavaSampler.java
    jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/AbstractJDBCTestElement.java
    jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/config/DataSourceElement.java
    jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/JMSSampler.java
    jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/PublisherSampler.java
    jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java
    jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/sampler/LDAPExtSampler.java
    jmeter/trunk/src/reports/org/apache/jmeter/testelement/ReportPlan.java
    jmeter/trunk/xdocs/changes.xml

Modified: jmeter/trunk/src/components/org/apache/jmeter/config/KeystoreConfig.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/config/KeystoreConfig.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/components/org/apache/jmeter/config/KeystoreConfig.java (original)
+++ jmeter/trunk/src/components/org/apache/jmeter/config/KeystoreConfig.java Wed Aug 22 22:56:54 2012
@@ -19,9 +19,8 @@
 package org.apache.jmeter.config;
 
 import org.apache.commons.lang.StringUtils;
-import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.testbeans.TestBean;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jmeter.util.JMeterUtils;
 import org.apache.jmeter.util.SSLManager;
 import org.apache.jorphan.logging.LoggingManager;
@@ -31,7 +30,7 @@ import org.apache.log.Logger;
 /**
  * Configure Keystore
  */
-public class KeystoreConfig extends ConfigTestElement implements TestBean, TestListener {
+public class KeystoreConfig extends ConfigTestElement implements TestBean, TestStateListener {
 
     private static final long serialVersionUID = -5781402012242794890L;
     private static final Logger log = LoggingManager.getLoggerForClass();
@@ -56,10 +55,6 @@ public class KeystoreConfig extends Conf
         SSLManager.getInstance().destroyKeystore();
     }
 
-    public void testIterationStart(LoopIterationEvent event) {
-        // NOOP        
-    }
-
     public void testStarted() {
         testStarted(null);
     }

Modified: jmeter/trunk/src/components/org/apache/jmeter/control/ThroughputController.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/control/ThroughputController.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/components/org/apache/jmeter/control/ThroughputController.java (original)
+++ jmeter/trunk/src/components/org/apache/jmeter/control/ThroughputController.java Wed Aug 22 22:56:54 2012
@@ -23,7 +23,7 @@ import java.io.Serializable;
 import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.engine.event.LoopIterationListener;
 import org.apache.jmeter.samplers.Sampler;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jmeter.testelement.property.BooleanProperty;
 import org.apache.jmeter.testelement.property.FloatProperty;
 import org.apache.jmeter.testelement.property.IntegerProperty;
@@ -42,7 +42,7 @@ import org.apache.log.Logger;
  * or the last N% of samples (BYPERCENT).
  */
 public class ThroughputController extends GenericController implements Serializable, LoopIterationListener,
-        TestListener {
+        TestStateListener {
 
     private static final long serialVersionUID = 233L;
 
@@ -269,7 +269,4 @@ public class ThroughputController extend
     	// NOOP
     }
 
-    public void testIterationStart(LoopIterationEvent event) {
-    	// NOOP
-    }
 }

Modified: jmeter/trunk/src/components/org/apache/jmeter/timers/ConstantThroughputTimer.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/timers/ConstantThroughputTimer.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/components/org/apache/jmeter/timers/ConstantThroughputTimer.java (original)
+++ jmeter/trunk/src/components/org/apache/jmeter/timers/ConstantThroughputTimer.java Wed Aug 22 22:56:54 2012
@@ -21,10 +21,9 @@ package org.apache.jmeter.timers;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
-import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.testbeans.TestBean;
 import org.apache.jmeter.testelement.AbstractTestElement;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jmeter.threads.JMeterContextService;
 import org.apache.jmeter.threads.AbstractThreadGroup;
 import org.apache.jmeter.util.JMeterUtils;
@@ -40,7 +39,7 @@ import org.apache.log.Logger;
  * - delay each thread according to when it last ran
  * - delay each thread according to when any thread last ran
  */
-public class ConstantThroughputTimer extends AbstractTestElement implements Timer, TestListener, TestBean {
+public class ConstantThroughputTimer extends AbstractTestElement implements Timer, TestStateListener, TestBean {
     private static final long serialVersionUID = 3;
 
     private static class ThroughputInfo{
@@ -251,10 +250,4 @@ public class ConstantThroughputTimer ext
     	//NOOP
     }
 
-    /**
-     * {@inheritDoc}
-     */
-    public void testIterationStart(LoopIterationEvent event) {
-    	//NOOP
-    }
 }
\ No newline at end of file

Modified: jmeter/trunk/src/components/org/apache/jmeter/timers/SyncTimer.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/timers/SyncTimer.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/components/org/apache/jmeter/timers/SyncTimer.java (original)
+++ jmeter/trunk/src/components/org/apache/jmeter/timers/SyncTimer.java Wed Aug 22 22:56:54 2012
@@ -22,10 +22,9 @@ import java.io.Serializable;
 import java.util.concurrent.BrokenBarrierException;
 import java.util.concurrent.CyclicBarrier;
 
-import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.testbeans.TestBean;
 import org.apache.jmeter.testelement.AbstractTestElement;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jmeter.testelement.ThreadListener;
 import org.apache.jmeter.threads.JMeterContextService;
 
@@ -35,7 +34,7 @@ import org.apache.jmeter.threads.JMeterC
  * thus create large instant loads at various points of the test plan.
  *
  */
-public class SyncTimer extends AbstractTestElement implements Timer, Serializable, TestBean, TestListener, ThreadListener {
+public class SyncTimer extends AbstractTestElement implements Timer, Serializable, TestBean, TestStateListener, ThreadListener {
 	
 	/**
 	 * Wrapper to {@link CyclicBarrier} to allow lazy init of CyclicBarrier when SyncTimer is configured with 0
@@ -190,10 +189,6 @@ public class SyncTimer extends AbstractT
         createBarrier();
     }
 
-	public void testIterationStart(LoopIterationEvent event) {
-		// NOOP
-	}
-	
 	/**
 	 * 
 	 */

Modified: jmeter/trunk/src/core/org/apache/jmeter/JMeter.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/JMeter.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/JMeter.java Wed Aug 22 22:56:54 2012
@@ -54,7 +54,6 @@ import org.apache.jmeter.engine.ClientJM
 import org.apache.jmeter.engine.JMeterEngine;
 import org.apache.jmeter.engine.RemoteJMeterEngineImpl;
 import org.apache.jmeter.engine.StandardJMeterEngine;
-import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.exceptions.IllegalUserActionException;
 import org.apache.jmeter.gui.GuiPackage;
 import org.apache.jmeter.gui.MainFrame;
@@ -75,7 +74,7 @@ import org.apache.jmeter.samplers.Sample
 import org.apache.jmeter.save.SaveService;
 import org.apache.jmeter.services.FileServer;
 import org.apache.jmeter.testelement.TestElement;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jmeter.util.BeanShellInterpreter;
 import org.apache.jmeter.util.BeanShellServer;
 import org.apache.jmeter.util.JMeterUtils;
@@ -916,7 +915,7 @@ public class JMeter implements JMeterPlu
      * If running a remote test, then after waiting a few seconds for listeners to finish files,
      * it calls ClientJMeterEngine.tidyRMI() to deal with the Naming Timer Thread.
      */
-    private static class ListenToTest implements TestListener, Runnable, Remoteable {
+    private static class ListenToTest implements TestStateListener, Runnable, Remoteable {
         private AtomicInteger started = new AtomicInteger(0); // keep track of remote tests
 
         //NOT YET USED private JMeter _parent;
@@ -981,13 +980,6 @@ public class JMeter implements JMeterPlu
         }
 
         /**
-         * @see TestListener#testIterationStart(LoopIterationEvent)
-         */
-        public void testIterationStart(LoopIterationEvent event) {
-            // ignored
-        }
-
-        /**
          * Runs daemon thread which waits a short while; 
          * if JVM does not exit, lists remaining non-daemon threads on stdout.
          */

Modified: jmeter/trunk/src/core/org/apache/jmeter/engine/ConvertListeners.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/engine/ConvertListeners.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/engine/ConvertListeners.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/engine/ConvertListeners.java Wed Aug 22 22:56:54 2012
@@ -27,7 +27,7 @@ import org.apache.jmeter.samplers.Remote
 import org.apache.jmeter.samplers.RemoteTestListenerWrapper;
 import org.apache.jmeter.samplers.Remoteable;
 import org.apache.jmeter.samplers.SampleListener;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jmeter.testelement.ThreadListener;
 import org.apache.jmeter.threads.AbstractThreadGroup;
 import org.apache.jorphan.collections.HashTree;
@@ -60,10 +60,10 @@ public class ConvertListeners implements
                 }
                 try {
                     RemoteSampleListener rtl = new RemoteSampleListenerImpl(item);
-                    if (item instanceof TestListener && item instanceof SampleListener) {
+                    if (item instanceof TestStateListener && item instanceof SampleListener) { // TL - all
                         RemoteListenerWrapper wrap = new RemoteListenerWrapper(rtl);
                         subTree.replace(item, wrap);
-                    } else if (item instanceof TestListener) {
+                    } else if (item instanceof TestStateListener) {
                         RemoteTestListenerWrapper wrap = new RemoteTestListenerWrapper(rtl);
                         subTree.replace(item, wrap);
                     } else if (item instanceof SampleListener) {

Modified: jmeter/trunk/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java Wed Aug 22 22:56:54 2012
@@ -32,7 +32,7 @@ import org.apache.jmeter.JMeter;
 import org.apache.jmeter.testbeans.TestBean;
 import org.apache.jmeter.testbeans.TestBeanHelper;
 import org.apache.jmeter.testelement.TestElement;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jmeter.testelement.TestPlan;
 import org.apache.jmeter.threads.AbstractThreadGroup;
 import org.apache.jmeter.threads.JMeterContextService;
@@ -80,7 +80,7 @@ public class StandardJMeterEngine implem
      * Only used by the function parser so far.
      * The list is merged with the testListeners and then cleared.
      */
-    private static final List<TestListener> testList = new ArrayList<TestListener>();
+    private static final List<TestStateListener> testList = new ArrayList<TestStateListener>();
 
     /** Whether to call System.exit(0) in exit after stopping RMI */
     private static final boolean REMOTE_SYSTEM_EXIT = JMeterUtils.getPropDefault("jmeterengine.remote.system.exit", false);
@@ -116,7 +116,7 @@ public class StandardJMeterEngine implem
         }
     }
 
-    public static synchronized void register(TestListener tl) {
+    public static synchronized void register(TestStateListener tl) {
         testList.add(tl);
     }
 
@@ -197,8 +197,8 @@ public class StandardJMeterEngine implem
     }
 
     @SuppressWarnings("deprecation") // Deliberate use of deprecated method
-    private void notifyTestListenersOfStart(SearchByClass<TestListener> testListeners) {
-        for (TestListener tl : testListeners.getSearchResults()) {
+    private void notifyTestListenersOfStart(SearchByClass<TestStateListener> testListeners) {
+        for (TestStateListener tl : testListeners.getSearchResults()) {
             if (tl instanceof TestBean) {
                 TestBeanHelper.prepare((TestElement) tl);
             }
@@ -210,9 +210,9 @@ public class StandardJMeterEngine implem
         }
     }
 
-    private void notifyTestListenersOfEnd(SearchByClass<TestListener> testListeners) {
+    private void notifyTestListenersOfEnd(SearchByClass<TestStateListener> testListeners) {
         log.info("Notifying test listeners of end of test");
-        for (TestListener tl : testListeners.getSearchResults()) {
+        for (TestStateListener tl : testListeners.getSearchResults()) {
             try {
                 if (host == null) {
                     tl.testEnded();
@@ -304,7 +304,7 @@ public class StandardJMeterEngine implem
          * Notification of test listeners needs to happen after function
          * replacement, but before setting RunningVersion to true.
          */
-        SearchByClass<TestListener> testListeners = new SearchByClass<TestListener>(TestListener.class);
+        SearchByClass<TestStateListener> testListeners = new SearchByClass<TestStateListener>(TestStateListener.class); // TL - S&E
         test.traverse(testListeners);
 
         // Merge in any additional test listeners

Modified: jmeter/trunk/src/core/org/apache/jmeter/engine/util/FunctionParser.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/engine/util/FunctionParser.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/engine/util/FunctionParser.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/engine/util/FunctionParser.java Wed Aug 22 22:56:54 2012
@@ -28,7 +28,7 @@ import java.util.LinkedList;
 import org.apache.jmeter.engine.StandardJMeterEngine;
 import org.apache.jmeter.functions.Function;
 import org.apache.jmeter.functions.InvalidVariableException;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jorphan.logging.LoggingManager;
 import org.apache.log.Logger;
 
@@ -138,8 +138,8 @@ class FunctionParser {
                             throw new InvalidVariableException
                             ("Expected } after "+funcName+" function call in "+new String(cb, 0, nbRead));
                         }
-                        if (function instanceof TestListener) {
-                            StandardJMeterEngine.register((TestListener) function);
+                        if (function instanceof TestStateListener) {
+                            StandardJMeterEngine.register((TestStateListener) function);
                         }
                         return function;
                     } else { // Function does not exist, so treat as per missing variable

Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java Wed Aug 22 22:56:54 2012
@@ -69,7 +69,6 @@ import javax.swing.tree.TreeCellRenderer
 import javax.swing.tree.TreeModel;
 import javax.swing.tree.TreePath;
 
-import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.gui.action.ActionNames;
 import org.apache.jmeter.gui.action.ActionRouter;
 import org.apache.jmeter.gui.action.LoadDraggedFile;
@@ -80,7 +79,7 @@ import org.apache.jmeter.gui.util.JMeter
 import org.apache.jmeter.samplers.Clearable;
 import org.apache.jmeter.samplers.Remoteable;
 import org.apache.jmeter.testelement.TestElement;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jmeter.threads.JMeterContextService;
 import org.apache.jmeter.util.JMeterUtils;
 import org.apache.jorphan.gui.ComponentUtil;
@@ -95,7 +94,7 @@ import org.apache.log.Priority;
  * JMeter component GUIs.
  *
  */
-public class MainFrame extends JFrame implements TestListener, Remoteable, DropTargetListener, Clearable, ActionListener {
+public class MainFrame extends JFrame implements TestStateListener, Remoteable, DropTargetListener, Clearable, ActionListener {
 
     private static final long serialVersionUID = 240L;
 
@@ -378,7 +377,7 @@ public class MainFrame extends JFrame im
         return tree;
     }
 
-    // TestListener implementation
+    // TestStateListener implementation
 
     /**
      * Called when a test is started on the local system. This implementation
@@ -438,10 +437,6 @@ public class MainFrame extends JFrame im
         }
     }
 
-    /* Implements TestListener#testIterationStart(LoopIterationEvent) */
-    public void testIterationStart(LoopIterationEvent event) {
-    }
-
     /**
      * Create the GUI components and layout.
      */

Modified: jmeter/trunk/src/core/org/apache/jmeter/reporters/ResultCollector.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/reporters/ResultCollector.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/reporters/ResultCollector.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/reporters/ResultCollector.java Wed Aug 22 22:56:54 2012
@@ -35,7 +35,6 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.engine.util.NoThreadClone;
 import org.apache.jmeter.gui.GuiPackage;
 import org.apache.jmeter.samplers.Clearable;
@@ -49,7 +48,7 @@ import org.apache.jmeter.save.OldSaveSer
 import org.apache.jmeter.save.SaveService;
 import org.apache.jmeter.services.FileServer;
 import org.apache.jmeter.testelement.TestElement;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jmeter.testelement.property.BooleanProperty;
 import org.apache.jmeter.testelement.property.ObjectProperty;
 import org.apache.jmeter.visualizers.Visualizer;
@@ -66,7 +65,7 @@ import com.thoughtworks.xstream.converte
  * The class must be thread-safe because it is shared between threads (NoThreadClone).
  */
 public class ResultCollector extends AbstractListenerElement implements SampleListener, Clearable, Serializable,
-        TestListener, Remoteable, NoThreadClone {
+        TestStateListener, Remoteable, NoThreadClone {
 
     private static final Logger log = LoggingManager.getLoggerForClass();
 
@@ -571,12 +570,6 @@ public class ResultCollector extends Abs
     }
 
     /**
-     * {@inheritDoc}
-     */
-    public void testIterationStart(LoopIterationEvent event) {
-    }
-
-    /**
      * @return Returns the saveConfig.
      */
     public SampleSaveConfiguration getSaveConfig() {

Modified: jmeter/trunk/src/core/org/apache/jmeter/reporters/Summariser.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/reporters/Summariser.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/reporters/Summariser.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/reporters/Summariser.java Wed Aug 22 22:56:54 2012
@@ -25,14 +25,13 @@ import java.util.Map.Entry;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.engine.util.NoThreadClone;
 import org.apache.jmeter.samplers.Remoteable;
 import org.apache.jmeter.samplers.SampleEvent;
 import org.apache.jmeter.samplers.SampleListener;
 import org.apache.jmeter.samplers.SampleResult;
 import org.apache.jmeter.testelement.AbstractTestElement;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jmeter.threads.JMeterContextService;
 import org.apache.jmeter.threads.JMeterContextService.ThreadCounts;
 import org.apache.jmeter.util.JMeterUtils;
@@ -61,7 +60,7 @@ import org.apache.log.Logger;
  *
  */
 public class Summariser extends AbstractTestElement
-    implements Serializable, SampleListener, TestListener, NoThreadClone, Remoteable {
+    implements Serializable, SampleListener, TestStateListener, NoThreadClone, Remoteable {
 
     /*
      * N.B. NoThreadClone is used to ensure that the testStarted() methods will share the same
@@ -385,8 +384,4 @@ public class Summariser extends Abstract
         }
     }
 
-    /** {@inheritDoc} */
-    public void testIterationStart(LoopIterationEvent event) {
-        // not used
-    }
 }
\ No newline at end of file

Modified: jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteListenerWrapper.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteListenerWrapper.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteListenerWrapper.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteListenerWrapper.java Wed Aug 22 22:56:54 2012
@@ -21,10 +21,9 @@ package org.apache.jmeter.samplers;
 import java.io.Serializable;
 import java.rmi.RemoteException;
 
-import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.engine.util.NoThreadClone;
 import org.apache.jmeter.testelement.AbstractTestElement;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jorphan.logging.LoggingManager;
 import org.apache.log.Logger;
 
@@ -35,7 +34,7 @@ import org.apache.log.Logger;
  *
  * @version $Revision$
  */
-public class RemoteListenerWrapper extends AbstractTestElement implements SampleListener, TestListener, Serializable,
+public class RemoteListenerWrapper extends AbstractTestElement implements SampleListener, TestStateListener, Serializable,
         NoThreadClone {
     private static final Logger log = LoggingManager.getLoggerForClass();
 
@@ -125,14 +124,4 @@ public class RemoteListenerWrapper exten
             log.error("sampleStopped", err);
         }
     }
-
-    /**
-     * {@inheritDoc}
-     */
-    public void testIterationStart(LoopIterationEvent event) {
-        // Not implemented, probably because of high overheads
-        // At present there are no Remoteable classes that use the method
-        // so RemoteSampleListener does not implement it either
-    }
-
 }
\ No newline at end of file

Modified: jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteSampleListenerImpl.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteSampleListenerImpl.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteSampleListenerImpl.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteSampleListenerImpl.java Wed Aug 22 22:56:54 2012
@@ -21,19 +21,18 @@ package org.apache.jmeter.samplers;
 import java.rmi.RemoteException;
 import java.util.List;
 
-import org.apache.jmeter.engine.event.LoopIterationEvent;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jmeter.util.JMeterUtils;
 
 /**
- * Implementation of remote sampler listener, also supports TestListener
+ * Implementation of remote sampler listener, also supports TestStateListener
  */
 public class RemoteSampleListenerImpl extends java.rmi.server.UnicastRemoteObject 
-    implements RemoteSampleListener, SampleListener, TestListener {
+    implements RemoteSampleListener, SampleListener, TestStateListener {
 
     private static final long serialVersionUID = 240L;
 
-    private final TestListener testListener;
+    private final TestStateListener testListener;
 
     private final SampleListener sampleListener;
     
@@ -42,8 +41,8 @@ public class RemoteSampleListenerImpl ex
 
     public RemoteSampleListenerImpl(Object listener) throws RemoteException {
         super(DEFAULT_LOCAL_PORT);
-        if (listener instanceof TestListener) {
-            testListener = (TestListener) listener;
+        if (listener instanceof TestStateListener) {
+            testListener = (TestStateListener) listener;
         } else {
             testListener = null;
         }
@@ -78,14 +77,6 @@ public class RemoteSampleListenerImpl ex
         }
     }
 
-    // TODO - does this code achieve anything?
-    // the method is not supported by RemoteSampleListener
-    public void testIterationStart(LoopIterationEvent event) {
-        if (testListener != null) {
-            testListener.testIterationStart(event);
-        }
-    }
-
     /**
      * This method is called remotely and fires a list of samples events
      * received locally. The function is to reduce network load when using

Modified: jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteTestListenerWrapper.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteTestListenerWrapper.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteTestListenerWrapper.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteTestListenerWrapper.java Wed Aug 22 22:56:54 2012
@@ -20,17 +20,16 @@ package org.apache.jmeter.samplers;
 
 import java.io.Serializable;
 
-import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.engine.util.NoThreadClone;
 import org.apache.jmeter.testelement.AbstractTestElement;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jorphan.logging.LoggingManager;
 import org.apache.log.Logger;
 
 /**
  * @version $Revision$
  */
-public class RemoteTestListenerWrapper extends AbstractTestElement implements TestListener, Serializable, NoThreadClone {
+public class RemoteTestListenerWrapper extends AbstractTestElement implements TestStateListener, Serializable, NoThreadClone {
     private static final Logger log = LoggingManager.getLoggerForClass();
 
     private static final long serialVersionUID = 240L;
@@ -79,11 +78,4 @@ public class RemoteTestListenerWrapper e
         }
     }
 
-    /**
-     * {@inheritDoc}
-     */
-    public void testIterationStart(LoopIterationEvent event) {
-        //listener.testIterationStart(event);
-    }
-
 }
\ No newline at end of file

Added: jmeter/trunk/src/core/org/apache/jmeter/testelement/TestIterationListener.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/testelement/TestIterationListener.java?rev=1376300&view=auto
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/testelement/TestIterationListener.java (added)
+++ jmeter/trunk/src/core/org/apache/jmeter/testelement/TestIterationListener.java Wed Aug 22 22:56:54 2012
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.jmeter.testelement;
+
+import org.apache.jmeter.engine.event.LoopIterationEvent;
+
+public interface TestIterationListener {
+
+    /**
+     * Each time through a Thread Group's test script, an iteration event is
+     * fired for each thread.
+     *
+     * This will be after the test elements have been cloned, so in general
+     * the instance will not be the same as the ones the start/end methods call.
+     *
+     * @param event
+     */
+    public void testIterationStart(LoopIterationEvent event);
+}
\ No newline at end of file

Propchange: jmeter/trunk/src/core/org/apache/jmeter/testelement/TestIterationListener.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jmeter/trunk/src/core/org/apache/jmeter/testelement/TestIterationListener.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: jmeter/trunk/src/core/org/apache/jmeter/testelement/TestListener.java (from r1375825, jmeter/trunk/src/core/org/apache/jmeter/testelement/TestListener.java)
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/testelement/TestListener.java?p2=jmeter/trunk/src/core/org/apache/jmeter/testelement/TestListener.java&p1=jmeter/trunk/src/core/org/apache/jmeter/testelement/TestListener.java&r1=1375825&r2=1376300&rev=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/testelement/TestListener.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/testelement/TestListener.java Wed Aug 22 22:56:54 2012
@@ -18,98 +18,12 @@
 
 package org.apache.jmeter.testelement;
 
-import org.apache.jmeter.engine.event.LoopIterationEvent;
-
 /**
  * TestListener interface is used for methods that are called at different
  * stages of each test.
  *
+ * @deprecated Please use {@link TestStateListener} and/or {@link TestIterationListener}
  */
-public interface TestListener {
-    /**
-     * <p>
-     * Called just before the start of the test from the main engine thread.
-     *
-     * This is before the test elements are cloned.
-     *
-     * Note that not all the test
-     * variables will have been set up at this point.
-     * </p>
-     *
-     * <p>
-     * <b>
-     * N.B. testStarted() and testEnded() are called from different threads.
-     * </b>
-     * </p>
-     * @see org.apache.jmeter.engine.StandardJMeterEngine#run()
-     *
-     */
-    public void testStarted();
-
-    /**
-     * <p>
-     * Called just before the start of the test from the main engine thread.
-     *
-     * This is before the test elements are cloned.
-     *
-     * Note that not all the test
-     * variables will have been set up at this point.
-     * </p>
-     *
-     * <p>
-     * <b>
-     * N.B. testStarted() and testEnded() are called from different threads.
-     * </b>
-     * </p>
-     * @see org.apache.jmeter.engine.StandardJMeterEngine#run()
-     * @param host name of host
-     */
-    public void testStarted(String host);
-
-    /**
-     * <p>
-     * Called once for all threads after the end of a test.
-     *
-     * This will use the same element instances as at the start of the test.
-     * </p>
-     *
-     * <p>
-     * <b>
-     * N.B. testStarted() and testEnded() are called from different threads.
-     * </b>
-     * </p>
-     * @see org.apache.jmeter.engine.StandardJMeterEngine#stopTest()
-     *
-     */
-    public void testEnded();
-
-    /**
-     * <p>
-     * Called once for all threads after the end of a test.
-     *
-     * This will use the same element instances as at the start of the test.
-     * </p>
-     *
-     * <p>
-     * <b>
-     * N.B. testStarted() and testEnded() are called from different threads.
-     * </b>
-     * </p>
-     * @see org.apache.jmeter.engine.StandardJMeterEngine#stopTest()
-     * @param host name of host
-     *
-     */
-
-    public void testEnded(String host);
-
-    /**
-     * Each time through a Thread Group's test script, an iteration event is
-     * fired for each thread.
-     *
-     * This will be after the test elements have been cloned, so in general
-     * the instance will not be the same as the ones the start/end methods call.
-     *
-     * @param event
-     */
-    public void testIterationStart(LoopIterationEvent event);
+@Deprecated
+public interface TestListener extends TestStateListener, TestIterationListener {
 }
\ No newline at end of file

Modified: jmeter/trunk/src/core/org/apache/jmeter/testelement/TestPlan.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/testelement/TestPlan.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/testelement/TestPlan.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/testelement/TestPlan.java Wed Aug 22 22:56:54 2012
@@ -26,7 +26,6 @@ import java.util.Map;
 
 import org.apache.jmeter.NewDriver;
 import org.apache.jmeter.config.Arguments;
-import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.services.FileServer;
 import org.apache.jmeter.testelement.property.BooleanProperty;
 import org.apache.jmeter.testelement.property.JMeterProperty;
@@ -36,7 +35,7 @@ import org.apache.jorphan.logging.Loggin
 import org.apache.jorphan.util.JOrphanUtils;
 import org.apache.log.Logger;
 
-public class TestPlan extends AbstractTestElement implements Serializable, TestListener {
+public class TestPlan extends AbstractTestElement implements Serializable, TestStateListener {
     private static final long serialVersionUID = 233L;
 
     private static final Logger log = LoggingManager.getLoggerForClass();
@@ -293,12 +292,6 @@ public class TestPlan extends AbstractTe
     /**
      * {@inheritDoc}
      */
-    public void testIterationStart(LoopIterationEvent event) {
-    }
-
-    /**
-     * {@inheritDoc}
-     */
     public void testStarted() {
         if (getBasedir() != null && getBasedir().length() > 0) {
             try {

Added: jmeter/trunk/src/core/org/apache/jmeter/testelement/TestStateListener.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/testelement/TestStateListener.java?rev=1376300&view=auto
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/testelement/TestStateListener.java (added)
+++ jmeter/trunk/src/core/org/apache/jmeter/testelement/TestStateListener.java Wed Aug 22 22:56:54 2012
@@ -0,0 +1,99 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.jmeter.testelement;
+
+public interface TestStateListener {
+
+    /**
+     * <p>
+     * Called just before the start of the test from the main engine thread.
+     *
+     * This is before the test elements are cloned.
+     *
+     * Note that not all the test
+     * variables will have been set up at this point.
+     * </p>
+     *
+     * <p>
+     * <b>
+     * N.B. testStarted() and testEnded() are called from different threads.
+     * </b>
+     * </p>
+     * @see org.apache.jmeter.engine.StandardJMeterEngine#run()
+     *
+     */
+    public void testStarted();
+
+    /**
+     * <p>
+     * Called just before the start of the test from the main engine thread.
+     *
+     * This is before the test elements are cloned.
+     *
+     * Note that not all the test
+     * variables will have been set up at this point.
+     * </p>
+     *
+     * <p>
+     * <b>
+     * N.B. testStarted() and testEnded() are called from different threads.
+     * </b>
+     * </p>
+     * @see org.apache.jmeter.engine.StandardJMeterEngine#run()
+     * @param host name of host
+     */
+    public void testStarted(String host);
+
+    /**
+     * <p>
+     * Called once for all threads after the end of a test.
+     *
+     * This will use the same element instances as at the start of the test.
+     * </p>
+     *
+     * <p>
+     * <b>
+     * N.B. testStarted() and testEnded() are called from different threads.
+     * </b>
+     * </p>
+     * @see org.apache.jmeter.engine.StandardJMeterEngine#stopTest()
+     *
+     */
+    public void testEnded();
+
+    /**
+     * <p>
+     * Called once for all threads after the end of a test.
+     *
+     * This will use the same element instances as at the start of the test.
+     * </p>
+     *
+     * <p>
+     * <b>
+     * N.B. testStarted() and testEnded() are called from different threads.
+     * </b>
+     * </p>
+     * @see org.apache.jmeter.engine.StandardJMeterEngine#stopTest()
+     * @param host name of host
+     *
+     */
+
+    public void testEnded(String host);
+
+}
\ No newline at end of file

Propchange: jmeter/trunk/src/core/org/apache/jmeter/testelement/TestStateListener.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jmeter/trunk/src/core/org/apache/jmeter/testelement/TestStateListener.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java Wed Aug 22 22:56:54 2012
@@ -44,7 +44,7 @@ import org.apache.jmeter.testbeans.TestB
 import org.apache.jmeter.testelement.AbstractScopedAssertion;
 import org.apache.jmeter.testelement.AbstractTestElement;
 import org.apache.jmeter.testelement.TestElement;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestIterationListener;
 import org.apache.jmeter.testelement.ThreadListener;
 import org.apache.jmeter.timers.Timer;
 import org.apache.jmeter.util.JMeterUtils;
@@ -85,10 +85,10 @@ public class JMeterThread implements Run
 
     private final JMeterVariables threadVars;
 
-    // Note: this is only used to implement TestListener#testIterationStart
+    // Note: this is only used to implement TestIterationListener#testIterationStart
     // Since this is a frequent event, it makes sense to create the list once rather than scanning each time
     // The memory used will be released when the thread finishes
-    private final Collection<TestListener> testIterationStartListeners;
+    private final Collection<TestIterationListener> testIterationStartListeners;
 
     private final ListenerNotifier notifier;
 
@@ -139,7 +139,7 @@ public class JMeterThread implements Run
         testTree = test;
         compiler = new TestCompiler(testTree, threadVars);
         controller = (Controller) testTree.getArray()[0];
-        SearchByClass<TestListener> threadListenerSearcher = new SearchByClass<TestListener>(TestListener.class); // TL - IS
+        SearchByClass<TestIterationListener> threadListenerSearcher = new SearchByClass<TestIterationListener>(TestIterationListener.class); // TL - IS
         test.traverse(threadListenerSearcher);
         testIterationStartListeners = threadListenerSearcher.getSearchResults();
         notifier = note;
@@ -760,7 +760,7 @@ public class JMeterThread implements Run
 
     void notifyTestListeners() {
         threadVars.incIteration();
-        for (TestListener listener : testIterationStartListeners) {
+        for (TestIterationListener listener : testIterationStartListeners) {
             if (listener instanceof TestElement) {
                 listener.testIterationStart(new LoopIterationEvent(controller, threadVars.getIteration()));
                 ((TestElement) listener).recoverRunningVersion();

Modified: jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellTestElement.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellTestElement.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellTestElement.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellTestElement.java Wed Aug 22 22:56:54 2012
@@ -21,9 +21,8 @@ package org.apache.jmeter.util;
 import java.io.Serializable;
 import java.util.List;
 
-import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.testelement.AbstractTestElement;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jmeter.testelement.ThreadListener;
 import org.apache.jmeter.threads.JMeterContext;
 import org.apache.jmeter.threads.JMeterContextService;
@@ -34,7 +33,7 @@ import org.apache.jorphan.util.JOrphanUt
 import org.apache.log.Logger;
 
 public abstract class BeanShellTestElement extends AbstractTestElement
-    implements Serializable, Cloneable, ThreadListener, TestListener
+    implements Serializable, Cloneable, ThreadListener, TestStateListener
 {
     private static final Logger log = LoggingManager.getLoggerForClass();
 
@@ -224,10 +223,6 @@ public abstract class BeanShellTestEleme
         }
     }
 
-    public void testIterationStart(LoopIterationEvent event) {
-        // Not implemented
-    }
-
     public void testStarted() {
         if (bshInterpreter == null || !hasInitFile) {
             return;

Modified: jmeter/trunk/src/functions/org/apache/jmeter/functions/StringFromFile.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/functions/org/apache/jmeter/functions/StringFromFile.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/functions/org/apache/jmeter/functions/StringFromFile.java (original)
+++ jmeter/trunk/src/functions/org/apache/jmeter/functions/StringFromFile.java Wed Aug 22 22:56:54 2012
@@ -26,11 +26,10 @@ import java.util.Collection;
 import java.util.LinkedList;
 import java.util.List;
 
-import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.engine.util.CompoundVariable;
 import org.apache.jmeter.samplers.SampleResult;
 import org.apache.jmeter.samplers.Sampler;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jmeter.threads.JMeterVariables;
 import org.apache.jmeter.util.JMeterUtils;
 import org.apache.jorphan.logging.LoggingManager;
@@ -64,7 +63,7 @@ import org.apache.log.Logger;
  * Because function instances are shared, it does not make sense to use the thread number as part of the file name.
  * @since 1.9
  */
-public class StringFromFile extends AbstractFunction implements TestListener {
+public class StringFromFile extends AbstractFunction implements TestStateListener {
     private static final Logger log = LoggingManager.getLoggerForClass();
 
     // Only modified by static block so no need to synchronize subsequent read-only access
@@ -330,8 +329,4 @@ public class StringFromFile extends Abst
     	closeFile();
     }
 
-    /** {@inheritDoc} */
-    public void testIterationStart(LoopIterationEvent event) {
-        //
-    }
 }
\ No newline at end of file

Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CacheManager.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CacheManager.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CacheManager.java (original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CacheManager.java Wed Aug 22 22:56:54 2012
@@ -40,7 +40,8 @@ import org.apache.jmeter.config.ConfigTe
 import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.protocol.http.util.HTTPConstants;
 import org.apache.jmeter.samplers.SampleResult;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestIterationListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jmeter.testelement.property.BooleanProperty;
 import org.apache.jorphan.logging.LoggingManager;
 import org.apache.log.Logger;
@@ -48,7 +49,7 @@ import org.apache.log.Logger;
 /**
  * Handles HTTP Caching
  */
-public class CacheManager extends ConfigTestElement implements TestListener, Serializable {
+public class CacheManager extends ConfigTestElement implements TestStateListener, TestIterationListener, Serializable {
 
     private static final long serialVersionUID = 234L;
 

Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CookieManager.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CookieManager.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CookieManager.java (original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CookieManager.java Wed Aug 22 22:56:54 2012
@@ -33,7 +33,8 @@ import java.util.ArrayList;
 import org.apache.commons.httpclient.cookie.CookiePolicy;
 import org.apache.jmeter.config.ConfigTestElement;
 import org.apache.jmeter.engine.event.LoopIterationEvent;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestIterationListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jmeter.testelement.property.BooleanProperty;
 import org.apache.jmeter.testelement.property.CollectionProperty;
 import org.apache.jmeter.testelement.property.PropertyIterator;
@@ -50,7 +51,7 @@ import org.apache.log.Logger;
  * Now uses Commons HttpClient parsing and matching code (since 2.1.2)
  *
  */
-public class CookieManager extends ConfigTestElement implements TestListener, Serializable {
+public class CookieManager extends ConfigTestElement implements TestStateListener, TestIterationListener, Serializable {
     private static final long serialVersionUID = 233L;
 
     private static final Logger log = LoggingManager.getLoggerForClass();

Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/modifier/ParamModifier.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/modifier/ParamModifier.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/modifier/ParamModifier.java (original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/modifier/ParamModifier.java Wed Aug 22 22:56:54 2012
@@ -21,12 +21,11 @@ package org.apache.jmeter.protocol.http.
 import java.io.Serializable;
 
 import org.apache.jmeter.config.Argument;
-import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.processor.PreProcessor;
 import org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase;
 import org.apache.jmeter.samplers.Sampler;
 import org.apache.jmeter.testelement.AbstractTestElement;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jmeter.testelement.property.PropertyIterator;
 import org.apache.jmeter.testelement.property.TestElementProperty;
 
@@ -48,7 +47,7 @@ import org.apache.jmeter.testelement.pro
  * @see ParamMask
  * @version $Revision$
  */
-public class ParamModifier extends AbstractTestElement implements TestListener, PreProcessor, Serializable {
+public class ParamModifier extends AbstractTestElement implements TestStateListener, PreProcessor, Serializable {
 
     private static final long serialVersionUID = 240L;
 
@@ -150,9 +149,4 @@ public class ParamModifier extends Abstr
         return false;
     }
 
-    /**
-     * @see TestListener#testIterationStart(LoopIterationEvent)
-     */
-    public void testIterationStart(LoopIterationEvent event) {
-    }
 }

Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java (original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java Wed Aug 22 22:56:54 2012
@@ -54,7 +54,7 @@ import org.apache.jmeter.samplers.Sample
 import org.apache.jmeter.samplers.SampleListener;
 import org.apache.jmeter.samplers.SampleResult;
 import org.apache.jmeter.testelement.TestElement;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jmeter.testelement.TestPlan;
 import org.apache.jmeter.testelement.WorkBench;
 import org.apache.jmeter.testelement.property.BooleanProperty;
@@ -1018,8 +1018,8 @@ public class ProxyControl extends Generi
             JMeterTreeNode subNode = kids.nextElement();
             if (subNode.isEnabled()) {
                 TestElement testElement = subNode.getTestElement();
-                if (testElement instanceof TestListener) {
-                    ((TestListener) testElement).testStarted();
+                if (testElement instanceof TestStateListener) {
+                    ((TestStateListener) testElement).testStarted();
                 }
             }
         }
@@ -1037,8 +1037,8 @@ public class ProxyControl extends Generi
             JMeterTreeNode subNode = kids.nextElement();
             if (subNode.isEnabled()) {
                 TestElement testElement = subNode.getTestElement();
-                if (testElement instanceof TestListener) {
-                    ((TestListener) testElement).testEnded();
+                if (testElement instanceof TestStateListener) { // TL - TE
+                    ((TestStateListener) testElement).testEnded();
                 }
             }
         }

Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.java (original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.java Wed Aug 22 22:56:54 2012
@@ -67,7 +67,8 @@ import org.apache.jmeter.samplers.Abstra
 import org.apache.jmeter.samplers.Entry;
 import org.apache.jmeter.samplers.SampleResult;
 import org.apache.jmeter.testelement.TestElement;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestIterationListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jmeter.testelement.ThreadListener;
 import org.apache.jmeter.testelement.property.BooleanProperty;
 import org.apache.jmeter.testelement.property.CollectionProperty;
@@ -93,7 +94,7 @@ import org.apache.oro.text.regex.Perl5Ma
  *
  */
 public abstract class HTTPSamplerBase extends AbstractSampler
-    implements TestListener, ThreadListener, HTTPConstantsInterface {
+    implements TestStateListener, TestIterationListener, ThreadListener, HTTPConstantsInterface {
 
     private static final long serialVersionUID = 240L;
 

Modified: jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/JavaSampler.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/JavaSampler.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/JavaSampler.java (original)
+++ jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/JavaSampler.java Wed Aug 22 22:56:54 2012
@@ -25,12 +25,11 @@ import java.util.Set;
 
 import org.apache.jmeter.config.Arguments;
 import org.apache.jmeter.config.ConfigTestElement;
-import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.samplers.AbstractSampler;
 import org.apache.jmeter.samplers.Entry;
 import org.apache.jmeter.samplers.SampleResult;
 import org.apache.jmeter.testelement.TestElement;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jmeter.testelement.property.TestElementProperty;
 import org.apache.jorphan.logging.LoggingManager;
 import org.apache.log.Logger;
@@ -41,7 +40,7 @@ import org.apache.log.Logger;
  * information on writing Java code to be executed by this sampler.
  *
  */
-public class JavaSampler extends AbstractSampler implements TestListener {
+public class JavaSampler extends AbstractSampler implements TestStateListener {
 
     private static final Logger log = LoggingManager.getLoggerForClass();
 
@@ -229,13 +228,13 @@ public class JavaSampler extends Abstrac
         return sb.toString();
     }
 
-    // TestListener implementation
-    /* Implements TestListener.testStarted() */
+    // TestStateListener implementation
+    /* Implements TestStateListener.testStarted() */
     public void testStarted() {
         log.debug(whoAmI() + "\ttestStarted");
     }
 
-    /* Implements TestListener.testStarted(String) */
+    /* Implements TestStateListener.testStarted(String) */
     public void testStarted(String host) {
         log.debug(whoAmI() + "\ttestStarted(" + host + ")");
     }
@@ -259,15 +258,11 @@ public class JavaSampler extends Abstrac
         }
     }
 
-    /* Implements TestListener.testEnded(String) */
+    /* Implements TestStateListener.testEnded(String) */
     public void testEnded(String host) {
         testEnded();
     }
 
-    /* Implements TestListener.testIterationStart(LoopIterationEvent) */
-    public void testIterationStart(LoopIterationEvent event) {
-    }
-
     /**
      * A {@link JavaSamplerClient} implementation used for error handling. If an
      * error occurs while creating the real JavaSamplerClient object, it is

Modified: jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/AbstractJDBCTestElement.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/AbstractJDBCTestElement.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/AbstractJDBCTestElement.java (original)
+++ jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/AbstractJDBCTestElement.java Wed Aug 22 22:56:54 2012
@@ -39,11 +39,10 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.samplers.SampleResult;
 import org.apache.jmeter.save.CSVSaveService;
 import org.apache.jmeter.testelement.AbstractTestElement;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jmeter.threads.JMeterVariables;
 import org.apache.jmeter.util.JMeterUtils;
 import org.apache.jorphan.logging.LoggingManager;
@@ -53,7 +52,7 @@ import org.apache.log.Logger;
  * A base class for all JDBC test elements handling the basics of a SQL request.
  * 
  */
-public abstract class AbstractJDBCTestElement extends AbstractTestElement implements TestListener{
+public abstract class AbstractJDBCTestElement extends AbstractTestElement implements TestStateListener{
     private static final long serialVersionUID = 235L;
 
     private static final Logger log = LoggingManager.getLoggerForClass();
@@ -615,7 +614,7 @@ public abstract class AbstractJDBCTestEl
 
 	/** 
 	 * {@inheritDoc}
-	 * @see org.apache.jmeter.testelement.TestListener#testStarted()
+	 * @see org.apache.jmeter.testelement.TestStateListener#testStarted()
 	 */
 	public void testStarted() {
 		testStarted("");
@@ -623,7 +622,7 @@ public abstract class AbstractJDBCTestEl
 
 	/**
 	 * {@inheritDoc}
-	 * @see org.apache.jmeter.testelement.TestListener#testStarted(java.lang.String)
+	 * @see org.apache.jmeter.testelement.TestStateListener#testStarted(java.lang.String)
 	 */
 	public void testStarted(String host) {
 		cleanCache();
@@ -631,7 +630,7 @@ public abstract class AbstractJDBCTestEl
 
 	/**
 	 * {@inheritDoc}
-	 * @see org.apache.jmeter.testelement.TestListener#testEnded()
+	 * @see org.apache.jmeter.testelement.TestStateListener#testEnded()
 	 */
 	public void testEnded() {
 		testEnded("");
@@ -639,7 +638,7 @@ public abstract class AbstractJDBCTestEl
 
 	/**
 	 * {@inheritDoc}
-	 * @see org.apache.jmeter.testelement.TestListener#testEnded(java.lang.String)
+	 * @see org.apache.jmeter.testelement.TestStateListener#testEnded(java.lang.String)
 	 */
 	public void testEnded(String host) {
 		cleanCache();		
@@ -655,11 +654,4 @@ public abstract class AbstractJDBCTestEl
 		perConnCache.clear();
 	}
 
-	/**
-	 * {@inheritDoc}
-	 * @see org.apache.jmeter.testelement.TestListener#testIterationStart(org.apache.jmeter.engine.event.LoopIterationEvent)
-	 */
-	public void testIterationStart(LoopIterationEvent event) {
-		// NOOP
-	}  
 }
\ No newline at end of file

Modified: jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/config/DataSourceElement.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/config/DataSourceElement.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/config/DataSourceElement.java (original)
+++ jmeter/trunk/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/config/DataSourceElement.java Wed Aug 22 22:56:54 2012
@@ -31,18 +31,17 @@ import org.apache.avalon.framework.confi
 import org.apache.avalon.framework.configuration.DefaultConfiguration;
 import org.apache.avalon.framework.logger.LogKitLogger;
 import org.apache.jmeter.config.ConfigElement;
-import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.testbeans.TestBean;
 import org.apache.jmeter.testbeans.TestBeanHelper;
 import org.apache.jmeter.testelement.AbstractTestElement;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jmeter.threads.JMeterContextService;
 import org.apache.jmeter.threads.JMeterVariables;
 import org.apache.jorphan.logging.LoggingManager;
 import org.apache.log.Logger;
 
 public class DataSourceElement extends AbstractTestElement
-    implements ConfigElement, TestListener, TestBean
+    implements ConfigElement, TestStateListener, TestBean
     {
     private static final Logger log = LoggingManager.getLoggerForClass();
 
@@ -86,9 +85,6 @@ public class DataSourceElement extends A
         testEnded();
     }
 
-    public void testIterationStart(LoopIterationEvent event) {
-    }
-
     @SuppressWarnings("deprecation") // call to TestBeanHelper.prepare() is intentional
     public void testStarted() {
         this.setRunningVersion(true);

Modified: jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/JMSSampler.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/JMSSampler.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/JMSSampler.java (original)
+++ jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/JMSSampler.java Wed Aug 22 22:56:54 2012
@@ -38,7 +38,6 @@ import javax.naming.InitialContext;
 import javax.naming.NamingException;
 
 import org.apache.jmeter.config.Arguments;
-import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.protocol.jms.Utils;
 import org.apache.jmeter.samplers.AbstractSampler;
 import org.apache.jmeter.samplers.Entry;
@@ -292,10 +291,6 @@ public class JMSSampler extends Abstract
         return getQueueConnectionFactory() + ", queue: " + getSendQueue();
     }
 
-    public void testIterationStart(LoopIterationEvent event) {
-        // LOGGER.debug("testIterationStart");
-    }
-
     public void threadStarted() {
         logThreadStart();
 

Modified: jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/PublisherSampler.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/PublisherSampler.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/PublisherSampler.java (original)
+++ jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/PublisherSampler.java Wed Aug 22 22:56:54 2012
@@ -30,7 +30,6 @@ import javax.jms.Message;
 import javax.naming.NamingException;
 
 import org.apache.jmeter.config.Arguments;
-import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.protocol.jms.Utils;
 import org.apache.jmeter.protocol.jms.client.ClientPool;
 import org.apache.jmeter.protocol.jms.client.InitialContextFactory;
@@ -38,7 +37,7 @@ import org.apache.jmeter.protocol.jms.cl
 import org.apache.jmeter.protocol.jms.control.gui.JMSPublisherGui;
 import org.apache.jmeter.samplers.SampleResult;
 import org.apache.jmeter.services.FileServer;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jmeter.testelement.property.TestElementProperty;
 import org.apache.jmeter.util.JMeterUtils;
 import org.apache.jorphan.io.TextFile;
@@ -51,7 +50,7 @@ import com.thoughtworks.xstream.XStream;
 /**
  * This class implements the JMS Publisher sampler.
  */
-public class PublisherSampler extends BaseJMSSampler implements TestListener {
+public class PublisherSampler extends BaseJMSSampler implements TestStateListener {
 
     private static final long serialVersionUID = 233L;
 
@@ -105,8 +104,6 @@ public class PublisherSampler extends Ba
 
     /**
      * endTest cleans up the client
-     *
-     * @see junit.framework.TestListener#endTest(junit.framework.Test)
      */
     public void testEnded() {
         log.debug("PublisherSampler.testEnded called");
@@ -118,12 +115,6 @@ public class PublisherSampler extends Ba
     }
 
     /**
-     * NO implementation provided for the sampler. It is necessary in this case.
-     */
-    public void testIterationStart(LoopIterationEvent event) {
-    }
-
-    /**
      * initialize the Publisher client.
      * @throws JMSException 
      * @throws NamingException 

Modified: jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java (original)
+++ jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java Wed Aug 22 22:56:54 2012
@@ -26,14 +26,13 @@ import javax.jms.TextMessage;
 import javax.naming.NamingException;
 
 import org.apache.commons.lang.StringUtils;
-import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.protocol.jms.Utils;
 import org.apache.jmeter.protocol.jms.client.InitialContextFactory;
 import org.apache.jmeter.protocol.jms.client.ReceiveSubscriber;
 import org.apache.jmeter.protocol.jms.control.gui.JMSSubscriberGui;
 import org.apache.jmeter.samplers.Interruptible;
 import org.apache.jmeter.samplers.SampleResult;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jmeter.testelement.ThreadListener;
 import org.apache.jmeter.util.JMeterUtils;
 import org.apache.jorphan.logging.LoggingManager;
@@ -52,7 +51,7 @@ import org.apache.log.Logger;
 // Note: originally the code did use the ClientPool to "share" subscribers, however since the
 // key was "this" and each sampler is unique - nothing was actually shared.
 
-public class SubscriberSampler extends BaseJMSSampler implements Interruptible, ThreadListener, TestListener {
+public class SubscriberSampler extends BaseJMSSampler implements Interruptible, ThreadListener, TestStateListener {
 
     private static final long serialVersionUID = 240L;
 
@@ -455,13 +454,6 @@ public class SubscriberSampler extends B
     /**
      * {@inheritDoc}
      */
-    public void testIterationStart(LoopIterationEvent event) {
-    	// NOOP
-    }
-
-    /**
-     * {@inheritDoc}
-     */
     public void testStarted() {
     	testStarted("");
     }

Modified: jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/sampler/LDAPExtSampler.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/sampler/LDAPExtSampler.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/sampler/LDAPExtSampler.java (original)
+++ jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/sampler/LDAPExtSampler.java Wed Aug 22 22:56:54 2012
@@ -43,14 +43,13 @@ import org.apache.commons.lang.StringEsc
 import org.apache.jmeter.config.Argument;
 import org.apache.jmeter.config.Arguments;
 import org.apache.jmeter.config.ConfigTestElement;
-import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.protocol.ldap.config.gui.LDAPArgument;
 import org.apache.jmeter.protocol.ldap.config.gui.LDAPArguments;
 import org.apache.jmeter.samplers.AbstractSampler;
 import org.apache.jmeter.samplers.Entry;
 import org.apache.jmeter.samplers.SampleResult;
 import org.apache.jmeter.testelement.TestElement;
-import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.TestStateListener;
 import org.apache.jmeter.testelement.property.PropertyIterator;
 import org.apache.jmeter.testelement.property.StringProperty;
 import org.apache.jmeter.testelement.property.TestElementProperty;
@@ -64,7 +63,7 @@ import org.apache.log.Logger;
  * test available in the LDAP Test.
  ******************************************************************************/
 
-public class LDAPExtSampler extends AbstractSampler implements TestListener {
+public class LDAPExtSampler extends AbstractSampler implements TestStateListener {
 
     private static final Logger log = LoggingManager.getLoggerForClass();
 
@@ -1083,10 +1082,6 @@ public class LDAPExtSampler extends Abst
         ldapContexts.clear();
     }
 
-    public void testIterationStart(LoopIterationEvent event) {
-        // ignored
-    }
-
     /**
      * @see org.apache.jmeter.samplers.AbstractSampler#applies(org.apache.jmeter.config.ConfigTestElement)
      */

Modified: jmeter/trunk/src/reports/org/apache/jmeter/testelement/ReportPlan.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/reports/org/apache/jmeter/testelement/ReportPlan.java?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/src/reports/org/apache/jmeter/testelement/ReportPlan.java (original)
+++ jmeter/trunk/src/reports/org/apache/jmeter/testelement/ReportPlan.java Wed Aug 22 22:56:54 2012
@@ -27,7 +27,6 @@ import java.util.Map;
 
 import org.apache.jmeter.config.Arguments;
 import org.apache.jmeter.config.ConfigElement;
-import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.services.FileServer;
 import org.apache.jmeter.testelement.property.CollectionProperty;
 import org.apache.jmeter.testelement.property.TestElementProperty;
@@ -36,7 +35,7 @@ import org.apache.jmeter.util.JMeterUtil
 import org.apache.jorphan.logging.LoggingManager;
 import org.apache.log.Logger;
 
-public class ReportPlan extends AbstractTestElement implements Serializable, TestListener {
+public class ReportPlan extends AbstractTestElement implements Serializable, TestStateListener {
     private static final long serialVersionUID = 233L;
 
     private static final Logger log = LoggingManager.getLoggerForClass();
@@ -171,7 +170,7 @@ public class ReportPlan extends Abstract
     /*
      * (non-Javadoc)
      *
-     * @see org.apache.jmeter.testelement.TestListener#testEnded()
+     * @see org.apache.jmeter.testelement.TestStateListener#testEnded()
      */
     public void testEnded() {
         try {
@@ -184,7 +183,7 @@ public class ReportPlan extends Abstract
     /*
      * (non-Javadoc)
      *
-     * @see org.apache.jmeter.testelement.TestListener#testEnded(java.lang.String)
+     * @see org.apache.jmeter.testelement.TestStateListener#testEnded(java.lang.String)
      */
     public void testEnded(String host) {
         testEnded();
@@ -194,15 +193,7 @@ public class ReportPlan extends Abstract
     /*
      * (non-Javadoc)
      *
-     * @see org.apache.jmeter.testelement.TestListener#testIterationStart(org.apache.jmeter.engine.event.LoopIterationEvent)
-     */
-    public void testIterationStart(LoopIterationEvent event) {
-    }
-
-    /*
-     * (non-Javadoc)
-     *
-     * @see org.apache.jmeter.testelement.TestListener#testStarted()
+     * @see org.apache.jmeter.testelement.TestStateListener#testStarted()
      */
     public void testStarted() {
         if (getBasedir() != null && getBasedir().length() > 0) {
@@ -217,7 +208,7 @@ public class ReportPlan extends Abstract
     /*
      * (non-Javadoc)
      *
-     * @see org.apache.jmeter.testelement.TestListener#testStarted(java.lang.String)
+     * @see org.apache.jmeter.testelement.TestStateListener#testStarted(java.lang.String)
      */
     public void testStarted(String host) {
         testStarted();

Modified: jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1376300&r1=1376299&r2=1376300&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml (original)
+++ jmeter/trunk/xdocs/changes.xml Wed Aug 22 22:56:54 2012
@@ -144,6 +144,9 @@ Shortcut for Function Helper Dialog is n
 <li><bugzilla>53718</bugzilla> - Add a new visualizer to draw a line graph showing the evolution of response time for a test</li>
 <li><bugzilla>53738</bugzilla> - Keep track of number of threads started and finished</li>
 <li><bugzilla>53753</bugzilla> -  Summariser: no point displaying fractional time in most cases</li>
+<li><bugzilla>53749</bugzilla> - TestListener interface could perhaps be split up. 
+This should reduce per-thread memory requirements and processing, 
+as only test elements that actually use testIterationStart functionality now need to be handled.</li>
 </ul>
 
 <h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>