You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by js...@apache.org on 2003/12/15 18:28:55 UTC

cvs commit: jakarta-jmeter/xdocs/images/screenshots user_defined_variables.png

jsalvata    2003/12/15 09:28:55

  Modified:    src/core/org/apache/jmeter/engine PreCompiler.java
               src/core/org/apache/jmeter/config/gui ArgumentsPanel.java
               xdocs/usermanual component_reference.xml
               src/protocol/java/org/apache/jmeter/protocol/java/config/gui
                        JavaConfigGui.java
  Added:       xdocs/images/screenshots user_defined_variables.png
  Log:
  New "User Defined Variables" component will complement those in the Test Plan
  -- with the advantage that these can be enabled/disabled.
  
  Revision  Changes    Path
  1.18      +21 -6     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.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- PreCompiler.java	19 Oct 2003 22:22:22 -0000	1.17
  +++ PreCompiler.java	15 Dec 2003 17:28:55 -0000	1.18
  @@ -1,5 +1,9 @@
   package org.apache.jmeter.engine;
   
  +import java.util.Iterator;
  +import java.util.Map;
  +
  +import org.apache.jmeter.config.Arguments;
   import org.apache.jmeter.engine.util.ValueReplacer;
   import org.apache.jmeter.functions.InvalidVariableException;
   import org.apache.jmeter.testelement.TestElement;
  @@ -32,13 +36,13 @@
       {
           if (node instanceof TestPlan)
           {
  -            replacer.setUserDefinedVariables(
  -                ((TestPlan) node).getUserDefinedVariables());
  -            JMeterVariables vars = new JMeterVariables();
  -            vars.putAll(((TestPlan) node).getUserDefinedVariables());
  +            Map args= ((TestPlan)node).getUserDefinedVariables();
  +            replacer.setUserDefinedVariables(args);
  +            JMeterVariables vars= new JMeterVariables();
  +            vars.putAll(args);
               JMeterContextService.getContext().setVariables(vars);
           }
  -        if (node instanceof TestElement)
  +        else if (node instanceof TestElement)
           {
               try
               {
  @@ -49,6 +53,17 @@
               {
                   log.error("invalid variables", e);
               }
  +        }
  +
  +        if (node instanceof Arguments)
  +        {
  +            Map args= ((Arguments)node).getArgumentsAsMap();
  +            for (Iterator a= args.entrySet().iterator(); a.hasNext(); )
  +            {
  +               Map.Entry e= (Map.Entry)a.next();
  +               replacer.addVariable((String)e.getKey(), (String)e.getValue());
  +            }
  +            JMeterContextService.getContext().getVariables().putAll(args);
           }
       }
   
  
  
  
  1.22      +49 -28    jakarta-jmeter/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java
  
  Index: ArgumentsPanel.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- ArgumentsPanel.java	5 Oct 2003 01:05:31 -0000	1.21
  +++ ArgumentsPanel.java	15 Dec 2003 17:28:55 -0000	1.22
  @@ -108,6 +108,12 @@
       /** A button for removing arguments from the table. */
       private JButton delete;
   
  +    /**
  +     * Boolean indicating whether this component is a standalong component or
  +     * it is intended to be used as a subpanel for another component.
  +     */
  +    private boolean standalone = true;
  +
       /** Command for adding a row to the table. */ 
       private static final String ADD = "add";
       
  @@ -122,41 +128,51 @@
           };
   
       /**
  -     * Create a new ArgumentsPanel, using the default title. 
  +     * Create a new ArgumentsPanel as a standalone component. 
        */
       public ArgumentsPanel()
       {
  -        this(JMeterUtils.getResString("paramtable"));
  +        tableLabel= new JLabel(JMeterUtils.getResString("user_defined_variables"));
  +        standalone = true;
  +        init();
       }
   
       /**
  -     * Create a new ArgumentsPanel, using the specified title.
  -     * 
  -     * @param label the title of the component
  +     * Create a new ArgumentsPanel as an embedded component, using the specified
  +     * title.
  +     *
  +     * @param label        the title for the component.
        */
       public ArgumentsPanel(String label)
       {
           tableLabel = new JLabel(label);
  +        standalone = false;
           init();
       }
   
       /**
        * This is the list of menu categories this gui component will be available
  -     * under. The ArgumentsPanel is not intended to be used as a standalone
  -     * component, so this inplementation returns null.
  +     * under.
        *
        * @return   a Collection of Strings, where each element is one of the
        *           constants defined in MenuFactory
        */
       public Collection getMenuCategories()
       {
  -        return null;
  -    }
  -
  +        if (standalone)
  +        {
  +            return super.getMenuCategories();
  +        }
  +        else
  +        {
  +            return null;
  +        } 
  +    }    
  +    
       /* Implements JMeterGUIComponent.getStaticLabel() */
       public String getStaticLabel()
       {
  -        return "Argument List";
  +        return JMeterUtils.getResString("user_defined_variables");
       }
   
       /* Implements JMeterGUIComponent.createTestElement() */
  @@ -164,9 +180,7 @@
       {
           Arguments args = new Arguments();
           modifyTestElement(args);
  -        // TODO: Why do we clone the return value? This is the only reference
  -        // to it (right?) so we shouldn't need a separate copy.
  -        return (TestElement) args.clone();
  +        return args;
       }
   
       /* Implements JMeterGUIComponent.modifyTestElement(TestElement) */
  @@ -419,14 +433,6 @@
       {
           initializeTableModel();
           table = new JTable(tableModel);
  -        //table.addFocusListener(this);
  -        // use default editor/renderer to fix bug #16058
  -        //    TextAreaTableCellEditor editor = new TextAreaTableCellEditor();
  -        //    table.setDefaultEditor(String.class, editor);
  -        //    editor.addCellEditorListener(this);
  -        //    TextAreaCellRenderer renderer = new TextAreaCellRenderer();
  -        //    table.setRowHeight(renderer.getPreferredHeight());
  -        //    table.setDefaultRenderer(String.class,renderer);
           table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
           return makeScrollPane(table);
       }
  @@ -473,13 +479,28 @@
        */
       private void init()
       {
  -        setLayout(new BorderLayout());
  +        JPanel p= this;
  +        
  +        if (standalone)
  +        {
  +            setLayout(new BorderLayout(0,5));
  +            setBorder(makeBorder());
  +            add(makeTitlePanel(), BorderLayout.NORTH);
  +            p= new JPanel();
  +        }
  +
  +        p.setLayout(new BorderLayout());
   
  -        add(makeLabelPanel(), BorderLayout.NORTH);
  -        add(makeMainPanel(), BorderLayout.CENTER);
  +        p.add(makeLabelPanel(), BorderLayout.NORTH);
  +        p.add(makeMainPanel(), BorderLayout.CENTER);
           // Force a minimum table height of 70 pixels
  -        add(Box.createVerticalStrut(70), BorderLayout.WEST);
  -        add(makeButtonPanel(), BorderLayout.SOUTH);
  +        p.add(Box.createVerticalStrut(70), BorderLayout.WEST);
  +        p.add(makeButtonPanel(), BorderLayout.SOUTH);
  +
  +        if (standalone)
  +        {
  +            add(p, BorderLayout.CENTER);
  +        }
   
           table.revalidate();
           sizeColumns(table);
  
  
  
  1.66      +70 -3     jakarta-jmeter/xdocs/usermanual/component_reference.xml
  
  Index: component_reference.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/xdocs/usermanual/component_reference.xml,v
  retrieving revision 1.65
  retrieving revision 1.66
  diff -u -r1.65 -r1.66
  --- component_reference.xml	3 Dec 2003 12:33:29 -0000	1.65
  +++ component_reference.xml	15 Dec 2003 17:28:55 -0000	1.66
  @@ -1,4 +1,58 @@
   <?xml version="1.0"?>
  +<!--
  + * ====================================================================
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 2003 The Apache Software Foundation.  All rights
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + * notice, this list of conditions and the following disclaimer.
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + * notice, this list of conditions and the following disclaimer in
  + * the documentation and/or other materials provided with the
  + * distribution.
  + *
  + * 3. The end-user documentation included with the redistribution,
  + * if any, must include the following acknowledgment:
  + * "This product includes software developed by the
  + * Apache Software Foundation (http://www.apache.org/)."
  + * Alternately, this acknowledgment may appear in the software itself,
  + * if and wherever such third-party acknowledgments normally appear.
  + *
  + * 4. The names "Apache" and "Apache Software Foundation" and
  + * "Apache JMeter" must not be used to endorse or promote products
  + * derived from this software without prior written permission. For
  + * written permission, please contact apache@apache.org.
  + *
  + * 5. Products derived from this software may not be called "Apache",
  + * "Apache JMeter", nor may "Apache" appear in their name, without
  + * prior written permission of the Apache Software Foundation.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + -->
   <document index="yes" index-level-2="yes" colbreak="13.5"
     prev="boss.html" next="functions.html" date="$Date$">
   
  @@ -99,8 +153,8 @@
           a multipart form request.</property>
           <property name="Parameter Name" required="No (Yes if Filename filled in)">Name of the web request parameter.</property>
           <property name="MIME Type" required="No (Yes if Filename filled in)">MIME type (for example, text/plain).</property>
  -        <property name="Retrieve All Images and Java Applets" required="No">Tell JMeter to parse the HTML file
  -and send HTTP/HTTPS requests for all images and Java applets referenced in the file.</property>
  +        <property name="Retrieve All Embedded Resources from HTML Files" required="No">Tell JMeter to parse the HTML file
  +and send HTTP/HTTPS requests for all images, Java applets, JavaScript files, CSSs, etc. referenced in the file.</property>
   </properties>
   
   <links>
  @@ -1108,6 +1162,19 @@
   <description><p>The Java Request Defaults component lets you set default values for Java testing.  See the <complink name="Java Request"/>.</p>
   </description>
   
  +</component>
  +
  +<component index="13.4.14" name="User Defined Variables" screenshot="user_defined_variables.png">
  +<description><p>The User Defined Variables lets you define variables for use in other test elements, just as in the <complink name="Test Plan"/>.
  +The variables in User Defined Variables components will take precedence over those defined closer to the tree root -- including those defined in the Test Plan.</p>
  +<p>Note that the variable's values have to be static: you can't currently use other variables in their definition.</p>
  +</description>
  +<properties>
  +  <property name="Name" required="">Descriptive name for this element that is shown in the tree.</property>
  +  <property name="User Defined Variables" required="">Variable name/value pairs. The string under the "Name"
  +  	column is what you'll need to place inside the brackets in ${...} constructs to use the variables later on. The
  +  	whole ${...} will then be replaced by the string in the "Value" column.</property>
  +</properties>
   </component>
   
   </section>
  
  
  
  1.16      +2 -2      jakarta-jmeter/src/protocol/java/org/apache/jmeter/protocol/java/config/gui/JavaConfigGui.java
  
  Index: JavaConfigGui.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/protocol/java/org/apache/jmeter/protocol/java/config/gui/JavaConfigGui.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- JavaConfigGui.java	7 Sep 2003 18:58:17 -0000	1.15
  +++ JavaConfigGui.java	15 Dec 2003 17:28:55 -0000	1.16
  @@ -285,7 +285,7 @@
        */
       private JPanel createParameterPanel()
       {
  -        argsPanel = new ArgumentsPanel();
  +        argsPanel = new ArgumentsPanel(JMeterUtils.getResString("paramtable"));
           return argsPanel;
       }
   
  
  
  
  1.1                  jakarta-jmeter/xdocs/images/screenshots/user_defined_variables.png
  
  	<<Binary file>>
  
  

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