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 se...@apache.org on 2008/05/13 15:19:59 UTC
svn commit: r655852 - in /jakarta/jmeter/trunk: docs/ docs/usermanual/
src/core/org/apache/jmeter/resources/
src/protocol/java/org/apache/jmeter/protocol/java/control/gui/
src/protocol/java/org/apache/jmeter/protocol/java/sampler/ xdocs/
xdocs/usermanual/
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: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org