Author: sebb
Date: Tue May 13 06:19:59 2008
New Revision: 655852

URL: http://svn.apache.org/viewvc?rev=655852&view=rev
Log:
Give BSF Sampler access to JMeter Properties via "props" object
Add Jexl as a supported BSF Sampler language

Modified:
    jakarta/jmeter/trunk/docs/changes.html
    jakarta/jmeter/trunk/docs/usermanual/component_reference.html
    
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/docs/changes.html
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/docs/changes.html?rev=655852&r1=655851&r2=655852&view=diff
==============================================================================
--- jakarta/jmeter/trunk/docs/changes.html (original)
+++ jakarta/jmeter/trunk/docs/changes.html Tue May 13 06:19:59 2008
@@ -668,6 +668,16 @@
                                                </li>
                                                                        
 
+                                                                               
                <li     >
+                                                               Give BSF 
Sampler access to JMeter Properties via "props" object
+                                               </li>
+                                                                       
+
+                                                                               
                <li     >
+                                                               Add Jexl as a 
supported BSF Sampler language
+                                               </li>
+                                                                       
+
                                                </ul>
                                                                                
                                                                                
<h4     >
                                                                Non-functional 
changes
@@ -3070,6 +3080,7 @@
                                                                Bug 39533 - 
StatCalculator added wrong items
                                                </li>
                                                                        
+
 
                                                                                
                <li     >
                                                                Bug 39599 - 
ConcurrentModificationException

Modified: jakarta/jmeter/trunk/docs/usermanual/component_reference.html
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/docs/usermanual/component_reference.html?rev=655852&r1=655851&r2=655852&view=diff
==============================================================================
--- jakarta/jmeter/trunk/docs/usermanual/component_reference.html (original)
+++ jakarta/jmeter/trunk/docs/usermanual/component_reference.html Tue May 13 
06:19:59 2008
@@ -2927,6 +2927,27 @@
                
                                                </p>
                                                                        
+               
+                                                                               
                <p      >
+                                                               By default, 
JMeter supports the following languages:
+                                               </p>
+                                                                       
+               
+                                                                               
                <ul     >
+                                                               
+               
+                                                                               
                <li     >
+                                                               javascript
+                                               </li>
+                                                                       
+        
+                                                                               
                <li     >
+                                                               jexl (JMeter 
version 2.3.2 and later)
+                                               </li>
+                                                                       
+               
+                                               </ul>
+                                                                       
        
                                                                                
                                <p><b>Control Panel</b></p>
                                                <div align="center"><img 
width='396' height='217' src="../images/screenshots/bsfsampler.png"></div>
@@ -3032,6 +3053,11 @@
                                                </li>
                                                                        
 
+                                                                               
                <li     >
+                                                               props - JMeter 
Properties - e.g. props.get("START.HMS"); props.put("PROP1","1234");
+                                               </li>
+                                                                       
+
                                                </ul>
                                                                                
                                                                                
<p      >
                                                                
@@ -10403,7 +10429,6 @@
                                                                Use a value of 
zero to indicate JMeter should choose a match at random.
                                                </li>
                                                                        
-
                        
                                                                                
                <li     >
                                                                A positive 
number N means to select the nth match.

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=655852&r1=655851&r2=655852&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 
Tue May 13 06:19:59 2008
@@ -87,7 +87,7 @@
 bind=Thread Bind
 browse=Browse...
 bsf_sampler_title=BSF Sampler
-bsf_script=Script to run (variables: log, Label, FileName, Parameters, args[], 
SampleResult, ctx, vars)
+bsf_script=Script to run (variables: log, Label, FileName, Parameters, args[], 
SampleResult, ctx, vars, props)
 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=655852&r1=655851&r2=655852&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
 Tue May 13 06:19:59 2008
@@ -141,7 +141,10 @@
                JLabel label = new 
JLabel(JMeterUtils.getResString("bsf_script_language")); // $NON-NLS-1$
 
                Properties p = 
JMeterUtils.loadProperties("org/apache/bsf/Languages.properties"); // 
$NON-NLS-1$
+        // We have added Jexl in BSFSampler.
+        p.put("jexl", ""); // $NON-NLS-1$
                Set keySet = p.keySet();
+               // TODO - perhaps weed out ones which don't exist?
                String [] items = (String[]) keySet.toArray(new String[]{});
                Arrays.sort(items);
 

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=655852&r1=655851&r2=655852&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
 Tue May 13 06:19:59 2008
@@ -19,6 +19,7 @@
 package org.apache.jmeter.protocol.java.sampler;
 
 import java.io.FileInputStream;
+import java.util.Properties;
 
 import org.apache.bsf.BSFEngine;
 import org.apache.bsf.BSFException;
@@ -30,6 +31,7 @@
 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.jorphan.logging.LoggingManager;
 import org.apache.jorphan.util.JOrphanUtils;
 import org.apache.log.Logger;
@@ -53,6 +55,9 @@
        //- JMX file attributes
 
        public BSFSampler() {
+           BSFManager.registerScriptingEngine("jexl", //$NON-NLS-1$
+                   "org.apache.commons.jexl.bsf.JexlEngine", //$NON-NLS-1$
+                   new String[]{"jexl"}); //$NON-NLS-1$
        }
 
        public String getFilename() {
@@ -120,6 +125,7 @@
 
         JMeterContext jmctx = JMeterContextService.getContext();
         JMeterVariables vars = jmctx.getVariables();
+        Properties props = JMeterUtils.getJMeterProperties();
 
         res.sampleStart();
                try {
@@ -140,6 +146,7 @@
                        // Add variables for access to context and variables
                        mgr.declareBean("ctx", jmctx, jmctx.getClass()); // 
$NON-NLS-1$
                        mgr.declareBean("vars", vars, vars.getClass()); // 
$NON-NLS-1$
+            mgr.declareBean("props", props, props.getClass()); // $NON-NLS-1$
 
                        // N.B. some engines (e.g. Javascript) cannot handle 
certain declareBean() calls
                        // after the engine has been initialised, so create the 
engine last
@@ -171,9 +178,10 @@
                } finally {
                        res.sampleEnd();
                        IOUtils.closeQuietly(is);
-                       if (bsfEngine != null) {
-                           bsfEngine.terminate();
-                       }
+// Will be done by mgr.terminate() anyway
+//                     if (bsfEngine != null) {
+//                         bsfEngine.terminate();
+//                     }
                mgr.terminate();
                }
 

Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=655852&r1=655851&r2=655852&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Tue May 13 06:19:59 2008
@@ -200,6 +200,8 @@
 <li>Allow use of special name LAST to mean the last test run; applies to -t, 
-l, -j flags</li>
 <li>Bug 44418/42178 - CSV Dataset file handling improvements</li>
 <li>Give BeanShell, Javascript and Jexl functions access to JMeter properties 
via the "props" object</li>
+<li>Give BSF Sampler access to JMeter Properties via "props" object</li>
+<li>Add Jexl as a supported BSF Sampler language</li>
 </ul>
 
 <h4>Non-functional changes</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=655852&r1=655851&r2=655852&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml (original)
+++ jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml Tue May 13 
06:19:59 2008
@@ -906,6 +906,11 @@
                website for details of the languages supported.
                You may need to download the appropriate jars for the language; 
they should be put in the JMeter <b>lib</b> directory.
                </p>
+               <p>By default, JMeter supports the following languages:</p>
+               <ul>
+               <li>javascript</li>
+        <li>jexl (JMeter version 2.3.2 and later)</li>
+               </ul>
        </description>
 <properties>
        <property name="Name" required="No">Descriptive name for this 
controller that is shown in the tree.</property>
@@ -932,6 +937,7 @@
 <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>
+<li>props - JMeter Properties - e.g. props.get("START.HMS"); 
props.put("PROP1","1234");</li>
 </ul>
 <p>
 The SampleResult ResponseData is set from the return value of the script.



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

Reply via email to