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 2007/06/22 20:15:34 UTC
svn commit: r549919 - in /jakarta/jmeter/branches/rel-2-2/src:
components/org/apache/jmeter/assertions/
components/org/apache/jmeter/extractor/
components/org/apache/jmeter/modifiers/
components/org/apache/jmeter/timers/ components/org/apache/jmeter/vi...
Author: sebb
Date: Fri Jun 22 11:15:33 2007
New Revision: 549919
URL: http://svn.apache.org/viewvc?view=rev&rev=549919
Log:
Bug 42660 - BeanShell* : add property to specify if "testStarted" etc methods should be called
Added:
jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/util/BeanShellTestElement.java (with props)
Modified:
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/BeanShellAssertion.java
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/extractor/BeanShellPostProcessor.java
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/modifiers/BeanShellPreProcessor.java
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/timers/BeanShellTimer.java
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/BeanShellListener.java
jakarta/jmeter/branches/rel-2-2/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BeanShellSampler.java
Modified: jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/BeanShellAssertion.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/BeanShellAssertion.java?view=diff&rev=549919&r1=549918&r2=549919
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/BeanShellAssertion.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/BeanShellAssertion.java Fri Jun 22 11:15:33 2007
@@ -18,21 +18,13 @@
package org.apache.jmeter.assertions;
-import java.io.IOException;
-import java.io.Serializable;
-
-import org.apache.jmeter.engine.event.LoopIterationEvent;
import org.apache.jmeter.samplers.SampleResult;
-import org.apache.jmeter.testelement.AbstractTestElement;
-import org.apache.jmeter.testelement.TestListener;
-import org.apache.jmeter.testelement.ThreadListener;
import org.apache.jmeter.threads.JMeterContext;
import org.apache.jmeter.threads.JMeterContextService;
import org.apache.jmeter.threads.JMeterVariables;
import org.apache.jmeter.util.BeanShellInterpreter;
-import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jmeter.util.BeanShellTestElement;
import org.apache.jorphan.logging.LoggingManager;
-import org.apache.jorphan.util.JMeterException;
import org.apache.jorphan.util.JOrphanUtils;
import org.apache.log.Logger;
@@ -40,38 +32,24 @@
* A sampler which understands BeanShell
*
*/
-public class BeanShellAssertion extends AbstractTestElement implements Serializable, Assertion, ThreadListener, TestListener {
+public class BeanShellAssertion extends BeanShellTestElement implements Assertion {
private static final Logger log = LoggingManager.getLoggerForClass();
+ private static final long serialVersionUID = 3;
+
public static final String FILENAME = "BeanShellAssertion.filename"; //$NON-NLS-1$
public static final String SCRIPT = "BeanShellAssertion.query"; //$NON-NLS-1$
public static final String PARAMETERS = "BeanShellAssertion.parameters"; //$NON-NLS-1$
- // Not serialised - recreated as needed
- transient private BeanShellInterpreter bshInterpreter = null;
-
// can be specified in jmeter.properties
public static final String INIT_FILE = "beanshell.assertion.init"; //$NON-NLS-1$
- public BeanShellAssertion() {
- init();
- }
-
- // Ensure deserialisation works in server
- private Object readResolve(){
- init();
- return this;
- }
+ protected String getInitFileProperty() {
+ return INIT_FILE;
+ }
- private void init(){
- try {
- bshInterpreter = new BeanShellInterpreter(JMeterUtils.getProperty(INIT_FILE), log);
- } catch (ClassNotFoundException e) {
- log.error("Cannot find BeanShell: "+e.toString());
- }
- }
public String getScript() {
return getPropertyAsString(SCRIPT);
}
@@ -92,6 +70,7 @@
public AssertionResult getResult(SampleResult response) {
AssertionResult result = new AssertionResult(getName());
+ final BeanShellInterpreter bshInterpreter = getBeanShellInterpreter();
if (bshInterpreter == null) {
result.setFailure(true);
result.setError(true);
@@ -167,68 +146,4 @@
return result;
}
-
- public void threadStarted() {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.evalNoLog("threadStarted()"); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void threadFinished() {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.evalNoLog("threadFinished()"); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void testEnded() {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.evalNoLog("testEnded()"); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void testEnded(String host) {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.eval((new StringBuffer("testEnded(")) // $NON-NLS-1$
- .append(host)
- .append(")") // $NON-NLS-1$
- .toString()); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void testIterationStart(LoopIterationEvent event) {
- // Not implemented
- }
-
- public void testStarted() {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.evalNoLog("testStarted()"); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void testStarted(String host) {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.eval((new StringBuffer("testStarted(")) // $NON-NLS-1$
- .append(host)
- .append(")") // $NON-NLS-1$
- .toString()); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-}
\ No newline at end of file
+}
Modified: jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/extractor/BeanShellPostProcessor.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/extractor/BeanShellPostProcessor.java?view=diff&rev=549919&r1=549918&r2=549919
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/extractor/BeanShellPostProcessor.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/extractor/BeanShellPostProcessor.java Fri Jun 22 11:15:33 2007
@@ -18,60 +18,37 @@
package org.apache.jmeter.extractor;
-import java.io.Serializable;
-
-import org.apache.jmeter.engine.event.LoopIterationEvent;
import org.apache.jmeter.processor.PostProcessor;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.testbeans.TestBean;
-import org.apache.jmeter.testelement.AbstractTestElement;
-import org.apache.jmeter.testelement.TestListener;
-import org.apache.jmeter.testelement.ThreadListener;
import org.apache.jmeter.threads.JMeterContext;
import org.apache.jmeter.threads.JMeterContextService;
import org.apache.jmeter.threads.JMeterVariables;
import org.apache.jmeter.util.BeanShellInterpreter;
-import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jmeter.util.BeanShellTestElement;
import org.apache.jorphan.logging.LoggingManager;
import org.apache.jorphan.util.JMeterException;
import org.apache.log.Logger;
-public class BeanShellPostProcessor extends AbstractTestElement
- implements PostProcessor, Serializable, TestBean, ThreadListener, TestListener
+public class BeanShellPostProcessor extends BeanShellTestElement
+ implements Cloneable, PostProcessor, TestBean
{
private static final Logger log = LoggingManager.getLoggerForClass();
private static final long serialVersionUID = 3;
-
- private String script;
- transient private BeanShellInterpreter bshInterpreter = null;
-
// can be specified in jmeter.properties
private static final String INIT_FILE = "beanshell.postprocessor.init"; //$NON-NLS-1$
- public BeanShellPostProcessor() {
- super();
- init();
- }
-
- private void init() {
- try {
- bshInterpreter = new BeanShellInterpreter(JMeterUtils.getProperty(INIT_FILE),log);
- } catch (ClassNotFoundException e) {
- log.error("Cannot find BeanShell: "+e.toString());
- }
- }
-
- private Object readResolve() {
- init();
- return this;
+ protected String getInitFileProperty() {
+ return INIT_FILE;
}
public void process() {
JMeterContext jmctx = JMeterContextService.getContext();
SampleResult prev = jmctx.getPreviousResult();
+ final BeanShellInterpreter bshInterpreter = getBeanShellInterpreter();
if (prev == null || bshInterpreter == null) {
return;
}
@@ -83,86 +60,9 @@
bshInterpreter.set("vars", vars);//$NON-NLS-1$
bshInterpreter.set("prev", prev);//$NON-NLS-1$
bshInterpreter.set("data", prev.getResponseData());//$NON-NLS-1$
- bshInterpreter.eval(script);
+ bshInterpreter.eval(getScript());
} catch (JMeterException e) {
log.warn("Problem in BeanShell script "+e);
}
- }
-
- public Object clone() {
- BeanShellPostProcessor o = (BeanShellPostProcessor) super.clone();
- o.script = script;
- return o;
- }
-
- public String getScript(){
- return script;
- }
-
- public void setScript(String s){
- script=s;
- }
- public void threadStarted() {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.evalNoLog("threadStarted()"); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void threadFinished() {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.evalNoLog("threadFinished()"); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void testEnded() {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.evalNoLog("testEnded()"); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void testEnded(String host) {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.eval((new StringBuffer("testEnded(")) // $NON-NLS-1$
- .append(host)
- .append(")") // $NON-NLS-1$
- .toString()); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void testIterationStart(LoopIterationEvent event) {
- // Not implemented
- }
-
- public void testStarted() {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.evalNoLog("testStarted()"); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void testStarted(String host) {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.eval((new StringBuffer("testStarted(")) // $NON-NLS-1$
- .append(host)
- .append(")") // $NON-NLS-1$
- .toString()); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
}
}
Modified: jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/modifiers/BeanShellPreProcessor.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/modifiers/BeanShellPreProcessor.java?view=diff&rev=549919&r1=549918&r2=549919
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/modifiers/BeanShellPreProcessor.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/modifiers/BeanShellPreProcessor.java Fri Jun 22 11:15:33 2007
@@ -18,59 +18,36 @@
package org.apache.jmeter.modifiers;
-import java.io.Serializable;
-
-import org.apache.jmeter.engine.event.LoopIterationEvent;
import org.apache.jmeter.processor.PreProcessor;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.samplers.Sampler;
import org.apache.jmeter.testbeans.TestBean;
-import org.apache.jmeter.testelement.AbstractTestElement;
-import org.apache.jmeter.testelement.TestListener;
-import org.apache.jmeter.testelement.ThreadListener;
import org.apache.jmeter.threads.JMeterContext;
import org.apache.jmeter.threads.JMeterContextService;
import org.apache.jmeter.threads.JMeterVariables;
import org.apache.jmeter.util.BeanShellInterpreter;
-import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jmeter.util.BeanShellTestElement;
import org.apache.jorphan.logging.LoggingManager;
import org.apache.jorphan.util.JMeterException;
import org.apache.log.Logger;
-public class BeanShellPreProcessor extends AbstractTestElement
- implements PreProcessor, Serializable, TestBean, ThreadListener, TestListener
+public class BeanShellPreProcessor extends BeanShellTestElement
+ implements Cloneable, PreProcessor, TestBean
{
private static final Logger log = LoggingManager.getLoggerForClass();
private static final long serialVersionUID = 3;
-
- private String script;
- transient private BeanShellInterpreter bshInterpreter = null;
-
// can be specified in jmeter.properties
private static final String INIT_FILE = "beanshell.preprocessor.init"; //$NON-NLS-1$
- public BeanShellPreProcessor() {
- super();
- init();
- }
-
- private void init() {
- try {
- bshInterpreter = new BeanShellInterpreter(JMeterUtils.getProperty(INIT_FILE),log);
- } catch (ClassNotFoundException e) {
- log.error("Cannot find BeanShell: "+e.toString());
- }
- }
-
- private Object readResolve() {
- init();
- return this;
+ protected String getInitFileProperty() {
+ return INIT_FILE;
}
public void process(){
- if (bshInterpreter == null) {
+ final BeanShellInterpreter bshInterpreter = getBeanShellInterpreter();
+ if (bshInterpreter == null) {
return;
}
JMeterContext jmctx = JMeterContextService.getContext();
@@ -84,87 +61,9 @@
bshInterpreter.set("sampler", sam);//$NON-NLS-1$
bshInterpreter.set("prev", prev);//$NON-NLS-1$
- bshInterpreter.eval(script);
+ bshInterpreter.eval(getScript());
} catch (JMeterException e) {
log.warn("Problem in BeanShell script "+e);
}
- }
-
- public Object clone() {
- BeanShellPreProcessor o = (BeanShellPreProcessor) super.clone();
- o.script = script;
- return o;
- }
-
- public String getScript(){
- return script;
- }
-
- public void setScript(String s){
- script=s;
- }
-
- public void threadStarted() {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.evalNoLog("threadStarted()"); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void threadFinished() {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.evalNoLog("threadFinished()"); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void testEnded() {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.evalNoLog("testEnded()"); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void testEnded(String host) {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.eval((new StringBuffer("testEnded(")) // $NON-NLS-1$
- .append(host)
- .append(")") // $NON-NLS-1$
- .toString()); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void testIterationStart(LoopIterationEvent event) {
- // Not implemented
- }
-
- public void testStarted() {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.evalNoLog("testStarted()"); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void testStarted(String host) {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.eval((new StringBuffer("testStarted(")) // $NON-NLS-1$
- .append(host)
- .append(")") // $NON-NLS-1$
- .toString()); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
}
}
Modified: jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/timers/BeanShellTimer.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/timers/BeanShellTimer.java?view=diff&rev=549919&r1=549918&r2=549919
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/timers/BeanShellTimer.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/timers/BeanShellTimer.java Fri Jun 22 11:15:33 2007
@@ -18,50 +18,26 @@
package org.apache.jmeter.timers;
-import java.io.Serializable;
-
-import org.apache.jmeter.engine.event.LoopIterationEvent;
import org.apache.jmeter.testbeans.TestBean;
-import org.apache.jmeter.testelement.AbstractTestElement;
-import org.apache.jmeter.testelement.TestListener;
-import org.apache.jmeter.testelement.ThreadListener;
import org.apache.jmeter.threads.JMeterContext;
import org.apache.jmeter.threads.JMeterContextService;
import org.apache.jmeter.threads.JMeterVariables;
import org.apache.jmeter.util.BeanShellInterpreter;
-import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jmeter.util.BeanShellTestElement;
import org.apache.jorphan.logging.LoggingManager;
import org.apache.jorphan.util.JMeterException;
import org.apache.log.Logger;
-public class BeanShellTimer extends AbstractTestElement implements Timer, Serializable, TestBean, ThreadListener, TestListener {
+public class BeanShellTimer extends BeanShellTestElement implements Cloneable, Timer, TestBean {
private static final Logger log = LoggingManager.getLoggerForClass();
private static final long serialVersionUID = 2;
- private String script;
-
- transient private BeanShellInterpreter bshInterpreter = null;
-
// can be specified in jmeter.properties
private static final String INIT_FILE = "beanshell.timer.init"; //$NON-NLS-1$
- public BeanShellTimer() {
- super();
- init();
- }
-
- private void init() {
- try {
- bshInterpreter = new BeanShellInterpreter(JMeterUtils.getProperty(INIT_FILE),log);
- } catch (ClassNotFoundException e) {
- log.error("Cannot find BeanShell: "+e.toString());
- }
- }
-
- private Object readResolve() {
- init();
- return this;
+ protected String getInitFileProperty() {
+ return INIT_FILE;
}
/*
@@ -71,7 +47,8 @@
*/
public long delay() {
String ret="0";
- if (bshInterpreter == null) {
+ final BeanShellInterpreter bshInterpreter = getBeanShellInterpreter();
+ if (bshInterpreter == null) {
log.error("BeanShell not found");
return 0;
}
@@ -81,7 +58,7 @@
// Add variables for access to context and variables
bshInterpreter.set("ctx", jmctx);//$NON-NLS-1$
bshInterpreter.set("vars", vars);//$NON-NLS-1$
- Object o = bshInterpreter.eval(script);
+ Object o = bshInterpreter.eval(getScript());
if (o != null) ret=o.toString();
} catch (JMeterException e) {
log.warn("Problem in BeanShell script "+e);
@@ -92,83 +69,5 @@
log.warn(e.getLocalizedMessage());
return 0;
}
- }
-
- public Object clone() {
- BeanShellTimer o = (BeanShellTimer) super.clone();
- o.script = script;
- return o;
- }
-
- public String getScript(){
- return script;
- }
-
- public void setScript(String s){
- script=s;
- }
-
- public void threadStarted() {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.evalNoLog("threadStarted()"); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void threadFinished() {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.evalNoLog("threadFinished()"); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void testEnded() {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.evalNoLog("testEnded()"); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void testEnded(String host) {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.eval((new StringBuffer("testEnded(")) // $NON-NLS-1$
- .append(host)
- .append(")") // $NON-NLS-1$
- .toString()); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void testIterationStart(LoopIterationEvent event) {
- // Not implemented
- }
-
- public void testStarted() {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.evalNoLog("testStarted()"); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void testStarted(String host) {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.eval((new StringBuffer("testStarted(")) // $NON-NLS-1$
- .append(host)
- .append(")") // $NON-NLS-1$
- .toString()); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
}
}
Modified: jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/BeanShellListener.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/BeanShellListener.java?view=diff&rev=549919&r1=549918&r2=549919
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/BeanShellListener.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/BeanShellListener.java Fri Jun 22 11:15:33 2007
@@ -18,69 +18,41 @@
package org.apache.jmeter.visualizers;
-import java.io.Serializable;
-
-import org.apache.jmeter.engine.event.LoopIterationEvent;
import org.apache.jmeter.gui.UnsharedComponent;
import org.apache.jmeter.samplers.SampleEvent;
import org.apache.jmeter.samplers.SampleListener;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.testbeans.TestBean;
-import org.apache.jmeter.testelement.AbstractTestElement;
-import org.apache.jmeter.testelement.TestListener;
import org.apache.jmeter.threads.JMeterContext;
import org.apache.jmeter.threads.JMeterContextService;
import org.apache.jmeter.threads.JMeterVariables;
import org.apache.jmeter.util.BeanShellInterpreter;
-import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jmeter.util.BeanShellTestElement;
import org.apache.jorphan.logging.LoggingManager;
import org.apache.jorphan.util.JMeterException;
import org.apache.log.Logger;
-public class BeanShellListener extends AbstractTestElement
- implements SampleListener, Visualizer, Serializable, TestBean, TestListener, UnsharedComponent {
+public class BeanShellListener extends BeanShellTestElement
+ implements Cloneable, SampleListener, Visualizer, TestBean, UnsharedComponent {
private static final Logger log = LoggingManager.getLoggerForClass();
private static final long serialVersionUID = 2;
- transient private BeanShellInterpreter bshInterpreter = null;
-
// can be specified in jmeter.properties
private static final String INIT_FILE = "beanshell.listener.init"; //$NON-NLS-1$
-
- private String script = "";
-
- public BeanShellListener() {
- init();
- }
-
-
- private void init() {
- try {
- bshInterpreter = new BeanShellInterpreter(JMeterUtils.getProperty(INIT_FILE),log);
- } catch (ClassNotFoundException e) {
- log.error("Cannot find BeanShell: "+e.toString());
- }
- }
-
- private Object readResolve() {
- init();
- return this;
+ protected String getInitFileProperty() {
+ return INIT_FILE;
}
-
- public String getScript() {
- return script;
- }
-
-
- public void setScript(String script) {
- this.script = script;
- }
-
public void sampleOccurred(SampleEvent se) {
+ final BeanShellInterpreter bshInterpreter = getBeanShellInterpreter();
+ if (bshInterpreter == null) {
+ log.error("BeanShell not found");
+ return;
+ }
+
JMeterContext jmctx = JMeterContextService.getContext();
JMeterVariables vars = jmctx.getVariables();
SampleResult samp=se.getResult();
@@ -90,14 +62,12 @@
bshInterpreter.set("vars", vars);//$NON-NLS-1$
bshInterpreter.set("sampleEvent", se);//$NON-NLS-1$
bshInterpreter.set("sampleResult", samp);//$NON-NLS-1$
- bshInterpreter.eval(script);
+ bshInterpreter.eval(getScript());
} catch (JMeterException e) {
log.warn("Problem in BeanShell script "+e);
- }
-
+ }
}
-
public void sampleStarted(SampleEvent e) {
}
@@ -110,39 +80,4 @@
public boolean isStats() {// Required by Visualiser
return false;
}
-
-
- public void testEnded() {
- testEnded("");
- }
-
-
- public void testEnded(String host) {
- // TODO Auto-generated method stub
-
- }
-
-
- public void testIterationStart(LoopIterationEvent event) {
- // TODO Auto-generated method stub
-
- }
-
-
- public void testStarted() {
- testStarted("");
- }
-
-
- public void testStarted(String host) {
- // TODO Auto-generated method stub
-
- }
-
-// public Object clone() {
-// BeanShellListener o = (BeanShellListener) super.clone();
-// o.script = script;
-// return o;
-// }
-
}
Added: jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/util/BeanShellTestElement.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/util/BeanShellTestElement.java?view=auto&rev=549919
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/util/BeanShellTestElement.java (added)
+++ jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/util/BeanShellTestElement.java Fri Jun 22 11:15:33 2007
@@ -0,0 +1,164 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.jmeter.util;
+
+import java.io.Serializable;
+
+import org.apache.jmeter.engine.event.LoopIterationEvent;
+import org.apache.jmeter.testelement.AbstractTestElement;
+import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.ThreadListener;
+import org.apache.jmeter.util.BeanShellInterpreter;
+import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jorphan.logging.LoggingManager;
+import org.apache.jorphan.util.JMeterException;
+import org.apache.log.Logger;
+
+public abstract class BeanShellTestElement extends AbstractTestElement
+ implements Serializable, Cloneable, ThreadListener, TestListener
+{
+ private static final Logger log = LoggingManager.getLoggerForClass();
+
+ private static final long serialVersionUID = 3;
+
+ private String script; // For TestBean implementations only
+
+ transient private BeanShellInterpreter bshInterpreter = null;
+
+ transient private boolean hasInitFile = false;
+
+ public BeanShellTestElement() {
+ super();
+ init();
+ }
+
+ protected abstract String getInitFileProperty();
+
+ protected BeanShellInterpreter getBeanShellInterpreter() {
+ return bshInterpreter;
+ }
+
+ private void init() {
+ try {
+ String initFileName = JMeterUtils.getProperty(getInitFileProperty());
+ hasInitFile = initFileName != null;
+ bshInterpreter = new BeanShellInterpreter(initFileName, log);
+ } catch (ClassNotFoundException e) {
+ log.error("Cannot find BeanShell: "+e.toString());
+ }
+ }
+
+ private Object readResolve() {
+ init();
+ return this;
+ }
+
+ public Object clone() {
+ BeanShellTestElement o = (BeanShellTestElement) super.clone();
+ o.init();
+ o.setScript(getScript());
+ return o;
+ }
+
+ /**
+ * Return the script (TestBean version).
+ * Must be overridden for subclasses that don't implement TestBean
+ * otherwise the clone() method won't work.
+ *
+ * @return the script to execute
+ */
+ public String getScript(){
+ return script;
+ }
+
+ /**
+ * Set the script (TestBean version).
+ * Must be overridden for subclasses that don't implement TestBean
+ * otherwise the clone() method won't work.
+ *
+ * @param s the script to execute (may be blank)
+ */
+ public void setScript(String s){
+ script=s;
+ }
+
+ public void threadStarted() {
+ if (bshInterpreter == null || !hasInitFile) return;
+ try {
+ bshInterpreter.evalNoLog("threadStarted()"); // $NON-NLS-1$
+ } catch (JMeterException ignored) {
+ log.debug(getClass().getName() + " : " + ignored.getLocalizedMessage()); // $NON-NLS-1$
+ }
+ }
+
+ public void threadFinished() {
+ if (bshInterpreter == null || !hasInitFile) return;
+ try {
+ bshInterpreter.evalNoLog("threadFinished()"); // $NON-NLS-1$
+ } catch (JMeterException ignored) {
+ log.debug(getClass().getName() + " : " + ignored.getLocalizedMessage()); // $NON-NLS-1$
+ }
+ }
+
+ public void testEnded() {
+ if (bshInterpreter == null || !hasInitFile) return;
+ try {
+ bshInterpreter.evalNoLog("testEnded()"); // $NON-NLS-1$
+ } catch (JMeterException ignored) {
+ log.debug(getClass().getName() + " : " + ignored.getLocalizedMessage()); // $NON-NLS-1$
+ }
+ }
+
+ public void testEnded(String host) {
+ if (bshInterpreter == null || !hasInitFile) return;
+ try {
+ bshInterpreter.eval((new StringBuffer("testEnded(")) // $NON-NLS-1$
+ .append(host)
+ .append(")") // $NON-NLS-1$
+ .toString()); // $NON-NLS-1$
+ } catch (JMeterException ignored) {
+ log.debug(getClass().getName() + " : " + ignored.getLocalizedMessage()); // $NON-NLS-1$
+ }
+ }
+
+ public void testIterationStart(LoopIterationEvent event) {
+ // Not implemented
+ }
+
+ public void testStarted() {
+ if (bshInterpreter == null || !hasInitFile) return;
+ try {
+ bshInterpreter.evalNoLog("testStarted()"); // $NON-NLS-1$
+ } catch (JMeterException ignored) {
+ log.debug(getClass().getName() + " : " + ignored.getLocalizedMessage()); // $NON-NLS-1$
+ }
+ }
+
+ public void testStarted(String host) {
+ if (bshInterpreter == null || !hasInitFile) return;
+ try {
+ bshInterpreter.eval((new StringBuffer("testStarted(")) // $NON-NLS-1$
+ .append(host)
+ .append(")") // $NON-NLS-1$
+ .toString()); // $NON-NLS-1$
+ } catch (JMeterException ignored) {
+ log.debug(getClass().getName() + " : " + ignored.getLocalizedMessage()); // $NON-NLS-1$
+ }
+ }
+}
Propchange: jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/util/BeanShellTestElement.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/util/BeanShellTestElement.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: jakarta/jmeter/branches/rel-2-2/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BeanShellSampler.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BeanShellSampler.java?view=diff&rev=549919&r1=549918&r2=549919
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BeanShellSampler.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BeanShellSampler.java Fri Jun 22 11:15:33 2007
@@ -18,21 +18,15 @@
package org.apache.jmeter.protocol.java.sampler;
-import java.io.IOException;
-
-import org.apache.jmeter.engine.event.LoopIterationEvent;
-import org.apache.jmeter.samplers.AbstractSampler;
import org.apache.jmeter.samplers.Entry;
import org.apache.jmeter.samplers.SampleResult;
-import org.apache.jmeter.testelement.TestListener;
-import org.apache.jmeter.testelement.ThreadListener;
+import org.apache.jmeter.samplers.Sampler;
import org.apache.jmeter.threads.JMeterContext;
import org.apache.jmeter.threads.JMeterContextService;
import org.apache.jmeter.threads.JMeterVariables;
import org.apache.jmeter.util.BeanShellInterpreter;
-import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jmeter.util.BeanShellTestElement;
import org.apache.jorphan.logging.LoggingManager;
-import org.apache.jorphan.util.JMeterException;
import org.apache.jorphan.util.JOrphanUtils;
import org.apache.log.Logger;
@@ -40,11 +34,12 @@
* A sampler which understands BeanShell
*
*/
-public class BeanShellSampler extends AbstractSampler
- implements ThreadListener, TestListener
+public class BeanShellSampler extends BeanShellTestElement implements Sampler
{
private static final Logger log = LoggingManager.getLoggerForClass();
+ private static final long serialVersionUID = 3;
+
public static final String FILENAME = "BeanShellSampler.filename"; //$NON-NLS-1$
public static final String SCRIPT = "BeanShellSampler.query"; //$NON-NLS-1$
@@ -52,16 +47,10 @@
public static final String PARAMETERS = "BeanShellSampler.parameters"; //$NON-NLS-1$
public static final String INIT_FILE = "beanshell.sampler.init"; //$NON-NLS-1$
-
- transient private BeanShellInterpreter bshInterpreter;
-
- public BeanShellSampler() {
- try {
- bshInterpreter = new BeanShellInterpreter(JMeterUtils.getProperty(INIT_FILE), log);
- } catch (ClassNotFoundException e) {
- log.error("Cannot find BeanShell: "+e.toString());
- }
- }
+
+ protected String getInitFileProperty() {
+ return INIT_FILE;
+ }
/**
* Returns a formatted string label describing this sampler
@@ -92,6 +81,7 @@
boolean isSuccessful = false;
res.setSampleLabel(getLabel());
res.sampleStart();
+ final BeanShellInterpreter bshInterpreter = getBeanShellInterpreter();
if (bshInterpreter == null) {
res.sampleEnd();
res.setResponseCode("503");//$NON-NLS-1$
@@ -111,9 +101,11 @@
bshInterpreter.set("Label", getLabel()); //$NON-NLS-1$
bshInterpreter.set("FileName", getFilename()); //$NON-NLS-1$
bshInterpreter.set("SampleResult", res); //$NON-NLS-1$
- bshInterpreter.set("Parameters", getParameters());// as a single
- // line//$NON-NLS-1$
- bshInterpreter.set("bsh.args", JOrphanUtils.split(getParameters(), " "));
+
+ // Save parameters as single line and as string array
+ bshInterpreter.set("Parameters", getParameters());//$NON-NLS-1$
+ bshInterpreter.set("bsh.args", //$NON-NLS-1$
+ JOrphanUtils.split(getParameters(), " "));//$NON-NLS-1$
// Set default values
bshInterpreter.set("ResponseCode", "200"); //$NON-NLS-1$
@@ -173,68 +165,4 @@
return res;
}
-
- public void threadStarted() {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.evalNoLog("threadStarted()"); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void threadFinished() {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.evalNoLog("threadFinished()"); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void testEnded() {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.evalNoLog("testEnded()"); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void testEnded(String host) {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.evalNoLog((new StringBuffer("testEnded(")) // $NON-NLS-1$
- .append(host)
- .append(")") // $NON-NLS-1$
- .toString()); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void testIterationStart(LoopIterationEvent event) {
- // Not implemented
- }
-
- public void testStarted() {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.evalNoLog("testStarted()"); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-
- public void testStarted(String host) {
- if (bshInterpreter == null) return;
- try {
- bshInterpreter.evalNoLog((new StringBuffer("testStarted(")) // $NON-NLS-1$
- .append(host)
- .append(")") // $NON-NLS-1$
- .toString()); // $NON-NLS-1$
- } catch (JMeterException ignored) {
- log.debug(ignored.getLocalizedMessage());
- }
- }
-}
\ No newline at end of file
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org