mstover1    2005/08/18 10:21:52

  Modified:    src/core/org/apache/jmeter/testelement/property Tag: rel-2-1
                        FunctionProperty.java
               src/core/org/apache/jmeter/engine Tag: rel-2-1
                        StandardJMeterEngine.java PreCompiler.java
               src/core/org/apache/jmeter/config Tag: rel-2-1
                        Arguments.java Argument.java
               src/core/org/apache/jmeter/testelement Tag: rel-2-1
                        TestPlan.java
  Log:
  Make TestPlan variables and user-Defined Variables capable of using functions 
in their values that are evaluated once at test start.
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.18.2.1  +4 -4      
jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/FunctionProperty.java
  
  Index: FunctionProperty.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/FunctionProperty.java,v
  retrieving revision 1.18
  retrieving revision 1.18.2.1
  diff -u -r1.18 -r1.18.2.1
  --- FunctionProperty.java     12 Jul 2005 20:50:25 -0000      1.18
  +++ FunctionProperty.java     18 Aug 2005 17:21:51 -0000      1.18.2.1
  @@ -70,12 +70,12 @@
                JMeterContext ctx = JMeterContextService.getContext();// 
Expensive, so
                                                                                
                                                // do
                // once
  -             if (!isRunningVersion() || !ctx.isSamplingStarted()) {
  +             if (!isRunningVersion() /*|| !ctx.isSamplingStarted()*/) {
                        log.debug("Not running version, return raw function 
string");
                        return function.getRawParameters();
                } else {
                        log.debug("Running version, executing function");
  -                     int iter = ctx.getVariables().getIteration();
  +                     int iter = ctx.getVariables() != null ? 
ctx.getVariables().getIteration() : -1;
                        if (iter < testIteration) {
                                testIteration = -1;
                        }
  
  
  
  No                   revision
  No                   revision
  1.60.2.2  +3 -3      
jakarta-jmeter/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java
  
  Index: StandardJMeterEngine.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java,v
  retrieving revision 1.60.2.1
  retrieving revision 1.60.2.2
  diff -u -r1.60.2.1 -r1.60.2.2
  --- StandardJMeterEngine.java 17 Aug 2005 15:02:26 -0000      1.60.2.1
  +++ StandardJMeterEngine.java 18 Aug 2005 17:21:51 -0000      1.60.2.2
  @@ -301,7 +301,7 @@
                if (((TestPlan) plan[0]).isSerialized()) {
                        serialized = true;
                }
  -             JMeterContextService.startTest();
  +        JMeterContextService.startTest();
                compileTree();
                /**
                 * Notification of test listeners needs to happen after function
  @@ -359,9 +359,9 @@
                                log.info("Continue on error");
                        }
   
  +            ListedHashTree threadGroupTree = (ListedHashTree) 
searcher.getSubTree(group);
  +            threadGroupTree.add(group, testLevelElements);
                        for (int i = 0; running && i < threads.length; i++) {
  -                             ListedHashTree threadGroupTree = 
(ListedHashTree) searcher.getSubTree(group);
  -                             threadGroupTree.add(group, testLevelElements);
                                threads[i] = new 
JMeterThread(cloneTree(threadGroupTree), this, notifier);
                                threads[i].setThreadNum(i);
                                threads[i].setThreadGroup(group);
  
  
  
  1.24.2.1  +14 -10    
jakarta-jmeter/src/core/org/apache/jmeter/engine/PreCompiler.java
  
  Index: PreCompiler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/engine/PreCompiler.java,v
  retrieving revision 1.24
  retrieving revision 1.24.2.1
  diff -u -r1.24 -r1.24.2.1
  --- PreCompiler.java  12 Jul 2005 20:50:36 -0000      1.24
  +++ PreCompiler.java  18 Aug 2005 17:21:51 -0000      1.24.2.1
  @@ -52,21 +52,25 @@
         * @see HashTreeTraverser#addNode(Object, HashTree)
         */
        public void addNode(Object node, HashTree subTree) {
  +        if(node instanceof TestElement)
  +        {
  +            try {
  +                replacer.replaceValues((TestElement) node);
  +            } catch (InvalidVariableException e) {
  +                log.error("invalid variables", e);
  +            }
  +        }
                if (node instanceof TestPlan) {
  -                     Map args = ((TestPlan) node).getUserDefinedVariables();
  +            ((TestPlan)node).prepareForPreCompile(); //A hack to make 
user-defined variables in the testplan element more dynamic
  +            Map args = ((TestPlan) node).getUserDefinedVariables();
                        replacer.setUserDefinedVariables(args);
                        JMeterVariables vars = new JMeterVariables();
                        vars.putAll(args);
                        JMeterContextService.getContext().setVariables(vars);
  -             } else if (node instanceof TestElement) {
  -                     try {
  -                             replacer.replaceValues((TestElement) node);
  -                     } catch (InvalidVariableException e) {
  -                             log.error("invalid variables", e);
  -                     }
  -             }
  +             } 
   
                if (node instanceof Arguments) {
  +            ((Arguments)node).setRunningVersion(true);
                        Map args = ((Arguments) node).getArgumentsAsMap();
                        replacer.addVariables(args);
                        
JMeterContextService.getContext().getVariables().putAll(args);
  
  
  
  No                   revision
  No                   revision
  1.10.2.1  +5 -2      
jakarta-jmeter/src/core/org/apache/jmeter/config/Arguments.java
  
  Index: Arguments.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/config/Arguments.java,v
  retrieving revision 1.10
  retrieving revision 1.10.2.1
  diff -u -r1.10 -r1.10.2.1
  --- Arguments.java    12 Jul 2005 20:50:59 -0000      1.10
  +++ Arguments.java    18 Aug 2005 17:21:52 -0000      1.10.2.1
  @@ -27,6 +27,8 @@
   import org.apache.jmeter.testelement.property.CollectionProperty;
   import org.apache.jmeter.testelement.property.PropertyIterator;
   import org.apache.jmeter.testelement.property.TestElementProperty;
  +import org.apache.jorphan.logging.LoggingManager;
  +import org.apache.log.Logger;
   
   // Mark Walsh, 2002-08-03 add method:
   // addArgument(String name, Object value, Object metadata)
  @@ -41,6 +43,7 @@
    * @version $Revision$
    */
   public class Arguments extends ConfigTestElement implements Serializable {
  +    private static Logger log = LoggingManager.getLoggerForClass();
        /** The name of the property used to store the arguments. */
        public static final String ARGUMENTS = "Arguments.arguments";
   
  
  
  
  1.10.2.1  +5 -2      
jakarta-jmeter/src/core/org/apache/jmeter/config/Argument.java
  
  Index: Argument.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/config/Argument.java,v
  retrieving revision 1.10
  retrieving revision 1.10.2.1
  diff -u -r1.10 -r1.10.2.1
  --- Argument.java     12 Jul 2005 20:50:59 -0000      1.10
  +++ Argument.java     18 Aug 2005 17:21:52 -0000      1.10.2.1
  @@ -22,6 +22,8 @@
   
   import org.apache.jmeter.testelement.AbstractTestElement;
   import org.apache.jmeter.testelement.property.StringProperty;
  +import org.apache.jorphan.logging.LoggingManager;
  +import org.apache.log.Logger;
   
   // Mark Walsh, 2002-08-03, add metadata attribute
   // add constructor Argument(String name, Object value, Object metadata)
  @@ -36,6 +38,7 @@
    * @version $Revision$
    */
   public class Argument extends AbstractTestElement implements Serializable {
  +    private static Logger log = LoggingManager.getLoggerForClass();
        /** Name used to store the argument's name. */
        public static final String ARG_NAME = "Argument.name";
   
  
  
  
  No                   revision
  No                   revision
  1.17.2.1  +7 -2      
jakarta-jmeter/src/core/org/apache/jmeter/testelement/TestPlan.java
  
  Index: TestPlan.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/TestPlan.java,v
  retrieving revision 1.17
  retrieving revision 1.17.2.1
  diff -u -r1.17 -r1.17.2.1
  --- TestPlan.java     12 Jul 2005 20:50:28 -0000      1.17
  +++ TestPlan.java     18 Aug 2005 17:21:52 -0000      1.17.2.1
  @@ -88,6 +88,11 @@
                // setSerialized(false);
                setProperty(new CollectionProperty(THREAD_GROUPS, 
threadGroups));
        }
  +    
  +    public void prepareForPreCompile()
  +    {
  +        getVariables().setRunningVersion(true);
  +    }
   
        /**
         * Fetches the functional mode property
  
  
  

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

Reply via email to