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- & 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