mstover1    2003/03/18 13:36:03

  Modified:    bin      jmeter.properties
               src/components/org/apache/jmeter/extractor
                        RegexExtractor.java
               src/core/org/apache/jmeter/gui/util MenuFactory.java
               src/core/org/apache/jmeter/processor PostProcessor.java
               src/core/org/apache/jmeter/resources messages.properties
                        messages_de.properties messages_ja.properties
                        messages_no.properties
               src/core/org/apache/jmeter/threads JMeterContext.java
                        JMeterThread.java SamplePackage.java
                        TestCompiler.java
  Added:       src/core/org/apache/jmeter/processor/gui
                        AbstractPreProcessorGui.java
  Log:
  PreProcessor interface is now fully wired in
  
  Revision  Changes    Path
  1.60      +1 -1      jakarta-jmeter/bin/jmeter.properties
  
  Index: jmeter.properties
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/bin/jmeter.properties,v
  retrieving revision 1.59
  retrieving revision 1.60
  diff -u -r1.59 -r1.60
  --- jmeter.properties 14 Mar 2003 21:15:35 -0000      1.59
  +++ jmeter.properties 18 Mar 2003 21:36:01 -0000      1.60
  @@ -68,7 +68,7 @@
   
   #Logging levels for the logging categories in JMeter.  Correct values are 
FATAL_ERROR, ERROR, WARN, INFO, and DEBUG
   log_level.jmeter=WARN
  -log_level.jmeter.engine=DEBUG
  +log_level.jmeter.engine=WARN
   log_level.jmeter.gui=WARN
   log_level.jmeter.elements=WARN
   log_level.jmeter.util=WARN
  
  
  
  1.3       +19 -30    
jakarta-jmeter/src/components/org/apache/jmeter/extractor/RegexExtractor.java
  
  Index: RegexExtractor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/extractor/RegexExtractor.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- RegexExtractor.java       21 Feb 2003 18:19:43 -0000      1.2
  +++ RegexExtractor.java       18 Mar 2003 21:36:01 -0000      1.3
  @@ -10,7 +10,8 @@
   import org.apache.jmeter.processor.PostProcessor;
   import org.apache.jmeter.samplers.SampleResult;
   import org.apache.jmeter.testelement.AbstractTestElement;
  -import org.apache.jmeter.testelement.VariablesCollection;
  +import org.apache.jmeter.threads.JMeterContext;
  +import org.apache.jmeter.threads.JMeterContextService;
   import org.apache.jmeter.threads.JMeterVariables;
   import org.apache.jmeter.util.JMeterUtils;
   import org.apache.log.Hierarchy;
  @@ -37,8 +38,6 @@
       public static final String MATCH_NUMBER = "RegexExtractor.match_number";
       public static final String DEFAULT = "RegexExtractor.default";
       public static final String TEMPLATE = "RegexExtractor.template";
  -
  -    private VariablesCollection vars = new VariablesCollection();
       private Object[] template = null;
   
       private static PatternCacheLRU patternCache = new PatternCacheLRU(1000, new 
Perl5Compiler());
  @@ -54,12 +53,14 @@
        * into variables for use later in the test.
        * @see 
org.apache.jmeter.config.PostProcessor#processResult(org.apache.jmeter.samplers.SampleResult)
        */
  -    public void process(SampleResult result)
  +    public void process()
       {
  +        initTemplate();
  +        JMeterContext context = JMeterContextService.getContext();
           log.debug("RegexExtractor processing result");
  -        vars.getVariables().put(getRefName(), getDefaultValue());
  +        context.getVariables().put(getRefName(), getDefaultValue());
           Perl5Matcher matcher = (Perl5Matcher) localMatcher.get();
  -        PatternMatcherInput input = new PatternMatcherInput(new 
String(result.getResponseData()));
  +        PatternMatcherInput input = new PatternMatcherInput(new 
String(context.getPreviousResult().getResponseData()));
           log.debug("Regex = " + getRegex());
           Pattern pattern = patternCache.getPattern(getRegex(), 
Perl5Compiler.READ_ONLY_MASK);
           List matches = new ArrayList();
  @@ -84,7 +85,7 @@
               MatchResult match = getCorrectMatch(matches);
               if(match != null)
               {
  -                vars.getVariables().put(getRefName(), generateResult(match));
  +                context.getVariables().put(getRefName(), generateResult(match));
               }
           }
           catch (RuntimeException e)
  @@ -97,7 +98,6 @@
       {
           RegexExtractor cloned = (RegexExtractor)super.clone();
           cloned.template = this.template;
  -        cloned.vars = vars;
           return cloned;
       }
   
  @@ -122,6 +122,10 @@
   
       private void initTemplate()
       {
  +        if(template != null)
  +        {
  +            return;
  +        }
           List pieces = new ArrayList();
           List combined = new LinkedList();
           String rawTemplate = getTemplate();
  @@ -197,20 +201,7 @@
               return null;
           }
       }
  -
  -    /**
  -     * This method is ignored.
  -     */
  -    public void iterationStarted(int iterationCount)
  -    {}
  -    /**
  -     * @see 
org.apache.jmeter.testelement.ThreadListener#setJMeterVariables(org.apache.jmeter.threads.JMeterVariables)
  -     */
  -    public void setJMeterVariables(JMeterVariables vars)
  -    {
  -        this.vars.addJMeterVariables(vars);
  -        initTemplate();
  -    }
  +    
       public void setRegex(String regex)
       {
           setProperty(REGEX, regex);
  @@ -294,6 +285,8 @@
                       + " 
field=\"pinpositionvalue3\"></value></row></company-xmlext-query-ret>";
               result.setResponseData(data.getBytes());
               vars = new JMeterVariables();
  +            JMeterContextService.getContext().setVariables(vars);
  +            JMeterContextService.getContext().setPreviousResult(result);
           }
   
           public void testVariableExtraction() throws Exception
  @@ -301,8 +294,7 @@
               extractor.setRegex("<value field=\"(pinposition\\d+)\">(\\d+)</value>");
               extractor.setTemplate("$2$");
               extractor.setMatchNumber(2);
  -            extractor.setJMeterVariables(vars);
  -            extractor.process(result);
  +            extractor.process();
               assertEquals("5", vars.get("regVal"));
           }
   
  @@ -311,8 +303,7 @@
               extractor.setRegex("<value field=\"(pinposition\\d+)\">(\\d+)</value>");
               extractor.setTemplate("$1$");
               extractor.setMatchNumber(3);
  -            extractor.setJMeterVariables(vars);
  -            extractor.process(result);
  +            extractor.process();
               assertEquals("pinposition3", vars.get("regVal"));
           }
   
  @@ -322,8 +313,7 @@
               extractor.setTemplate("$2$");
               extractor.setMatchNumber(4);
               extractor.setDefaultValue("default");
  -            extractor.setJMeterVariables(vars);
  -            extractor.process(result);
  +            extractor.process();
               assertEquals("default", vars.get("regVal"));
           }
   
  @@ -332,8 +322,7 @@
               extractor.setRegex("<value field=\"(pinposition\\d+)\">(\\d+)</value>");
               extractor.setTemplate("_$1$");
               extractor.setMatchNumber(2);
  -            extractor.setJMeterVariables(vars);
  -            extractor.process(result);
  +            extractor.process();
               assertEquals("_pinposition2", vars.get("regVal"));
           }
       }
  
  
  
  1.14      +21 -8     
jakarta-jmeter/src/core/org/apache/jmeter/gui/util/MenuFactory.java
  
  Index: MenuFactory.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/util/MenuFactory.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- MenuFactory.java  21 Feb 2003 18:19:44 -0000      1.13
  +++ MenuFactory.java  18 Mar 2003 21:36:02 -0000      1.14
  @@ -110,7 +110,9 @@
         ***************************************/
        public final static String MODIFIERS = "menu_modifiers";
       
  -    public final static String POST_PROCESSORS = "menu_extractors";
  +    public final static String POST_PROCESSORS = "menu_post_processors";
  +    
  +    public final static String PRE_PROCESSORS = "menu_pre_processors";
        /****************************************
         * !ToDo (Field description)
         ***************************************/
  @@ -132,7 +134,7 @@
   
        private static List timers, controllers, samplers,
                        configElements, modifiers, responseBasedModifiers,
  -                     assertions, listeners, nonTestElements,extractors;
  +                     assertions, listeners, 
nonTestElements,postProcessors,preProcessors;
   
        private static JMenu timerMenu;
        private static JMenu controllerMenu;
  @@ -143,7 +145,8 @@
        private static JMenu assertionMenu;
        private static JMenu configMenu;
        private static JMenu insertControllerMenu;
  -    private static JMenu extractorMenu;
  +    private static JMenu postProcessorMenu;
  +    private static JMenu preProcessorMenu;
        static
        {
                try
  @@ -263,7 +266,9 @@
                                MenuFactory.SAMPLERS, MenuFactory.CONFIG_ELEMENTS,
                                
MenuFactory.MODIFIERS,MenuFactory.RESPONSE_BASED_MODIFIERS,
                                MenuFactory.TIMERS,
  -                             MenuFactory.LISTENERS},
  +                             MenuFactory.LISTENERS,
  +                MenuFactory.PRE_PROCESSORS,
  +                MenuFactory.POST_PROCESSORS},
                                JMeterUtils.getResString("Add"),
                                "Add"));
                pop.add(makeMenus(new String[]{MenuFactory.CONTROLLERS},
  @@ -286,6 +291,7 @@
                                MenuFactory.RESPONSE_BASED_MODIFIERS,
                                MenuFactory.TIMERS,
                                MenuFactory.LISTENERS,
  +                MenuFactory.PRE_PROCESSORS,
                   MenuFactory.POST_PROCESSORS},
                                JMeterUtils.getResString("Add"),
                                "Add"));
  @@ -449,7 +455,8 @@
                        responseBasedModifiers = new LinkedList();
                        assertions = new LinkedList();
                        listeners = new LinkedList();
  -            extractors = new LinkedList();
  +            postProcessors = new LinkedList();
  +            preProcessors = new LinkedList();
                        nonTestElements = new LinkedList();
                        menuMap.put(TIMERS, timers);
                        menuMap.put(ASSERTIONS, assertions);
  @@ -460,7 +467,8 @@
                        menuMap.put(NON_TEST_ELEMENTS, nonTestElements);
                        menuMap.put(RESPONSE_BASED_MODIFIERS, responseBasedModifiers);
                        menuMap.put(SAMPLERS, samplers);
  -            menuMap.put(POST_PROCESSORS,extractors);
  +            menuMap.put(POST_PROCESSORS,postProcessors);
  +            menuMap.put(PRE_PROCESSORS,preProcessors);
                        Collections.sort(guiClasses);
                        Iterator iter = guiClasses.iterator();
                        while(iter.hasNext())
  @@ -493,7 +501,12 @@
                   
                   if(categories.contains(POST_PROCESSORS))
                   {
  -                    extractors.add(new MenuInfo(item.getStaticLabel(), 
item.getClass().getName()));
  +                    postProcessors.add(new MenuInfo(item.getStaticLabel(), 
item.getClass().getName()));
  +                }
  +                
  +                if(categories.contains(PRE_PROCESSORS))
  +                {
  +                    preProcessors.add(new MenuInfo(item.getStaticLabel(), 
item.getClass().getName()));
                   }
   
                                if(categories.contains(CONTROLLERS))
  
  
  
  1.2       +2 -4      
jakarta-jmeter/src/core/org/apache/jmeter/processor/PostProcessor.java
  
  Index: PostProcessor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/processor/PostProcessor.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- PostProcessor.java        21 Feb 2003 18:19:44 -0000      1.1
  +++ PostProcessor.java        18 Mar 2003 21:36:02 -0000      1.2
  @@ -1,17 +1,15 @@
   package org.apache.jmeter.processor;
   
  -import org.apache.jmeter.samplers.SampleResult;
  -import org.apache.jmeter.testelement.ThreadListener;
   
   /**
    * The PostProcessor is activated after a sample result has been generated.
    */
  -public interface PostProcessor extends ThreadListener
  +public interface PostProcessor
   {
      /**
       * Provides the PostProcessor with a SampleResult object from which to extract
       * values for use in future Queries.
       */
  -   public void process(SampleResult result);
  +   public void process();
   
   }
  
  
  
  1.1                  
jakarta-jmeter/src/core/org/apache/jmeter/processor/gui/AbstractPreProcessorGui.java
  
  Index: AbstractPreProcessorGui.java
  ===================================================================
  package org.apache.jmeter.processor.gui;
  
  import java.util.Arrays;
  import java.util.Collection;
  
  import javax.swing.JPopupMenu;
  
  import org.apache.jmeter.gui.AbstractJMeterGuiComponent;
  import org.apache.jmeter.gui.util.MenuFactory;
  
  /**
   * @author Administrator
   *
   * To change this generated comment edit the template variable "typecomment":
   * Window>Preferences>Java>Templates.
   */
  public abstract class AbstractPreProcessorGui extends AbstractJMeterGuiComponent
  {
  
      public JPopupMenu createPopupMenu()
     {
        return MenuFactory.getDefaultExtractorMenu();
     }
  
     public Collection getMenuCategories()
     {
        return Arrays.asList(new String[]{MenuFactory.PRE_PROCESSORS});
     }
  
  }
  
  
  
  1.31      +2 -1      
jakarta-jmeter/src/core/org/apache/jmeter/resources/messages.properties
  
  Index: messages.properties
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/resources/messages.properties,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- messages.properties       14 Mar 2003 00:31:18 -0000      1.30
  +++ messages.properties       18 Mar 2003 21:36:02 -0000      1.31
  @@ -336,7 +336,8 @@
   default_value_field=Default Value:
   ref_name_field=Reference Name:
   match_num_field=Match No. (0 for Random):
  -menu_extractors=Extractors and Post Request Processors
  +menu_post_processors=Post Processors
  +menu_pre_processors=Pre Processors
   string_from_file_file_name=Enter full path to file
   simple_data_writer_title=Simple Data Writer
   include_equals=Include Equals?
  
  
  
  1.26      +2 -1      
jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_de.properties
  
  Index: messages_de.properties
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_de.properties,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- messages_de.properties    18 Feb 2003 16:03:44 -0000      1.25
  +++ messages_de.properties    18 Mar 2003 21:36:02 -0000      1.26
  @@ -330,7 +330,8 @@
   default_value_field=Default Value:
   ref_name_field=Reference Name:
   match_num_field=Match No. (0 for Random):
  -menu_extractors=Extractors and Post Request Processors
  +menu_post_processors=Post Processors
  +menu_pre_processors=Pre Processors
   graph_results_median=Median
   string_from_file_file_name=Enter full path to file
   simple_data_writer_title=Simple Data Writer
  
  
  
  1.23      +2 -1      
jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_ja.properties
  
  Index: messages_ja.properties
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_ja.properties,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- messages_ja.properties    18 Feb 2003 16:03:44 -0000      1.22
  +++ messages_ja.properties    18 Mar 2003 21:36:02 -0000      1.23
  @@ -325,7 +325,8 @@
   default_value_field=Default Value:
   ref_name_field=Reference Name:
   match_num_field=Match No. (0 for Random):
  -menu_extractors=Extractors and Post Request Processors
  +menu_post_processors=Post Processors
  +menu_pre_processors=Pre Processors
   graph_results_median=Median
   string_from_file_file_name=Enter full path to file
   simple_data_writer_title=Simple Data Writer
  
  
  
  1.23      +2 -1      
jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_no.properties
  
  Index: messages_no.properties
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_no.properties,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- messages_no.properties    18 Feb 2003 16:03:44 -0000      1.22
  +++ messages_no.properties    18 Mar 2003 21:36:02 -0000      1.23
  @@ -317,7 +317,8 @@
   default_value_field=Default Value:
   ref_name_field=Reference Name:
   match_num_field=Match No. (0 for Random):
  -menu_extractors=Extractors and Post Request Processors
  +menu_post_processors=Post Processors
  +menu_pre_processors=Pre Processors
   graph_results_median=Median
   string_from_file_file_name=Enter full path to file
   simple_data_writer_title=Simple Data Writer
  
  
  
  1.3       +2 -2      
jakarta-jmeter/src/core/org/apache/jmeter/threads/JMeterContext.java
  
  Index: JMeterContext.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/threads/JMeterContext.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JMeterContext.java        14 Mar 2003 21:15:36 -0000      1.2
  +++ JMeterContext.java        18 Mar 2003 21:36:03 -0000      1.3
  @@ -38,7 +38,7 @@
                return previousResult;
        }
        
  -     void setPreviousResult( SampleResult result ) {
  +     public void setPreviousResult( SampleResult result ) {
                this.previousResult = result;
        }
        
  @@ -47,7 +47,7 @@
                return currentSampler;
        }
        
  -     void setCurrentSampler( Sampler sampler ) {
  +     public void setCurrentSampler( Sampler sampler ) {
                this.currentSampler = sampler;
        }
        
  
  
  
  1.18      +28 -15    
jakarta-jmeter/src/core/org/apache/jmeter/threads/JMeterThread.java
  
  Index: JMeterThread.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/threads/JMeterThread.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- JMeterThread.java 14 Mar 2003 21:15:36 -0000      1.17
  +++ JMeterThread.java 18 Mar 2003 21:36:03 -0000      1.18
  @@ -57,12 +57,14 @@
   import java.util.HashMap;
   import java.util.Iterator;
   import java.util.List;
  +import java.util.ListIterator;
   import java.util.Map;
   
   import org.apache.jmeter.assertions.Assertion;
   import org.apache.jmeter.assertions.AssertionResult;
   import org.apache.jmeter.control.Controller;
   import org.apache.jmeter.processor.PostProcessor;
  +import org.apache.jmeter.processor.PreProcessor;
   import org.apache.jmeter.samplers.SampleEvent;
   import org.apache.jmeter.samplers.SampleResult;
   import org.apache.jmeter.samplers.Sampler;
  @@ -92,7 +94,7 @@
       TestCompiler compiler;
       JMeterThreadMonitor monitor;
       String threadName;
  -     JMeterContext threadContext;
  +    JMeterContext threadContext;
       JMeterVariables threadVars;
       Collection threadListeners;
       ListenerNotifier notifier;
  @@ -114,7 +116,7 @@
           threadListeners = threadListenerSearcher.getSearchResults();
           notifier = note;
       }
  -    
  +
       public void setInitialContext(JMeterContext context)
       {
           threadVars.putAll(context.getVariables());
  @@ -131,8 +133,8 @@
       {
           try
           {
  -             threadContext = JMeterContextService.getContext();
  -             threadContext.setVariables(threadVars);
  +            threadContext = JMeterContextService.getContext();
  +            threadContext.setVariables(threadVars);
               initializeThreadListeners();
               testTree.traverse(compiler);
               running = true;
  @@ -151,14 +153,15 @@
                               notifyThreadListeners();
                           }
                           SamplePackage pack = 
compiler.configureSampler(controller.next());
  +                        runPreProcessors(pack.getPreProcessors());
                           delay(pack.getTimers());
                           SampleResult result = pack.getSampler().sample(null);
                           result.setThreadName(threadName);
                           result.setTimeStamp(System.currentTimeMillis());
  -                                             
threadContext.setPreviousResult(result);
  -                                             
threadContext.setCurrentSampler(pack.getSampler());
  +                        threadContext.setPreviousResult(result);
  +                        threadContext.setCurrentSampler(pack.getSampler());
                           checkAssertions(pack.getAssertions(), result);
  -                        runExtractors(pack.getExtractors(), result);
  +                        runPostProcessors(pack.getPostProcessors());
                           notifyListeners(pack.getSampleListeners(), result);
                       }
                       catch (Exception e)
  @@ -203,13 +206,23 @@
           }
       }
   
  -    private void runExtractors(List extractors, SampleResult result)
  +    private void runPostProcessors(List extractors)
       {
  -        Iterator iter = extractors.iterator();
  -        while (iter.hasNext())
  +        ListIterator iter = extractors.listIterator(extractors.size());
  +        while (iter.hasPrevious())
  +        {
  +            PostProcessor ex = (PostProcessor) iter.previous();
  +            ex.process();
  +        }
  +    }
  +
  +    private void runPreProcessors(List preProcessors)
  +    {
  +        ListIterator iter = preProcessors.listIterator(preProcessors.size());
  +        while (iter.hasPrevious())
           {
  -                     PostProcessor ex = (PostProcessor) iter.next();
  -                     ex.process(result);
  +            PreProcessor ex = (PreProcessor) iter.previous();
  +            ex.process();
           }
       }
   
  
  
  
  1.4       +30 -5     
jakarta-jmeter/src/core/org/apache/jmeter/threads/SamplePackage.java
  
  Index: SamplePackage.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/threads/SamplePackage.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- SamplePackage.java        21 Feb 2003 18:19:44 -0000      1.3
  +++ SamplePackage.java        18 Mar 2003 21:36:03 -0000      1.4
  @@ -5,6 +5,7 @@
   
   import org.apache.jmeter.assertions.Assertion;
   import org.apache.jmeter.processor.PostProcessor;
  +import org.apache.jmeter.processor.PreProcessor;
   import org.apache.jmeter.samplers.SampleListener;
   import org.apache.jmeter.samplers.Sampler;
   import org.apache.jmeter.timers.Timer;
  @@ -23,7 +24,8 @@
        List sampleListeners = new LinkedList();
        List timers = new LinkedList();
        List assertions = new LinkedList();
  -    List extractors = new LinkedList();
  +    List postProcessors = new LinkedList();
  +    List preProcessors = new LinkedList();
        Sampler sampler;
   
        public SamplePackage()
  @@ -45,9 +47,14 @@
                return timers;
        }
       
  -    public void addExtractor(PostProcessor ex)
  +    public void addPostProcessor(PostProcessor ex)
       {
  -        extractors.add(ex);
  +        postProcessors.add(ex);
  +    }
  +    
  +    public void addPreProcessor(PreProcessor pre)
  +    {
  +        preProcessors.add(pre);
       }
   
        public void addTimer(Timer timer)
  @@ -65,9 +72,9 @@
                return assertions;
        }
       
  -    public List getExtractors()
  +    public List getPostProcessors()
       {
  -        return extractors;
  +        return postProcessors;
       }
   
        public Sampler getSampler()
  @@ -79,4 +86,22 @@
        {
                sampler = s;
        }
  +    /**
  +     * Returns the preProcessors.
  +     * @return List
  +     */
  +    public List getPreProcessors()
  +    {
  +        return preProcessors;
  +    }
  +
  +    /**
  +     * Sets the preProcessors.
  +     * @param preProcessors The preProcessors to set
  +     */
  +    public void setPreProcessors(List preProcessors)
  +    {
  +        this.preProcessors = preProcessors;
  +    }
  +
   }
  
  
  
  1.16      +44 -14    
jakarta-jmeter/src/core/org/apache/jmeter/threads/TestCompiler.java
  
  Index: TestCompiler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/threads/TestCompiler.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- TestCompiler.java 14 Mar 2003 21:15:36 -0000      1.15
  +++ TestCompiler.java 18 Mar 2003 21:36:03 -0000      1.16
  @@ -13,9 +13,10 @@
   import org.apache.jmeter.config.Modifier;
   import org.apache.jmeter.config.ResponseBasedModifier;
   import org.apache.jmeter.control.GenericController;
  -import org.apache.jmeter.processor.PostProcessor;
   import org.apache.jmeter.functions.Function;
   import org.apache.jmeter.functions.InvalidVariableException;
  +import org.apache.jmeter.processor.PostProcessor;
  +import org.apache.jmeter.processor.PreProcessor;
   import org.apache.jmeter.samplers.AbstractSampler;
   import org.apache.jmeter.samplers.SampleEvent;
   import org.apache.jmeter.samplers.SampleListener;
  @@ -183,6 +184,7 @@
           List timers = new LinkedList();
           List assertions = new LinkedList();
           List extractors = new LinkedList();
  +        List pres = new LinkedList();
           log.debug("Full stack = " + stack);
           for (int i = stack.size(); i > 0; i--)
           {
  @@ -227,6 +229,10 @@
                   {
                       extractors.add(item);
                   }
  +                if (item instanceof PreProcessor)
  +                                {
  +                                    pres.add(item);
  +                                }
               }
           }
           synchronized (sam)
  @@ -236,7 +242,7 @@
                   objectsWithFunctions.add(sam);
               }
           }
  -        SamplerConfigs samplerConfigs = new SamplerConfigs(configs, modifiers, 
responseModifiers, listeners, timers, assertions, extractors);
  +        SamplerConfigs samplerConfigs = new SamplerConfigs(configs, modifiers, 
responseModifiers, listeners, timers, assertions, extractors,pres);
           samplerConfigMap.put(sam, samplerConfigs);
       }
   
  @@ -248,9 +254,11 @@
           List assertions;
           List timers;
           List responseModifiers;
  -        List extractors;
  +        List postProcessors;
  +        List preProcessors;
   
  -        public SamplerConfigs(List configs, List modifiers, List responseModifiers, 
List listeners, List timers, List assertions, List extractors)
  +        public SamplerConfigs(List configs, List modifiers, List responseModifiers, 
List listeners, List timers, List assertions, 
  +                List extractors,List pres)
           {
               this.configs = configs;
               this.modifiers = modifiers;
  @@ -258,7 +266,8 @@
               this.listeners = listeners;
               this.timers = timers;
               this.assertions = assertions;
  -            this.extractors = extractors;
  +            this.postProcessors = extractors;
  +            this.preProcessors = pres;
           }
   
           public List getConfigs()
  @@ -291,10 +300,19 @@
               return timers;
           }
   
  -        public List getExtractors()
  +        public List getPostProcessors()
           {
  -            return extractors;
  +            return postProcessors;
           }
  +        /**
  +         * Returns the preProcessors.
  +         * @return List
  +         */
  +        public List getPreProcessors()
  +        {
  +            return preProcessors;
  +        }
  +
       }
   
       /****************************************
  @@ -500,7 +518,7 @@
               ret.addSampleListener((SampleListener) cloned);
           }
   
  -        iter = configs.getExtractors().iterator();
  +        iter = configs.getPostProcessors().iterator();
           while (iter.hasNext())
           {
               PostProcessor ex = (PostProcessor) iter.next();
  @@ -509,8 +527,20 @@
               {
                   replaceValues(cloned);
               }
  -            ret.addExtractor((PostProcessor) cloned);
  +            ret.addPostProcessor((PostProcessor) cloned);
           }
  +        
  +        iter = configs.getPreProcessors().iterator();
  +                while (iter.hasNext())
  +                {
  +                    PreProcessor ex = (PreProcessor) iter.next();
  +                    TestElement cloned = (TestElement) cloneIfNecessary(ex);
  +                    if (objectsWithFunctions.contains(ex))
  +                    {
  +                        replaceValues(cloned);
  +                    }
  +                    ret.addPreProcessor((PreProcessor) cloned);
  +                }
       }
   
       private boolean hasFunctions(TestElement el)
  
  
  

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

Reply via email to