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/09/19 18:27:12 UTC

svn commit: r577344 - /jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellTestElement.java

Author: sebb
Date: Wed Sep 19 09:27:11 2007
New Revision: 577344

URL: http://svn.apache.org/viewvc?rev=577344&view=rev
Log:
Add new common TestBean variables and utility eval() method

Modified:
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellTestElement.java

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellTestElement.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellTestElement.java?rev=577344&r1=577343&r2=577344&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellTestElement.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellTestElement.java Wed Sep 19 09:27:11 2007
@@ -28,6 +28,7 @@
 import org.apache.jmeter.util.JMeterUtils;
 import org.apache.jorphan.logging.LoggingManager;
 import org.apache.jorphan.util.JMeterException;
+import org.apache.jorphan.util.JOrphanUtils;
 import org.apache.log.Logger;
 
 public abstract class BeanShellTestElement extends AbstractTestElement
@@ -35,9 +36,16 @@
 {
     private static final Logger log = LoggingManager.getLoggerForClass();
     
-    private static final long serialVersionUID = 3;
+    private static final long serialVersionUID = 4;
+
+    //++ For TestBean implementations only
+	private String parameters; // passed to file or script
+	
+	private String filename; // file to source (overrides script)
+
+	private String script; // script (if file not provided)
+	//-- For TestBean implementations only
 
-    private String script; // For TestBean implementations only
     
     transient private BeanShellInterpreter bshInterpreter = null;
 
@@ -76,6 +84,23 @@
         return o;
     }
 
+    protected Object processFileOrScript(BeanShellInterpreter bsh) throws JMeterException{
+		String fileName = getFilename();
+
+		bsh.set("FileName", getFilename());//$NON-NLS-1$
+		// Set params as a single line
+		bsh.set("Parameters", getParameters()); // $NON-NLS-1$
+		// and set as an array
+		bsh.set("bsh.args",//$NON-NLS-1$
+				JOrphanUtils.split(getParameters(), " "));//$NON-NLS-1$
+
+		if (fileName.length() == 0) {
+			return bsh.eval(getScript());
+		} else {
+			return bsh.source(fileName);
+		}
+    }
+
     /**
      * Return the script (TestBean version).
      * Must be overridden for subclasses that don't implement TestBean
@@ -160,5 +185,21 @@
 		} catch (JMeterException ignored) {
             log.debug(getClass().getName() + " : " + ignored.getLocalizedMessage()); // $NON-NLS-1$
 		}		
+	}
+
+	public String getParameters() {
+		return parameters;
+	}
+
+	public void setParameters(String s) {
+		parameters = s;
+	}
+
+	public String getFilename() {
+		return filename;
+	}
+
+	public void setFilename(String s) {
+		filename = s;
 	}
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org