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