Author: sebb
Date: Fri Feb 4 01:04:06 2011
New Revision: 1067054
URL: http://svn.apache.org/viewvc?rev=1067054&view=rev
Log:
Add remote shutdown capability
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/ClientJMeterEngine.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/JMeterEngine.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/RemoteJMeterEngine.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/RemoteJMeterEngineImpl.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/KeyStrokes.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/RemoteStart.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/ClientJMeterEngine.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/ClientJMeterEngine.java?rev=1067054&r1=1067053&r2=1067054&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/ClientJMeterEngine.java
(original)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/ClientJMeterEngine.java
Fri Feb 4 01:04:06 2011
@@ -78,10 +78,10 @@ public class ClientJMeterEngine implemen
}
/** {@inheritDoc} */
- public void stopTest() {
- log.info("about to stop remote test on "+host);
+ public void stopTest(boolean now) {
+ log.info("about to "+(now ? "stop" : "shutdown")+" remote test on
"+host);
try {
- remote.stopTest();
+ remote.stopTest(now);
} catch (Exception ex) {
log.error("", ex); // $NON-NLS-1$
}
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/JMeterEngine.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/JMeterEngine.java?rev=1067054&r1=1067053&r2=1067054&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/JMeterEngine.java
(original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/JMeterEngine.java
Fri Feb 4 01:04:06 2011
@@ -27,7 +27,7 @@ public interface JMeterEngine {
void runTest() throws JMeterEngineException;
- void stopTest();
+ void stopTest(boolean now);
void reset();
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/RemoteJMeterEngine.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/RemoteJMeterEngine.java?rev=1067054&r1=1067053&r2=1067054&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/RemoteJMeterEngine.java
(original)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/RemoteJMeterEngine.java
Fri Feb 4 01:04:06 2011
@@ -30,7 +30,7 @@ public interface RemoteJMeterEngine exte
void runTest() throws RemoteException, JMeterEngineException;
- void stopTest() throws RemoteException;
+ void stopTest(boolean now) throws RemoteException;
void reset() throws RemoteException;
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/RemoteJMeterEngineImpl.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/RemoteJMeterEngineImpl.java?rev=1067054&r1=1067053&r2=1067054&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/RemoteJMeterEngineImpl.java
(original)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/RemoteJMeterEngineImpl.java
Fri Feb 4 01:04:06 2011
@@ -149,9 +149,13 @@ public class RemoteJMeterEngineImpl exte
}
}
- public void stopTest() throws RemoteException {
- log.info("Stopping test ...");
- backingEngine.stopTest();// TODO: askThreadsToStop() instead?
+ public void stopTest(boolean now) throws RemoteException {
+ if (now) {
+ log.info("Stopping test ...");
+ } else {
+ log.info("Shutting test ...");
+ }
+ backingEngine.stopTest(now);
log.info("... stopped");
}
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java?rev=1067054&r1=1067053&r2=1067054&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java
(original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java
Fri Feb 4 01:04:06 2011
@@ -62,6 +62,8 @@ public class ActionNames {
public static final String PASTE = "Paste"; // $NON-NLS-1$
public static final String REMOTE_EXIT = "remote_exit"; // $NON-NLS-1$
public static final String REMOTE_EXIT_ALL = "remote_exit_all"; //
$NON-NLS-1$
+ public static final String REMOTE_SHUT = "remote_shut"; // $NON-NLS-1$
+ public static final String REMOTE_SHUT_ALL = "remote_shut_all"; //
$NON-NLS-1$
public static final String REMOTE_START = "remote_start"; //
$NON-NLS-1$
public static final String REMOTE_START_ALL = "remote_start_all"; //
$NON-NLS-1$
public static final String REMOTE_STOP = "remote_stop"; // $NON-NLS-1$
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/KeyStrokes.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/KeyStrokes.java?rev=1067054&r1=1067053&r2=1067054&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/KeyStrokes.java
(original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/KeyStrokes.java
Fri Feb 4 01:04:06 2011
@@ -54,6 +54,7 @@ public final class KeyStrokes {
public static final KeyStroke CLEAR_ALL =
KeyStroke.getKeyStroke(KeyEvent.VK_E, CONTROL_MASK);
public static final KeyStroke REMOTE_START_ALL =
KeyStroke.getKeyStroke(KeyEvent.VK_R, CONTROL_MASK | KeyEvent.SHIFT_DOWN_MASK);
public static final KeyStroke REMOTE_STOP_ALL =
KeyStroke.getKeyStroke(KeyEvent.VK_X, KeyEvent.ALT_DOWN_MASK);
+ public static final KeyStroke REMOTE_SHUT_ALL =
KeyStroke.getKeyStroke(KeyEvent.VK_Z, KeyEvent.ALT_DOWN_MASK);
public static final KeyStroke SAVE = KeyStroke.getKeyStroke(KeyEvent.VK_S,
CONTROL_MASK);
public static final KeyStroke SAVE_ALL_AS =
KeyStroke.getKeyStroke(KeyEvent.VK_S, CONTROL_MASK | KeyEvent.SHIFT_DOWN_MASK);
public static final KeyStroke OPEN = KeyStroke.getKeyStroke(KeyEvent.VK_O,
CONTROL_MASK);
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/RemoteStart.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/RemoteStart.java?rev=1067054&r1=1067053&r2=1067054&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/RemoteStart.java
(original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/RemoteStart.java
Fri Feb 4 01:04:06 2011
@@ -50,8 +50,10 @@ public class RemoteStart extends Abstrac
static {
commands.add(ActionNames.REMOTE_START);
commands.add(ActionNames.REMOTE_STOP);
+ commands.add(ActionNames.REMOTE_SHUT);
commands.add(ActionNames.REMOTE_START_ALL);
commands.add(ActionNames.REMOTE_STOP_ALL);
+ commands.add(ActionNames.REMOTE_SHUT_ALL);
commands.add(ActionNames.REMOTE_EXIT);
commands.add(ActionNames.REMOTE_EXIT_ALL);
}
@@ -69,7 +71,9 @@ public class RemoteStart extends Abstrac
}
String action = e.getActionCommand();
if (action.equals(ActionNames.REMOTE_STOP)) {
- doRemoteStop(name);
+ doRemoteStop(name, true);
+ } else if (action.equals(ActionNames.REMOTE_SHUT)) {
+ doRemoteStop(name, false);
} else if (action.equals(ActionNames.REMOTE_START)) {
popupShouldSave(e);
doRemoteInit(name);
@@ -88,12 +92,9 @@ public class RemoteStart extends Abstrac
doRemoteStart(el.trim());
}
} else if (action.equals(ActionNames.REMOTE_STOP_ALL)) {
- String remote_hosts_string =
JMeterUtils.getPropDefault(REMOTE_HOSTS, LOCAL_HOST);
- java.util.StringTokenizer st = new
java.util.StringTokenizer(remote_hosts_string, REMOTE_HOSTS_SEPARATOR);
- while (st.hasMoreElements()) {
- String el = (String) st.nextElement();
- doRemoteStop(el.trim());
- }
+ doRemoteStopAll(true);
+ } else if (action.equals(ActionNames.REMOTE_SHUT_ALL)) {
+ doRemoteStopAll(false);
} else if (action.equals(ActionNames.REMOTE_EXIT)) {
doRemoteExit(name);
} else if (action.equals(ActionNames.REMOTE_EXIT_ALL)) {
@@ -106,6 +107,15 @@ public class RemoteStart extends Abstrac
}
}
+ private void doRemoteStopAll(boolean now) {
+ String remote_hosts_string = JMeterUtils.getPropDefault(REMOTE_HOSTS,
LOCAL_HOST);
+ java.util.StringTokenizer st = new
java.util.StringTokenizer(remote_hosts_string, REMOTE_HOSTS_SEPARATOR);
+ while (st.hasMoreElements()) {
+ String el = (String) st.nextElement();
+ doRemoteStop(el.trim(), now);
+ }
+ }
+
/**
* Stops a remote testing engine
*
@@ -113,10 +123,10 @@ public class RemoteStart extends Abstrac
* the DNS name or IP address of the remote testing engine
*
*/
- private void doRemoteStop(String name) {
+ private void doRemoteStop(String name, boolean now) {
GuiPackage.getInstance().getMainFrame().showStoppingMessage(name);
JMeterEngine engine = remoteEngines.get(name);
- engine.stopTest();
+ engine.stopTest(now);
}
/**
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java?rev=1067054&r1=1067053&r2=1067054&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java
(original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java
Fri Feb 4 01:04:06 2011
@@ -93,10 +93,16 @@ public class JMeterMenuBar extends JMenu
private JMenu remote_stop;
+ private JMenu remote_shut;
+
private JMenuItem remote_stop_all;
+ private JMenuItem remote_shut_all;
+
private Collection<JMenuItem> remote_engine_stop;
+ private Collection<JMenuItem> remote_engine_shut;
+
private JMenuItem run_clear;
private JMenuItem run_clearAll;
@@ -127,6 +133,7 @@ public class JMeterMenuBar extends JMenu
// Lists for remote engines menu items
remote_engine_start = new LinkedList<JMenuItem>();
remote_engine_stop = new LinkedList<JMenuItem>();
+ remote_engine_shut = new LinkedList<JMenuItem>();
remote_engine_exit = new LinkedList<JMenuItem>();
remoteHosts =
JOrphanUtils.split(JMeterUtils.getPropDefault("remote_hosts", ""), ",");
//$NON-NLS-1$
if (remoteHosts.length == 1 && remoteHosts[0].equals("")) {
@@ -408,6 +415,12 @@ public class JMeterMenuBar extends JMenu
remote_stop_all = makeMenuItemRes("remote_stop_all", 'X',
ActionNames.REMOTE_STOP_ALL, KeyStrokes.REMOTE_STOP_ALL); //$NON-NLS-1$
runMenu.add(remote_stop_all);
+ if (remote_shut != null) {
+ runMenu.add(remote_shut);
+ }
+ remote_shut_all = makeMenuItemRes("remote_shut_all", 'X',
ActionNames.REMOTE_SHUT_ALL, KeyStrokes.REMOTE_SHUT_ALL); //$NON-NLS-1$
+ runMenu.add(remote_shut_all);
+
if (remote_exit != null) {
runMenu.add(remote_exit);
}
@@ -484,10 +497,12 @@ public class JMeterMenuBar extends JMenu
Iterator<JMenuItem> iter = remote_engine_start.iterator();
Iterator<JMenuItem> iter2 = remote_engine_stop.iterator();
Iterator<JMenuItem> iter3 = remote_engine_exit.iterator();
- while (iter.hasNext() && iter2.hasNext() && iter3.hasNext()) {
+ Iterator<JMenuItem> iter4 = remote_engine_shut.iterator();
+ while (iter.hasNext() && iter2.hasNext() && iter3.hasNext()
&&iter4.hasNext()) {
JMenuItem start = iter.next();
JMenuItem stop = iter2.next();
JMenuItem exit = iter3.next();
+ JMenuItem shut = iter4.next();
if (start.getText().equals(host)) {
log.debug("Found start host: " + start.getText());
start.setEnabled(!running);
@@ -500,6 +515,10 @@ public class JMeterMenuBar extends JMenu
log.debug("Found exit host: " + exit.getText());
exit.setEnabled(true);
}
+ if (shut.getText().equals(host)) {
+ log.debug("Found exit host: " + exit.getText());
+ exit.setEnabled(true);
+ }
}
}
@@ -515,6 +534,7 @@ public class JMeterMenuBar extends JMenu
if (remoteHosts.length > 0) {
remote_start = makeMenuRes("remote_start"); //$NON-NLS-1$
remote_stop = makeMenuRes("remote_stop"); //$NON-NLS-1$
+ remote_shut = makeMenuRes("remote_shut"); //$NON-NLS-1$
remote_exit = makeMenuRes("remote_exit"); //$NON-NLS-1$
for (int i = 0; i < remoteHosts.length; i++) {
@@ -529,6 +549,11 @@ public class JMeterMenuBar extends JMenu
remote_engine_stop.add(item);
remote_stop.add(item);
+ item = makeMenuItemNoRes(remoteHosts[i],
ActionNames.REMOTE_SHUT);
+ item.setEnabled(false);
+ remote_engine_shut.add(item);
+ remote_shut.add(item);
+
item =
makeMenuItemNoRes(remoteHosts[i],ActionNames.REMOTE_EXIT);
item.setEnabled(false);
remote_engine_exit.add(item);
@@ -609,6 +634,9 @@ public class JMeterMenuBar extends JMenu
if (ActionNames.REMOTE_STOP.equals(actionCommand)){//
return false;
}
+ if (ActionNames.REMOTE_SHUT.equals(actionCommand)){//
+ return false;
+ }
if (ActionNames.REMOTE_EXIT.equals(actionCommand)){//
return false;
}
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties?rev=1067054&r1=1067053&r2=1067054&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
(original)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
Fri Feb 4 01:04:06 2011
@@ -630,6 +630,8 @@ remote_error_init=Error initialising rem
remote_error_starting=Error starting remote server
remote_exit=Remote Exit
remote_exit_all=Remote Exit All
+remote_shut=Remote Shutdown
+remote_shut_all=Remote Shutdown All
remote_start=Remote Start
remote_start_all=Remote Start All
remote_stop=Remote Stop
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]