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/04/23 20:52:08 UTC
cvs commit: jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/control/gui HttpTestSampleGui.java
mstover1 2003/04/23 11:52:08
Modified: src/components/org/apache/jmeter/timers
ConstantThroughputTimer.java
src/components/org/apache/jmeter/timers/gui
ConstantThroughputTimerGui.java
GaussianRandomTimerGui.java
UniformRandomTimerGui.java
src/components/org/apache/jmeter/visualizers
AssertionVisualizer.java GraphVisualizer.java
SimpleDataWriter.java SplineVisualizer.java
StatVisualizer.java TableVisualizer.java
ViewResultsFullVisualizer.java
src/core/org/apache/jmeter/config Argument.java
Arguments.java
src/core/org/apache/jmeter/control LoopController.java
src/core/org/apache/jmeter/control/gui LoopControlPanel.java
src/core/org/apache/jmeter/engine PreCompiler.java
StandardJMeterEngine.java TreeCloner.java
src/core/org/apache/jmeter/gui/action Load.java Start.java
src/core/org/apache/jmeter/gui/util FilePanel.java
src/core/org/apache/jmeter/reporters ResultCollector.java
src/core/org/apache/jmeter/testelement
AbstractTestElement.java
src/core/org/apache/jmeter/threads/gui ThreadGroupGui.java
src/core/org/apache/jmeter/visualizers/gui
AbstractVisualizer.java
src/protocol/http/org/apache/jmeter/protocol/http/control/gui
HttpTestSampleGui.java
Added: src/core/org/apache/jmeter/engine/util NoThreadClone.java
Log:
Refactoring visualizers
Fixing bug #18697
Revision Changes Path
1.6 +9 -6 jakarta-jmeter/src/components/org/apache/jmeter/timers/ConstantThroughputTimer.java
Index: ConstantThroughputTimer.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/timers/ConstantThroughputTimer.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- ConstantThroughputTimer.java 7 Apr 2003 14:35:19 -0000 1.5
+++ ConstantThroughputTimer.java 23 Apr 2003 18:52:06 -0000 1.6
@@ -60,7 +60,6 @@
import java.util.List;
import org.apache.jmeter.testelement.AbstractTestElement;
-import org.apache.jmeter.testelement.property.LongProperty;
import org.apache.jmeter.util.JMeterUtils;
/**
@@ -104,10 +103,9 @@
*
* @param throughput Desired sampling rate, in samples per minute.
*/
- public void setThroughput(long throughput)
+ public void setThroughput(String throughput)
{
- setProperty(new LongProperty(THROUGHPUT,throughput));
- delay= 60000/throughput;
+ setProperty(THROUGHPUT,throughput);
}
/**
@@ -149,6 +147,11 @@
{
return getPropertyAsLong(THROUGHPUT);
}
+
+ public String getThroughputString()
+ {
+ return getPropertyAsString(THROUGHPUT);
+ }
/**
* Retrieve the delay to use during test execution.
@@ -159,7 +162,7 @@
{
long currentTime = System.currentTimeMillis();
long currentTarget = targetTime == 0 ? currentTime : targetTime;
- targetTime = currentTarget + delay;
+ targetTime = currentTarget + 60000/getThroughput();
if (currentTime > currentTarget)
{
// We're behind schedule -- try to catch up:
1.6 +3 -59 jakarta-jmeter/src/components/org/apache/jmeter/timers/gui/ConstantThroughputTimerGui.java
Index: ConstantThroughputTimerGui.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/timers/gui/ConstantThroughputTimerGui.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- ConstantThroughputTimerGui.java 20 Apr 2003 21:53:38 -0000 1.5
+++ ConstantThroughputTimerGui.java 23 Apr 2003 18:52:06 -0000 1.6
@@ -55,12 +55,8 @@
package org.apache.jmeter.timers.gui;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-
import javax.swing.Box;
import javax.swing.JLabel;
-import javax.swing.JOptionPane;
import javax.swing.JTextField;
import org.apache.jmeter.testelement.TestElement;
@@ -77,7 +73,6 @@
*/
public class ConstantThroughputTimerGui
extends AbstractTimerGui
- implements KeyListener
{
private final String DEFAULT_THROUGHPUT = "60";
private final String THROUGHPUT_FIELD = "Throughput Field";
@@ -122,7 +117,7 @@
public void modifyTestElement(TestElement timer)
{
this.configureTestElement(timer);
- ((ConstantThroughputTimer)timer).setThroughput(Long.parseLong(throughputField.getText()));
+ ((ConstantThroughputTimer)timer).setThroughput(throughputField.getText());
}
/**
@@ -134,57 +129,7 @@
{
super.configure(el);
ConstantThroughputTimer e= (ConstantThroughputTimer)el;
- throughputField.setText(String.valueOf(e.getThroughput()));
- }
-
- /**
- * Checks the key just entered in the Throughput text input field makes a
- * valid number, cleans the input field otherwise.
- *
- * @param e KeyEvent - handled only if it happens in the Throughput field.
- */
- public void keyReleased(KeyEvent e)
- {
- String n = e.getComponent().getName();
- if(n.equals(THROUGHPUT_FIELD))
- {
- try
- {
- Long.parseLong(throughputField.getText());
- }
- catch(NumberFormatException nfe)
- {
- if(throughputField.getText().length() > 0)
- {
- JOptionPane.showMessageDialog(this,
- "You must enter a valid number",
- "Invalid data", JOptionPane.WARNING_MESSAGE);
- // We reset the text to be an empty string instead
- // of the default value. If we reset it to the
- // default value, then the user has to delete
- // that value and reenter his/her own. That's
- // too much trouble for the user.
- }
- }
- }
- }
-
- /**
- * Process a KeyEvent.
- *
- * @param e the event to handle.
- */
- public void keyPressed(KeyEvent e)
- {
- }
-
- /**
- * Process a KeyEvent.
- *
- * @param e the event to handle.
- */
- public void keyTyped(KeyEvent e)
- {
+ throughputField.setText(e.getThroughputString());
}
/**
@@ -206,7 +151,6 @@
throughputField = new JTextField(6);
throughputField.setText(DEFAULT_THROUGHPUT);
- throughputField.addKeyListener(this);
throughputField.setName(THROUGHPUT_FIELD);
throughputPanel.add(throughputField);
1.8 +2 -50 jakarta-jmeter/src/components/org/apache/jmeter/timers/gui/GaussianRandomTimerGui.java
Index: GaussianRandomTimerGui.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/timers/gui/GaussianRandomTimerGui.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- GaussianRandomTimerGui.java 20 Apr 2003 21:53:38 -0000 1.7
+++ GaussianRandomTimerGui.java 23 Apr 2003 18:52:06 -0000 1.8
@@ -56,8 +56,6 @@
package org.apache.jmeter.timers.gui;
import java.awt.Dimension;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
import javax.swing.BorderFactory;
import javax.swing.Box;
@@ -81,7 +79,7 @@
* @author <a href="mailto:seade@backstagetech.com.au">Scott Eade</a>
* @version $Id$
*/
-public class GaussianRandomTimerGui extends AbstractTimerGui implements KeyListener
+public class GaussianRandomTimerGui extends AbstractTimerGui
{
private final String DELAY_FIELD = "Delay Field";
@@ -158,50 +156,6 @@
}
/**
- * Process a KeyEvent.
- *
- * @param e the event to handle.
- */
- public void keyReleased(KeyEvent e)
- {
- String temp = e.getComponent().getName();
-
- if(temp.equals(RANGE_FIELD))
- {
- try
- {
- Double.parseDouble(rangeField.getText());
- }
- catch(NumberFormatException nfe)
- {
- if(rangeField.getText().length() > 0)
- {
- JOptionPane.showMessageDialog(this, "You must enter a valid number",
- "Invalid data", JOptionPane.WARNING_MESSAGE);
- }
- }
- }
- }
-
- /**
- * Process a KeyEvent.
- *
- * @param e the event to handle.
- */
- public void keyPressed(KeyEvent e)
- {
- }
-
- /**
- * Process a KeyEvent.
- *
- * @param e the event to handle.
- */
- public void keyTyped(KeyEvent e)
- {
- }
-
- /**
* Initialize this component.
*/
private void init()
@@ -223,7 +177,6 @@
rangeField = new JTextField(6);
rangeField.setText(DEFAULT_RANGE);
rangeField.setName(RANGE_FIELD);
- rangeField.addKeyListener(this);
delayDevPanel.add(rangeField);
threadDelayPropsPanel.add(delayDevPanel);
@@ -236,7 +189,6 @@
delayField = new JTextField(6);
delayField.setText(DEFAULT_DELAY);
delayField.setName(DELAY_FIELD);
- delayField.addKeyListener(this);
avgDelayPanel.add(delayField);
threadDelayPropsPanel.add(avgDelayPanel);
1.8 +2 -51 jakarta-jmeter/src/components/org/apache/jmeter/timers/gui/UniformRandomTimerGui.java
Index: UniformRandomTimerGui.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/timers/gui/UniformRandomTimerGui.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- UniformRandomTimerGui.java 20 Apr 2003 21:53:38 -0000 1.7
+++ UniformRandomTimerGui.java 23 Apr 2003 18:52:06 -0000 1.8
@@ -55,9 +55,6 @@
package org.apache.jmeter.timers.gui;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.JComponent;
@@ -80,7 +77,7 @@
* @author <a href="mailto:seade@backstagetech.com.au">Scott Eade</a>
* @version $Id$
*/
-public class UniformRandomTimerGui extends AbstractTimerGui implements KeyListener
+public class UniformRandomTimerGui extends AbstractTimerGui
{
private final String DELAY_FIELD = "Delay Field";
@@ -158,50 +155,6 @@
}
/**
- * Process a KeyEvent.
- *
- * @param e the event to handle.
- */
- public void keyReleased(KeyEvent e)
- {
- String temp = e.getComponent().getName();
-
- if (temp.equals(RANGE_FIELD))
- {
- try
- {
- Double.parseDouble(rangeField.getText());
- }
- catch(NumberFormatException nfe)
- {
- if(rangeField.getText().length() > 0)
- {
- JOptionPane.showMessageDialog(this, "You must enter a valid number",
- "Invalid data", JOptionPane.WARNING_MESSAGE);
- }
- }
- }
- }
-
- /**
- * Process a KeyEvent.
- *
- * @param e the event to handle.
- */
- public void keyPressed(KeyEvent e)
- {
- }
-
- /**
- * Process a KeyEvent.
- *
- * @param e the event to handle.
- */
- public void keyTyped(KeyEvent e)
- {
- }
-
- /**
* Initialize this component.
*/
private void init()
@@ -224,7 +177,6 @@
rangeField = new JTextField(6);
rangeField.setText(DEFAULT_RANGE);
rangeField.setName(RANGE_FIELD);
- rangeField.addKeyListener(this);
delayDevPanel.add(rangeField);
threadDelayPropsPanel.add(delayDevPanel);
@@ -237,7 +189,6 @@
delayField = new JTextField(6);
delayField.setText(DEFAULT_DELAY);
delayField.setName(DELAY_FIELD);
- delayField.addKeyListener(this);
avgDelayPanel.add(delayField);
threadDelayPropsPanel.add(avgDelayPanel);
1.10 +6 -16 jakarta-jmeter/src/components/org/apache/jmeter/visualizers/AssertionVisualizer.java
Index: AssertionVisualizer.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/visualizers/AssertionVisualizer.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- AssertionVisualizer.java 16 Apr 2003 21:15:56 -0000 1.9
+++ AssertionVisualizer.java 23 Apr 2003 18:52:06 -0000 1.10
@@ -56,8 +56,8 @@
import java.awt.BorderLayout;
-import java.awt.Font;
+import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JLabel;
import javax.swing.JPanel;
@@ -156,28 +156,17 @@
this.setLayout(new BorderLayout());
// MAIN PANEL
- JPanel mainPanel = new JPanel();
Border margin = new EmptyBorder(10, 10, 5, 10);
- mainPanel.setBorder(margin);
- mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
+ this.setBorder(margin);
- // TITLE
- JLabel panelTitleLabel = new JLabel(JMeterUtils.getResString("assertion_visualizer_title"));
- Font curFont = panelTitleLabel.getFont();
- int curFontSize = curFont.getSize();
-
- curFontSize += 4;
- panelTitleLabel.setFont(new Font(curFont.getFontName(), curFont.getStyle(), curFontSize));
- mainPanel.add(panelTitleLabel);
// NAME
- mainPanel.add(getNamePanel());
- mainPanel.add(getFilePanel());
+ this.add(makeTitlePanel(),BorderLayout.NORTH);
// TEXTAREA LABEL
JLabel textAreaLabel = new JLabel(JMeterUtils.getResString("assertion_textarea_label"));
-
+ Box mainPanel = Box.createVerticalBox();
mainPanel.add(textAreaLabel);
// TEXTAREA
@@ -190,6 +179,7 @@
areaScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
mainPanel.add(areaScrollPane);
+ mainPanel.add(Box.createVerticalGlue());
this.add(mainPanel, BorderLayout.CENTER);
}
}
1.11 +2 -13 jakarta-jmeter/src/components/org/apache/jmeter/visualizers/GraphVisualizer.java
Index: GraphVisualizer.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/visualizers/GraphVisualizer.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- GraphVisualizer.java 16 Apr 2003 21:15:56 -0000 1.10
+++ GraphVisualizer.java 23 Apr 2003 18:52:06 -0000 1.11
@@ -59,7 +59,6 @@
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
-import java.awt.Font;
import java.awt.Image;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
@@ -270,18 +269,8 @@
mainPanel.setBorder(margin);
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
- // TITLE
- JLabel panelTitleLabel = new JLabel(JMeterUtils.getResString("graph_results_title"));
- Font curFont = panelTitleLabel.getFont();
- int curFontSize = curFont.getSize();
-
- curFontSize += 4;
- panelTitleLabel.setFont(new Font(curFont.getFontName(), curFont.getStyle(), curFontSize));
- mainPanel.add(panelTitleLabel);
-
// NAME
- mainPanel.add(getNamePanel());
- mainPanel.add(this.getFilePanel());
+ mainPanel.add(makeTitlePanel());
// Set up the graph with header, footer, Y axis and graph display
1.3 +2 -3 jakarta-jmeter/src/components/org/apache/jmeter/visualizers/SimpleDataWriter.java
Index: SimpleDataWriter.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/visualizers/SimpleDataWriter.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SimpleDataWriter.java 23 Apr 2003 14:23:05 -0000 1.2
+++ SimpleDataWriter.java 23 Apr 2003 18:52:07 -0000 1.3
@@ -122,7 +122,6 @@
// NAME
mainPanel.add(makeTitlePanel());
- mainPanel.add(getFilePanel());
this.add(mainPanel, BorderLayout.NORTH);
}
1.8 +3 -4 jakarta-jmeter/src/components/org/apache/jmeter/visualizers/SplineVisualizer.java
Index: SplineVisualizer.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/visualizers/SplineVisualizer.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- SplineVisualizer.java 23 Apr 2003 14:23:05 -0000 1.7
+++ SplineVisualizer.java 23 Apr 2003 18:52:07 -0000 1.8
@@ -186,7 +186,6 @@
// NAME
mainPanel.add(makeTitlePanel());
- mainPanel.add(getFilePanel());
maximumLabel = new JLabel(JMeterUtils.getResString("spline_visualizer_maximum"));
maximumLabel.setForeground(MAXIMUM_COLOR);
maximumLabel.setBackground(backColor);
1.12 +11 -22 jakarta-jmeter/src/components/org/apache/jmeter/visualizers/StatVisualizer.java
Index: StatVisualizer.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/visualizers/StatVisualizer.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- StatVisualizer.java 16 Apr 2003 21:15:56 -0000 1.11
+++ StatVisualizer.java 23 Apr 2003 18:52:07 -0000 1.12
@@ -57,13 +57,11 @@
import java.awt.BorderLayout;
import java.awt.Dimension;
-import java.awt.Font;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Arrays;
import javax.swing.BoxLayout;
-import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
@@ -183,16 +181,7 @@
mainPanel.setBorder(margin);
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
- // TITLE
- JLabel panelTitleLabel = new JLabel(VISUALIZER_NAME);
- Font curFont = panelTitleLabel.getFont();
- int curFontSize = curFont.getSize();
-
- curFontSize += 4;
- panelTitleLabel.setFont(
- new Font(curFont.getFontName(), curFont.getStyle(), curFontSize));
- mainPanel.add(panelTitleLabel);
- mainPanel.add(getFilePanel());
+ mainPanel.add(makeTitlePanel());
myStatTableModel = new StatTableModel(model);
// SortFilterModel mySortedModel = new SortFilterModel(myStatTableModel);
myJTable = new JTable(myStatTableModel);
1.8 +1 -2 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.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- TableVisualizer.java 23 Apr 2003 14:23:05 -0000 1.7
+++ TableVisualizer.java 23 Apr 2003 18:52:07 -0000 1.8
@@ -198,7 +198,6 @@
// NAME
mainPanel.add(makeTitlePanel());
- mainPanel.add(getFilePanel());
// Set up the table itself
table = new JTable(model);
1.20 +1 -4 jakarta-jmeter/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
Index: ViewResultsFullVisualizer.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- ViewResultsFullVisualizer.java 23 Apr 2003 14:23:05 -0000 1.19
+++ ViewResultsFullVisualizer.java 23 Apr 2003 18:52:07 -0000 1.20
@@ -492,9 +492,6 @@
treeSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, treePane, getBottomPane());
Box titlePanel = makeTitlePanel();
- JCheckBox errorCheckBox = getErrorLoggingCheckbox();
- errorCheckBox.setAlignmentX(JCheckBox.CENTER_ALIGNMENT);
- titlePanel.add(errorCheckBox);
add(titlePanel, BorderLayout.NORTH);
add(treeSplitPane, BorderLayout.CENTER);
1.5 +3 -3 jakarta-jmeter/src/core/org/apache/jmeter/config/Argument.java
Index: Argument.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/config/Argument.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- Argument.java 7 Apr 2003 14:35:20 -0000 1.4
+++ Argument.java 23 Apr 2003 18:52:07 -0000 1.5
@@ -72,9 +72,9 @@
public class Argument extends AbstractTestElement implements Serializable
{
- protected final static String NAME = "Argument.name";
- protected final static String VALUE = "Argument.value";
- private final static String METADATA = "Argument.metadata";
+ public final static String NAME = "Argument.name";
+ public final static String VALUE = "Argument.value";
+ public final static String METADATA = "Argument.metadata";
/****************************************
* Constructor for the Argument object
1.5 +2 -2 jakarta-jmeter/src/core/org/apache/jmeter/config/Arguments.java
Index: Arguments.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/config/Arguments.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- Arguments.java 7 Apr 2003 14:35:20 -0000 1.4
+++ Arguments.java 23 Apr 2003 18:52:07 -0000 1.5
@@ -275,7 +275,7 @@
if(row < getArguments().size())
{
- argument = (Argument)getArguments().get(row);
+ argument = (Argument)getArguments().get(row).getObjectValue();
}
return argument;
1.8 +6 -1 jakarta-jmeter/src/core/org/apache/jmeter/control/LoopController.java
Index: LoopController.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/control/LoopController.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- LoopController.java 11 Apr 2003 19:10:55 -0000 1.7
+++ LoopController.java 23 Apr 2003 18:52:07 -0000 1.8
@@ -112,6 +112,11 @@
{
return getPropertyAsInt(LOOPS);
}
+
+ public String getLoopString()
+ {
+ return getPropertyAsString(LOOPS);
+ }
/****************************************
* !ToDo (Method description)
1.6 +10 -52 jakarta-jmeter/src/core/org/apache/jmeter/control/gui/LoopControlPanel.java
Index: LoopControlPanel.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/control/gui/LoopControlPanel.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- LoopControlPanel.java 23 Apr 2003 14:23:06 -0000 1.5
+++ LoopControlPanel.java 23 Apr 2003 18:52:07 -0000 1.6
@@ -1,13 +1,10 @@
package org.apache.jmeter.control.gui;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
import javax.swing.BorderFactory;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
-import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
@@ -25,7 +22,7 @@
*@version 1.0
***************************************/
-public class LoopControlPanel extends AbstractControllerGui implements KeyListener, ActionListener
+public class LoopControlPanel extends AbstractControllerGui implements ActionListener
{
JCheckBox infinite;
@@ -65,7 +62,7 @@
super.configure(element);
if (element instanceof LoopController)
{
- setState(((LoopController) element).getLoops());
+ setState(((LoopController) element).getLoopString());
}
else
{
@@ -125,51 +122,6 @@
}
/****************************************
- * Description of the Method
- *
- *@param e Description of Parameter
- ***************************************/
- public void keyPressed(KeyEvent e)
- {}
-
- /****************************************
- * Description of the Method
- *
- *@param e Description of Parameter
- ***************************************/
- public void keyTyped(KeyEvent e)
- {}
-
- /****************************************
- * Description of the Method
- *
- *@param e Description of Parameter
- ***************************************/
- public void keyReleased(KeyEvent e)
- {
- String temp = e.getComponent().getName();
- if (temp.equals(LOOPS))
- {
- try
- {
- Integer.parseInt(loops.getText());
- }
- catch (NumberFormatException ex)
- {
- if (loops.getText().length() > 0)
- {
- // We need a standard warning/error dialog. The problem with
- // having it here is that the dialog is centered over this
- // LoopControlPanel instead of begin centered in the entire
- // JMeter GUI window.
- JOptionPane.showMessageDialog(this, "You must enter a valid number", "Invalid data", JOptionPane.WARNING_MESSAGE);
- loops.setText("");
- }
- }
- }
- }
-
- /****************************************
* !ToDoo (Method description)
*
*@return !ToDo (Return description)
@@ -214,7 +166,6 @@
loops = new JTextField(5);
loopPanel.add(loops);
loops.setName(LOOPS);
- loops.addKeyListener(this);
loops.setText("1");
// FOREVER CHECKBOX
@@ -224,6 +175,13 @@
loopPanel.add(infinite);
return loopPanel;
+ }
+
+ private void setState(String loopCount)
+ {
+ loops.setText(loopCount);
+ infinite.setSelected(false);
+ loops.setEnabled(true);
}
private void setState(int loopCount)
1.11 +1 -0 jakarta-jmeter/src/core/org/apache/jmeter/engine/PreCompiler.java
Index: PreCompiler.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/engine/PreCompiler.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- PreCompiler.java 14 Mar 2003 21:15:36 -0000 1.10
+++ PreCompiler.java 23 Apr 2003 18:52:07 -0000 1.11
@@ -45,6 +45,7 @@
try
{
replacer.replaceValues((TestElement) node);
+ ((TestElement)node).setRunningVersion(true);
}
catch (InvalidVariableException e)
{
1.21 +3 -3 jakarta-jmeter/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java
Index: StandardJMeterEngine.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- StandardJMeterEngine.java 10 Apr 2003 18:31:18 -0000 1.20
+++ StandardJMeterEngine.java 23 Apr 2003 18:52:07 -0000 1.21
@@ -267,7 +267,7 @@
private ListedHashTree cloneTree(ListedHashTree tree)
{
- TreeCloner cloner = new TreeCloner(false);
+ TreeCloner cloner = new TreeCloner(true);
tree.traverse(cloner);
return cloner.getClonedTree();
}
1.5 +98 -64 jakarta-jmeter/src/core/org/apache/jmeter/engine/TreeCloner.java
Index: TreeCloner.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/engine/TreeCloner.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- TreeCloner.java 5 Feb 2003 05:12:06 -0000 1.4
+++ TreeCloner.java 23 Apr 2003 18:52:07 -0000 1.5
@@ -2,13 +2,22 @@
import java.util.LinkedList;
+import org.apache.jmeter.config.Argument;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.control.GenericController;
-import org.apache.jmeter.testelement.PerThreadClonable;
+import org.apache.jmeter.engine.util.NoThreadClone;
+import org.apache.jmeter.reporters.ResultCollector;
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.JMeterProperty;
+import org.apache.jmeter.testelement.property.PropertyIterator;
+import org.apache.jmeter.util.JMeterUtils;
import org.apache.jorphan.collections.HashTree;
import org.apache.jorphan.collections.HashTreeTraverser;
import org.apache.jorphan.collections.ListedHashTree;
+import org.apache.jorphan.logging.LoggingManager;
+import org.apache.log.Logger;
/**
* <p>Title: </p>
@@ -21,75 +30,100 @@
public class TreeCloner implements HashTreeTraverser
{
- ListedHashTree newTree;
- LinkedList objects = new LinkedList();
+ Logger log = LoggingManager.getLoggerFor(JMeterUtils.ENGINE);
+ ListedHashTree newTree;
+ LinkedList objects = new LinkedList();
boolean forThread = true;
-
+
public TreeCloner()
{
this(true);
}
- public TreeCloner(boolean forThread)
- {
- newTree = new ListedHashTree();
+ public TreeCloner(boolean forThread)
+ {
+ newTree = new ListedHashTree();
this.forThread = forThread;
- }
- public void addNode(Object node,HashTree subTree)
- {
- if(node instanceof PerThreadClonable || (!forThread && node instanceof TestElement))
- {
- node = ((TestElement)node).clone();
- newTree.add(objects,node);
- }
- else
- {
- newTree.add(objects,node);
- }
- objects.addLast(node);
- }
- public void subtractNode()
- {
- objects.removeLast();
- }
-
- public ListedHashTree getClonedTree()
- {
- return newTree;
- }
-
- public void processPath()
- {
- }
-
- public static class Test extends junit.framework.TestCase
- {
- public Test(String name)
- {
- super(name);
- }
-
- public void testCloning() throws Exception
- {
- ListedHashTree original = new ListedHashTree();
- GenericController controller = new GenericController();
- controller.setName("controller");
- Arguments args = new Arguments();
- args.setName("args");
- original.add(controller,args);
- TreeCloner cloner = new TreeCloner();
- original.traverse(cloner);
- ListedHashTree newTree = cloner.getClonedTree();
- assertTrue(original != newTree);
- assertEquals(original.size(),newTree.size());
- assertEquals(original.getTree(original.getArray()[0]).size(),
- newTree.getTree(newTree.getArray()[0]).size());
- assertTrue(original.getArray()[0] != newTree.getArray()[0]);
- assertEquals(((GenericController)original.getArray()[0]).getName(),
- ((GenericController)newTree.getArray()[0]).getName());
- assertSame(original.getTree(original.getArray()[0]).getArray()[0],
- newTree.getTree(newTree.getArray()[0]).getArray()[0]);
- }
+ }
+ public void addNode(Object node, HashTree subTree)
+ {
+ if ((!forThread || !(node instanceof NoThreadClone)) && (node instanceof TestElement))
+ {
+ node = ((TestElement) node).clone();
+ newTree.add(objects, node);
+ }
+ else
+ {
+ newTree.add(objects, node);
+ }
+ objects.addLast(node);
+ }
+ public void subtractNode()
+ {
+ objects.removeLast();
+ }
- }
+ public ListedHashTree getClonedTree()
+ {
+ return newTree;
+ }
+
+ public void processPath()
+ {}
+
+ public static class Test extends junit.framework.TestCase
+ {
+ public Test(String name)
+ {
+ super(name);
+ }
+
+ public void testCloning() throws Exception
+ {
+ ListedHashTree original = new ListedHashTree();
+ GenericController controller = new GenericController();
+ controller.setName("controller");
+ Arguments args = new Arguments();
+ args.setName("args");
+ TestPlan plan = new TestPlan();
+ plan.addParameter("server", "jakarta");
+ original.add(controller, args);
+ original.add(plan);
+ ResultCollector listener = new ResultCollector();
+ listener.setName("Collector");
+ original.add(controller, listener);
+ TreeCloner cloner = new TreeCloner();
+ original.traverse(cloner);
+ ListedHashTree newTree = cloner.getClonedTree();
+ assertTrue(original != newTree);
+ assertEquals(original.size(), newTree.size());
+ assertEquals(original.getTree(original.getArray()[0]).size(), newTree.getTree(newTree.getArray()[0]).size());
+ assertTrue(original.getArray()[0] != newTree.getArray()[0]);
+ assertEquals(((GenericController) original.getArray()[0]).getName(), ((GenericController) newTree.getArray()[0]).getName());
+ assertSame(original.getTree(original.getArray()[0]).getArray()[1], newTree.getTree(newTree.getArray()[0]).getArray()[1]);
+ TestPlan clonedTestPlan = (TestPlan) newTree.getArray()[1];
+ clonedTestPlan.setRunningVersion(true);
+ clonedTestPlan.recoverRunningVersion();
+ assertTrue(!plan.getProperty(TestPlan.USER_DEFINED_VARIABLES).isRunningVersion());
+ assertTrue(clonedTestPlan.getProperty(TestPlan.USER_DEFINED_VARIABLES).isRunningVersion());
+ Arguments vars = (Arguments) plan.getProperty(TestPlan.USER_DEFINED_VARIABLES).getObjectValue();
+ PropertyIterator iter = ((CollectionProperty)vars.getProperty(Arguments.ARGUMENTS)).iterator();
+ while (iter.hasNext())
+ {
+ JMeterProperty argProp = iter.next();
+ assertTrue(!argProp.isRunningVersion());
+ assertTrue(argProp.getObjectValue() instanceof Argument);
+ Argument arg = (Argument)argProp.getObjectValue();
+ arg.setValue("yahoo");
+ assertEquals("yahoo",arg.getValue());
+ }
+ vars = (Arguments) clonedTestPlan.getProperty(TestPlan.USER_DEFINED_VARIABLES).getObjectValue();
+ iter = vars.propertyIterator();
+ while (iter.hasNext())
+ {
+ assertTrue(iter.next().isRunningVersion());
+ }
+ }
+
+ }
}
1.1 jakarta-jmeter/src/core/org/apache/jmeter/engine/util/NoThreadClone.java
Index: NoThreadClone.java
===================================================================
/*
* Created on Apr 23, 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;
/**
* Implement this method-less interface to indicate your test element should not be cloned for each thread in a test run.
* Otherwise, the default behavior is to clone every test element for each thread.
*/
public interface NoThreadClone
{}
1.13 +4 -3 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.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- Load.java 7 Apr 2003 14:35:21 -0000 1.12
+++ Load.java 23 Apr 2003 18:52:07 -0000 1.13
@@ -142,6 +142,7 @@
}
finally
{
+ GuiPackage.getInstance().updateCurrentGui();
GuiPackage.getInstance().getMainFrame().repaint();
}
if(isTestPlan && f != null)
1.8 +6 -0 jakarta-jmeter/src/core/org/apache/jmeter/gui/action/Start.java
Index: Start.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/action/Start.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- Start.java 25 Mar 2003 17:24:33 -0000 1.7
+++ Start.java 23 Apr 2003 18:52:08 -0000 1.8
@@ -64,8 +64,11 @@
import org.apache.jmeter.engine.TreeCloner;
import org.apache.jmeter.engine.util.DisabledComponentRemover;
import org.apache.jmeter.gui.GuiPackage;
+import org.apache.jmeter.testelement.TestPlan;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jorphan.collections.HashTree;
+import org.apache.jorphan.logging.LoggingManager;
+import org.apache.log.Logger;
/****************************************
* Title: Apache JMeter Description: Copyright: Copyright (c) 2000 Company:
@@ -78,6 +81,7 @@
public class Start extends AbstractAction
{
+ private static Logger log = LoggingManager.getLoggerFor(JMeterUtils.GUI);
private static Set commands = new HashSet();
private StandardJMeterEngine engine;
@@ -137,6 +141,7 @@
DisabledComponentRemover remover = new DisabledComponentRemover(testTree);
testTree.traverse(remover);
testTree.add(testTree.getArray()[0],gui.getMainFrame());
+ log.debug("test plan before cloning is running version: "+((TestPlan)testTree.getArray()[0]).isRunningVersion());
TreeCloner cloner = new TreeCloner(false);
testTree.traverse(cloner);
engine.configure(cloner.getClonedTree());
@@ -146,6 +151,7 @@
JOptionPane.showMessageDialog(gui.getMainFrame(),e.getMessage(),
JMeterUtils.getResString("Error Occurred"),JOptionPane.ERROR_MESSAGE);
}
+ log.debug("test plan after cloning and running test is running version: "+((TestPlan)testTree.getArray()[0]).isRunningVersion());
}
}
1.4 +5 -5 jakarta-jmeter/src/core/org/apache/jmeter/gui/util/FilePanel.java
Index: FilePanel.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/util/FilePanel.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- FilePanel.java 16 Apr 2003 21:15:56 -0000 1.3
+++ FilePanel.java 23 Apr 2003 18:52:08 -0000 1.4
@@ -52,8 +52,8 @@
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/package org.apache.jmeter.gui.util;
-import java.awt.BorderLayout;
import java.awt.Dimension;
+import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Iterator;
@@ -124,12 +124,12 @@
*/
private void init()
{
- setLayout(new BorderLayout());
+ setLayout(new FlowLayout(FlowLayout.LEFT));
setBorder(BorderFactory.createTitledBorder(title));
- add(label, BorderLayout.WEST);
- add(filename, BorderLayout.CENTER);
+ add(label);
+ add(filename);
filename.addActionListener(this);
- add(browse, BorderLayout.EAST);
+ add(browse);
browse.setActionCommand("browse");
browse.addActionListener(this);
1.17 +3 -2 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.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- ResultCollector.java 11 Apr 2003 19:10:56 -0000 1.16
+++ ResultCollector.java 23 Apr 2003 18:52:08 -0000 1.17
@@ -74,6 +74,7 @@
import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
import org.apache.avalon.framework.configuration.DefaultConfigurationSerializer;
import org.apache.jmeter.engine.event.IterationEvent;
+import org.apache.jmeter.engine.util.NoThreadClone;
import org.apache.jmeter.exceptions.IllegalUserActionException;
import org.apache.jmeter.samplers.Clearable;
import org.apache.jmeter.samplers.Remoteable;
@@ -98,7 +99,7 @@
* @version $Id$
*/
public class ResultCollector extends AbstractListenerElement
- implements SampleListener, Clearable, Serializable, TestListener, Remoteable
+ implements SampleListener, Clearable, Serializable, TestListener, Remoteable,NoThreadClone
{
transient private static Logger log =
Hierarchy.getDefaultHierarchy().getLoggerFor("jmeter.elements");
1.15 +4 -3 jakarta-jmeter/src/core/org/apache/jmeter/testelement/AbstractTestElement.java
Index: AbstractTestElement.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/AbstractTestElement.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- AbstractTestElement.java 14 Apr 2003 13:19:17 -0000 1.14
+++ AbstractTestElement.java 23 Apr 2003 18:52:08 -0000 1.15
@@ -29,7 +29,7 @@
private Map propMap = Collections.synchronizedMap(new HashMap());
- private boolean runningVersion;
+ private boolean runningVersion = false;
/****************************************
* !ToDo (Method description)
@@ -51,6 +51,7 @@
{
clonedElement.setProperty((JMeterProperty) iter.next().clone());
}
+ clonedElement.setRunningVersion(runningVersion);
return clonedElement;
}
@@ -295,7 +296,7 @@
PropertyIterator iter = propertyIterator();
while (iter.hasNext())
{
- iter.next().setRunningVersion(true);
+ iter.next().setRunningVersion(runningVersion);
}
}
1.9 +1 -3 jakarta-jmeter/src/core/org/apache/jmeter/threads/gui/ThreadGroupGui.java
Index: ThreadGroupGui.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/threads/gui/ThreadGroupGui.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- ThreadGroupGui.java 23 Apr 2003 14:23:07 -0000 1.8
+++ ThreadGroupGui.java 23 Apr 2003 18:52:08 -0000 1.9
@@ -222,7 +222,6 @@
threadPanel.add(threadLabel);
threadInput = new JTextField(5);
threadInput.setText("1");
- threadInput.addFocusListener(NumberFieldErrorListener.getNumberFieldErrorListener());
threadInput.setName(THREAD_NAME);
threadPanel.add(threadInput);
threadPropsPanel.add(threadPanel);
@@ -235,7 +234,6 @@
rampInput = new JTextField(5);
rampInput.setText("1");
rampInput.setName(RAMP_NAME);
- rampInput.addFocusListener(NumberFieldErrorListener.getNumberFieldErrorListener());
rampPanel.add(rampInput);
threadPropsPanel.add(rampPanel);
1.7 +22 -3 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.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- AbstractVisualizer.java 28 Feb 2003 14:21:48 -0000 1.6
+++ AbstractVisualizer.java 23 Apr 2003 18:52:08 -0000 1.7
@@ -1,9 +1,13 @@
package org.apache.jmeter.visualizers.gui;
+import java.awt.Component;
+import java.awt.FlowLayout;
import java.io.IOException;
import java.util.Arrays;
import java.util.Collection;
+import javax.swing.Box;
import javax.swing.JCheckBox;
+import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
@@ -58,9 +62,12 @@
return collector;
}
- protected FilePanel getFilePanel()
+ protected Component getFilePanel()
{
- return filePanel;
+ JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT));
+ panel.add(filePanel);
+ panel.add(getErrorLoggingCheckbox());
+ return panel;
}
public void setFile(String filename)
@@ -72,6 +79,8 @@
{
return filePanel.getFilename();
}
+
+
/****************************************
* !ToDo (Method description)
@@ -161,4 +170,14 @@
super.configureTestElement(mc);
mc.setListener(this);
}
+ /**
+ * override parent method to add the file panel to the title panel.
+ */
+ protected Box makeTitlePanel()
+ {
+ Box box = super.makeTitlePanel();
+ box.add(getFilePanel());
+ return box;
+ }
+
}
1.9 +28 -1 jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java
Index: HttpTestSampleGui.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- HttpTestSampleGui.java 15 Apr 2003 21:40:31 -0000 1.8
+++ HttpTestSampleGui.java 23 Apr 2003 18:52:08 -0000 1.9
@@ -65,6 +65,8 @@
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;
+import junit.framework.TestCase;
+
import org.apache.jmeter.protocol.http.config.gui.MultipartUrlConfigGui;
import org.apache.jmeter.protocol.http.config.gui.UrlConfigGui;
import org.apache.jmeter.protocol.http.sampler.HTTPSampler;
@@ -199,5 +201,30 @@
optionalTasksPanel.add(retrieveImagesPanel);
return optionalTasksPanel;
+ }
+
+ public static class Test extends TestCase
+ {
+ HttpTestSampleGui gui;
+
+ public Test(String name)
+ {
+ super(name);
+ }
+
+ public void setUp()
+ {
+ gui = new HttpTestSampleGui();
+ }
+
+ public void testCloneSampler() throws Exception
+ {
+ HTTPSampler sampler = (HTTPSampler)gui.createTestElement();
+ sampler.addArgument("param","value");
+ HTTPSampler clonedSampler = (HTTPSampler)sampler.clone();
+ clonedSampler.setRunningVersion(true);
+ sampler.getArguments().getArgument(0).setValue("new value");
+ assertEquals("Sampler didn't clone correctly","new value",sampler.getArguments().getArgument(0).getValue());
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org