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 js...@apache.org on 2003/12/01 02:19:14 UTC
cvs commit: jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui ProxyControlGui.java
jsalvata 2003/11/30 17:19:14
Modified: src/core/org/apache/jmeter/resources messages_no.properties
messages.properties messages_ja.properties
messages_de.properties
src/protocol/http/org/apache/jmeter/protocol/http/proxy
ProxyControl.java
src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui
ProxyControlGui.java
Log:
* Added new resource to internationalize ProxyControlGui's
Target combo entry.
* Made the HTTP Proxy Server be a controller, so that you
can create listeners in it.
* Made the proxy notify listeners within itself instead of the
ones in the target controller
* The proxy also sends test start/stop events to those
listeners when it is started/stopped. Each proxy run will
thus look as a test run to the listeners.
CVS: ----------------------------------------------------------------------
CVS: PR:
CVS: If this change addresses a PR in the problem report tracking
CVS: database, then enter the PR number(s) here.
CVS: Obtained from:
CVS: If this change has been taken from another system, such as NCSA,
CVS: then name the system in this line, otherwise delete it.
CVS: Submitted by:
CVS: If this code has been contributed to Apache by someone else; i.e.,
CVS: they sent us a patch or a new module, then include their name/email
CVS: address here. If this is your work then delete this line.
CVS: Reviewed by:
CVS: If we are doing pre-commit code reviews and someone else has
CVS: reviewed your changes, include their name(s) here.
CVS: If you have not had it reviewed then delete this line.
Revision Changes Path
1.57 +1 -0 jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_no.properties
Index: messages_no.properties
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_no.properties,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -r1.56 -r1.57
--- messages_no.properties 30 Nov 2003 01:41:37 -0000 1.56
+++ messages_no.properties 1 Dec 2003 01:19:13 -0000 1.57
@@ -420,6 +420,7 @@
url_multipart_config_title=HTTP Multipart Request Defaults
url=URL
use_keepalive=Use KeepAlive
+use_recording_controller=Use Recording Controller
user_defined_test=User Defined Test
user_defined_variables=User Defined Variables
user_param_mod_help_note=(Do not change this. Instead, modify the file of that name in JMeter's /bin directory)
1.74 +1 -0 jakarta-jmeter/src/core/org/apache/jmeter/resources/messages.properties
Index: messages.properties
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/resources/messages.properties,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -r1.73 -r1.74
--- messages.properties 30 Nov 2003 01:41:37 -0000 1.73
+++ messages.properties 1 Dec 2003 01:19:13 -0000 1.74
@@ -420,6 +420,7 @@
url_multipart_config_title=HTTP Multipart Request Defaults
url=URL
use_keepalive=Use KeepAlive
+use_recording_controller=Use Recording Controller
user_defined_test=User Defined Test
user_defined_variables=User Defined Variables
user_param_mod_help_note=(Do not change this. Instead, modify the file of that name in JMeter's /bin directory)
1.58 +1 -0 jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_ja.properties
Index: messages_ja.properties
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_ja.properties,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -r1.57 -r1.58
--- messages_ja.properties 30 Nov 2003 01:41:37 -0000 1.57
+++ messages_ja.properties 1 Dec 2003 01:19:13 -0000 1.58
@@ -420,6 +420,7 @@
url_multipart_config_title=HTTP\u30de\u30eb\u30c1\u30d1\u30fc\u30c8\u30ea\u30af\u30a8\u30b9\u30c8\u521d\u671f\u5024\u8a2d\u5b9a
url=URL
use_keepalive=KeepAlive \u3092\u6709\u52b9\u306b\u3059\u308b
+use_recording_controller=Use Recording Controller
user_defined_test=\u30e6\u30fc\u30b6\u30fc\u5b9a\u7fa9\u30c6\u30b9\u30c8
user_defined_variables=\u30e6\u30fc\u30b6\u30fc\u5b9a\u7fa9\u5909\u6570
user_param_mod_help_note=(\u5909\u66f4\u3057\u306a\u3044\u3067\u304f\u3060\u3055\u3044\u3002\u5909\u66f4\u3059\u308b\u5834\u5408\u306f\u3001JMeter\u306e/bin\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u3042\u308b\u540c\u540d\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u5909\u66f4\u3057\u3066\u304f\u3060\u3055\u3044\u3002)
1.61 +1 -0 jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_de.properties
Index: messages_de.properties
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_de.properties,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -r1.60 -r1.61
--- messages_de.properties 30 Nov 2003 01:41:37 -0000 1.60
+++ messages_de.properties 1 Dec 2003 01:19:13 -0000 1.61
@@ -420,6 +420,7 @@
url_multipart_config_title=HTTP Multipart Request Defaults
url=URL
use_keepalive=Benutze KeepAlive
+use_recording_controller=Use Recording Controller
user_defined_test=User Defined Test
user_defined_variables=Benutzer definierte Variablen
user_param_mod_help_note=(�ndern Sie dies nicht. Stattdessen, bitte die Datei mit dem Namen in JMeter's /bin Ordner �ndern.)
1.36 +59 -33 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.35
retrieving revision 1.36
diff -u -r1.35 -r1.36
--- ProxyControl.java 30 Nov 2003 23:21:06 -0000 1.35
+++ ProxyControl.java 1 Dec 2003 01:19:14 -0000 1.36
@@ -69,7 +69,6 @@
import org.apache.jmeter.assertions.ResponseAssertion;
import org.apache.jmeter.config.ConfigElement;
-import org.apache.jmeter.config.ConfigTestElement;
import org.apache.jmeter.control.GenericController;
import org.apache.jmeter.exceptions.IllegalUserActionException;
import org.apache.jmeter.functions.InvalidVariableException;
@@ -85,6 +84,7 @@
import org.apache.jmeter.samplers.SampleListener;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.testelement.TestElement;
+import org.apache.jmeter.testelement.TestListener;
import org.apache.jmeter.testelement.property.BooleanProperty;
import org.apache.jmeter.testelement.property.CollectionProperty;
import org.apache.jmeter.testelement.property.IntegerProperty;
@@ -102,7 +102,7 @@
import org.apache.oro.text.regex.Perl5Compiler;
import org.apache.oro.text.regex.Perl5Matcher;
-public class ProxyControl extends ConfigTestElement implements Serializable
+public class ProxyControl extends GenericController implements Serializable
{
transient private static Logger log = LoggingManager.getLoggerForClass();
private Daemon server;
@@ -218,6 +218,7 @@
public void startProxy()
{
+ notifyTestListenersOfStart();
server = new Daemon(getPort(), this);
server.start();
}
@@ -283,7 +284,7 @@
if (filterUrl(sampler))
{
placeConfigElement(sampler, subConfigs);
- notifyListeners(new SampleEvent(result,sampler.getName()));
+ notifySampleListeners(new SampleEvent(result,sampler.getName()));
}
}
@@ -299,6 +300,7 @@
catch (InterruptedException e)
{
}
+ notifyTestListenersOfEnd();
}
}
@@ -608,43 +610,67 @@
}
/**
- * This will notify sample listeners of the sampling that just occured
- * -- so that we have a means to record the server's responses as we go.
- * <p>
- * Only listeners which are directly within the RecordingControllers or
- * ThreadGroups where recording is happening will be notified.
+ * This will notify sample listeners directly within the Proxy
+ * of the sampling that just occured -- so that we have a
+ * means to record the server's responses as we go.
*
* @param event sampling event to be delivered
*/
- private void notifyListeners(SampleEvent event) {
+ private void notifySampleListeners(SampleEvent event)
+ {
JMeterTreeModel treeModel = GuiPackage.getInstance().getTreeModel();
- List nodes = treeModel.getNodesOfType(RecordingController.class);
- if (nodes.size() == 0)
+ JMeterTreeNode myNode = treeModel.getNodeOf(this);
+ Enumeration enum = myNode.children();
+ while (enum.hasMoreElements())
{
- nodes = treeModel.getNodesOfType(ThreadGroup.class);
+ JMeterTreeNode subNode =
+ (JMeterTreeNode) enum.nextElement();
+ TestElement testElement =
+ (TestElement) subNode.createTestElement();
+ if (testElement instanceof SampleListener) {
+ ((SampleListener)testElement).sampleOccurred(event);
+ }
}
- Iterator iter = nodes.iterator();
- while (iter.hasNext())
- {
- JMeterTreeNode node = (JMeterTreeNode) iter.next();
+ }
- if (!node.isEnabled())
- {
- continue;
+ /**
+ * This will notify test listeners directly within the Proxy that the 'test'
+ * (here meaning the proxy recording) has started.
+ */
+ private void notifyTestListenersOfStart()
+ {
+ JMeterTreeModel treeModel = GuiPackage.getInstance().getTreeModel();
+ JMeterTreeNode myNode = treeModel.getNodeOf(this);
+ Enumeration enum = myNode.children();
+ while (enum.hasMoreElements())
+ {
+ JMeterTreeNode subNode =
+ (JMeterTreeNode) enum.nextElement();
+ TestElement testElement =
+ (TestElement) subNode.createTestElement();
+ if (testElement instanceof TestListener) {
+ ((TestListener)testElement).testStarted();
}
- else
- {
- Enumeration enum = node.children();
- while (enum.hasMoreElements())
- {
- JMeterTreeNode subNode =
- (JMeterTreeNode) enum.nextElement();
- TestElement testElement =
- (TestElement) subNode.createTestElement();
- if (testElement instanceof SampleListener) {
- ((SampleListener)testElement).sampleOccurred(event);
- }
- }
+ }
+ }
+
+ /**
+ * This will notify test listeners directly within the Proxy that the 'test'
+ * (here meaning the proxy recording) has ended.
+ */
+ private void notifyTestListenersOfEnd()
+ {
+ JMeterTreeModel treeModel = GuiPackage.getInstance().getTreeModel();
+ JMeterTreeNode myNode = treeModel.getNodeOf(this);
+ Enumeration enum = myNode.children();
+ while (enum.hasMoreElements())
+ {
+ JMeterTreeNode subNode =
+ (JMeterTreeNode) enum.nextElement();
+ TestElement testElement =
+ (TestElement) subNode.createTestElement();
+ if (testElement instanceof TestListener) {
+ ((TestListener)testElement).testEnded();
}
}
}
1.28 +6 -10 jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
Index: ProxyControlGui.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- ProxyControlGui.java 29 Nov 2003 15:43:18 -0000 1.27
+++ ProxyControlGui.java 1 Dec 2003 01:19:14 -0000 1.28
@@ -81,15 +81,14 @@
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
-import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import org.apache.jmeter.control.Controller;
+import org.apache.jmeter.control.gui.LogicControllerGui;
import org.apache.jmeter.engine.util.ValueReplacer;
import org.apache.jmeter.functions.InvalidVariableException;
-import org.apache.jmeter.gui.AbstractJMeterGuiComponent;
import org.apache.jmeter.gui.GuiPackage;
import org.apache.jmeter.gui.JMeterGUIComponent;
import org.apache.jmeter.gui.UnsharedComponent;
@@ -108,7 +107,7 @@
import org.apache.log.Logger;
public class ProxyControlGui
- extends AbstractJMeterGuiComponent
+ extends LogicControllerGui
implements
JMeterGUIComponent,
ActionListener,
@@ -177,11 +176,6 @@
init();
}
- public JPopupMenu createPopupMenu()
- {
- return MenuFactory.getDefaultTimerMenu();
- }
-
public TestElement createTestElement()
{
if (model == null)
@@ -672,7 +666,9 @@
.getTreeModel()
.getRoot();
targetNodesModel.addElement(
- new TreeNodeWrapper(null, "Use Recording Controller"));
+ new TreeNodeWrapper(
+ null,
+ JMeterUtils.getResString("use_recording_controller")));
buildNodesModel(root, "", 0);
}
for (int i = 0; i < targetNodesModel.getSize(); i++)
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org