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 2008/10/12 03:06:03 UTC
svn commit: r703755 - in /jakarta/jmeter/trunk/src/core/org/apache/jmeter:
engine/ samplers/
Author: sebb
Date: Sat Oct 11 18:06:02 2008
New Revision: 703755
URL: http://svn.apache.org/viewvc?rev=703755&view=rev
Log:
General tidyup of Remote Listener classes
- made variables final where possible
- SampleOccurred => sampleOccurred
- added some documentation
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/ConvertListeners.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/BatchSampleSender.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/HoldSampleSender.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteListenerWrapper.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteSampleListenerImpl.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteTestListenerWrapper.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleSender.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/StandardSampleSender.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/StatisticalSampleSender.java
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/ConvertListeners.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/ConvertListeners.java?rev=703755&r1=703754&r2=703755&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/ConvertListeners.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/ConvertListeners.java Sat Oct 11 18:06:02 2008
@@ -29,6 +29,7 @@
import org.apache.jmeter.samplers.Remoteable;
import org.apache.jmeter.samplers.SampleListener;
import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.ThreadListener;
import org.apache.jmeter.threads.ThreadGroup;
import org.apache.jorphan.collections.HashTree;
import org.apache.jorphan.collections.HashTreeTraverser;
@@ -36,7 +37,11 @@
import org.apache.log.Logger;
/**
- * @author mstover
+ * Converts the Remoteable Test and Sample Listeners in the test tree by wrapping
+ * them with RemoteSampleListeners so that the samples are returned to the client.
+ *
+ * N.B. Does not handle ThreadListeners.
+ *
*/
public class ConvertListeners implements HashTreeTraverser {
private static final Logger log = LoggingManager.getLoggerForClass();
@@ -53,8 +58,11 @@
if (item instanceof ThreadGroup) {
log.info("num threads = " + ((ThreadGroup) item).getNumThreads());
}
- if (item instanceof Remoteable
- && (item instanceof TestListener || item instanceof SampleListener)) {
+ if (item instanceof Remoteable) {
+ if (item instanceof ThreadListener){
+ log.error("Cannot handle ThreadListener Remotable item "+item.getClass().getName());
+ continue;
+ }
try {
RemoteSampleListener rtl = new RemoteSampleListenerImpl(item);
if (item instanceof TestListener && item instanceof SampleListener) {
@@ -63,9 +71,11 @@
} else if (item instanceof TestListener) {
RemoteTestListenerWrapper wrap = new RemoteTestListenerWrapper(rtl);
subTree.replace(item, wrap);
- } else {
+ } else if (item instanceof SampleListener) {
RemoteSampleListenerWrapper wrap = new RemoteSampleListenerWrapper(rtl);
subTree.replace(item, wrap);
+ } else {
+ log.warn("Could not replace Remotable item "+item.getClass().getName());
}
} catch (RemoteException e) {
log.error("", e); // $NON-NLS-1$
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/BatchSampleSender.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/BatchSampleSender.java?rev=703755&r1=703754&r2=703755&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/BatchSampleSender.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/BatchSampleSender.java Sat Oct 11 18:06:02 2008
@@ -120,7 +120,7 @@
* @param e
* a Sample Event
*/
- public void SampleOccurred(SampleEvent e) {
+ public void sampleOccurred(SampleEvent e) {
synchronized (sampleStore) {
sampleStore.add(e);
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/HoldSampleSender.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/HoldSampleSender.java?rev=703755&r1=703754&r2=703755&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/HoldSampleSender.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/HoldSampleSender.java Sat Oct 11 18:06:02 2008
@@ -81,7 +81,7 @@
}
- public void SampleOccurred(SampleEvent e) {
+ public void sampleOccurred(SampleEvent e) {
log.debug("Sample occurred");
synchronized (sampleStore) {
sampleStore.add(e);
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteListenerWrapper.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteListenerWrapper.java?rev=703755&r1=703754&r2=703755&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteListenerWrapper.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteListenerWrapper.java Sat Oct 11 18:06:02 2008
@@ -39,19 +39,20 @@
NoThreadClone {
private static final Logger log = LoggingManager.getLoggerForClass();
- private RemoteSampleListener listener = null;
+ private final RemoteSampleListener listener;
- private SampleSender mode;
+ private final SampleSender sender;
public RemoteListenerWrapper(RemoteSampleListener l) {
listener = l;
- // Get appropriate class governed by the behaviour set in the Jmeter
- // property mode.
- this.mode = SampleSenderFactory.getInstance(listener);
+ // Get appropriate sender class governed by the behaviour set in the JMeter property
+ sender = SampleSenderFactory.getInstance(listener);
}
public RemoteListenerWrapper() // TODO: not used - make private?
{
+ listener = null;
+ sender = null;
}
public void testStarted() {
@@ -65,7 +66,7 @@
}
public void testEnded() {
- mode.testEnded();
+ sender.testEnded();
}
public void testStarted(String host) {
@@ -78,11 +79,11 @@
}
public void testEnded(String host) {
- mode.testEnded(host);
+ sender.testEnded(host);
}
public void sampleOccurred(SampleEvent e) {
- mode.SampleOccurred(e);
+ sender.sampleOccurred(e);
}
// Note that sampleStarted() and sampleStopped() is not made to appear
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteSampleListenerImpl.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteSampleListenerImpl.java?rev=703755&r1=703754&r2=703755&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteSampleListenerImpl.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteSampleListenerImpl.java Sat Oct 11 18:06:02 2008
@@ -26,32 +26,29 @@
import org.apache.jmeter.testelement.TestListener;
/**
- * @version $Revision$
+ * Implementation of remote sampler listener, also supports TestListener
*/
-public class RemoteSampleListenerImpl extends java.rmi.server.UnicastRemoteObject implements RemoteSampleListener,
- SampleListener, TestListener {
- TestListener testListener;
+public class RemoteSampleListenerImpl extends java.rmi.server.UnicastRemoteObject
+ implements RemoteSampleListener, SampleListener, TestListener {
- SampleListener sampleListener;
+ private final TestListener testListener;
- public RemoteSampleListenerImpl() throws RemoteException {
- super();
- }
+ private final SampleListener sampleListener;
- public void setListener(Object listener) {
+ public RemoteSampleListenerImpl(Object listener) throws RemoteException {
+ super();
if (listener instanceof TestListener) {
testListener = (TestListener) listener;
+ } else {
+ testListener = null;
}
if (listener instanceof SampleListener) {
sampleListener = (SampleListener) listener;
+ } else {
+ sampleListener = null;
}
}
- public RemoteSampleListenerImpl(Object listener) throws RemoteException {
- super();
- setListener(listener);
- }
-
public void testStarted() {
if (testListener != null) {
testListener.testStarted();
@@ -76,9 +73,15 @@
}
}
+ public void testIterationStart(LoopIterationEvent event) {
+ if (testListener != null) {
+ testListener.testIterationStart(event);
+ }
+ }
+
/**
* This method is called remotely and fires a list of samples events
- * recieved locally. The function is to reduce network load when using
+ * received locally. The function is to reduce network load when using
* remote testing.
*
* @param samples
@@ -117,12 +120,4 @@
sampleListener.sampleStopped(e);
}
}
-
- /*
- * (non-Javadoc)
- *
- * @see TestListener#testIterationStart(LoopIterationEvent)
- */
- public void testIterationStart(LoopIterationEvent event) {
- }
}
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteTestListenerWrapper.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteTestListenerWrapper.java?rev=703755&r1=703754&r2=703755&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteTestListenerWrapper.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/RemoteTestListenerWrapper.java Sat Oct 11 18:06:02 2008
@@ -33,9 +33,11 @@
public class RemoteTestListenerWrapper extends AbstractTestElement implements TestListener, Serializable, NoThreadClone {
private static final Logger log = LoggingManager.getLoggerForClass();
- private RemoteSampleListener listener;
+ private final RemoteSampleListener listener;
public RemoteTestListenerWrapper() {
+ log.warn("Only intended for use in testing");
+ listener = null;
}
public RemoteTestListenerWrapper(RemoteSampleListener l) {
@@ -81,6 +83,7 @@
* @see TestListener#testIterationStart(LoopIterationEvent)
*/
public void testIterationStart(LoopIterationEvent event) {
+ //listener.testIterationStart(event);
}
}
\ No newline at end of file
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleSender.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleSender.java?rev=703755&r1=703754&r2=703755&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleSender.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleSender.java Sat Oct 11 18:06:02 2008
@@ -18,6 +18,10 @@
package org.apache.jmeter.samplers;
+/**
+ * This interface is used to define the methods that need to be intercepted
+ * by the SampleSender wrapper classes processed by the RemoteListenerWrapper.
+ */
public interface SampleSender {
/**
* The test ended
@@ -38,8 +42,5 @@
* @param e
* a Sample Event
*/
- public void SampleOccurred(SampleEvent e);
- // TODO consider renaming this method
- // - should begin with lower-case letter
- // - should be less like the SampleListener method (sampleOccurred)
+ public void sampleOccurred(SampleEvent e);
}
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/StandardSampleSender.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/StandardSampleSender.java?rev=703755&r1=703754&r2=703755&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/StandardSampleSender.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/StandardSampleSender.java Sat Oct 11 18:06:02 2008
@@ -62,7 +62,7 @@
}
}
- public void SampleOccurred(SampleEvent e) {
+ public void sampleOccurred(SampleEvent e) {
log.debug("Sample occurred");
try {
listener.sampleOccurred(e);
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/StatisticalSampleSender.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/StatisticalSampleSender.java?rev=703755&r1=703754&r2=703755&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/StatisticalSampleSender.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/StatisticalSampleSender.java Sat Oct 11 18:06:02 2008
@@ -123,7 +123,7 @@
*
* @param e a Sample Event
*/
- public void SampleOccurred(SampleEvent e) {
+ public void sampleOccurred(SampleEvent e) {
synchronized (sampleStore) {
// Locate the statistical sample colector
String key = StatisticalSampleResult.getKey(e);
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org