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 ms...@apache.org on 2003/05/05 19:23:02 UTC
cvs commit: jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/proxy ProxyControl.java
mstover1 2003/05/05 10:23:02
Modified: src/components/org/apache/jmeter/visualizers
TableVisualizer.java
src/core/org/apache/jmeter/engine/util ValueReplacer.java
src/core/org/apache/jmeter/gui/action Copy.java Load.java
src/core/org/apache/jmeter/gui/util JMeterMenuBar.java
MenuFactory.java
src/core/org/apache/jmeter/reporters ResultCollector.java
src/core/org/apache/jmeter/testelement/property
CollectionProperty.java DoubleProperty.java
FloatProperty.java IntegerProperty.java
LongProperty.java MapProperty.java
TestElementProperty.java
src/core/org/apache/jmeter/visualizers/gui
AbstractVisualizer.java
src/protocol/http/org/apache/jmeter/protocol/http/proxy
ProxyControl.java
Added: src/core/org/apache/jmeter/engine/util
AbstractTransformer.java
ReplaceFunctionsWithStrings.java
ReplaceStringWithFunctions.java
UndoVariableReplacement.java ValueTransformer.java
src/core/org/apache/jmeter/testelement/property
MultiProperty.java NumberProperty.java
Log:
Various refactorings to reduce duplicate code
Fixed bug that caused visualizers to clear at start of test run
Revision Changes Path
1.9 +2 -1 jakarta-jmeter/src/components/org/apache/jmeter/visualizers/TableVisualizer.java
Index: TableVisualizer.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/visualizers/TableVisualizer.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- TableVisualizer.java 23 Apr 2003 18:52:07 -0000 1.8
+++ TableVisualizer.java 5 May 2003 17:23:01 -0000 1.9
@@ -164,6 +164,7 @@
***************************************/
public synchronized void clear()
{
+ log.warn("Clear called",new Exception());
// this.graph.clear();
model.clear();
dataField.setText("0000");
1.6 +37 -359 jakarta-jmeter/src/core/org/apache/jmeter/engine/util/ValueReplacer.java
Index: ValueReplacer.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/engine/util/ValueReplacer.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- ValueReplacer.java 15 Apr 2003 12:37:49 -0000 1.5
+++ ValueReplacer.java 5 May 2003 17:23:01 -0000 1.6
@@ -15,16 +15,13 @@
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.testelement.TestPlan;
import org.apache.jmeter.testelement.property.CollectionProperty;
-import org.apache.jmeter.testelement.property.FunctionProperty;
import org.apache.jmeter.testelement.property.JMeterProperty;
-import org.apache.jmeter.testelement.property.MapProperty;
+import org.apache.jmeter.testelement.property.MultiProperty;
import org.apache.jmeter.testelement.property.PropertyIterator;
import org.apache.jmeter.testelement.property.StringProperty;
-import org.apache.jmeter.testelement.property.TestElementProperty;
import org.apache.jmeter.threads.JMeterContextService;
import org.apache.jmeter.threads.JMeterVariables;
import org.apache.jmeter.util.JMeterUtils;
-import org.apache.jmeter.util.StringUtilities;
import org.apache.log.Hierarchy;
import org.apache.log.Logger;
@@ -59,384 +56,65 @@
public void replaceValues(TestElement el) throws InvalidVariableException
{
- PropertyIterator iter = el.propertyIterator();
- List newProps = new LinkedList();
- while (iter.hasNext())
- {
- JMeterProperty prop = iter.next();
- if (prop instanceof TestElementProperty)
- {
- replaceValues((TestElement) prop.getObjectValue());
- }
- else if (prop instanceof CollectionProperty)
- {
- replaceValues((CollectionProperty) prop);
- }
- else if (prop instanceof MapProperty)
- {
- replaceValues((MapProperty) prop);
- }
- else if (prop instanceof StringProperty)
- {
- JMeterProperty newValue = getNewValue((StringProperty) prop);
- newProps.add(newValue);
- }
- }
- Iterator props = newProps.iterator();
- while (props.hasNext())
- {
- el.setProperty((JMeterProperty) props.next());
- }
- }
-
- private JMeterProperty getNewValue(StringProperty prop) throws InvalidVariableException
- {
- JMeterProperty newValue = prop;
- masterFunction.clear();
- masterFunction.setParameters(prop.getStringValue());
- log.debug("value replacer looking at: " + prop.getStringValue());
- if (masterFunction.hasFunction())
- {
- newValue = new FunctionProperty(prop.getName(), masterFunction.getFunction());
- log.debug("replaced with function: " + newValue.getStringValue());
- }
- else if (masterFunction.hasStatics())
- {
- newValue = new StringProperty(prop.getName(), masterFunction.getStaticSubstitution());
- log.debug("replaced with static string: " + newValue.getStringValue());
- }
- return newValue;
- }
-
- public void addVariable(String name, String value)
- {
- tp.addParameter(name, value);
- setUserDefinedVariables(tp.getUserDefinedVariables());
- }
-
- public void replaceValues(CollectionProperty values) throws InvalidVariableException
- {
- Collection newColl = null;
- try
- {
- newColl = (Collection) values.getObjectValue().getClass().newInstance();
- }
- catch (Exception e)
- {
- log.error("", e);
- return;
- }
- PropertyIterator iter = values.iterator();
- while (iter.hasNext())
- {
- JMeterProperty val = iter.next();
- if (val instanceof TestElementProperty)
- {
- replaceValues((TestElement) val.getObjectValue());
- }
- else if (val instanceof StringProperty)
- {
- val = getNewValue((StringProperty) val);
- }
- else if (val instanceof CollectionProperty)
- {
- replaceValues((CollectionProperty) val);
- }
- else if (val instanceof MapProperty)
- {
- replaceValues((MapProperty) val);
- }
- newColl.add(val);
- }
- values.setCollection(newColl);
+ Collection newProps = replaceValues(el.propertyIterator(),new ReplaceStringWithFunctions(masterFunction,variables));
+ setProperties(el, newProps);
}
- private void replaceValues(MapProperty values) throws InvalidVariableException
+ private void setProperties(TestElement el, Collection newProps)
{
- Map newMap = null;
- try
- {
- newMap = (Map) values.getObjectValue().getClass().newInstance();
- }
- catch (Exception e)
- {
- log.error("", e);
- return;
- }
- PropertyIterator iter = values.valueIterator();
- while (iter.hasNext())
+ Iterator iter = newProps.iterator();
+ el.clear();
+ while(iter.hasNext())
{
- JMeterProperty val = iter.next();
- if (val instanceof TestElementProperty)
- {
- replaceValues((TestElement) val.getObjectValue());
- }
- else if (val instanceof StringProperty)
- {
- val = getNewValue((StringProperty) val);
- }
- else if (val instanceof CollectionProperty)
- {
- replaceValues((CollectionProperty) val);
- }
- else if (val instanceof MapProperty)
- {
- replaceValues((MapProperty) val);
- }
- newMap.put(val.getName(), val);
+ el.setProperty((JMeterProperty)iter.next());
}
- values.setMap(newMap);
}
-
- /**
- * Replaces raw values with user-defined variable names.
- */
- public void reverseReplace(CollectionProperty prop)
- {
- Collection newColl = null;
- try
+
+ public void reverseReplace(TestElement el) throws InvalidVariableException
{
- newColl = (Collection) prop.getObjectValue().getClass().newInstance();
+ Collection newProps = replaceValues(el.propertyIterator(),new ReplaceFunctionsWithStrings(masterFunction,variables));
+ setProperties(el, newProps);
}
- catch (Exception e)
- {
- log.error("", e);
- return;
- }
- PropertyIterator iter = prop.iterator();
- while (iter.hasNext())
- {
- JMeterProperty val = iter.next();
- if (val instanceof TestElementProperty)
- {
- reverseReplace((TestElement) val.getObjectValue());
- }
- else if (val instanceof StringProperty)
+
+ public void undoReverseReplace(TestElement el) throws InvalidVariableException
{
- val = substituteValues((StringProperty) val);
+ Collection newProps = replaceValues(el.propertyIterator(),new UndoVariableReplacement(masterFunction,variables));
+ setProperties(el, newProps);
}
- else if (val instanceof CollectionProperty)
- {
- reverseReplace((CollectionProperty) val);
- }
- else if (val instanceof MapProperty)
- {
- reverseReplace((MapProperty) val);
- }
- newColl.add(val);
- }
- prop.setCollection(newColl);
- }
- private void reverseReplace(MapProperty prop)
- {
- Map newMap = null;
- try
- {
- newMap = (Map) prop.getObjectValue().getClass().newInstance();
- }
- catch (Exception e)
- {
- log.error("", e);
- return;
- }
- PropertyIterator iter = prop.valueIterator();
- while (iter.hasNext())
- {
- JMeterProperty val = iter.next();
- if (val instanceof TestElementProperty)
- {
- reverseReplace((TestElement) val.getObjectValue());
- }
- else if (val instanceof StringProperty)
- {
- val = substituteValues((StringProperty) val);
- }
- else if (val instanceof CollectionProperty)
- {
- reverseReplace((CollectionProperty) val);
- }
- else if (val instanceof MapProperty)
- {
- reverseReplace((MapProperty) val);
- }
- newMap.put(val.getName(), val);
- }
- prop.setMap(newMap);
- }
-
- private void undoReverseReplace(MapProperty prop)
+ public void addVariable(String name, String value)
{
- Map newMap = null;
- try
- {
- newMap = (Map) prop.getObjectValue().getClass().newInstance();
- }
- catch (Exception e)
- {
- log.error("", e);
- return;
- }
- PropertyIterator iter = prop.valueIterator();
- while (iter.hasNext())
- {
- JMeterProperty val = iter.next();
- if (val instanceof TestElementProperty)
- {
- undoReverseReplace((TestElement) val.getObjectValue());
- }
- else if (val instanceof StringProperty)
- {
- val = substituteReferences((StringProperty) val);
- }
- else if (val instanceof CollectionProperty)
- {
- undoReverseReplace((CollectionProperty) val);
- }
- else if (val instanceof MapProperty)
- {
- undoReverseReplace((MapProperty) val);
- }
- newMap.put(val.getName(), val);
- }
- prop.setMap(newMap);
+ tp.addParameter(name, value);
+ setUserDefinedVariables(tp.getUserDefinedVariables());
}
-
- /**
- * Remove variables references and replace with the raw string values.
- */
- public void undoReverseReplace(CollectionProperty prop)
+
+ private Collection replaceValues(PropertyIterator iter, ValueTransformer transform) throws InvalidVariableException
{
- Collection newColl = null;
- try
- {
- newColl = (Collection) prop.getObjectValue().getClass().newInstance();
- }
- catch (Exception e)
- {
- log.error("", e);
- return;
- }
- PropertyIterator iter = prop.iterator();
- while (iter.hasNext())
+ List props = new LinkedList();
+ while(iter.hasNext())
{
JMeterProperty val = iter.next();
- if (val instanceof TestElementProperty)
- {
- undoReverseReplace((TestElement) val.getObjectValue());
- }
- else if (val instanceof StringProperty)
+ if (val instanceof StringProperty)
{
- val = substituteReferences((StringProperty) val);
+ val = transform.transformValue((StringProperty) val);
}
- else if (val instanceof CollectionProperty)
+ else if (val instanceof MultiProperty)
{
- undoReverseReplace((CollectionProperty) val);
+ MultiProperty multiVal = (MultiProperty)val;
+ Collection newValues = replaceValues(multiVal.iterator(),transform);
+ multiVal.clear();
+ Iterator propIter = newValues.iterator();
+ while(propIter.hasNext())
+ {
+ multiVal.addProperty((JMeterProperty)propIter.next());
+ }
}
- else if (val instanceof MapProperty)
- {
- undoReverseReplace((MapProperty) val);
- }
- newColl.add(val);
+ props.add(val);
}
- prop.setCollection(newColl);
+ return props;
}
- /**
- * Remove variables references and replace with the raw string values.
- * @param el
- */
- public void undoReverseReplace(TestElement el)
- {
- PropertyIterator iter = el.propertyIterator();
- List newProps = new LinkedList();
- while (iter.hasNext())
- {
- JMeterProperty prop = iter.next();
- if (prop instanceof StringProperty)
- {
- newProps.add(substituteReferences((StringProperty) prop));
- }
- else if (prop instanceof TestElementProperty)
- {
- undoReverseReplace((TestElement) prop.getObjectValue());
- }
- else if (prop instanceof CollectionProperty)
- {
- undoReverseReplace((CollectionProperty) prop);
- }
- else if (prop instanceof MapProperty)
- {
- undoReverseReplace((MapProperty) prop);
- }
- }
- Iterator props = newProps.iterator();
- while (props.hasNext())
- {
- el.setProperty((JMeterProperty) props.next());
- }
- }
-
- /**
- * Replaces raw values with user-defined variable names.
- */
- public void reverseReplace(TestElement el)
- {
- PropertyIterator iter = el.propertyIterator();
- List newProps = new LinkedList();
- while (iter.hasNext())
- {
- JMeterProperty prop = iter.next();
- if (prop instanceof StringProperty)
- {
- newProps.add(substituteValues((StringProperty) prop));
- }
- else if (prop instanceof TestElementProperty)
- {
- reverseReplace((TestElement) prop.getObjectValue());
- }
- else if (prop instanceof CollectionProperty)
- {
- reverseReplace((CollectionProperty) prop);
- }
- else if (prop instanceof MapProperty)
- {
- reverseReplace((MapProperty) prop);
- }
- }
- Iterator props = newProps.iterator();
- while (props.hasNext())
- {
- el.setProperty((JMeterProperty) props.next());
-
- }
- }
-
- private StringProperty substituteValues(StringProperty prop)
- {
- Iterator iter = variables.keySet().iterator();
- String input = prop.getStringValue();
- while (iter.hasNext())
- {
- String key = (String) iter.next();
- String value = (String) variables.get(key);
- input = StringUtilities.substitute(input, value, "${" + key + "}");
- }
- return new StringProperty(prop.getName(), input);
- }
-
- private StringProperty substituteReferences(StringProperty prop)
- {
- Iterator iter = variables.keySet().iterator();
- String input = prop.getStringValue();
- while (iter.hasNext())
- {
- String key = (String) iter.next();
- String value = (String) variables.get(key);
- input = StringUtilities.substitute(input, "${" + key + "}", value);
- }
- return new StringProperty(prop.getName(), input);
- }
+
public static class Test extends TestCase
{
1.1 jakarta-jmeter/src/core/org/apache/jmeter/engine/util/AbstractTransformer.java
Index: AbstractTransformer.java
===================================================================
/*
* Created on May 4, 2003
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package org.apache.jmeter.engine.util;
import java.util.Collection;
import java.util.Map;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.testelement.property.JMeterProperty;
/**
* @author ano ano
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
abstract class AbstractTransformer implements ValueTransformer
{
protected CompoundVariable masterFunction;
protected Map variables;
/**
* @param variable
*/
public void setMasterFunction(CompoundVariable variable)
{
masterFunction = variable;
}
protected CompoundVariable getMasterFunction()
{
return masterFunction;
}
/**
* @return
*/
public Map getVariables()
{
return variables;
}
/**
* @param map
*/
public void setVariables(Map map)
{
variables = map;
}
}
1.1 jakarta-jmeter/src/core/org/apache/jmeter/engine/util/ReplaceFunctionsWithStrings.java
Index: ReplaceFunctionsWithStrings.java
===================================================================
/*
* Created on May 4, 2003
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package org.apache.jmeter.engine.util;
import java.util.Iterator;
import java.util.Map;
import org.apache.jmeter.functions.InvalidVariableException;
import org.apache.jmeter.testelement.property.JMeterProperty;
import org.apache.jmeter.testelement.property.StringProperty;
import org.apache.jmeter.util.StringUtilities;
/**
* @author ano ano
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class ReplaceFunctionsWithStrings extends AbstractTransformer
{
public ReplaceFunctionsWithStrings(CompoundVariable masterFunction,Map variables)
{
super();
setMasterFunction(masterFunction);
setVariables(variables);
}
/* (non-Javadoc)
* @see org.apache.jmeter.engine.util.ValueTransformer#transformValue(org.apache.jmeter.testelement.property.JMeterProperty)
*/
public JMeterProperty transformValue(JMeterProperty prop) throws InvalidVariableException
{
Iterator iter = getVariables().keySet().iterator();
String input = prop.getStringValue();
while (iter.hasNext())
{
String key = (String) iter.next();
String value = (String) getVariables().get(key);
input = StringUtilities.substitute(input, value, "${" + key + "}");
}
StringProperty newProp = new StringProperty(prop.getName(), input);
return newProp;
}
}
1.1 jakarta-jmeter/src/core/org/apache/jmeter/engine/util/ReplaceStringWithFunctions.java
Index: ReplaceStringWithFunctions.java
===================================================================
/*
* Created on May 4, 2003
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package org.apache.jmeter.engine.util;
import java.util.Map;
import org.apache.jmeter.functions.InvalidVariableException;
import org.apache.jmeter.testelement.property.FunctionProperty;
import org.apache.jmeter.testelement.property.JMeterProperty;
import org.apache.jmeter.testelement.property.StringProperty;
/**
* @author ano ano
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class ReplaceStringWithFunctions extends AbstractTransformer
{
public ReplaceStringWithFunctions(CompoundVariable masterFunction,Map variables)
{
super();
setMasterFunction(masterFunction);
setVariables(variables);
}
/* (non-Javadoc)
* @see org.apache.jmeter.engine.util.ValueTransformer#transformValue(org.apache.jmeter.testelement.property.JMeterProperty)
*/
public JMeterProperty transformValue(JMeterProperty prop) throws InvalidVariableException
{
JMeterProperty newValue = prop;
getMasterFunction().clear();
getMasterFunction().setParameters(prop.getStringValue());
if (getMasterFunction().hasFunction())
{
newValue = new FunctionProperty(prop.getName(), getMasterFunction().getFunction());
}
else if (getMasterFunction().hasStatics())
{
newValue = new StringProperty(prop.getName(), getMasterFunction().getStaticSubstitution());
}
return newValue;
}
}
1.1 jakarta-jmeter/src/core/org/apache/jmeter/engine/util/UndoVariableReplacement.java
Index: UndoVariableReplacement.java
===================================================================
/*
* Created on May 4, 2003
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package org.apache.jmeter.engine.util;
import java.util.Iterator;
import java.util.Map;
import org.apache.jmeter.functions.InvalidVariableException;
import org.apache.jmeter.testelement.property.JMeterProperty;
import org.apache.jmeter.testelement.property.StringProperty;
import org.apache.jmeter.util.StringUtilities;
/**
* @author ano ano
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class UndoVariableReplacement extends AbstractTransformer
{
public UndoVariableReplacement(CompoundVariable masterFunction,Map variables)
{
super();
setMasterFunction(masterFunction);
setVariables(variables);
}
/* (non-Javadoc)
* @see org.apache.jmeter.engine.util.ValueTransformer#transformValue(org.apache.jmeter.testelement.property.JMeterProperty)
*/
public JMeterProperty transformValue(JMeterProperty prop) throws InvalidVariableException
{
Iterator iter = getVariables().keySet().iterator();
String input = prop.getStringValue();
while (iter.hasNext())
{
String key = (String) iter.next();
String value = (String) getVariables().get(key);
input = StringUtilities.substitute(input, "${" + key + "}", value);
}
StringProperty newProp = new StringProperty(prop.getName(), input);
return newProp;
}
}
1.1 jakarta-jmeter/src/core/org/apache/jmeter/engine/util/ValueTransformer.java
Index: ValueTransformer.java
===================================================================
/*
* Created on May 4, 2003
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package org.apache.jmeter.engine.util;
import java.util.Map;
import org.apache.jmeter.functions.InvalidVariableException;
import org.apache.jmeter.testelement.property.JMeterProperty;
/**
* @author ano ano
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
interface ValueTransformer
{
/**
* Transform the given property and return the new version.
* @param property
* @return
*/
public JMeterProperty transformValue(JMeterProperty property) throws InvalidVariableException;
/**
* Set the master function for the value transformer. This handles converting strings to functions.
* @param masterFunction
*/
public void setMasterFunction(CompoundVariable masterFunction);
/**
* Set the variable names and values used to reverse replace functions with strings, and undo functions to raw values.
* @param vars
*/
public void setVariables(Map vars);
}
1.3 +4 -0 jakarta-jmeter/src/core/org/apache/jmeter/gui/action/Copy.java
Index: Copy.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/action/Copy.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Copy.java 10 Apr 2003 20:33:10 -0000 1.2
+++ Copy.java 5 May 2003 17:23:01 -0000 1.3
@@ -48,6 +48,10 @@
public static JMeterTreeNode getCopiedNode()
{
+ if(copiedNode == null)
+ {
+ return null;
+ }
return cloneTreeNode(copiedNode);
}
1.15 +20 -54 jakarta-jmeter/src/core/org/apache/jmeter/gui/action/Load.java
Index: Load.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/action/Load.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- Load.java 29 Apr 2003 15:47:43 -0000 1.14
+++ Load.java 5 May 2003 17:23:01 -0000 1.15
@@ -254,84 +254,50 @@
***********************************************************/
public void testFile3() throws Exception {
- HashTree tree = getTree(testFile3);
- //loader.updateTree(tree);
- log.debug("tree contents: "+tree.list());
- assertTrue(tree.getArray()[0] instanceof org.apache.jmeter.testelement.TestPlan);
- loader.convertTree(tree);
- assertTrue(tree.getArray()[0] instanceof org.apache.jmeter.control.gui.TestPlanGui);
+ loadAndAssertTree(getTree(testFile3));
}
+
+ private void loadAndAssertTree(HashTree tree) throws Exception
+ {
+ assertTrue(tree.getArray()[0] instanceof org.apache.jmeter.testelement.TestPlan);
+ loader.convertTree(tree);
+ assertTrue(tree.getArray()[0] instanceof org.apache.jmeter.control.gui.TestPlanGui);
+ }
public void testFile4() throws Exception {
- HashTree tree = getTree(testFile4);
- //loader.updateTree(tree);
- assertTrue(tree.getArray()[0] instanceof org.apache.jmeter.testelement.TestPlan);
- loader.convertTree(tree);
- assertTrue(tree.getArray()[0] instanceof org.apache.jmeter.control.gui.TestPlanGui);
+ loadAndAssertTree(getTree(testFile4));
}
public void testFile5() throws Exception {
- HashTree tree = getTree(testFile5);
- //loader.updateTree(tree);
- assertTrue(tree.getArray()[0] instanceof org.apache.jmeter.testelement.TestPlan);
- loader.convertTree(tree);
- assertTrue(tree.getArray()[0] instanceof org.apache.jmeter.control.gui.TestPlanGui);
+ loadAndAssertTree(getTree(testFile5));
}
public void testFile6() throws Exception {
- HashTree tree = getTree(testFile6);
- //loader.updateTree(tree);
- assertTrue(tree.getArray()[0] instanceof org.apache.jmeter.testelement.TestPlan);
- loader.convertTree(tree);
- assertTrue(tree.getArray()[0] instanceof org.apache.jmeter.control.gui.TestPlanGui);
+ loadAndAssertTree(getTree(testFile6));
}
public void testFile7() throws Exception {
- HashTree tree = getTree(testFile7);
- //loader.updateTree(tree);
- assertTrue(tree.getArray()[0] instanceof org.apache.jmeter.testelement.TestPlan);
- loader.convertTree(tree);
- assertTrue(tree.getArray()[0] instanceof org.apache.jmeter.control.gui.TestPlanGui);
+ loadAndAssertTree(getTree(testFile7));
}
public void testFile8() throws Exception {
- HashTree tree = getTree(testFile8);
- //loader.updateTree(tree);
- assertTrue(tree.getArray()[0] instanceof org.apache.jmeter.testelement.TestPlan);
- loader.convertTree(tree);
- assertTrue(tree.getArray()[0] instanceof org.apache.jmeter.control.gui.TestPlanGui);
+ loadAndAssertTree(getTree(testFile8));
}
public void testFile9() throws Exception {
- HashTree tree = getTree(testFile9);
- //loader.updateTree(tree);
- assertTrue(tree.getArray()[0] instanceof org.apache.jmeter.testelement.TestPlan);
- loader.convertTree(tree);
- assertTrue(tree.getArray()[0] instanceof org.apache.jmeter.control.gui.TestPlanGui);
+ loadAndAssertTree(getTree(testFile9));
}
public void testFile10() throws Exception {
- HashTree tree = getTree(testFile10);
- //loader.updateTree(tree);
- assertTrue(tree.getArray()[0] instanceof org.apache.jmeter.testelement.TestPlan);
- loader.convertTree(tree);
- assertTrue(tree.getArray()[0] instanceof org.apache.jmeter.control.gui.TestPlanGui);
+ loadAndAssertTree(getTree(testFile10));
}
public void testFile11() throws Exception {
- HashTree tree = getTree(testFile11);
- //loader.updateTree(tree);
- assertTrue(tree.getArray()[0] instanceof org.apache.jmeter.testelement.TestPlan);
- loader.convertTree(tree);
- assertTrue(tree.getArray()[0] instanceof org.apache.jmeter.control.gui.TestPlanGui);
+ loadAndAssertTree(getTree(testFile11));
}
public void testFile12() throws Exception {
- HashTree tree = getTree(testFile12);
- //loader.updateTree(tree);
- assertTrue(tree.getArray()[0] instanceof org.apache.jmeter.testelement.TestPlan);
- loader.convertTree(tree);
- assertTrue(tree.getArray()[0] instanceof org.apache.jmeter.control.gui.TestPlanGui);
+ loadAndAssertTree(getTree(testFile12));
}
private HashTree getTree(File f) throws Exception {
1.13 +3 -2 jakarta-jmeter/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java
Index: JMeterMenuBar.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- JMeterMenuBar.java 2 May 2003 20:58:10 -0000 1.12
+++ JMeterMenuBar.java 5 May 2003 17:23:02 -0000 1.13
@@ -377,6 +377,7 @@
run_clearAll = new JMenuItem(JMeterUtils.getResString("clear_all"), 'a');
run_clearAll.addActionListener(ActionRouter.getInstance());
run_clearAll.setActionCommand(org.apache.jmeter.gui.action.Clear.CLEAR_ALL);
+ run_clearAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,KeyEvent.CTRL_MASK));
runMenu.add(run_start);
if (remote_start != null)
{
@@ -396,7 +397,7 @@
}
remote_stop_all = new JMenuItem(JMeterUtils.getResString("remote_stop_all"), 'X');
remote_stop_all.setAccelerator(
- KeyStroke.getKeyStroke(KeyEvent.VK_X, KeyEvent.CTRL_MASK));
+ KeyStroke.getKeyStroke(KeyEvent.VK_X, KeyEvent.ALT_MASK));
remote_stop_all.addActionListener(ActionRouter.getInstance());
remote_stop_all.setActionCommand("remote_stop_all");
runMenu.add(remote_stop_all);
1.16 +14 -5 jakarta-jmeter/src/core/org/apache/jmeter/gui/util/MenuFactory.java
Index: MenuFactory.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/util/MenuFactory.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- MenuFactory.java 25 Apr 2003 15:30:10 -0000 1.15
+++ MenuFactory.java 5 May 2003 17:23:02 -0000 1.16
@@ -52,6 +52,7 @@
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/package org.apache.jmeter.gui.util;
+import java.awt.event.KeyEvent;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
@@ -65,6 +66,7 @@
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
+import javax.swing.KeyStroke;
import javax.swing.MenuElement;
import org.apache.jmeter.gui.GuiPackage;
@@ -199,11 +201,11 @@
addSeparator(menu);
if(removable)
{
- menu.add(makeMenuItem(JMeterUtils.getResString("remove"), "Remove","remove"));
+ menu.add(makeMenuItem(JMeterUtils.getResString("remove"), "Remove","remove",KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0)));
}
- menu.add(makeMenuItem(JMeterUtils.getResString("cut"), "Cut", "Cut"));
- menu.add(makeMenuItem(JMeterUtils.getResString("copy"), "Copy", "Copy"));
- menu.add(makeMenuItem(JMeterUtils.getResString("paste"), "Paste", "Paste"));
+ menu.add(makeMenuItem(JMeterUtils.getResString("cut"), "Cut", "Cut",KeyStroke.getKeyStroke(KeyEvent.VK_X,KeyEvent.CTRL_MASK)));
+ menu.add(makeMenuItem(JMeterUtils.getResString("copy"), "Copy", "Copy",KeyStroke.getKeyStroke(KeyEvent.VK_C,KeyEvent.CTRL_MASK)));
+ menu.add(makeMenuItem(JMeterUtils.getResString("paste"), "Paste", "Paste",KeyStroke.getKeyStroke(KeyEvent.VK_V,KeyEvent.CTRL_MASK)));
menu.add(makeMenuItem(JMeterUtils.getResString("paste_insert"), "Paste Insert", "Paste Insert"));
}
@@ -438,6 +440,13 @@
return newMenuChoice;
}
+
+ public static JMenuItem makeMenuItem(String label,String name,String actionCommand,KeyStroke accel)
+ {
+ JMenuItem item = makeMenuItem(label,name,actionCommand);
+ item.setAccelerator(accel);
+ return item;
+ }
private static void initializeMenus()
{
1.21 +3 -3 jakarta-jmeter/src/core/org/apache/jmeter/reporters/ResultCollector.java
Index: ResultCollector.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/reporters/ResultCollector.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- ResultCollector.java 2 May 2003 21:38:10 -0000 1.20
+++ ResultCollector.java 5 May 2003 17:23:02 -0000 1.21
@@ -201,7 +201,7 @@
try
{
Configuration savedSamples = getConfiguration(getFilename());
- clear();
+ clearVisualizer();
readSamples(savedSamples);
}
catch (Exception e)
@@ -340,7 +340,7 @@
return builder.buildFromFile(filename);
}
- public void clear()
+ public void clearVisualizer()
{
current = -1;
if (getVisualizer() != null && getVisualizer() instanceof Clearable)
1.7 +7 -64 jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/CollectionProperty.java
Index: CollectionProperty.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/CollectionProperty.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- CollectionProperty.java 2 May 2003 21:38:09 -0000 1.6
+++ CollectionProperty.java 5 May 2003 17:23:02 -0000 1.7
@@ -5,7 +5,7 @@
import org.apache.jmeter.testelement.TestElement;
-public class CollectionProperty extends AbstractProperty
+public class CollectionProperty extends MultiProperty
{
protected Collection value;
@@ -86,12 +86,9 @@
{
if (v instanceof Collection)
{
- if (isRunningVersion())
- {
- savedValue = this.value;
- }
- value = normalizeList((Collection) v);
+ setCollection((Collection) v);
}
+
}
public PropertyIterator iterator()
@@ -151,30 +148,11 @@
public void setCollection(Collection coll)
{
- value = coll;
- }
-
- /* (non-Javadoc)
- * @see org.apache.jmeter.testelement.property.JMeterProperty#mergeIn(org.apache.jmeter.testelement.property.JMeterProperty)
- */
- public void mergeIn(JMeterProperty prop)
- {
- if (((CollectionProperty) prop).value == this.value)
+ if (isRunningVersion())
{
- return;
- }
- if (prop instanceof CollectionProperty)
- {
- PropertyIterator iter = ((CollectionProperty) prop).iterator();
- while (iter.hasNext())
- {
- value.add(iter.next());
- }
- }
- else
- {
- addProperty(prop);
+ savedValue = this.value;
}
+ value = normalizeList(coll);
}
public void clear()
@@ -216,16 +194,6 @@
}
}
- public void setRunningVersion(boolean running)
- {
- super.setRunningVersion(running);
- PropertyIterator iter = iterator();
- while (iter.hasNext())
- {
- iter.next().setRunningVersion(running);
- }
- }
-
/* (non-Javadoc)
* @see org.apache.jmeter.testelement.property.JMeterProperty#recoverRunningVersion(org.apache.jmeter.testelement.TestElement)
*/
@@ -236,32 +204,7 @@
value = savedValue;
savedValue = null;
}
- PropertyIterator iter = iterator();
- while (iter.hasNext())
- {
- JMeterProperty prop = iter.next();
- if (prop.isTemporary(owner))
- {
- iter.remove();
- }
- else
- {
- prop.recoverRunningVersion(owner);
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.apache.jmeter.testelement.property.JMeterProperty#setTemporary(boolean, TestElement)
- */
- public void setTemporary(boolean temporary, TestElement owner)
- {
- super.setTemporary(temporary, owner);
- PropertyIterator iter = iterator();
- while (iter.hasNext())
- {
- iter.next().setTemporary(temporary, owner);
- }
+ recoverRunningVersionOfSubElements(owner);
}
}
1.2 +6 -41 jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/DoubleProperty.java
Index: DoubleProperty.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/DoubleProperty.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DoubleProperty.java 7 Apr 2003 14:35:23 -0000 1.1
+++ DoubleProperty.java 5 May 2003 17:23:02 -0000 1.2
@@ -6,7 +6,7 @@
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
*/
-public class DoubleProperty extends AbstractProperty
+public class DoubleProperty extends NumberProperty
{
double value;
@@ -26,23 +26,15 @@
this.value = value;
}
- public void setObjectValue(Object v)
- {
- if(v instanceof Number)
+ protected void setNumberValue(Number n)
{
- value = ((Number)v).doubleValue();
+ value = n.doubleValue();
}
- else
+
+ protected void setNumberValue(String n) throws NumberFormatException
{
- try
- {
- value = Double.parseDouble(v.toString());
- }
- catch (RuntimeException e)
- {}
+ value = Double.parseDouble(n);
}
- }
-
/**
* @see org.apache.jmeter.testelement.property.JMeterProperty#getStringValue()
*/
@@ -67,33 +59,6 @@
DoubleProperty prop = (DoubleProperty)super.clone();
prop.value = value;
return prop;
- }
-
- /**
- * @see java.lang.Comparable#compareTo(java.lang.Object)
- */
- public int compareTo(Object arg0)
- {
- if(arg0 instanceof JMeterProperty)
- {
- double argValue = ((JMeterProperty)arg0).getDoubleValue();
- if(value < argValue)
- {
- return -1;
- }
- else if(value == argValue)
- {
- return 0;
- }
- else
- {
- return 1;
- }
- }
- else
- {
- return -1;
- }
}
/**
1.3 +8 -42 jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/FloatProperty.java
Index: FloatProperty.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/FloatProperty.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- FloatProperty.java 7 Apr 2003 14:35:23 -0000 1.2
+++ FloatProperty.java 5 May 2003 17:23:02 -0000 1.3
@@ -6,7 +6,7 @@
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
*/
-public class FloatProperty extends AbstractProperty
+public class FloatProperty extends NumberProperty
{
float value;
@@ -25,21 +25,14 @@
this.value = value;
}
- public void setObjectValue(Object v)
+ protected void setNumberValue(Number n)
{
- if(v instanceof Number)
- {
- value = ((Number)v).floatValue();
- }
- else
- {
- try
- {
- value = Float.parseFloat(v.toString());
- }
- catch (RuntimeException e)
- {}
- }
+ value = n.floatValue();
+ }
+
+ protected void setNumberValue(String n) throws NumberFormatException
+ {
+ value = Float.parseFloat(n);
}
/**
@@ -66,33 +59,6 @@
FloatProperty prop = (FloatProperty)super.clone();
prop.value = value;
return prop;
- }
-
- /**
- * @see java.lang.Comparable#compareTo(java.lang.Object)
- */
- public int compareTo(Object arg0)
- {
- if(arg0 instanceof JMeterProperty)
- {
- float argValue = ((JMeterProperty)arg0).getFloatValue();
- if(value < argValue)
- {
- return -1;
- }
- else if(value == argValue)
- {
- return 0;
- }
- else
- {
- return 1;
- }
- }
- else
- {
- return -1;
- }
}
/**
1.3 +24 -53 jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/IntegerProperty.java
Index: IntegerProperty.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/IntegerProperty.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- IntegerProperty.java 7 Apr 2003 14:35:23 -0000 1.2
+++ IntegerProperty.java 5 May 2003 17:23:02 -0000 1.3
@@ -6,42 +6,40 @@
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
*/
-public class IntegerProperty extends AbstractProperty
+public class IntegerProperty extends NumberProperty
{
int value;
-
- public IntegerProperty(String name,int value)
+
+ public IntegerProperty(String name, int value)
{
super(name);
this.value = value;
}
-
+
+ public IntegerProperty(String name)
+ {
+ super(name);
+ }
+
public IntegerProperty()
{
super();
}
-
+
public void setValue(int value)
{
this.value = value;
}
-
- public void setObjectValue(Object v)
- {
- if(v instanceof Number)
- {
- value = ((Number)v).intValue();
- }
- else
- {
- try
- {
- value = Integer.parseInt(v.toString());
- }
- catch (RuntimeException e)
- {}
- }
- }
+
+ protected void setNumberValue(Number n)
+ {
+ value = n.intValue();
+ }
+
+ protected void setNumberValue(String n) throws NumberFormatException
+ {
+ value = Integer.parseInt(n);
+ }
/**
* @see org.apache.jmeter.testelement.property.JMeterProperty#getStringValue()
@@ -64,39 +62,12 @@
*/
public Object clone()
{
- IntegerProperty prop = (IntegerProperty)super.clone();
+ IntegerProperty prop = (IntegerProperty) super.clone();
prop.value = value;
return prop;
}
/**
- * @see java.lang.Comparable#compareTo(java.lang.Object)
- */
- public int compareTo(Object arg0)
- {
- if(arg0 instanceof JMeterProperty)
- {
- int argValue = ((JMeterProperty)arg0).getIntValue();
- if(value < argValue)
- {
- return -1;
- }
- else if(value == argValue)
- {
- return 0;
- }
- else
- {
- return 1;
- }
- }
- else
- {
- return -1;
- }
- }
-
- /**
* @see org.apache.jmeter.testelement.property.JMeterProperty#getBooleanValue()
*/
public boolean getBooleanValue()
@@ -109,7 +80,7 @@
*/
public double getDoubleValue()
{
- return (double)value;
+ return (double) value;
}
/**
@@ -117,7 +88,7 @@
*/
public float getFloatValue()
{
- return (float)value;
+ return (float) value;
}
/**
@@ -133,7 +104,7 @@
*/
public long getLongValue()
{
- return (long)value;
+ return (long) value;
}
}
1.3 +92 -127 jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/LongProperty.java
Index: LongProperty.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/LongProperty.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- LongProperty.java 7 Apr 2003 14:35:23 -0000 1.2
+++ LongProperty.java 5 May 2003 17:23:02 -0000 1.3
@@ -6,135 +6,100 @@
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
*/
-public class LongProperty extends AbstractProperty
+public class LongProperty extends NumberProperty
{
long value;
-
- public LongProperty(String name,long value)
- {
- super(name);
- this.value = value;
- }
-
- public LongProperty()
- {
- super();
- }
-
- public void setValue(int value)
- {
- this.value = value;
- }
-
- public void setObjectValue(Object v)
- {
- if(v instanceof Number)
- {
- value = ((Number)v).intValue();
- }
- else
- {
- try
- {
- value = Integer.parseInt(v.toString());
- }
- catch (RuntimeException e)
- {}
- }
- }
-
- /**
- * @see org.apache.jmeter.testelement.property.JMeterProperty#getStringValue()
- */
- public String getStringValue()
- {
- return Long.toString(value);
- }
-
- /**
- * @see org.apache.jmeter.testelement.property.JMeterProperty#getObjectValue()
- */
- public Object getObjectValue()
- {
- return new Long(value);
- }
-
- /**
- * @see java.lang.Object#clone()
- */
- public Object clone()
- {
- LongProperty prop = (LongProperty)super.clone();
- prop.value = value;
- return prop;
- }
-
- /**
- * @see java.lang.Comparable#compareTo(java.lang.Object)
- */
- public int compareTo(Object arg0)
- {
- if(arg0 instanceof JMeterProperty)
- {
- long argValue = ((JMeterProperty)arg0).getLongValue();
- if(value < argValue)
- {
- return -1;
- }
- else if(value == argValue)
- {
- return 0;
- }
- else
- {
- return 1;
- }
- }
- else
- {
- return -1;
- }
- }
-
- /**
- * @see org.apache.jmeter.testelement.property.JMeterProperty#getBooleanValue()
- */
- public boolean getBooleanValue()
- {
- return getLongValue() > 0 ? true : false;
- }
-
- /**
- * @see org.apache.jmeter.testelement.property.JMeterProperty#getDoubleValue()
- */
- public double getDoubleValue()
- {
- return (double)value;
- }
-
- /**
- * @see org.apache.jmeter.testelement.property.JMeterProperty#getFloatValue()
- */
- public float getFloatValue()
- {
- return (float)value;
- }
-
- /**
- * @see org.apache.jmeter.testelement.property.JMeterProperty#getIntValue()
- */
- public int getIntValue()
- {
- return (int)value;
- }
-
- /**
- * @see org.apache.jmeter.testelement.property.JMeterProperty#getLongValue()
- */
- public long getLongValue()
- {
- return value;
- }
+ public LongProperty(String name, long value)
+ {
+ super(name);
+ this.value = value;
+ }
+
+ public LongProperty()
+ {
+ super();
+ }
+
+ public void setValue(int value)
+ {
+ this.value = value;
+ }
+
+ protected void setNumberValue(Number n)
+ {
+ value = n.longValue();
+ }
+
+ protected void setNumberValue(String n) throws NumberFormatException
+ {
+ value = Long.parseLong(n);
+ }
+
+ /**
+ * @see org.apache.jmeter.testelement.property.JMeterProperty#getStringValue()
+ */
+ public String getStringValue()
+ {
+ return Long.toString(value);
+ }
+
+ /**
+ * @see org.apache.jmeter.testelement.property.JMeterProperty#getObjectValue()
+ */
+ public Object getObjectValue()
+ {
+ return new Long(value);
+ }
+
+ /**
+ * @see java.lang.Object#clone()
+ */
+ public Object clone()
+ {
+ LongProperty prop = (LongProperty) super.clone();
+ prop.value = value;
+ return prop;
+ }
+
+ /**
+ * @see org.apache.jmeter.testelement.property.JMeterProperty#getBooleanValue()
+ */
+ public boolean getBooleanValue()
+ {
+ return getLongValue() > 0 ? true : false;
+ }
+
+ /**
+ * @see org.apache.jmeter.testelement.property.JMeterProperty#getDoubleValue()
+ */
+ public double getDoubleValue()
+ {
+ return (double) value;
+ }
+
+ /**
+ * @see org.apache.jmeter.testelement.property.JMeterProperty#getFloatValue()
+ */
+ public float getFloatValue()
+ {
+ return (float) value;
+ }
+
+ /**
+ * @see org.apache.jmeter.testelement.property.JMeterProperty#getIntValue()
+ */
+ public int getIntValue()
+ {
+ return (int) value;
+ }
+
+ /**
+ * @see org.apache.jmeter.testelement.property.JMeterProperty#getLongValue()
+ */
+ public long getLongValue()
+ {
+ return value;
+ }
}
1.7 +20 -71 jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/MapProperty.java
Index: MapProperty.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/MapProperty.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- MapProperty.java 29 Apr 2003 15:47:43 -0000 1.6
+++ MapProperty.java 5 May 2003 17:23:02 -0000 1.7
@@ -1,6 +1,5 @@
package org.apache.jmeter.testelement.property;
-import java.util.Iterator;
import java.util.Map;
import org.apache.jmeter.testelement.TestElement;
@@ -11,7 +10,7 @@
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
*/
-public class MapProperty extends AbstractProperty
+public class MapProperty extends MultiProperty
{
Map value;
Map savedValue = null;
@@ -43,20 +42,13 @@
{
if (v instanceof Map)
{
- if (isRunningVersion())
- {
- savedValue = this.value;
- }
- value = normalizeMap((Map) v);
+ setMap((Map) v);
}
}
public void addProperty(JMeterProperty prop)
{
- if (value.size() == 0 || valueIterator().next().getClass().equals(prop.getClass()))
- {
- value.put(prop.getName(), prop);
- }
+ addProperty(prop.getName(),prop);
}
public JMeterProperty get(String key)
@@ -132,44 +124,24 @@
return new PropertyIteratorImpl(value.values());
}
- /**
- * @see org.apache.jmeter.testelement.property.JMeterProperty#mergeIn(org.apache.jmeter.testelement.property.JMeterProperty)
- */
- public void mergeIn(JMeterProperty prop)
- {
- if (((MapProperty) prop).value == value)
- {
- return;
- }
- if (prop instanceof MapProperty)
- {
- PropertyIterator iter = ((MapProperty) prop).valueIterator();
- while (iter.hasNext())
- {
- JMeterProperty subProp = iter.next();
- if (!value.containsKey(subProp.getName()))
- {
- value.put(subProp.getName(), subProp);
- }
- }
- }
- else
- {
- addProperty(prop.getName(), prop);
- }
- }
-
public void addProperty(String name, JMeterProperty prop)
{
if (value.size() == 0 || value.values().iterator().next().getClass().equals(prop.getClass()))
{
- value.put(name, prop);
+ if (!value.containsKey(name))
+ {
+ value.put(name, prop);
+ }
}
}
public void setMap(Map newMap)
{
- value = newMap;
+ if (isRunningVersion())
+ {
+ savedValue = this.value;
+ }
+ value = normalizeMap(newMap);
}
/**
@@ -182,43 +154,20 @@
value = savedValue;
savedValue = null;
}
- Iterator iter = value.keySet().iterator();
- while (iter.hasNext())
- {
- String name = (String) iter.next();
- JMeterProperty prop = (JMeterProperty) value.get(name);
- if (prop.isTemporary(owner))
- {
- iter.remove();
- }
- else
- {
- prop.recoverRunningVersion(owner);
- }
- }
+ recoverRunningVersionOfSubElements(owner);
}
- public void setRunningVersion(boolean running)
+ public void clear()
{
- super.setRunningVersion(running);
- PropertyIterator iter = valueIterator();
- while (iter.hasNext())
- {
- iter.next().setRunningVersion(running);
- }
+ value.clear();
}
- /**
- * @see org.apache.jmeter.testelement.property.JMeterProperty#setTemporary(boolean, org.apache.jmeter.testelement.TestElement)
- */
- public void setTemporary(boolean temporary, TestElement owner)
+ /* (non-Javadoc)
+ * @see org.apache.jmeter.testelement.property.MultiProperty#iterator()
+ */
+ public PropertyIterator iterator()
{
- super.setTemporary(temporary, owner);
- PropertyIterator iter = valueIterator();
- while (iter.hasNext())
- {
- iter.next().setTemporary(temporary, owner);
- }
+ return valueIterator();
}
}
1.7 +21 -9 jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/TestElementProperty.java
Index: TestElementProperty.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/TestElementProperty.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- TestElementProperty.java 2 May 2003 21:38:09 -0000 1.6
+++ TestElementProperty.java 5 May 2003 17:23:02 -0000 1.7
@@ -2,7 +2,7 @@
import org.apache.jmeter.testelement.TestElement;
-public class TestElementProperty extends AbstractProperty
+public class TestElementProperty extends MultiProperty
{
TestElement value;
TestElement savedValue = null;
@@ -113,16 +113,28 @@
}
/* (non-Javadoc)
- * @see org.apache.jmeter.testelement.property.JMeterProperty#setTemporary(boolean, TestElement)
+ * @see org.apache.jmeter.testelement.property.MultiProperty#addProperty(org.apache.jmeter.testelement.property.JMeterProperty)
*/
- public void setTemporary(boolean temporary, TestElement owner)
+ public void addProperty(JMeterProperty prop)
{
- super.setTemporary(temporary, owner);
- PropertyIterator iter = value.propertyIterator();
- while (iter.hasNext())
- {
- iter.next().setTemporary(temporary, owner);
- }
+ value.setProperty(prop);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jmeter.testelement.property.MultiProperty#clear()
+ */
+ public void clear()
+ {
+ value.clear();
}
+
+ /* (non-Javadoc)
+ * @see org.apache.jmeter.testelement.property.MultiProperty#iterator()
+ */
+ public PropertyIterator iterator()
+ {
+ return value.propertyIterator();
+ }
+
}
1.1 jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/MultiProperty.java
Index: MultiProperty.java
===================================================================
/*
* Created on May 4, 2003
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package org.apache.jmeter.testelement.property;
import org.apache.jmeter.testelement.TestElement;
/**
* For JMeterProperties that hold multiple properties within, provides a simple interface
* for retrieving a property iterator for the sub values.
*/
public abstract class MultiProperty extends AbstractProperty
{
public MultiProperty(String name)
{
super(name);
}
public MultiProperty()
{
super();
}
/**
* Get the property iterator to iterate through the sub-values of this JMeterProperty
* @return
*/
public abstract PropertyIterator iterator();
/**
* Add a property to the collection.
* @param prop
*/
public abstract void addProperty(JMeterProperty prop);
/**
* Clear away all values in the property.
*
*/
public abstract void clear();
public void setTemporary(boolean temporary, TestElement owner)
{
super.setTemporary(temporary, owner);
PropertyIterator iter = iterator();
while (iter.hasNext())
{
iter.next().setTemporary(temporary, owner);
}
}
public void setRunningVersion(boolean running)
{
super.setRunningVersion(running);
PropertyIterator iter = iterator();
while (iter.hasNext())
{
iter.next().setRunningVersion(running);
}
}
protected void recoverRunningVersionOfSubElements(TestElement owner)
{
PropertyIterator iter = iterator();
while (iter.hasNext())
{
JMeterProperty prop = iter.next();
if (prop.isTemporary(owner))
{
iter.remove();
}
else
{
prop.recoverRunningVersion(owner);
}
}
}
public void mergeIn(JMeterProperty prop)
{
if (prop.getObjectValue() == getObjectValue())
{
return;
}
if (prop instanceof MultiProperty)
{
PropertyIterator iter = ((MultiProperty) prop).iterator();
while (iter.hasNext())
{
addProperty(iter.next());
}
}
else
{
addProperty(prop);
}
}
}
1.1 jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/NumberProperty.java
Index: NumberProperty.java
===================================================================
/*
* Created on May 5, 2003
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package org.apache.jmeter.testelement.property;
/**
* @author ano ano
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public abstract class NumberProperty extends AbstractProperty
{
public NumberProperty(String name)
{
super(name);
}
public NumberProperty()
{
super();
}
/**
* Set the value of the property with a Number object.
* @param n
*/
protected abstract void setNumberValue(Number n);
/**
* Set the value of the property with a String object.
* @param n
* @throws NumberFormatException
*/
protected abstract void setNumberValue(String n) throws NumberFormatException;
public void setObjectValue(Object v)
{
if (v instanceof Number)
{
setNumberValue((Number) v);
}
else
{
try
{
setNumberValue(v.toString());
}
catch (RuntimeException e)
{}
}
}
/**
* @see java.lang.Comparable#compareTo(java.lang.Object)
*/
public int compareTo(Object arg0)
{
if(arg0 instanceof JMeterProperty)
{
double compareValue = getDoubleValue() - ((JMeterProperty)arg0).getDoubleValue();
if(compareValue < 0)
{
return -1;
}
else if(compareValue == 0)
{
return 0;
}
else
{
return 1;
}
}
else
{
return -1;
}
}
}
1.14 +2 -2 jakarta-jmeter/src/core/org/apache/jmeter/visualizers/gui/AbstractVisualizer.java
Index: AbstractVisualizer.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/visualizers/gui/AbstractVisualizer.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- AbstractVisualizer.java 2 May 2003 15:53:32 -0000 1.13
+++ AbstractVisualizer.java 5 May 2003 17:23:02 -0000 1.14
@@ -33,7 +33,7 @@
public abstract class AbstractVisualizer extends AbstractJMeterGuiComponent implements Visualizer, ChangeListener, UnsharedComponent
{
- transient private static Logger log = Hierarchy.getDefaultHierarchy().getLoggerFor("jmeter.gui");
+ transient protected static Logger log = Hierarchy.getDefaultHierarchy().getLoggerFor("jmeter.gui");
private FilePanel filePanel;
private JCheckBox errorLogging;
1.22 +12 -4 jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
Index: ProxyControl.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- ProxyControl.java 29 Apr 2003 15:47:43 -0000 1.21
+++ ProxyControl.java 5 May 2003 17:23:02 -0000 1.22
@@ -67,6 +67,7 @@
import org.apache.jmeter.config.ConfigTestElement;
import org.apache.jmeter.engine.util.ValueReplacer;
import org.apache.jmeter.exceptions.IllegalUserActionException;
+import org.apache.jmeter.functions.InvalidVariableException;
import org.apache.jmeter.gui.GuiPackage;
import org.apache.jmeter.gui.tree.JMeterTreeModel;
import org.apache.jmeter.gui.tree.JMeterTreeNode;
@@ -432,10 +433,17 @@
protected void replaceValues(TestElement sampler, TestElement[] configs)
{
- GuiPackage.getInstance().getReplacer().reverseReplace(sampler);
- for (int i = 0; i < configs.length; i++)
+ try
{
- GuiPackage.getInstance().getReplacer().reverseReplace(configs[i]);
+ GuiPackage.getInstance().getReplacer().reverseReplace(sampler);
+ for (int i = 0; i < configs.length; i++)
+ {
+ GuiPackage.getInstance().getReplacer().reverseReplace(configs[i]);
+ }
+ }
+ catch (InvalidVariableException e)
+ {
+ log.warn("Invalid variables included for replacement into recorded sample",e);
}
}
public static class Test extends TestCase
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org