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 se...@apache.org on 2007/10/17 20:49:07 UTC
svn commit: r585626 -
/jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java
Author: sebb
Date: Wed Oct 17 11:49:06 2007
New Revision: 585626
URL: http://svn.apache.org/viewvc?rev=585626&view=rev
Log:
Only call System.exit() for non-GUI client sessions;
Tidy up default icon properties
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java?rev=585626&r1=585625&r2=585626&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java Wed Oct 17 11:49:06 2007
@@ -42,11 +42,7 @@
import org.apache.commons.cli.avalon.CLOption;
import org.apache.commons.cli.avalon.CLOptionDescriptor;
import org.apache.commons.cli.avalon.CLUtil;
-import org.apache.jmeter.config.gui.AbstractConfigGui;
import org.apache.jmeter.control.ReplaceableController;
-import org.apache.jmeter.control.gui.AbstractControllerGui;
-import org.apache.jmeter.control.gui.TestPlanGui;
-import org.apache.jmeter.control.gui.WorkBenchGui;
import org.apache.jmeter.engine.ClientJMeterEngine;
import org.apache.jmeter.engine.JMeterEngine;
import org.apache.jmeter.engine.RemoteJMeterEngineImpl;
@@ -65,17 +61,13 @@
import org.apache.jmeter.reporters.ResultCollector;
import org.apache.jmeter.reporters.Summariser;
import org.apache.jmeter.samplers.Remoteable;
-import org.apache.jmeter.samplers.gui.AbstractSamplerGui;
import org.apache.jmeter.save.SaveService;
import org.apache.jmeter.services.FileServer;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.testelement.TestListener;
-import org.apache.jmeter.threads.gui.ThreadGroupGui;
-import org.apache.jmeter.timers.gui.AbstractTimerGui;
import org.apache.jmeter.util.BeanShellInterpreter;
import org.apache.jmeter.util.BeanShellServer;
import org.apache.jmeter.util.JMeterUtils;
-import org.apache.jmeter.visualizers.gui.AbstractVisualizer;
import org.apache.jorphan.collections.HashTree;
import org.apache.jorphan.gui.ComponentUtil;
import org.apache.jorphan.logging.LoggingManager;
@@ -707,6 +699,8 @@
engines.add(doRemoteInit(el.trim(), tree));
}
println("Starting remote engines");
+ long now=System.currentTimeMillis();
+ println("Starting the test @ "+new Date(now)+" ("+now+")");
Iterator iter = engines.iterator();
while (iter.hasNext()) {
engine = (JMeterEngine) iter.next();
@@ -798,12 +792,15 @@
return engine;
}
- /**
- * Listen to test and exit program after test completes, after a 5 second
- * delay to give listeners a chance to close out their files.
+ /*
+ * Listen to test and handle tidyup after non-GUI test completes.
+ * If running a remote test, then after waiting a few seconds for listeners to finish files,
+ * it calls System.exit to deal with the Naming Timer Thread.
*/
private static class ListenToTest implements TestListener, Runnable, Remoteable {
- int started = 0;
+ private int started = 0; // keep track of remote tests
+
+ private boolean remote = false; // Are we running a remote test?
//NOT YET USED private JMeter _parent;
@@ -813,20 +810,25 @@
public synchronized void testEnded(String host) {
started--;
- log.info("Remote host " + host + " finished");
- if (started == 0) {
- testEnded();
+ long now=System.currentTimeMillis();
+ log.info("Finished remote host: " + host + " ("+now+")");
+ if (started <= 0) {
+ remote=true;
+ Thread stopSoon = new Thread(this);
+ stopSoon.start();
}
}
public void testEnded() {
+ remote = false;
Thread stopSoon = new Thread(this);
stopSoon.start();
}
public synchronized void testStarted(String host) {
started++;
- log.info("Started remote host: " + host);
+ long now=System.currentTimeMillis();
+ log.info("Started remote host: " + host + " ("+now+")");
}
public void testStarted() {
@@ -844,19 +846,21 @@
public void run() {
long now = System.currentTimeMillis();
println("Tidying up ... @ "+new Date(now)+" ("+now+")");
- try {
- Thread.sleep(5000);
- } catch (InterruptedException e) {
- // ignored
- }
- println("... end of run");
- //_parent.testEnded = true;
- System.exit(0); //TODO - make this conditional, so can run automated tests
/*
* Note: although it should not be necessary to call System.exit here, in the case
* of a remote test, a Timer thread seems to be generated by the Naming.lookup()
* method, and it does not die.
*/
+ if (remote){
+ try {
+ Thread.sleep(5000); // Allow listeners to close files
+ } catch (InterruptedException ignored) {
+ }
+ }
+ println("... end of run");
+ if (remote){
+ System.exit(0);
+ }
}
/**
@@ -872,32 +876,30 @@
}
private static final String[][] DEFAULT_ICONS = {
- { TestPlanGui.class.getName(), "org/apache/jmeter/images/beaker.gif" },//$NON-NLS-1$
- { AbstractTimerGui.class.getName(), "org/apache/jmeter/images/timer.gif" },//$NON-NLS-1$
- { ThreadGroupGui.class.getName(), "org/apache/jmeter/images/thread.gif" },//$NON-NLS-1$
- { AbstractVisualizer.class.getName(), "org/apache/jmeter/images/meter.png" },//$NON-NLS-1$
- { AbstractConfigGui.class.getName(), "org/apache/jmeter/images/testtubes.png" },//$NON-NLS-1$
- // Note: these were the original settings (just moved to a static
- // array)
- // Commented out because there is no such file
- // {
- // AbstractPreProcessorGui.class.getName(),
- // "org/apache/jmeter/images/testtubes.gif" },
- // {
- // AbstractPostProcessorGui.class.getName(),
- // "org/apache/jmeter/images/testtubes.gif" },
- { AbstractControllerGui.class.getName(), "org/apache/jmeter/images/knob.gif" },//$NON-NLS-1$
- { WorkBenchGui.class.getName(), "org/apache/jmeter/images/clipboard.gif" },//$NON-NLS-1$
- { AbstractSamplerGui.class.getName(), "org/apache/jmeter/images/pipet.png" }//$NON-NLS-1$
- // AbstractAssertionGUI not defined
+ { "org.apache.jmeter.control.gui.TestPlanGui", "org/apache/jmeter/images/beaker.gif" }, //$NON-NLS-1$ $NON-NLS-2$
+ { "org.apache.jmeter.timers.gui.AbstractTimerGui", "org/apache/jmeter/images/timer.gif" }, //$NON-NLS-1$ $NON-NLS-2$
+ { "org.apache.jmeter.threads.gui.ThreadGroupGui", "org/apache/jmeter/images/thread.gif" }, //$NON-NLS-1$ $NON-NLS-2$
+ { "org.apache.jmeter.visualizers.gui.AbstractVisualizer", "org/apache/jmeter/images/meter.png" }, //$NON-NLS-1$ $NON-NLS-2$
+ { "org.apache.jmeter.config.gui.AbstractConfigGui", "org/apache/jmeter/images/testtubes.png" }, //$NON-NLS-1$ $NON-NLS-2$
+ { "org.apache.jmeter.processor.gui.AbstractPreProcessorGui", "org/apache/jmeter/images/leafnode.gif"}, //$NON-NLS-1$ $NON-NLS-2$
+ { "org.apache.jmeter.processor.gui.AbstractPostProcessorGui","org/apache/jmeter/images/leafnodeflip.gif"},//$NON-NLS-1$ $NON-NLS-2$
+ { "org.apache.jmeter.control.gui.AbstractControllerGui", "org/apache/jmeter/images/knob.gif" }, //$NON-NLS-1$ $NON-NLS-2$
+ { "org.apache.jmeter.control.gui.WorkBenchGui", "org/apache/jmeter/images/clipboard.gif" }, //$NON-NLS-1$ $NON-NLS-2$
+ { "org.apache.jmeter.samplers.gui.AbstractSamplerGui", "org/apache/jmeter/images/pipet.png" }, //$NON-NLS-1$ $NON-NLS-2$
+ { "org.apache.jmeter.assertions.gui.AbstractAssertionGui", "org/apache/jmeter/images/question.gif"} //$NON-NLS-1$ $NON-NLS-2$
};
public String[][] getIconMappings() {
- String iconProp = JMeterUtils.getPropDefault("jmeter.icons",//$NON-NLS-1$
- "org/apache/jmeter/images/icon.properties");//$NON-NLS-1$
+ final String defaultIconProp = "org/apache/jmeter/images/icon.properties"; //$NON-NLS-1$
+ String iconProp = JMeterUtils.getPropDefault("jmeter.icons", defaultIconProp);//$NON-NLS-1$
Properties p = JMeterUtils.loadProperties(iconProp);
+ if (p == null && !iconProp.equals(defaultIconProp)) {
+ log.info(iconProp + " not found - using " + defaultIconProp);
+ iconProp = defaultIconProp;
+ p = JMeterUtils.loadProperties(iconProp);
+ }
if (p == null) {
- log.info(iconProp + " not found - using default icon set");
+ log.info(iconProp + " not found - using inbuilt icon set");
return DEFAULT_ICONS;
}
log.info("Loaded icon properties from " + iconProp);
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org