dgulino     2003/03/13 16:31:19

  Modified:    src/core/org/apache/jmeter/resources messages.properties
               src/core/org/apache/jmeter/gui/action RemoteStart.java
               src/core/org/apache/jmeter/gui/util JMeterMenuBar.java
  Log:
  A GUI update that provides the ability to start Jmeter
  tests on multiple remote Jmeter servers simulaneously.
  Adds "Remote Start All" and "Remote Stop All" buttons
  which start all servers listed in the jmeter.properties
  file
  
  Revision  Changes    Path
  1.30      +2 -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.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- messages.properties       18 Feb 2003 16:03:44 -0000      1.29
  +++ messages.properties       14 Mar 2003 00:31:18 -0000      1.30
  @@ -36,6 +36,8 @@
   about=About Apache JMeter
   remote_start=Remote Start
   remote_stop=Remote Stop
  +remote_start_all=Remote Start All
  +remote_stop_all=Remote Stop All
   root=Root
   test_plan=Test Plan
   workbench=WorkBench
  
  
  
  1.8       +105 -12   
jakarta-jmeter/src/core/org/apache/jmeter/gui/action/RemoteStart.java
  
  Index: RemoteStart.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/action/RemoteStart.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- RemoteStart.java  5 Feb 2003 05:12:07 -0000       1.7
  +++ RemoteStart.java  14 Mar 2003 00:31:19 -0000      1.8
  @@ -59,6 +59,8 @@
   import java.util.HashSet;
   import java.util.Map;
   import java.util.Set;
  +import java.util.Iterator;
  +import java.util.StringTokenizer;
   
   import javax.swing.JOptionPane;
   
  @@ -75,8 +77,9 @@
    * Title: Description: Copyright: Copyright (c) 2001 Company:
    *
    [EMAIL PROTECTED]    Michael Stover
  + [EMAIL PROTECTED]    Drew Gulino
    [EMAIL PROTECTED]   $Date$
  - [EMAIL PROTECTED]   1.0
  + [EMAIL PROTECTED]   1.1
    ***************************************/
   
   public class RemoteStart extends AbstractAction
  @@ -84,12 +87,15 @@
        transient private static Logger log = 
Hierarchy.getDefaultHierarchy().getLoggerFor(
                        "jmeter.gui");
        private Map remoteEngines = new HashMap();
  +     
   
        private static Set commands = new HashSet();
        static
        {
                commands.add("remote_start");
                commands.add("remote_stop");
  +             commands.add("remote_start_all");
  +             commands.add("remote_stop_all");
        }
   
        /****************************************
  @@ -108,13 +114,66 @@
                String action = e.getActionCommand();
                if(action.equals("remote_stop"))
                {
  -                     
GuiPackage.getInstance().getMainFrame().showStoppingMessage(name);
  -                     JMeterEngine engine = (JMeterEngine)remoteEngines.get(name);
  -                     engine.stopTest();
  +                     doRemoteStop(name);
                }
                else if(action.equals("remote_start"))
                {
  +                     doRemoteInit(name);
  +                     doRemoteStart(name);
  +             }
  +             else if(action.equals("remote_start_all"))
  +             {
  +                     String remote_hosts_string = 
JMeterUtils.getPropDefault("remote_hosts",
  +                                                               "127.0.0.1");
  +                     java.util.StringTokenizer st = new 
java.util.StringTokenizer(remote_hosts_string, ",");
  +                     while(st.hasMoreElements())
  +                     {
  +                             String el = (String)st.nextElement();
  +                             doRemoteInit(el);
  +                     }
  +                     st = new java.util.StringTokenizer(remote_hosts_string, ",");
  +                     while(st.hasMoreElements())
  +                     {
  +                             String el = (String)st.nextElement();
  +                             doRemoteStart(el);
  +                     }
  +             }
  +             else if(action.equals("remote_stop_all"))
  +             {
  +                     String remote_hosts_string = 
JMeterUtils.getPropDefault("remote_hosts",
  +                                                               "127.0.0.1");
  +                     java.util.StringTokenizer st = new 
java.util.StringTokenizer(remote_hosts_string, ",");
  +                     while(st.hasMoreElements())
  +                     {
  +                             String el = (String)st.nextElement();
  +                             doRemoteStop(el);
  +                     }
  +             }
  +     }
  +     
  +     
  +     /* 
  +      * Stops a remote testing engine
  +      * 
  +      * @param name The DNS name or IP address of the remote testing engine
  +      * 
  +      */
  +     private void doRemoteStop(String name)
  +     {
  +             GuiPackage.getInstance().getMainFrame().showStoppingMessage(name);
                        JMeterEngine engine = (JMeterEngine)remoteEngines.get(name);
  +                     engine.stopTest();
  +     }
  +
  +     /* 
  +      * Starts a remote testing engine
  +      * 
  +      * @param name The DNS name or IP address of the remote testing engine
  +      * 
  +      */     
  +     private void doRemoteStart(String name)
  +     {
  +             JMeterEngine engine = (JMeterEngine)remoteEngines.get(name);
                        if(engine == null)
                        {
                                try
  @@ -134,9 +193,33 @@
                                engine.reset();
                        }
                        startEngine(engine, name);
  -             }
        }
  -
  +     /* Initializes remote engines
  +      * 
  +      */
  +      private void doRemoteInit(String name)
  +      {
  +             JMeterEngine engine = (JMeterEngine)remoteEngines.get(name);
  +                     if(engine == null)
  +                     {
  +                             try
  +                             {
  +                                     engine = new ClientJMeterEngine(name);
  +                                     remoteEngines.put(name, engine);
  +                             }
  +                             catch(Exception ex)
  +                             {
  +                                     log.error("",ex);
  +                                     JMeterUtils.reportErrorToUser("Bad call to 
remote host");
  +                                     return;
  +                             }
  +                     }
  +                     else
  +                     {
  +                             engine.reset();
  +                     }
  +                     initEngine(engine, name);
  +     }
        /****************************************
         * !ToDoo (Method description)
         *
  @@ -147,8 +230,22 @@
                return commands;
        }
   
  +     /* Initializes test on engine
  +      *
  +      * @param engine        remote engine object
  +      * @param host          host the engine will run on
  +      */
  +     private void initEngine(JMeterEngine engine, String host)
  +     {
  +             GuiPackage gui = GuiPackage.getInstance();
  +             HashTree testTree = gui.getTreeModel().getTestPlan();
  +             convertSubTree(testTree);
  +             testTree.add(testTree.getArray()[0],gui.getMainFrame());
  +             engine.configure(testTree);
  +     }
  +     
        /****************************************
  -      * Description of the Method
  +      * Starts the test on the remote engine
         *
         [EMAIL PROTECTED] engine  !ToDo (Parameter description)
         [EMAIL PROTECTED] host    !ToDo (Parameter description)
  @@ -156,10 +253,6 @@
        private void startEngine(JMeterEngine engine, String host)
        {
                GuiPackage gui = GuiPackage.getInstance();
  -             HashTree testTree = gui.getTreeModel().getTestPlan();
  -             convertSubTree(testTree);
  -             testTree.add(testTree.getArray()[0],gui.getMainFrame());
  -             engine.configure(testTree);
                try {
                        engine.runTest();
                } catch(JMeterEngineException e) {
  
  
  
  1.10      +16 -1     
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.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- JMeterMenuBar.java        5 Feb 2003 05:12:08 -0000       1.9
  +++ JMeterMenuBar.java        14 Mar 2003 00:31:19 -0000      1.10
  @@ -101,9 +101,11 @@
        JMenu runMenu;
        JMenuItem run_start;
        JMenu remote_start;
  +     JMenuItem remote_start_all;
        Collection remote_engine_start;
        JMenuItem run_stop;
        JMenu remote_stop;
  +     JMenuItem remote_stop_all;
        Collection remote_engine_stop;
        JMenuItem run_clear;
        JMenuItem run_clearAll;
  @@ -380,11 +382,23 @@
                {
                        runMenu.add(remote_start);
                }
  +             remote_start_all = new 
JMenuItem(JMeterUtils.getResString("remote_start_all"), 'Z');
  +             remote_start_all.setAccelerator(
  +                     KeyStroke.getKeyStroke(KeyEvent.VK_Z, KeyEvent.CTRL_MASK));
  +             remote_start_all.addActionListener(ActionRouter.getInstance());
  +             remote_start_all.setActionCommand("remote_start_all");
  +             runMenu.add(remote_start_all);
                runMenu.add(run_stop);
                if (remote_stop != null)
                {
                        runMenu.add(remote_stop);
                }
  +             remote_stop_all = new 
JMenuItem(JMeterUtils.getResString("remote_stop_all"), 'X');
  +             remote_stop_all.setAccelerator(
  +                     KeyStroke.getKeyStroke(KeyEvent.VK_X, KeyEvent.CTRL_MASK));
  +             remote_stop_all.addActionListener(ActionRouter.getInstance());
  +             remote_stop_all.setActionCommand("remote_stop_all");
  +             runMenu.add(remote_stop_all);
                runMenu.addSeparator();
                runMenu.add(run_clear);
                runMenu.add(run_clearAll);
  @@ -481,6 +495,7 @@
                {
                        remote_start = new 
JMenu(JMeterUtils.getResString("remote_start"));
                        remote_stop = new 
JMenu(JMeterUtils.getResString("remote_stop"));
  +                     
                        for (int i = 0; i < remoteHosts.length; i++)
                        {
                                JMenuItem item = new JMenuItem(remoteHosts[i]);
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to