Author: sebb
Date: Mon Sep  7 20:26:55 2009
New Revision: 812266

URL: http://svn.apache.org/viewvc?rev=812266&view=rev
Log:
Added DataStrippingSample sender - supports "Stripped" and "StrippedBatch" 
modes.
[code copied from branches/java1.5_prototype-was_trunk]

Added:
    
jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/DataStrippingSampleSender.java
   (with props)
Modified:
    jakarta/jmeter/trunk/bin/jmeter.properties
    
jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleSenderFactory.java
    jakarta/jmeter/trunk/xdocs/changes.xml
    jakarta/jmeter/trunk/xdocs/usermanual/remote-test.xml

Modified: jakarta/jmeter/trunk/bin/jmeter.properties
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/bin/jmeter.properties?rev=812266&r1=812265&r2=812266&view=diff
==============================================================================
--- jakarta/jmeter/trunk/bin/jmeter.properties (original)
+++ jakarta/jmeter/trunk/bin/jmeter.properties Mon Sep  7 20:26:55 2009
@@ -474,6 +474,8 @@
 #mode=Batch
 #mode=Hold
 #mode=Statistical
+#mode=Stripped
+#mode=StrippedBatch
 #mode=org.example.load.MySampleSender
 #hold_samples=true
 #num_sample_threshold=100

Added: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/DataStrippingSampleSender.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/DataStrippingSampleSender.java?rev=812266&view=auto
==============================================================================
--- 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/DataStrippingSampleSender.java
 (added)
+++ 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/DataStrippingSampleSender.java
 Mon Sep  7 20:26:55 2009
@@ -0,0 +1,62 @@
+package org.apache.jmeter.samplers;
+
+import java.io.Serializable;
+import java.rmi.RemoteException;
+
+import org.apache.jorphan.logging.LoggingManager;
+import org.apache.log.Logger;
+
+/**
+ * The standard remote sample reporting should be more friendly to the main 
purpose of
+ * remote testing - which is scalability.  To increase scalability, this class 
strips out the 
+ * response data before sending.
+ * 
+ *
+ */
+public class DataStrippingSampleSender implements SampleSender, Serializable {
+       private static final long serialVersionUID = 1;
+       private static final Logger log = LoggingManager.getLoggerForClass();
+       
+       private final RemoteSampleListener listener;
+       private final SampleSender decoratedSender;
+
+       DataStrippingSampleSender(RemoteSampleListener listener) {
+               this.listener = listener;
+               decoratedSender = null;
+       }
+       
+       DataStrippingSampleSender(SampleSender decorate)
+       {
+               this.decoratedSender = decorate;
+        this.listener = null;
+       }
+
+       public void testEnded() {
+               if(decoratedSender != null) decoratedSender.testEnded();
+       }
+
+       public void testEnded(String host) {
+               if(decoratedSender != null) decoratedSender.testEnded(host);
+       }
+
+       public void sampleOccurred(SampleEvent event) {
+               //Strip the response data before writing, but only for a 
successful request.
+           SampleResult result = event.getResult();
+               if(result.isSuccessful()) {
+                   result.setResponseData(new byte[0]);
+               }
+               if(decoratedSender == null)
+               {
+                       try {
+                               listener.sampleOccurred(event);
+                       } catch (RemoteException e) {
+                               log.error("Error sending sample result over 
network ",e);
+                       }
+               }
+               else
+               {
+                       decoratedSender.sampleOccurred(event);
+               }
+       }
+
+}

Propchange: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/DataStrippingSampleSender.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/DataStrippingSampleSender.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleSenderFactory.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleSenderFactory.java?rev=812266&r1=812265&r2=812266&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleSenderFactory.java
 (original)
+++ 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleSenderFactory.java
 Mon Sep  7 20:26:55 2009
@@ -36,6 +36,10 @@
 
     private static final String MODE_STATISTICAL = "Statistical"; // 
$NON-NLS-1$
 
+    private static final String MODE_STRIPPED = "Stripped"; // $NON-NLS-1$
+
+    private static final String MODE_STRIPPED_BATCH = "StrippedBatch"; // 
$NON-NLS-1$
+
     // Support original property name
     private static final boolean holdSamples = 
JMeterUtils.getPropDefault("hold_samples", false); // $NON-NLS-1$
 
@@ -62,6 +66,10 @@
         } else if (type.equalsIgnoreCase(MODE_STANDARD)) {
             StandardSampleSender s = new StandardSampleSender(listener);
             return s;
+        }  else if(type.equalsIgnoreCase(MODE_STRIPPED_BATCH)) {
+            return new DataStrippingSampleSender(new 
BatchSampleSender(listener));
+        } else if(type.equalsIgnoreCase(MODE_STRIPPED)){
+            return new DataStrippingSampleSender(listener);
         } else {
             // should be a user provided class name
             SampleSender s = null;

Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=812266&r1=812265&r2=812266&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Mon Sep  7 20:26:55 2009
@@ -123,6 +123,7 @@
 <h3>Listeners</h3>
 <ul>
 <li>Bug 47398 - SampleEvents are sent twice over RMI in distributed testing 
and non gui mode</li>
+<li>Added DataStrippingSample sender - supports "Stripped" and "StrippedBatch" 
modes.</li>
 </ul>
 
 <h3>Assertions, Config, Pre- &amp; Post-Processors</h3>

Modified: jakarta/jmeter/trunk/xdocs/usermanual/remote-test.xml
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/usermanual/remote-test.xml?rev=812266&r1=812265&r2=812266&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/usermanual/remote-test.xml (original)
+++ jakarta/jmeter/trunk/xdocs/usermanual/remote-test.xml Mon Sep  7 20:26:55 
2009
@@ -216,7 +216,11 @@
     </ul>
     Other fields that vary between samples are lost. 
     </li>
-    <li>Custom implementation : set the mode parameter to your custom sample 
sender class name
+    <li>Stripped - remove responseData from succesful samples</li>
+    <li>StrippedBatch - remove responseData from succesful samples, and send 
as batches</li>
+    <li>Custom implementation : set the mode parameter to your custom sample 
sender class name.
+    This must implement the interface SampleSender and have a constructor 
which takes a single
+    parameter of type RemoteSampleListener. 
     </li>
     </ul>
 </ul>



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscr...@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-h...@jakarta.apache.org

Reply via email to