Author: sebb
Date: Fri Nov  9 13:54:06 2007
New Revision: 593663

URL: http://svn.apache.org/viewvc?rev=593663&view=rev
Log:
Use drop-down list for BSF language field

Modified:
    
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
    
jakarta/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/control/gui/BSFSamplerGui.java
    
jakarta/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BSFSampler.java
    jakarta/jmeter/trunk/xdocs/changes.xml
    jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties?rev=593663&r1=593662&r2=593663&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties 
(original)
+++ 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties 
Fri Nov  9 13:54:06 2007
@@ -69,7 +69,7 @@
 bind=Thread Bind
 browse=Browse...
 bsf_sampler_title=BSF Sampler
-bsf_script=Script to run
+bsf_script=Script to run (variables: log, Label, FileName, Parameters, args[], 
SampleResult, ctx, vars)
 bsf_script_file=Script file to run
 bsf_script_language=Scripting language\:
 bsf_script_parameters=Parameters to pass to script/file\:

Modified: 
jakarta/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/control/gui/BSFSamplerGui.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/control/gui/BSFSamplerGui.java?rev=593663&r1=593662&r2=593663&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/control/gui/BSFSamplerGui.java
 (original)
+++ 
jakarta/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/control/gui/BSFSamplerGui.java
 Fri Nov  9 13:54:06 2007
@@ -19,8 +19,12 @@
 package org.apache.jmeter.protocol.java.control.gui;
 
 import java.awt.BorderLayout;
+import java.util.Arrays;
+import java.util.Properties;
+import java.util.Set;
 
 import javax.swing.Box;
+import javax.swing.JComboBox;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
@@ -35,7 +39,7 @@
 public class BSFSamplerGui extends AbstractSamplerGui {
        private JTextArea scriptField;
 
-       private JTextField langField;// Language TODO should this be a 
drop-down list?
+       private JComboBox langField;// Language
 
        private JTextField filename;// script file name (if present)
 
@@ -47,10 +51,11 @@
 
        public void configure(TestElement element) {
                super.configure(element);
-               
scriptField.setText(element.getPropertyAsString(BSFSampler.SCRIPT));
-               
langField.setText(element.getPropertyAsString(BSFSampler.LANGUAGE));
-        filename.setText(element.getPropertyAsString(BSFSampler.FILENAME));
-        parameters.setText(element.getPropertyAsString(BSFSampler.PARAMETERS));
+               BSFSampler sampler = (BSFSampler) element;
+               scriptField.setText(sampler.getScript());
+               langField.setSelectedItem(sampler.getScriptLanguage());
+        filename.setText(sampler.getFilename());
+        parameters.setText(sampler.getParameters());
        }
 
        public TestElement createTestElement() {
@@ -67,10 +72,11 @@
        public void modifyTestElement(TestElement te) {
                te.clear();
                this.configureTestElement(te);
-               te.setProperty(BSFSampler.FILENAME, filename.getText());
-               te.setProperty(BSFSampler.LANGUAGE, langField.getText());
-               te.setProperty(BSFSampler.PARAMETERS, parameters.getText());
-               te.setProperty(BSFSampler.SCRIPT, scriptField.getText());
+               BSFSampler sampler = (BSFSampler) te;
+               sampler.setFilename(filename.getText());
+               sampler.setScriptLanguage((String) langField.getSelectedItem());
+               sampler.setParameters(parameters.getText());
+               sampler.setScript(scriptField.getText());
        }
     
     /**
@@ -80,7 +86,7 @@
         super.clearGui();
         
         scriptField.setText(""); //$NON-NLS-1$
-        langField.setText(""); //$NON-NLS-1$
+        langField.setSelectedIndex(0);
         filename.setText(""); //$NON-NLS-1$
         parameters.setText(""); //$NON-NLS-1$
     }    
@@ -110,7 +116,6 @@
                JLabel label = new 
JLabel(JMeterUtils.getResString("bsf_script_parameters")); // $NON-NLS-1$
 
                parameters = new JTextField(10);
-               parameters.setName(BSFSampler.PARAMETERS);
                label.setLabelFor(parameters);
 
                JPanel parameterPanel = new JPanel(new BorderLayout(5, 0));
@@ -124,7 +129,6 @@
                JLabel label = new 
JLabel(JMeterUtils.getResString("bsf_script_file")); // $NON-NLS-1$
 
                filename = new JTextField(10);
-               filename.setName(BSFSampler.FILENAME);
                label.setLabelFor(filename);
 
                JPanel filenamePanel = new JPanel(new BorderLayout(5, 0));
@@ -136,13 +140,19 @@
        private JPanel createLanguagePanel() {
                JLabel label = new 
JLabel(JMeterUtils.getResString("bsf_script_language")); // $NON-NLS-1$
 
-               langField = new JTextField(10);
-               langField.setName(BSFSampler.LANGUAGE);
+               Properties p = 
JMeterUtils.loadProperties("org/apache/bsf/Languages.properties"); // 
$NON-NLS-1$
+               Set keySet = p.keySet();
+               String [] items = (String[]) keySet.toArray(new String[]{});
+               Arrays.sort(items);
+
+               langField = new JComboBox(items);
+               langField.setEditable(true);
                label.setLabelFor(langField);
 
                JPanel langPanel = new JPanel(new BorderLayout(5, 0));
                langPanel.add(label, BorderLayout.WEST);
                langPanel.add(langField, BorderLayout.CENTER);
+
                return langPanel;
        }
 

Modified: 
jakarta/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BSFSampler.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BSFSampler.java?rev=593663&r1=593662&r2=593663&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BSFSampler.java
 (original)
+++ 
jakarta/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BSFSampler.java
 Fri Nov  9 13:54:06 2007
@@ -41,13 +41,15 @@
 
        private static final Logger log = LoggingManager.getLoggerForClass();
 
-       public static final String FILENAME = "BSFSampler.filename"; 
//$NON-NLS-1$
+       //+ JMX file attributes - do not change
+       private static final String FILENAME = "BSFSampler.filename"; 
//$NON-NLS-1$
 
-       public static final String SCRIPT = "BSFSampler.query"; //$NON-NLS-1$
+       private static final String SCRIPT = "BSFSampler.query"; //$NON-NLS-1$
 
-       public static final String LANGUAGE = "BSFSampler.language"; 
//$NON-NLS-1$
+       private static final String LANGUAGE = "BSFSampler.language"; 
//$NON-NLS-1$
 
-       public static final String PARAMETERS = "BSFSampler.parameters"; 
//$NON-NLS-1$
+       private static final String PARAMETERS = "BSFSampler.parameters"; 
//$NON-NLS-1$
+       //- JMX file attributes
 
        private transient BSFManager mgr;
 

Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=593663&r1=593662&r2=593663&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Fri Nov  9 13:54:06 2007
@@ -91,6 +91,7 @@
 <li>The Proxy server removes If-Modified-Since headers from generated Header 
Managers by default.
 To change the list of removed headers, define the property 
proxy.headers.remove as a comma-separated list of headers to remove</li>
 <li>The javaScript function now has access to JMeter variables and context 
etc. See <a href="usermanual/functions.html#__javaScript">JavaScript 
function</a></li>
+<li>Use drop-down list for BSF Sampler language field</li>
 </ul>
 
 <h4>Non-functional Improvements</h4>

Modified: jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml?rev=593663&r1=593662&r2=593663&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml (original)
+++ jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml Fri Nov  9 
13:54:06 2007
@@ -858,7 +858,11 @@
        </description>
 <properties>
        <property name="Name" required="No">Descriptive name for this 
controller that is shown in the tree.</property>
-       <property name="Scripting Language" required="Yes">Name of the BSF 
scripting language to be used.</property>
+       <property name="Scripting Language" required="Yes">Name of the BSF 
scripting language to be used.
+       N.B. Not all the languages in the drop-down list are supported by 
default.
+       The following are supported: beanshell, jacl, javascript, xslt.
+       Others may be available if the appropriate jar is installed in the 
JMeter lib directory.
+       </property>
        <property name="Script File" required="No">Name of a file to be used as 
a BSF script</property>
        <property name="Parameters" required="No">List of parameters to be 
passed to the script file or the script.</property>
        <property name="Script" required="Yes (unless script file is 
provided)">Script to be passed to BSF language</property>
@@ -873,7 +877,7 @@
 <li>Label - the Sampler label</li>
 <li>FileName - the file name, if any</li>
 <li>Parameters - text from the Parameters field</li>
-<li>bsh.args - the parameters, split as described above</li>
+<li>args - the parameters, split as described above</li>
 <li>SampleResult - pointer to the current SampleResult</li>
 <li>ctx - JMeterContext</li>
 <li>vars - JMeterVariables  - e.g. vars.get("VAR1"); vars.put("VAR2","value"); 
vars.remove("VAR3"); vars.putObject("OBJ1",new Object());</li>



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

Reply via email to