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