Unnecessary to enable ThreadListener for all TestElements

git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@545780 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Sebastian Bazley 2007-06-09 17:42:55 +00:00
parent 3339b2e5ed
commit dfd3eef77a
5 changed files with 20 additions and 48 deletions

View File

@ -399,25 +399,6 @@ public abstract class AbstractTestElement implements TestElement, Serializable {
this.threadName = inthreadName;
}
/*
* (non-Javadoc)
*
* @see org.apache.jmeter.testelement.TestElement#threadFinished()
*/
public void threadFinished() {
}
/*
* (non-Javadoc)
*
* @see org.apache.jmeter.testelement.TestElement#threadStarted()
*/
public void threadStarted() {
}
/**
*
*/
public AbstractTestElement() {
super();
}

View File

@ -161,16 +161,6 @@ public interface TestElement extends Cloneable {
*/
public void setThreadName(String threadName);
/**
* Called at the start of each thread. TODO - should it hava a parameter?
*/
public void threadStarted();
/**
* Called at the end of each thread. TODO - should it hava a parameter?
*/
public void threadFinished();
/**
* Called by Remove to determine if it is safe to remove the element. The
* element can either clean itself up, and return true, or the element can

View File

@ -41,6 +41,7 @@ import org.apache.jmeter.samplers.Sampler;
import org.apache.jmeter.testbeans.TestBeanHelper;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.testelement.TestListener;
import org.apache.jmeter.testelement.ThreadListener;
import org.apache.jmeter.timers.Timer;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jorphan.collections.HashTree;
@ -433,7 +434,7 @@ public class JMeterThread implements Runnable, Serializable {
*
*/
private void threadStarted() {
Traverser startup = new Traverser(true);
ThreadListenerTraverser startup = new ThreadListenerTraverser(true);
testTree.traverse(startup);
}
@ -441,7 +442,7 @@ public class JMeterThread implements Runnable, Serializable {
*
*/
private void threadFinished() {
Traverser shut = new Traverser(false);
ThreadListenerTraverser shut = new ThreadListenerTraverser(false);
testTree.traverse(shut);
JMeterContextService.decrNumberOfThreads();
threadGroup.decrNumberOfThreads();
@ -451,20 +452,20 @@ public class JMeterThread implements Runnable, Serializable {
}
}
private static class Traverser implements HashTreeTraverser {
private static class ThreadListenerTraverser implements HashTreeTraverser {
private boolean isStart = false;
private Traverser(boolean start) {
private ThreadListenerTraverser(boolean start) {
isStart = start;
}
public void addNode(Object node, HashTree subTree) {
if (node instanceof TestElement) {
TestElement te = (TestElement) node;
if (node instanceof ThreadListener) {
ThreadListener tl = (ThreadListener) node;
if (isStart) {
te.threadStarted();
tl.threadStarted();
} else {
te.threadFinished();
tl.threadFinished();
}
}
}

View File

@ -48,6 +48,7 @@ import org.apache.jmeter.samplers.Entry;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.testelement.TestListener;
import org.apache.jmeter.testelement.ThreadListener;
import org.apache.jmeter.testelement.property.BooleanProperty;
import org.apache.jmeter.testelement.property.IntegerProperty;
import org.apache.jmeter.testelement.property.JMeterProperty;
@ -66,7 +67,7 @@ import org.apache.oro.text.regex.Perl5Matcher;
* Common constants and methods for HTTP samplers
*
*/
public abstract class HTTPSamplerBase extends AbstractSampler implements TestListener {
public abstract class HTTPSamplerBase extends AbstractSampler implements TestListener, ThreadListener {
private static final Logger log = LoggingManager.getLoggerForClass();
@ -1248,5 +1249,12 @@ public abstract class HTTPSamplerBase extends AbstractSampler implements TestLis
public static boolean isSecure(URL url){
return isSecure(url.getProtocol());
}
// Implement these here, to avoid re-implementing for sub-classes
// (previously these were implemented in all TestElements)
public void threadStarted(){
}
public void threadFinished(){
}
}

View File

@ -42,6 +42,7 @@ import org.apache.jmeter.engine.event.LoopIterationEvent;
import org.apache.jmeter.samplers.AbstractSampler;
import org.apache.jmeter.samplers.Entry;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.testelement.ThreadListener;
import org.apache.jmeter.testelement.property.BooleanProperty;
import org.apache.jmeter.testelement.property.TestElementProperty;
import org.apache.jorphan.logging.LoggingManager;
@ -51,10 +52,8 @@ import org.apache.log.Logger;
* Sampler for JMS Communication. <br>
* Created on: October 28, 2004
*
* @author Martijn Blankestijn
* @version $Id$
*/
public class JMSSampler extends AbstractSampler {
public class JMSSampler extends AbstractSampler implements ThreadListener {
public static final String JNDI_INITIAL_CONTEXT_FACTORY = "JMSSampler.initialContextFactory"; // $NON-NLS-1$
@ -252,14 +251,8 @@ public class JMSSampler extends AbstractSampler {
// LOGGER.debug("testIterationStart");
}
/*
* (non-Javadoc)
*
* @see org.apache.jmeter.testelement.TestElement#threadStarted()
*/
public void threadStarted() {
logThreadStart();
super.threadStarted();
Context context = null;
try {
@ -394,7 +387,6 @@ public class JMSSampler extends AbstractSampler {
*/
public void threadFinished() {
LOGGER.debug("Thread ended " + new Date());
super.threadFinished();
if (session != null)
try {