Author: sebb
Date: Fri Sep 19 17:44:52 2008
New Revision: 697309

URL: http://svn.apache.org/viewvc?rev=697309&view=rev
Log:
Move PreProcessor handling from TestCompiler to JMeterThread class,
which already handles PostProcessors.

Modified:
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/TestCompiler.java
    jakarta/jmeter/trunk/xdocs/changes.xml

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java?rev=697309&r1=697308&r2=697309&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java 
(original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java 
Fri Sep 19 17:44:52 2008
@@ -34,11 +34,13 @@
 import org.apache.jmeter.engine.event.LoopIterationListener;
 import org.apache.jmeter.gui.GuiPackage;
 import org.apache.jmeter.processor.PostProcessor;
+import org.apache.jmeter.processor.PreProcessor;
 import org.apache.jmeter.samplers.SampleEvent;
 import org.apache.jmeter.samplers.SampleListener;
 import org.apache.jmeter.samplers.SampleResult;
 import org.apache.jmeter.samplers.Sampler;
 import org.apache.jmeter.testbeans.TestBeanHelper;
+import org.apache.jmeter.testelement.AbstractTestElement;
 import org.apache.jmeter.testelement.TestElement;
 import org.apache.jmeter.testelement.TestListener;
 import org.apache.jmeter.testelement.ThreadListener;
@@ -323,6 +325,7 @@
             if(current != null) {
                 // Get the sampler ready to sample
                 SamplePackage pack = compiler.configureSampler(current);
+                runPreProcessors(pack.getPreProcessors());
 
                 // Hack: save the package for any transaction controllers
                 threadVars.putObject(PACKAGE_OBJECT, pack);
@@ -563,6 +566,18 @@
         }
     }
 
+    private void runPreProcessors(List preProcessors) {
+        Iterator iter = preProcessors.iterator();
+        while (iter.hasNext()) {
+            PreProcessor ex = (PreProcessor) iter.next();
+            if (log.isDebugEnabled()) {
+                log.debug("Running preprocessor: " + ((AbstractTestElement) 
ex).getName());
+            }
+            TestBeanHelper.prepare((TestElement) ex);
+            ex.process();
+        }
+    }
+
     private void delay(List timers) {
         long sum = 0;
         Iterator iter = timers.iterator();

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/TestCompiler.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/TestCompiler.java?rev=697309&r1=697308&r2=697309&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/TestCompiler.java 
(original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/TestCompiler.java 
Fri Sep 19 17:44:52 2008
@@ -38,7 +38,6 @@
 import org.apache.jmeter.samplers.SampleListener;
 import org.apache.jmeter.samplers.Sampler;
 import org.apache.jmeter.testbeans.TestBeanHelper;
-import org.apache.jmeter.testelement.AbstractTestElement;
 import org.apache.jmeter.testelement.TestElement;
 import org.apache.jmeter.timers.Timer;
 import org.apache.jorphan.collections.HashTree;
@@ -49,17 +48,17 @@
 public class TestCompiler implements HashTreeTraverser {
     private static final Logger log = LoggingManager.getLoggerForClass();
 
-    private LinkedList stack = new LinkedList();
+    private final LinkedList stack = new LinkedList();
 
-    private Map samplerConfigMap = new HashMap();
+    private final Map samplerConfigMap = new HashMap();
 
-    private Map transactionControllerConfigMap = new HashMap();
+    private final Map transactionControllerConfigMap = new HashMap();
 
-    private HashTree testTree;
+    private final HashTree testTree;
 
     /*
-     * This set keeps track of which ObjectPairs have been seen Its purpose is
-     * not entirely clear (please document if you know!) but it is needed,..
+     * This set keeps track of which ObjectPairs have been seen.
+     * Its purpose is not entirely clear (please document if you know!) but it 
is needed,..
      */
     private static final Set pairing = new HashSet();
 
@@ -84,7 +83,6 @@
         SamplePackage pack = (SamplePackage) samplerConfigMap.get(sampler);
         pack.setSampler(sampler);
         configureWithConfigElements(sampler, pack.getConfigs());
-        runPreProcessors(pack.getPreProcessors());
         return pack;
     }
 
@@ -95,18 +93,6 @@
         return pack;
     }
 
-    private void runPreProcessors(List preProcessors) {
-        Iterator iter = preProcessors.iterator();
-        while (iter.hasNext()) {
-            PreProcessor ex = (PreProcessor) iter.next();
-            if (log.isDebugEnabled()) {
-                log.debug("Running preprocessor: " + ((AbstractTestElement) 
ex).getName());
-            }
-            TestBeanHelper.prepare((TestElement) ex);
-            ex.process();
-        }
-    }
-
     public void done(SamplePackage pack) {
         pack.recoverRunningVersion();
     }

Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=697309&r1=697308&r2=697309&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Fri Sep 19 17:44:52 2008
@@ -80,6 +80,11 @@
 They do not affect test plans or test behaviour.
 </p>
 <p>
+The PreProcessors are now invoked directly by the JMeterThread class,
+rather than by the TestCompiler#configureSampler() method. (JMeterThread 
handles the PostProcessors).
+This does not affect test plans or behaviour, but could perhaps affect 3rd 
party add-ons (very unlikely).
+</p>
+<p>
 Moved the Scoping Rules sub-section from Section 3. "Building a Test Plan"  to 
Section 4. "Elements of a test plan"
 </p>
 
@@ -120,6 +125,7 @@
 <li>Introduce AbstractListenerGui class to make it easier to create Listeners 
with no visual output</li>
 <li>Assertions run after PostProcessors; change order of pop-up menus 
accordingly</li>
 <li>Remove unnecessary clone() methods from function classes</li>
+<li>Moved PreProcessor invocation to JMeterThread class</li>
 </ul>
 </section> 
 </body> 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to