[prev in list] [next in list] [prev in thread] [next in thread] 

List:       jmeter-dev
Subject:    svn commit: r579658 - in
From:       sebb () apache ! org
Date:       2007-09-26 14:04:56
Message-ID: 20070926140456.995BD1A9832 () eris ! apache ! org
[Download RAW message or body]

Author: sebb
Date: Wed Sep 26 07:04:55 2007
New Revision: 579658

URL: http://svn.apache.org/viewvc?rev=579658&view=rev
Log:
Add eval() and evalVar() functions

Added:
    jakarta/jmeter/trunk/src/functions/org/apache/jmeter/functions/EvalFunction.java  \
(with props)  jakarta/jmeter/trunk/src/functions/org/apache/jmeter/functions/EvalVarFunction.java \
(with props)

Added: jakarta/jmeter/trunk/src/functions/org/apache/jmeter/functions/EvalFunction.java
                
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/functions/org/apache/jmeter/functions/EvalFunction.java?rev=579658&view=auto
 ==============================================================================
--- jakarta/jmeter/trunk/src/functions/org/apache/jmeter/functions/EvalFunction.java \
                (added)
+++ jakarta/jmeter/trunk/src/functions/org/apache/jmeter/functions/EvalFunction.java \
Wed Sep 26 07:04:55 2007 @@ -0,0 +1,92 @@
+/*
+ * 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.functions;
+
+// @see PackageTest for unit tests
+
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.apache.jmeter.engine.util.CompoundVariable;
+import org.apache.jmeter.samplers.SampleResult;
+import org.apache.jmeter.samplers.Sampler;
+import org.apache.jmeter.util.JMeterUtils;
+
+/**
+ * Function to evaluate a string which may contain variable or function references.
+ * 
+ * Parameter: string to be evaluated
+ * 
+ * Returns: the evaluated value 
+ * 
+ */
+public class EvalFunction extends AbstractFunction implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	private static final List desc = new LinkedList();
+
+	private static final String KEY = "__eval"; //$NON-NLS-1$
+
+	// Number of parameters expected - used to reject invalid calls
+	private static final int MIN_PARAMETER_COUNT = 1;
+	private static final int MAX_PARAMETER_COUNT = 1;
+	
+	static {
+		desc.add(JMeterUtils.getResString("eval_name_param")); //$NON-NLS-1$
+	}
+
+	private Object[] values;
+
+	public EvalFunction() {
+	}
+
+	public Object clone() throws CloneNotSupportedException {
+		return super.clone();
+	}
+
+	public synchronized String execute(SampleResult previousResult, Sampler \
currentSampler) +			throws InvalidVariableException {
+		String parameter = ((CompoundVariable) values[0]).execute();
+		CompoundVariable cv = new CompoundVariable(parameter);
+		return cv.execute();
+	}
+
+	public synchronized void setParameters(Collection parameters) throws \
InvalidVariableException { +
+		values = parameters.toArray();
+
+		if ((values.length < MIN_PARAMETER_COUNT) || (values.length > \
MAX_PARAMETER_COUNT)) { +			throw new InvalidVariableException("Parameter Count not \
between " + MIN_PARAMETER_COUNT + " & " +					+ MAX_PARAMETER_COUNT);
+		}
+
+	}
+
+	public String getReferenceKey() {
+		return KEY;
+	}
+
+	public List getArgumentDesc() {
+		return desc;
+	}
+
+}
\ No newline at end of file

Propchange: jakarta/jmeter/trunk/src/functions/org/apache/jmeter/functions/EvalFunction.java
                
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/jmeter/trunk/src/functions/org/apache/jmeter/functions/EvalFunction.java
                
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: jakarta/jmeter/trunk/src/functions/org/apache/jmeter/functions/EvalVarFunction.java
                
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/functions/org/apache/jmeter/functions/EvalVarFunction.java?rev=579658&view=auto
 ==============================================================================
--- jakarta/jmeter/trunk/src/functions/org/apache/jmeter/functions/EvalVarFunction.java \
                (added)
+++ jakarta/jmeter/trunk/src/functions/org/apache/jmeter/functions/EvalVarFunction.java \
Wed Sep 26 07:04:55 2007 @@ -0,0 +1,94 @@
+/*
+ * 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.functions;
+
+// @see PackageTest for unit tests
+
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.apache.jmeter.engine.util.CompoundVariable;
+import org.apache.jmeter.samplers.SampleResult;
+import org.apache.jmeter.samplers.Sampler;
+import org.apache.jmeter.util.JMeterUtils;
+
+/**
+ * Function to evaluate a string which may contain variable or function references.
+ * 
+ * Parameter: string to be evaluated
+ * 
+ * Returns: the evaluated value 
+ * 
+ */
+public class EvalVarFunction extends AbstractFunction implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	private static final List desc = new LinkedList();
+
+	private static final String KEY = "__evalVar"; //$NON-NLS-1$
+
+	// Number of parameters expected - used to reject invalid calls
+	private static final int MIN_PARAMETER_COUNT = 1;
+	private static final int MAX_PARAMETER_COUNT = 1;
+	
+	static {
+		desc.add(JMeterUtils.getResString("evalvar_name_param")); //$NON-NLS-1$
+	}
+
+	private Object[] values;
+
+	public EvalVarFunction() {
+	}
+
+	public Object clone() throws CloneNotSupportedException {
+		return super.clone();
+	}
+
+	public synchronized String execute(SampleResult previousResult, Sampler \
currentSampler) +			throws InvalidVariableException {
+		String variableName = ((CompoundVariable) values[0]).execute();
+		String variableValue = getVariables().get(variableName);
+		//String parameter = ((CompoundVariable) values[0]).execute();
+		CompoundVariable cv = new CompoundVariable(variableValue);
+		return cv.execute();
+	}
+
+	public synchronized void setParameters(Collection parameters) throws \
InvalidVariableException { +
+		values = parameters.toArray();
+
+		if ((values.length < MIN_PARAMETER_COUNT) || (values.length > \
MAX_PARAMETER_COUNT)) { +			throw new InvalidVariableException("Parameter Count not \
between " + MIN_PARAMETER_COUNT + " & " +					+ MAX_PARAMETER_COUNT);
+		}
+
+	}
+
+	public String getReferenceKey() {
+		return KEY;
+	}
+
+	public List getArgumentDesc() {
+		return desc;
+	}
+
+}
\ No newline at end of file

Propchange: jakarta/jmeter/trunk/src/functions/org/apache/jmeter/functions/EvalVarFunction.java
                
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/jmeter/trunk/src/functions/org/apache/jmeter/functions/EvalVarFunction.java
                
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision



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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic