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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]