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 ms...@apache.org on 2001/08/30 19:19:04 UTC

cvs commit: jakarta-jmeter/xdocs/user_manual proxy_server.xml threadgroups.xml

mstover1    01/08/30 10:19:04

  Modified:    .        build.xml
               bin      jmeter.properties
               docs     running.html
               docs/user_manual index.html proxy_server.html
                        threadgroups.html
               src/org/apache/jmeter NewDriver.java
               src/org/apache/jmeter/assertions Assertion.java
               src/org/apache/jmeter/config AbstractConfigElement.java
                        Arguments.java
               src/org/apache/jmeter/control
                        AbstractGenerativeController.java
                        GenericController.java LoopController.java
                        ModifyController.java
               src/org/apache/jmeter/engine ClientJMeterEngine.java
                        StandardJMeterEngine.java
               src/org/apache/jmeter/gui MenuFactory.java
               src/org/apache/jmeter/gui/action AboutCommand.java
               src/org/apache/jmeter/protocol/http/config UrlConfig.java
                        UrlConfigFull.java
               src/org/apache/jmeter/protocol/http/control AuthManager.java
                        CookieManager.java HeaderManager.java
                        HttpTestSample.java
               src/org/apache/jmeter/protocol/http/modifier
                        AnchorModifier.java
               src/org/apache/jmeter/protocol/http/parser HtmlParser.java
               src/org/apache/jmeter/protocol/http/proxy ProxyControl.java
               src/org/apache/jmeter/protocol/http/proxy/gui
                        ProxyControlGui.java
               src/org/apache/jmeter/protocol/http/sampler HTTPSampler.java
               src/org/apache/jmeter/protocol/http/util
                        SSLStaticProvider.java
               src/org/apache/jmeter/resources messages.properties
               src/org/apache/jmeter/samplers RemoteSampleListenerImpl.java
                        SampleResult.java
               src/org/apache/jmeter/save/handlers
                        AbstractConfigElementHandler.java
                        ThreadGroupHandler.java
               src/org/apache/jmeter/threads JMeterThread.java
                        ThreadGroup.java
               src/org/apache/jmeter/threads/gui ThreadGroupGui.java
               src/org/apache/jmeter/timers ConstantTimer.java
                        GaussianRandomTimer.java RandomTimer.java
                        UniformRandomTimer.java
               src/org/apache/jmeter/util ClassFinder.java
               xdocs    running.xml
               xdocs/user_manual proxy_server.xml threadgroups.xml
  Added:       src/org/apache/jmeter/protocol/http/save
                        ProxyControlHandler.java
               src/org/apache/jmeter/protocol/http/util Base64Encoder.java
  Log:
  New Ramp-up threadgroup options.  ProxyControl improvements
  
  Revision  Changes    Path
  1.34      +15 -3     jakarta-jmeter/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/build.xml,v
  retrieving revision 1.33
  retrieving revision 1.34
  diff -u -r1.33 -r1.34
  --- build.xml	2001/08/28 21:28:29	1.33
  +++ build.xml	2001/08/30 17:19:00	1.34
  @@ -1,6 +1,5 @@
   <project name="JMeter" default="all" basedir=".">
   
  -  <property name="build.compiler" value="classic"/>
     <!-- Where the class files should live -->
     <property name="classes.dest.dir" value="bin/classes"/>
     <!-- Where the Sources live -->
  @@ -10,6 +9,8 @@
     <property name="version" value="_1.6.1"/>
     <property name="docs.src" value="./xdocs"/>
     <property name="docs.dest" value="./docs"/>
  +  <property name="printable_docs.dest" value="./printable_docs"/>
  +  <property name="optimize" value="on"/>
   
     <!-- Build classpath -->
     <path id="classpath">
  @@ -75,7 +76,7 @@
   		  <mkdir dir="${classes.dest.dir}"/>
   		  <javac srcdir="${sources.src.dir}"
   				destdir="${classes.dest.dir}"
  -				optimize="on">
  +				optimize="${optimize}">
   				<exclude name="**/*.df*"/>
   				<exclude name="**/*.html"/>
   				<exclude name="**/*.tpr"/>
  @@ -172,7 +173,18 @@
   	 <target name="docs" depends="no.anakia" if="AnakiaTask.present">
   		  <taskdef name="anakia" classname="org.apache.velocity.anakia.AnakiaTask"/>
   		  <anakia basedir="${docs.src}" destdir="${docs.dest}/"
  -				extension=".html" style="./site.vsl"
  +				extension=".html" style="./xdocs/stylesheets/site.vsl"
  +				projectFile="./stylesheets/project.xml"
  +				excludes="**/stylesheets/**"
  +				includes="**/*.xml"
  +				lastModifiedCheck="false"
  +				velocityPropertiesFile="${docs.src}/velocity.properties"></anakia>
  +	 </target>
  +	 
  +	 <target name="printable_docs" depends="no.anakia" if="AnakiaTask.present">
  +		  <taskdef name="anakia" classname="org.apache.velocity.anakia.AnakiaTask"/>
  +		  <anakia basedir="${docs.src}" destdir="${docs.dest}/"
  +				extension=".html" style="./xdocs/stylesheets/site_printable.vsl"
   				projectFile="./stylesheets/project.xml"
   				excludes="**/stylesheets/**"
   				includes="**/*.xml"
  
  
  
  1.22      +7 -2      jakarta-jmeter/bin/jmeter.properties
  
  Index: jmeter.properties
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/bin/jmeter.properties,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- jmeter.properties	2001/08/28 21:28:29	1.21
  +++ jmeter.properties	2001/08/30 17:19:01	1.22
  @@ -17,7 +17,11 @@
   xml.parser=org.apache.xerces.parsers.SAXParser
   
   #Classname of the ssl provider to be used (to enable testing of https urls)
  -ssl.provider=none
  +#And the package name where Stream Handlers can be found
  +#These provided defaults can be uncommented, and they will work if you are using
  +#Sun's JSSE implementation.
  +#ssl.provider=com.sun.net.ssl.internal.ssl.Provider
  +#ssl.pkgs=com.sun.net.ssl.internal.www.protocol
   
   #icons
   timer.tree.icon=timer.gif
  @@ -28,8 +32,9 @@
   plan.tree.icon=beaker.gif
   
   # Remote Hosts - comma delimited
  -remote_hosts=127.0.0.1
  +#remote_hosts=127.0.0.1
   
  +#Components to not display in JMeter GUI
   not_in_menu=Default Controller,\
   	org.apache.jmeter.control.DynamicController,\
   	org.apache.jmeter.protocol.http.control.Cookie,\
  
  
  
  1.21      +0 -0      jakarta-jmeter/docs/running.html
  
  Index: running.html
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/docs/running.html,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- running.html	2001/08/28 21:28:29	1.20
  +++ running.html	2001/08/30 17:19:01	1.21
  @@ -145,7 +145,7 @@
     </ul>
                                                   <p align="center"><font size="-1">Copyright (c) 1998-99 <a href="http://java.apache.org">The Java Apache
   Project</a>.<br />
  -$Id: running.html,v 1.20 2001/08/28 21:28:29 mstover1 Exp $</font> <br />
  +$Id: running.html,v 1.21 2001/08/30 17:19:01 mstover1 Exp $</font> <br />
   <font size="-1">All rights reserved.</font></p>
                               </blockquote>
           </p>
  
  
  
  1.8       +2 -1      jakarta-jmeter/docs/user_manual/index.html
  
  Index: index.html
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/docs/user_manual/index.html,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- index.html	2001/08/28 21:28:30	1.7
  +++ index.html	2001/08/30 17:19:01	1.8
  @@ -116,7 +116,8 @@
                           <tr>
                           <td bgcolor="#a0ddf0" colspan="" rowspan="" valign="top" align="left">
       <font color="#000000" size="-1" face="arial,helvetica,sanserif">
  -                $xmlout.outputString($value, true)
  +                <b>Most functions in the UI are available from popup menus
  +that appear when you right-click on an element in the test tree.</b>
               </font>
   </td>
               </tr>
  
  
  
  1.5       +1 -4      jakarta-jmeter/docs/user_manual/proxy_server.html
  
  Index: proxy_server.html
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/docs/user_manual/proxy_server.html,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- proxy_server.html	2001/08/28 21:28:30	1.4
  +++ proxy_server.html	2001/08/30 17:19:01	1.5
  @@ -151,8 +151,6 @@
   not.</p>
                                                   <p>
   When you are ready to begin, hit "start".</p>
  -                                                <p>
  -Currently, the Proxy Server does not save these settings when saved to file.</p>
                               </blockquote>
           </p>
         </td></tr>
  @@ -172,8 +170,7 @@
   Url Sample element with domain or path settings, then your Web Test controllers will be created with blank domain and/or path settings (provided
   they match, of course).  This allows you to simply create test plans with a single top level config element to control which server name is
   being tested.<br />
  -If there are no Simple Controllers in your test plan, then the Web Test controllers will be generated directly under the ThreadGroup
  -object in your tree.
  +If there are no Simple Controllers in your test plan, then no samples will be recorded.
   </p>
                               </blockquote>
           </p>
  
  
  
  1.5       +23 -0     jakarta-jmeter/docs/user_manual/threadgroups.html
  
  Index: threadgroups.html
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/docs/user_manual/threadgroups.html,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- threadgroups.html	2001/08/28 21:28:30	1.4
  +++ threadgroups.html	2001/08/30 17:19:01	1.5
  @@ -173,6 +173,29 @@
         </td></tr>
         <tr><td><br/></td></tr>
       </table>
  +                                                <table border="0" cellspacing="0" cellpadding="2" width="100%">
  +      <tr><td bgcolor="#525D76">
  +        <font color="#ffffff" face="arial,helvetica,sanserif">
  +          <a name="Ramp-Up"><strong>Ramp-Up</strong></a>
  +        </font>
  +      </td></tr>
  +      <tr><td>
  +        <blockquote>
  +                                    <p>
  +A ThreadGroup can have a <i>ramp-up</i> period associated with it, to provide a way to gradually increase
  +the simulated load.  The default value of the ramp-up parameter is zero.  With this setting, the number of threads
  +specified for the ThreadGroup are all started immediately when the test begins.
  +</p>
  +                                                <p>
  +If the ramp-up parameter is set to a value greater than zero, the threads are started one at a time, spaced evenly
  +over the ramp-up period.  The first thread is started immediately, at time=zero.  After that, another thread is started
  +every &lt;rampUp&gt; / &lt;numThreads&gt; seconds.  After &lt;rampUp&gt; seconds have elapsed, all threads will be running.
  +</p>
  +                            </blockquote>
  +        </p>
  +      </td></tr>
  +      <tr><td><br/></td></tr>
  +    </table>
                                           </td>
                   </tr>
   
  
  
  
  1.7       +0 -8      jakarta-jmeter/src/org/apache/jmeter/NewDriver.java
  
  Index: NewDriver.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/NewDriver.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- NewDriver.java	2001/07/26 00:34:43	1.6
  +++ NewDriver.java	2001/08/30 17:19:01	1.7
  @@ -73,13 +73,6 @@
   {
   
   	/************************************************************
  -	 *  Constructor for the NewDriver object
  -	 ***********************************************************/
  -	public NewDriver()
  -	{
  -	}
  -
  -	/************************************************************
   	 *  The main program for the NewDriver class
   	 *
   	 *@param  args  The command line arguments
  @@ -91,7 +84,6 @@
   			JMeterUtils.getProperties(args[0]);
   		}
   
  -		NewDriver newDriver1 = new NewDriver();
   		JMeterTreeModel treeModel = new JMeterTreeModel();
   		JMeterTreeListener treeLis = new JMeterTreeListener(treeModel);
   		MainFrame main = new MainFrame(ActionRouter.getInstance(),
  
  
  
  1.4       +0 -0      jakarta-jmeter/src/org/apache/jmeter/assertions/Assertion.java
  
  Index: Assertion.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/assertions/Assertion.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Assertion.java	2001/08/28 21:28:31	1.3
  +++ Assertion.java	2001/08/30 17:19:01	1.4
  @@ -5,7 +5,7 @@
    *			companies.
    *
    *  All rights reserved
  - * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/assertions/Assertion.java,v 1.3 2001/08/28 21:28:31 mstover1 Exp $
  + * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/assertions/Assertion.java,v 1.4 2001/08/30 17:19:01 mstover1 Exp $
    */
   package org.apache.jmeter.assertions;
   
  @@ -23,7 +23,7 @@
    *  Apache
    *
    *@author     Michael Stover
  - *@created    $Date: 2001/08/28 21:28:31 $
  + *@created    $Date: 2001/08/30 17:19:01 $
    *@version    1.0
    ***********************************************************/
   
  
  
  
  1.11      +0 -0      jakarta-jmeter/src/org/apache/jmeter/config/AbstractConfigElement.java
  
  Index: AbstractConfigElement.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/config/AbstractConfigElement.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- AbstractConfigElement.java	2001/08/28 21:28:31	1.10
  +++ AbstractConfigElement.java	2001/08/30 17:19:01	1.11
  @@ -65,7 +65,7 @@
    *  Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
    *
    *@author     Michael Stover
  - *@created    $Date: 2001/08/28 21:28:31 $
  + *@created    $Date: 2001/08/30 17:19:01 $
    *@version    1.0
    ***********************************************************/
   
  
  
  
  1.13      +0 -0      jakarta-jmeter/src/org/apache/jmeter/config/Arguments.java
  
  Index: Arguments.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/config/Arguments.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- Arguments.java	2001/08/28 21:28:31	1.12
  +++ Arguments.java	2001/08/30 17:19:01	1.13
  @@ -65,7 +65,7 @@
    *  Apache Foundation
    *
    *@author     Michael Stover
  - *@created    $Date: 2001/08/28 21:28:31 $
  + *@created    $Date: 2001/08/30 17:19:01 $
    *@version    1.0
    ***********************************************************/
   
  
  
  
  1.4       +0 -0      jakarta-jmeter/src/org/apache/jmeter/control/AbstractGenerativeController.java
  
  Index: AbstractGenerativeController.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/control/AbstractGenerativeController.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- AbstractGenerativeController.java	2001/08/28 21:28:31	1.3
  +++ AbstractGenerativeController.java	2001/08/30 17:19:01	1.4
  @@ -5,7 +5,7 @@
    *			companies.
    *
    *  All rights reserved
  - * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/control/AbstractGenerativeController.java,v 1.3 2001/08/28 21:28:31 mstover1 Exp $
  + * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/control/AbstractGenerativeController.java,v 1.4 2001/08/30 17:19:01 mstover1 Exp $
    */
   package org.apache.jmeter.control;
   import org.apache.jmeter.samplers.Entry;
  @@ -17,7 +17,7 @@
    *  Apache
    *
    *@author     Michael Stover
  - *@created    $Date: 2001/08/28 21:28:31 $
  + *@created    $Date: 2001/08/30 17:19:01 $
    *@version    1.0
    ***********************************************************/
   
  
  
  
  1.19      +0 -0      jakarta-jmeter/src/org/apache/jmeter/control/GenericController.java
  
  Index: GenericController.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/control/GenericController.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- GenericController.java	2001/08/28 21:28:31	1.18
  +++ GenericController.java	2001/08/30 17:19:01	1.19
  @@ -5,7 +5,7 @@
    *			companies.
    *
    *  All rights reserved
  - * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/control/GenericController.java,v 1.18 2001/08/28 21:28:31 mstover1 Exp $
  + * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/control/GenericController.java,v 1.19 2001/08/30 17:19:01 mstover1 Exp $
    */
   package org.apache.jmeter.control;
   import java.util.*;
  @@ -21,7 +21,7 @@
    *  Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
    *
    *@author     Michael Stover
  - *@created    $Date: 2001/08/28 21:28:31 $
  + *@created    $Date: 2001/08/30 17:19:01 $
    *@version    1.0
    ***********************************************************/
   
  
  
  
  1.5       +0 -0      jakarta-jmeter/src/org/apache/jmeter/control/LoopController.java
  
  Index: LoopController.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/control/LoopController.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- LoopController.java	2001/08/28 21:28:31	1.4
  +++ LoopController.java	2001/08/30 17:19:01	1.5
  @@ -5,7 +5,7 @@
    *			companies.
    *
    *  All rights reserved
  - * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/control/LoopController.java,v 1.4 2001/08/28 21:28:31 mstover1 Exp $
  + * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/control/LoopController.java,v 1.5 2001/08/30 17:19:01 mstover1 Exp $
    */
   package org.apache.jmeter.control;
   
  @@ -16,7 +16,7 @@
    *  Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
    *
    *@author     Michael Stover
  - *@created    $Date: 2001/08/28 21:28:31 $
  + *@created    $Date: 2001/08/30 17:19:01 $
    *@version    1.0
    ***********************************************************/
   
  
  
  
  1.5       +0 -0      jakarta-jmeter/src/org/apache/jmeter/control/ModifyController.java
  
  Index: ModifyController.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/control/ModifyController.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ModifyController.java	2001/08/28 21:28:31	1.4
  +++ ModifyController.java	2001/08/30 17:19:01	1.5
  @@ -5,7 +5,7 @@
    *			companies.
    *
    *  All rights reserved
  - * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/control/ModifyController.java,v 1.4 2001/08/28 21:28:31 mstover1 Exp $
  + * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/control/ModifyController.java,v 1.5 2001/08/30 17:19:01 mstover1 Exp $
    */
   package org.apache.jmeter.control;
   
  @@ -23,8 +23,8 @@
    *  !ToDo (Class description)
    *
    *@author     $Author: mstover1 $
  - *@created    $Date: 2001/08/28 21:28:31 $
  - *@version    $Revision: 1.4 $
  + *@created    $Date: 2001/08/30 17:19:01 $
  + *@version    $Revision: 1.5 $
    ***********************************************************/
   public class ModifyController extends LogicController implements SampleListener,
   		Serializable
  
  
  
  1.9       +0 -0      jakarta-jmeter/src/org/apache/jmeter/engine/ClientJMeterEngine.java
  
  Index: ClientJMeterEngine.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/engine/ClientJMeterEngine.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- ClientJMeterEngine.java	2001/08/28 21:28:31	1.8
  +++ ClientJMeterEngine.java	2001/08/30 17:19:01	1.9
  @@ -67,8 +67,8 @@
    *  !ToDo (Class description)
    *
    *@author     $Author: mstover1 $
  - *@created    $Date: 2001/08/28 21:28:31 $
  - *@version    $Revision: 1.8 $
  + *@created    $Date: 2001/08/30 17:19:01 $
  + *@version    $Revision: 1.9 $
    ***********************************************************/
   public class ClientJMeterEngine implements JMeterEngine
   {
  
  
  
  1.8       +3 -2      jakarta-jmeter/src/org/apache/jmeter/engine/StandardJMeterEngine.java
  
  Index: StandardJMeterEngine.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/engine/StandardJMeterEngine.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- StandardJMeterEngine.java	2001/07/26 00:34:44	1.7
  +++ StandardJMeterEngine.java	2001/08/30 17:19:01	1.8
  @@ -64,8 +64,8 @@
    *  !ToDo (Class description)
    *
    *@author     $Author: mstover1 $
  - *@created    $Date: 2001/07/26 00:34:44 $
  - *@version    $Revision: 1.7 $
  + *@created    $Date: 2001/08/30 17:19:01 $
  + *@version    $Revision: 1.8 $
    ***********************************************************/
   public class StandardJMeterEngine implements JMeterEngine
   {
  @@ -106,6 +106,7 @@
   		while(iter.hasNext())
   		{
   			ThreadGroup group = (ThreadGroup)iter.next();
  +			group.resetThreadCount();
   			threads = new JMeterThread[group.getNumThreads()];
   			for(int i = 0; i < threads.length; i++)
   			{
  
  
  
  1.14      +0 -0      jakarta-jmeter/src/org/apache/jmeter/gui/MenuFactory.java
  
  Index: MenuFactory.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/gui/MenuFactory.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- MenuFactory.java	2001/08/28 21:28:31	1.13
  +++ MenuFactory.java	2001/08/30 17:19:01	1.14
  @@ -67,7 +67,7 @@
    *  Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
    *
    *@author     Michael Stover
  - *@created    $Date: 2001/08/28 21:28:31 $
  + *@created    $Date: 2001/08/30 17:19:01 $
    *@version    1.0
    ***********************************************************/
   
  
  
  
  1.2       +0 -0      jakarta-jmeter/src/org/apache/jmeter/gui/action/AboutCommand.java
  
  Index: AboutCommand.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/gui/action/AboutCommand.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AboutCommand.java	2001/08/28 21:28:31	1.1
  +++ AboutCommand.java	2001/08/30 17:19:01	1.2
  @@ -70,7 +70,7 @@
    * installed protocols, config options, etc.
    *
    * @author <a href="bloritsch@apache.org">Berin Loritsch</a>
  - * @version CVS $Revision: 1.1 $ $Date: 2001/08/28 21:28:31 $
  + * @version CVS $Revision: 1.2 $ $Date: 2001/08/30 17:19:01 $
    */
   
   public class AboutCommand implements Command {
  
  
  
  1.21      +0 -0      jakarta-jmeter/src/org/apache/jmeter/protocol/http/config/UrlConfig.java
  
  Index: UrlConfig.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/config/UrlConfig.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- UrlConfig.java	2001/08/28 21:28:32	1.20
  +++ UrlConfig.java	2001/08/30 17:19:01	1.21
  @@ -66,8 +66,8 @@
    *  Apache Foundation
    *
    *@author     Michael Stover
  - *@created    $Date: 2001/08/28 21:28:32 $
  - *@version    $Revision: 1.20 $
  + *@created    $Date: 2001/08/30 17:19:01 $
  + *@version    $Revision: 1.21 $
    */
   
   public class UrlConfig extends AbstractConfigElement implements Serializable
  
  
  
  1.4       +0 -0      jakarta-jmeter/src/org/apache/jmeter/protocol/http/config/UrlConfigFull.java
  
  Index: UrlConfigFull.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/config/UrlConfigFull.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- UrlConfigFull.java	2001/08/28 21:28:32	1.3
  +++ UrlConfigFull.java	2001/08/30 17:19:01	1.4
  @@ -71,8 +71,8 @@
    *  Apache Foundation
    *
    *@author     Michael Stover
  - *@created    $Date: 2001/08/28 21:28:32 $
  - *@version    $Revision: 1.3 $
  + *@created    $Date: 2001/08/30 17:19:01 $
  + *@version    $Revision: 1.4 $
    */
   
   public class UrlConfigFull extends UrlConfig implements Serializable
  
  
  
  1.12      +1 -103    jakarta-jmeter/src/org/apache/jmeter/protocol/http/control/AuthManager.java
  
  Index: AuthManager.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/control/AuthManager.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- AuthManager.java	2001/08/28 21:28:32	1.11
  +++ AuthManager.java	2001/08/30 17:19:02	1.12
  @@ -5,7 +5,7 @@
    *			companies.
    *
    *  All rights reserved
  - * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/control/AuthManager.java,v 1.11 2001/08/28 21:28:32 mstover1 Exp $
  + * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/control/AuthManager.java,v 1.12 2001/08/30 17:19:02 mstover1 Exp $
    */
   package org.apache.jmeter.protocol.http.control;
   
  @@ -16,6 +16,7 @@
   import org.apache.jmeter.gui.JMeterComponentModel;
   import org.apache.jmeter.config.ConfigElement;
   import org.apache.jmeter.save.Saveable;
  +import org.apache.jmeter.protocol.http.util.Base64Encoder;
   /************************************************************
    *  This class provides a way to provide Authorization in jmeter requests. The
    *  format of the authorization file is: URL user pass where URL is an HTTP URL,
  @@ -23,7 +24,7 @@
    *
    *@author     <a href="mailto:luta.raphael@networks.vivendi.com">Rapha�l Luta
    *      </a>
  - *@created    $Date: 2001/08/28 21:28:32 $
  + *@created    $Date: 2001/08/30 17:19:02 $
    *@version    0.9
    ***********************************************************/
   public class AuthManager implements ConfigElement, JMeterComponentModel, Saveable,
  @@ -391,109 +392,6 @@
   	{
   		return !url.getProtocol().toUpperCase().equals("HTTP") &&
   				!url.getProtocol().toUpperCase().equals("HTTPS");
  -	}
  -}
  -
  -/************************************************************
  - *  This class provides an implementation of Base64 encoding without relying on
  - *  the the sun.* packages.
  - *
  - *@author     $Author: mstover1 $
  - *@created    $Date: 2001/08/28 21:28:32 $
  - *@version    $Revision: 1.11 $
  - ***********************************************************/
  -
  -class Base64Encoder
  -{
  -
  -	private final static char[] pem_array = {65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
  -			75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
  -			85, 86, 87, 88, 89, 90, 97, 98, 99, 100,
  -			101, 102, 103, 104, 105, 106, 107, 108,
  -			109, 110, 111, 112, 113, 114, 115, 116,
  -			117, 118, 119, 120, 121, 122, 48, 49, 50,
  -			51, 52, 53, 54, 55, 56, 57, 43, 47};
  -	private final static char eq = 61;
  -
  -	/************************************************************
  -	 *  !ToDo (Constructor description)
  -	 ***********************************************************/
  -	public Base64Encoder()
  -	{
  -	}
  -
  -	/************************************************************
  -	 *  !ToDo (Method description)
  -	 *
  -	 *@param  s  !ToDo (Parameter description)
  -	 *@return    !ToDo (Return description)
  -	 ***********************************************************/
  -	public final static String encode(String s)
  -	{
  -		return encode(s.getBytes());
  -	}
  -
  -	/************************************************************
  -	 *  !ToDo (Method description)
  -	 *
  -	 *@param  bs  !ToDo (Parameter description)
  -	 *@return     !ToDo (Return description)
  -	 ***********************************************************/
  -	public final static String encode(byte[] bs)
  -	{
  -		StringBuffer out = new StringBuffer("");
  -		int bl = bs.length;
  -		for (int i = 0; i < bl; i += 3)
  -		{
  -			out.append(encodeAtom(bs, i, (bl - i)));
  -		}
  -		return out.toString();
  -	}
  -
  -	/************************************************************
  -	 *  !ToDo (Method description)
  -	 *
  -	 *@param  b     !ToDo (Parameter description)
  -	 *@param  strt  !ToDo (Parameter description)
  -	 *@param  left  !ToDo (Parameter description)
  -	 *@return       !ToDo (Return description)
  -	 ***********************************************************/
  -	public final static String encodeAtom(byte[] b, int strt, int left)
  -	{
  -		StringBuffer out = new StringBuffer("");
  -		if (left == 1)
  -		{
  -			byte b1 = b[strt];
  -			int k = 0;
  -			out.append(String.valueOf(pem_array[b1 >>> 2 & 63]));
  -			out.append(String.valueOf(pem_array[(b1 << 4 & 48) + (k >>> 4 & 15)]));
  -			out.append(String.valueOf(eq));
  -			out.append(String.valueOf(eq));
  -			return out.toString();
  -		}
  -		if (left == 2)
  -		{
  -			byte b2 = b[strt];
  -			byte b4 = b[strt + 1];
  -			int l = 0;
  -			out.append(String.valueOf(pem_array[b2 >>> 2 & 63]));
  -			out.append(String.valueOf(pem_array[(b2 << 4 & 48) + (b4 >>> 4 & 15)]));
  -			out.append(String.valueOf(pem_array[(b4 << 2 & 60) + (l >>> 6 & 3)]));
  -			out.append(String.valueOf(eq));
  -			return out.toString();
  -		}
  -		byte b3 = b[strt];
  -		byte b5 = b[strt + 1];
  -		byte b6 = b[strt + 2];
  -		out.append(String.valueOf(pem_array[b3 >>> 2 & 63]));
  -		out.append(String.valueOf(pem_array[(b3 << 4 & 48) + (b5 >>> 4 & 15)]));
  -		out.append(String.valueOf(pem_array[(b5 << 2 & 60) + (b6 >>> 6 & 3)]));
  -		out.append(String.valueOf(pem_array[b6 & 63]));
  -		return out.toString();
  -	}
  -
  -	static
  -	{
   	}
   }
   
  
  
  
  1.12      +0 -0      jakarta-jmeter/src/org/apache/jmeter/protocol/http/control/CookieManager.java
  
  Index: CookieManager.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/control/CookieManager.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- CookieManager.java	2001/08/28 21:28:32	1.11
  +++ CookieManager.java	2001/08/30 17:19:02	1.12
  @@ -73,7 +73,7 @@
    * pass cookies along with a request.
    *
    * @author  <a href="mailto:sdowd@arcmail.com">Sean Dowd</a>
  - * @version $Revision: 1.11 $ $Date: 2001/08/28 21:28:32 $
  + * @version $Revision: 1.12 $ $Date: 2001/08/30 17:19:02 $
    */
   public class CookieManager implements ConfigElement,JMeterComponentModel,Saveable,
   		Serializable
  
  
  
  1.6       +0 -0      jakarta-jmeter/src/org/apache/jmeter/protocol/http/control/HeaderManager.java
  
  Index: HeaderManager.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/control/HeaderManager.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- HeaderManager.java	2001/08/28 21:28:32	1.5
  +++ HeaderManager.java	2001/08/30 17:19:02	1.6
  @@ -76,7 +76,7 @@
    * pass HTTP headers along with a request.
    *
    * @author  <a href="mailto:giacomo@apache.org">Giacomo Pati</a>
  - * @version $Revision: 1.5 $ $Date: 2001/08/28 21:28:32 $
  + * @version $Revision: 1.6 $ $Date: 2001/08/30 17:19:02 $
    */
   public class HeaderManager implements ConfigElement,JMeterComponentModel,Saveable,
   		Serializable
  
  
  
  1.24      +0 -0      jakarta-jmeter/src/org/apache/jmeter/protocol/http/control/HttpTestSample.java
  
  Index: HttpTestSample.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/control/HttpTestSample.java,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- HttpTestSample.java	2001/08/28 21:28:32	1.23
  +++ HttpTestSample.java	2001/08/30 17:19:02	1.24
  @@ -5,7 +5,7 @@
    *			companies.
    *
    *  All rights reserved
  - * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/control/HttpTestSample.java,v 1.23 2001/08/28 21:28:32 mstover1 Exp $
  + * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/control/HttpTestSample.java,v 1.24 2001/08/30 17:19:02 mstover1 Exp $
    */
   package org.apache.jmeter.protocol.http.control;
   
  @@ -32,7 +32,7 @@
    *  Apache Foundation
    *
    *@author     Michael Stover
  - *@created    $Date: 2001/08/28 21:28:32 $
  + *@created    $Date: 2001/08/30 17:19:02 $
    *@version    1.0
    ***********************************************************/
   
  
  
  
  1.5       +0 -0      jakarta-jmeter/src/org/apache/jmeter/protocol/http/modifier/AnchorModifier.java
  
  Index: AnchorModifier.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/modifier/AnchorModifier.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- AnchorModifier.java	2001/08/28 21:28:32	1.4
  +++ AnchorModifier.java	2001/08/30 17:19:02	1.5
  @@ -5,7 +5,7 @@
    *			companies.
    *
    *  All rights reserved
  - * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/modifier/AnchorModifier.java,v 1.4 2001/08/28 21:28:32 mstover1 Exp $
  + * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/modifier/AnchorModifier.java,v 1.5 2001/08/30 17:19:02 mstover1 Exp $
    */
   package org.apache.jmeter.protocol.http.modifier;
   
  @@ -33,7 +33,7 @@
    *  Apache
    *
    *@author     Michael Stover
  - *@created    $Date: 2001/08/28 21:28:32 $
  + *@created    $Date: 2001/08/30 17:19:02 $
    *@version    1.0
    ***********************************************************/
   
  
  
  
  1.11      +0 -0      jakarta-jmeter/src/org/apache/jmeter/protocol/http/parser/HtmlParser.java
  
  Index: HtmlParser.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/parser/HtmlParser.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- HtmlParser.java	2001/08/28 21:28:32	1.10
  +++ HtmlParser.java	2001/08/30 17:19:02	1.11
  @@ -5,7 +5,7 @@
    *			companies.
    *
    *  All rights reserved
  - * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/parser/HtmlParser.java,v 1.10 2001/08/28 21:28:32 mstover1 Exp $
  + * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/parser/HtmlParser.java,v 1.11 2001/08/30 17:19:02 mstover1 Exp $
    */
   package org.apache.jmeter.protocol.http.parser;
   
  @@ -272,8 +272,8 @@
   	 *  !ToDo (Class description)
   	 *
   	 *@author     $Author: mstover1 $
  -	 *@created    $Date: 2001/08/28 21:28:32 $
  -	 *@version    $Revision: 1.10 $
  +	 *@created    $Date: 2001/08/30 17:19:02 $
  +	 *@version    $Revision: 1.11 $
   	 ***********************************************************/
   	public static class Test extends TestCase
   	{
  
  
  
  1.5       +5 -0      jakarta-jmeter/src/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
  
  Index: ProxyControl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/proxy/ProxyControl.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ProxyControl.java	2001/08/28 21:28:32	1.4
  +++ ProxyControl.java	2001/08/30 17:19:02	1.5
  @@ -22,7 +22,7 @@
    *  Apache Foundation
    *
    *@author     Michael Stover
  - *@created    $Date: 2001/08/28 21:28:32 $
  + *@created    $Date: 2001/08/30 17:19:02 $
    *@version    1.0
    ***********************************************************/
   
  @@ -54,6 +54,11 @@
   	public void setPort(int port)
   	{
   		this.putProperty(PORT, new Integer(port));
  +	}
  +
  +	public Class getTagHandlerClass()
  +	{
  +		return org.apache.jmeter.protocol.http.save.ProxyControlHandler.class;
   	}
   
   	/************************************************************
  
  
  
  1.2       +24 -1     jakarta-jmeter/src/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
  
  Index: ProxyControlGui.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ProxyControlGui.java	2001/07/26 00:34:48	1.1
  +++ ProxyControlGui.java	2001/08/30 17:19:02	1.2
  @@ -18,7 +18,8 @@
    * @version 1.0
    */
   
  -public class ProxyControlGui extends JPanel implements ModelSupported,ActionListener
  +public class ProxyControlGui extends JPanel implements ModelSupported,ActionListener,
  +		KeyListener
   {
   	private static final String STOP = "stop";
   	private static final String START = "start";
  @@ -87,6 +88,8 @@
   	{
   		JPanel panel = new JPanel();
   		panel.add(new JLabel(JMeterUtils.getResString("port")));
  +		portField.setName(ProxyControl.PORT);
  +		portField.addKeyListener(this);
   		portField.setText(""+model.getPort());
   		panel.add(portField);
   		return panel;
  @@ -168,6 +171,26 @@
   		{
   			((JMeterJListModel)includeList.getModel()).clear();
   			model.clearIncludedPatterns();
  +		}
  +	}
  +
  +	public void keyPressed(KeyEvent e)
  +	{
  +	}
  +
  +	public void keyTyped(KeyEvent e)
  +	{
  +	}
  +
  +	public void keyReleased(KeyEvent e)
  +	{
  +		String fieldName = e.getComponent().getName();
  +		if (fieldName.equals(ProxyControl.PORT)) {
  +			try {
  +				model.setPort(Integer.parseInt(portField.getText()));
  +			} catch (NumberFormatException nfe) {
  +				// Ignore
  +			}
   		}
   	}
   }
  
  
  
  1.25      +5 -4      jakarta-jmeter/src/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java
  
  Index: HTTPSampler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- HTTPSampler.java	2001/08/22 23:34:47	1.24
  +++ HTTPSampler.java	2001/08/30 17:19:02	1.25
  @@ -6,7 +6,7 @@
    * companies.
    *
    * All rights reserved
  - * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java,v 1.24 2001/08/22 23:34:47 mstover1 Exp $
  + * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java,v 1.25 2001/08/30 17:19:02 mstover1 Exp $
    */
   package org.apache.jmeter.protocol.http.sampler;
   
  @@ -31,8 +31,8 @@
    *  HTTP requests, including cookies and authentication.
    *
    *@author     Michael Stover
  - *@created    $Date: 2001/08/22 23:34:47 $
  - *@version    $Revision: 1.24 $
  + *@created    $Date: 2001/08/30 17:19:02 $
  + *@version    $Revision: 1.25 $
    */
   public class HTTPSampler implements Sampler
   {
  @@ -463,7 +463,8 @@
   
   	static
   	{
  -		if (!JMeterUtils.getPropDefault("ssl.provider", "none").equals("none"))
  +		if (!JMeterUtils.getPropDefault("ssl.provider", "none").equals("none") &&
  +				!JMeterUtils.getPropDefault("ssl.pkgs","none").equals("none"))
   		{
   			try
   			{
  
  
  
  1.1                  jakarta-jmeter/src/org/apache/jmeter/protocol/http/save/ProxyControlHandler.java
  
  Index: ProxyControlHandler.java
  ===================================================================
  /*
   * ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   * notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   * notice, this list of conditions and the following disclaimer in
   * the documentation and/or other materials provided with the
   * distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   * if any, must include the following acknowledgment:
   * "This product includes software developed by the
   * Apache Software Foundation (http://www.apache.org/)."
   * Alternately, this acknowledgment may appear in the software itself,
   * if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   * "Apache JMeter" must not be used to endorse or promote products
   * derived from this software without prior written permission. For
   * written permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   * "Apache JMeter", nor may "Apache" appear in their name, without
   * prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.jmeter.protocol.http.save;
  
  
  import java.io.*;
  
  import java.util.*;
  
  import org.apache.jmeter.protocol.http.proxy.ProxyControl;
  import org.apache.jmeter.save.*;
  import org.apache.jmeter.save.xml.*;
  import org.apache.jmeter.config.Arguments;
  import org.apache.jmeter.config.Argument;
  import org.xml.sax.Attributes;
  import org.apache.jmeter.save.handlers.AbstractConfigElementHandler;
  import org.apache.jmeter.save.handlers.JMeterHandler;
  
  
  
  /************************************************************
   *  Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
   *
   *@author     Michael Stover
   *@created    June 9, 2001
   *@version    1.0
   ***********************************************************/
  
  
  public class ProxyControlHandler extends AbstractConfigElementHandler
  {
  
  	/************************************************************
  	 *  This is called when a tag is first encountered for this handler class to
  	 *  handle. The attributes of the tag are passed, and the SaveHandler object is
  	 *  expected to instantiate a new object.
  	 *
  	 *@param  atts           The new Atts value
  	 *@exception  Exception  Description of Exception
  	 ***********************************************************/
  	public void setAtts(Attributes atts) throws Exception
  	{
  		String className = atts.getValue("type");
  		config = (ProxyControl)Class.forName(className).newInstance();
  	}
  
  	/************************************************************
  	 *  Gets the tag name that will trigger the use of this object's TagHandler.
  	 *
  	 *@return    The PrimaryTagName value
  	 ***********************************************************/
  	public String getPrimaryTagName()
  	{
  		return "ProxyControl";
  	}
  
  	/************************************************************
  	 *  Called by reflection when the &lt;property&gt; tag is ended.
  	 ***********************************************************/
  	public void propertyTagEnd()
  	{
  		List children = xmlParent.takeChildObjects(this);
  		if(children.size() == 1) {
  			// Include or Exclude list, encapsulated as a set of Arguments
  			Object model = ((TagHandler)children.get(0)).getModel();
  			if (model instanceof Arguments) {
  				Arguments args = (Arguments) model;
  				List list = null;
  				ProxyControl proxy = (ProxyControl) config;
  				if (currentProperty.equals("includes")) {
  					list = proxy.getIncludePatterns();
  				} else if (currentProperty.equals("excludes")) {
  					list = proxy.getExcludePatterns();
  				}
  				if (list != null) {
  					for (Iterator iter = args.iterator(); iter.hasNext(); ) {
  						Argument arg = (Argument) iter.next();
  						list.add(arg.getValue());
  					}
  				}
  			}
  		}
  	}
  
  
  
  	/************************************************************
  	 *  Tells the object to save itself to the given output stream.
  	 *
  	 *@param  obj              Description of Parameter
  	 *@param  out              Description of Parameter
  	 *@exception  IOException  Description of Exception
  	 ***********************************************************/
  	public void save(Saveable obj, Writer out) throws IOException
  	{
  		ProxyControl saved = (ProxyControl)obj;
  		String tagName = getPrimaryTagName();
  		out.write("<" + tagName);
  		out.write(" type=\"");
  		out.write(JMeterHandler.convertToXML(saved.getClass().getName()));
  		out.write("\"");
  		out.write(">\n");
  
  		for (Iterator iter = saved.getPropertyNames().iterator(); iter.hasNext(); ) {
  			String key = (String)iter.next();
  			Object value = saved.getProperty(key);
  			writeProperty(out, key, value);
  		}
  
  		writePatterns(saved.getIncludePatterns(), "includes", out);
  		writePatterns(saved.getExcludePatterns(), "excludes", out);
  
  		out.write("</" + tagName + ">");
  	}
  
  	private void writePatterns(List list, String name, Writer out) throws IOException {
  		Arguments args = new Arguments();
  		int i = 0;
  		for (Iterator iter = list.iterator(); iter.hasNext(); ) {
  			String pattern = (String) iter.next();
  			args.addArgument("arg" + i++, pattern);
  		}
  		writeProperty(out, name, args);
  	}
  }
  
  
  
  1.5       +16 -5     jakarta-jmeter/src/org/apache/jmeter/protocol/http/util/SSLStaticProvider.java
  
  Index: SSLStaticProvider.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/util/SSLStaticProvider.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- SSLStaticProvider.java	2001/07/26 00:34:48	1.4
  +++ SSLStaticProvider.java	2001/08/30 17:19:02	1.5
  @@ -64,17 +64,28 @@
   package org.apache.jmeter.protocol.http.util;
   
   import java.security.Security;
  -import com.sun.net.ssl.internal.ssl.Provider;
  +import java.security.Provider;
  +import org.apache.jmeter.util.JMeterUtils;
   
   public class SSLStaticProvider
   {
   
     public SSLStaticProvider()
     {   // add ssl provider from jsse
  -	 Security.addProvider(new Provider());
  -		  // register https protocol handler with jsse provider
  -	 System.setProperty("java.protocol.handler.pkgs",
  -				"com.sun.net.ssl.internal.www.protocol");
  +	try
  +	{
  +		 Security.addProvider((Provider)Class.forName(
  +				JMeterUtils.getPropDefault(
  +				"ssl_provider","com.sun.net.ssl.internal.ssl.Provider")).newInstance());
  +			  // register https protocol handler with jsse provider
  +		 System.setProperty("java.protocol.handler.pkgs",
  +					JMeterUtils.getPropDefault("ssl.pkgs","com.sun.net.ssl.internal.www.protocol"));
  +	}
  +	catch(Exception e)
  +	{
  +		System.out.println("Initialization of SSL support failed");
  +  }
  +
     }
   
   }
  
  
  
  1.1                  jakarta-jmeter/src/org/apache/jmeter/protocol/http/util/Base64Encoder.java
  
  Index: Base64Encoder.java
  ===================================================================
  /*
   * ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   * notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   * notice, this list of conditions and the following disclaimer in
   * the documentation and/or other materials provided with the
   * distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   * if any, must include the following acknowledgment:
   * "This product includes software developed by the
   * Apache Software Foundation (http://www.apache.org/)."
   * Alternately, this acknowledgment may appear in the software itself,
   * if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   * "Apache JMeter" must not be used to endorse or promote products
   * derived from this software without prior written permission. For
   * written permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   * "Apache JMeter", nor may "Apache" appear in their name, without
   * prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
   package org.apache.jmeter.protocol.http.util;
  
  /************************************************************
   *  This class provides an implementation of Base64 encoding without relying on
   *  the the sun.* packages.
   *
   *@author     $Author: mstover1 $
   *@created    $Date: 2001/08/30 17:19:02 $
   *@version    $Revision: 1.1 $
   ***********************************************************/
  
  public class Base64Encoder
  {
  
  	private final static char[] pem_array = {65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
  			75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
  			85, 86, 87, 88, 89, 90, 97, 98, 99, 100,
  			101, 102, 103, 104, 105, 106, 107, 108,
  			109, 110, 111, 112, 113, 114, 115, 116,
  			117, 118, 119, 120, 121, 122, 48, 49, 50,
  			51, 52, 53, 54, 55, 56, 57, 43, 47};
  	private final static char eq = 61;
  
  	/************************************************************
  	 *  !ToDo (Constructor description)
  	 ***********************************************************/
  	public Base64Encoder()
  	{
  	}
  
  	/************************************************************
  	 *  !ToDo (Method description)
  	 *
  	 *@param  s  !ToDo (Parameter description)
  	 *@return    !ToDo (Return description)
  	 ***********************************************************/
  	public final static String encode(String s)
  	{
  		return encode(s.getBytes());
  	}
  
  	/************************************************************
  	 *  !ToDo (Method description)
  	 *
  	 *@param  bs  !ToDo (Parameter description)
  	 *@return     !ToDo (Return description)
  	 ***********************************************************/
  	public final static String encode(byte[] bs)
  	{
  		StringBuffer out = new StringBuffer("");
  		int bl = bs.length;
  		for (int i = 0; i < bl; i += 3)
  		{
  			out.append(encodeAtom(bs, i, (bl - i)));
  		}
  		return out.toString();
  	}
  
  	/************************************************************
  	 *  !ToDo (Method description)
  	 *
  	 *@param  b     !ToDo (Parameter description)
  	 *@param  strt  !ToDo (Parameter description)
  	 *@param  left  !ToDo (Parameter description)
  	 *@return       !ToDo (Return description)
  	 ***********************************************************/
  	public final static String encodeAtom(byte[] b, int strt, int left)
  	{
  		StringBuffer out = new StringBuffer("");
  		if (left == 1)
  		{
  			byte b1 = b[strt];
  			int k = 0;
  			out.append(String.valueOf(pem_array[b1 >>> 2 & 63]));
  			out.append(String.valueOf(pem_array[(b1 << 4 & 48) + (k >>> 4 & 15)]));
  			out.append(String.valueOf(eq));
  			out.append(String.valueOf(eq));
  			return out.toString();
  		}
  		if (left == 2)
  		{
  			byte b2 = b[strt];
  			byte b4 = b[strt + 1];
  			int l = 0;
  			out.append(String.valueOf(pem_array[b2 >>> 2 & 63]));
  			out.append(String.valueOf(pem_array[(b2 << 4 & 48) + (b4 >>> 4 & 15)]));
  			out.append(String.valueOf(pem_array[(b4 << 2 & 60) + (l >>> 6 & 3)]));
  			out.append(String.valueOf(eq));
  			return out.toString();
  		}
  		byte b3 = b[strt];
  		byte b5 = b[strt + 1];
  		byte b6 = b[strt + 2];
  		out.append(String.valueOf(pem_array[b3 >>> 2 & 63]));
  		out.append(String.valueOf(pem_array[(b3 << 4 & 48) + (b5 >>> 4 & 15)]));
  		out.append(String.valueOf(pem_array[(b5 << 2 & 60) + (b6 >>> 6 & 3)]));
  		out.append(String.valueOf(pem_array[b6 & 63]));
  		return out.toString();
  	}
  
  }
  
  
  
  
  
  1.6       +1 -1      jakarta-jmeter/src/org/apache/jmeter/resources/messages.properties
  
  Index: messages.properties
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/resources/messages.properties,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- messages.properties	2001/08/28 21:28:33	1.5
  +++ messages.properties	2001/08/30 17:19:02	1.6
  @@ -53,4 +53,4 @@
   patterns_to_include=Patterns to Include
   patterns_to_exclude=Patterns to Exclude
   add_pattern=Add Pattern
  -
  +ramp_up=Ramp-Up Period (sec)
  
  
  
  1.6       +0 -0      jakarta-jmeter/src/org/apache/jmeter/samplers/RemoteSampleListenerImpl.java
  
  Index: RemoteSampleListenerImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/samplers/RemoteSampleListenerImpl.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- RemoteSampleListenerImpl.java	2001/08/28 21:28:33	1.5
  +++ RemoteSampleListenerImpl.java	2001/08/30 17:19:03	1.6
  @@ -61,8 +61,8 @@
    *  !ToDo (Class description)
    *
    *@author     $Author: mstover1 $
  - *@created    $Date: 2001/08/28 21:28:33 $
  - *@version    $Revision: 1.5 $
  + *@created    $Date: 2001/08/30 17:19:03 $
  + *@version    $Revision: 1.6 $
    ***********************************************************/
   public class RemoteSampleListenerImpl
   		 extends java.rmi.server.UnicastRemoteObject
  
  
  
  1.12      +0 -0      jakarta-jmeter/src/org/apache/jmeter/samplers/SampleResult.java
  
  Index: SampleResult.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/samplers/SampleResult.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- SampleResult.java	2001/08/28 21:28:33	1.11
  +++ SampleResult.java	2001/08/30 17:19:03	1.12
  @@ -5,7 +5,7 @@
    *			companies.
    *
    *  All rights reserved
  - * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/samplers/SampleResult.java,v 1.11 2001/08/28 21:28:33 mstover1 Exp $
  + * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/samplers/SampleResult.java,v 1.12 2001/08/30 17:19:03 mstover1 Exp $
    */
   package org.apache.jmeter.samplers;
   
  @@ -19,8 +19,8 @@
    *  sample of an entry.
    *
    *@author     $Author: mstover1 $
  - *@created    $Date: 2001/08/28 21:28:33 $
  - *@version    $Revision: 1.11 $
  + *@created    $Date: 2001/08/30 17:19:03 $
  + *@version    $Revision: 1.12 $
    ***********************************************************/
   public class SampleResult implements Serializable
   {
  
  
  
  1.10      +3 -14     jakarta-jmeter/src/org/apache/jmeter/save/handlers/AbstractConfigElementHandler.java
  
  Index: AbstractConfigElementHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/save/handlers/AbstractConfigElementHandler.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- AbstractConfigElementHandler.java	2001/07/26 00:34:50	1.9
  +++ AbstractConfigElementHandler.java	2001/08/30 17:19:03	1.10
  @@ -83,9 +83,9 @@
   public class AbstractConfigElementHandler extends TagHandler
   {
   
  -	private AbstractConfigElement config;
  +	protected AbstractConfigElement config;
   
  -	private String currentProperty;
  +	protected String currentProperty;
   
   
   	/************************************************************
  @@ -169,17 +169,11 @@
   
   	public void property(String data)
   	{
  -
  -
   		if(data != null && data.trim().length() > 0)
   		{
  -
   			config.putProperty(currentProperty, data.trim());
  -
   			currentProperty = null;
  -
   		}
  -
   	}
   
   
  @@ -189,16 +183,11 @@
   
   	public void propertyTagEnd()
   	{
  -
   		List children = xmlParent.takeChildObjects(this);
  -
   		if(children.size() == 1)
   		{
  -
   			config.putProperty(currentProperty, ((TagHandler)children.get(0)).getModel());
  -
   		}
  -
   	}
   
   
  @@ -248,7 +237,7 @@
   	 *@exception  IOException  Description of Exception
   	 ***********************************************************/
   
  -	private void writeProperty(Writer out, String key, Object value) throws IOException
  +	protected void writeProperty(Writer out, String key, Object value) throws IOException
   	{
   
   		out.write("<property name=\"");
  
  
  
  1.11      +11 -2     jakarta-jmeter/src/org/apache/jmeter/save/handlers/ThreadGroupHandler.java
  
  Index: ThreadGroupHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/save/handlers/ThreadGroupHandler.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- ThreadGroupHandler.java	2001/08/16 23:36:57	1.10
  +++ ThreadGroupHandler.java	2001/08/30 17:19:03	1.11
  @@ -5,7 +5,7 @@
    *			companies.
    *
    *  All rights reserved
  - * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/save/handlers/ThreadGroupHandler.java,v 1.10 2001/08/16 23:36:57 mstover1 Exp $
  + * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/save/handlers/ThreadGroupHandler.java,v 1.11 2001/08/30 17:19:03 mstover1 Exp $
    */
   package org.apache.jmeter.save.handlers;
   
  @@ -23,7 +23,7 @@
    *  Title: Description: Copyright: Copyright (c) 2001 Company:
    *
    *@author     Michael Stover
  - *@created    $Date: 2001/08/16 23:36:57 $
  + *@created    $Date: 2001/08/30 17:19:03 $
    *@version    1.0
    ***********************************************************/
   
  @@ -52,6 +52,7 @@
   		try
   		{
   			group.setNumThreads(Integer.parseInt(atts.getValue("numThreads")));
  +			group.setRampUp(Integer.parseInt(atts.getValue("rampUp")));
   		}
   		catch (Exception ex)
   		{
  @@ -93,8 +94,16 @@
   		out.write("<ThreadGroup name=\"");
   		out.write(JMeterHandler.convertToXML(save.getName()));
   		out.write("\" numThreads=\"");
  +
  +		out.write(" numThreads=\"");
   		out.write("" + save.getNumThreads());
   		out.write("\">\n");
  +
  +		out.write(" rampUp=\"");
  +		out.write("" + save.getRampUp());
  +		out.write("\"");
  +
  +		out.write(">\n");
   		Collection controllers = new LinkedList();
   		controllers.add(save.getSamplerController());
   		JMeterHandler.writeControllers(controllers, out);
  
  
  
  1.15      +185 -204  jakarta-jmeter/src/org/apache/jmeter/threads/JMeterThread.java
  
  Index: JMeterThread.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/threads/JMeterThread.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- JMeterThread.java	2001/08/16 23:36:57	1.14
  +++ JMeterThread.java	2001/08/30 17:19:03	1.15
  @@ -1,204 +1,185 @@
  -/*
  - * ====================================================================
  - * The Apache Software License, Version 1.1
  - *
  - * Copyright (c) 2001 The Apache Software Foundation.  All rights
  - * reserved.
  - *
  - * Redistribution and use in source and binary forms, with or without
  - * modification, are permitted provided that the following conditions
  - * are met:
  - *
  - * 1. Redistributions of source code must retain the above copyright
  - * notice, this list of conditions and the following disclaimer.
  - *
  - * 2. Redistributions in binary form must reproduce the above copyright
  - * notice, this list of conditions and the following disclaimer in
  - * the documentation and/or other materials provided with the
  - * distribution.
  - *
  - * 3. The end-user documentation included with the redistribution,
  - * if any, must include the following acknowledgment:
  - * "This product includes software developed by the
  - * Apache Software Foundation (http://www.apache.org/)."
  - * Alternately, this acknowledgment may appear in the software itself,
  - * if and wherever such third-party acknowledgments normally appear.
  - *
  - * 4. The names "Apache" and "Apache Software Foundation" and
  - * "Apache JMeter" must not be used to endorse or promote products
  - * derived from this software without prior written permission. For
  - * written permission, please contact apache@apache.org.
  - *
  - * 5. Products derived from this software may not be called "Apache",
  - * "Apache JMeter", nor may "Apache" appear in their name, without
  - * prior written permission of the Apache Software Foundation.
  - *
  - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  - * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  - * SUCH DAMAGE.
  - * ====================================================================
  - *
  - * This software consists of voluntary contributions made by many
  - * individuals on behalf of the Apache Software Foundation.  For more
  - * information on the Apache Software Foundation, please see
  - * <http://www.apache.org/>.
  - */
  - package org.apache.jmeter.threads;
  -
  -import java.util.*;
  -
  -import org.apache.jmeter.samplers.SampleListener;
  -import org.apache.jmeter.control.NoEntryException;
  -import org.apache.jmeter.timers.Timer;
  -import org.apache.jmeter.control.SamplerController;
  -import org.apache.jmeter.samplers.SampleEvent;
  -import org.apache.jmeter.samplers.Sampler;
  -import org.apache.jmeter.samplers.SampleResult;
  -import org.apache.jmeter.samplers.*;
  -import org.apache.jmeter.assertions.*;
  -
  -/************************************************************
  - *  The JMeter interface to the sampling process, allowing JMeter to see the
  - *  timing, add listeners for sampling events and to stop the sampling process.
  - *
  - *@author     $Author: mstover1 $
  - *@created    $Date: 2001/08/16 23:36:57 $
  - *@version    $Revision: 1.14 $
  - ***********************************************************/
  -public class JMeterThread implements Runnable, java.io.Serializable
  -{
  -
  -	ThreadGroup group;
  -	Collection listeners;
  -	List timers;
  -	SamplerController controller;
  -	private boolean running;
  -	static Map samplers = new HashMap();
  -
  -	/************************************************************
  -	 *  !ToDo (Constructor description)
  -	 ***********************************************************/
  -	public JMeterThread()
  -	{
  -	}
  -
  -	/************************************************************
  -	 *  !ToDo (Constructor description)
  -	 *
  -	 *@param  group  !ToDo (Parameter description)
  -	 ***********************************************************/
  -	public JMeterThread(ThreadGroup group)
  -	{
  -		this.group = group;
  -		running = true;
  -	}
  -
  -	/************************************************************
  -	 *  !ToDo (Method description)
  -	 ***********************************************************/
  -	public void run()
  -	{
  -		running = true;
  -		timers = group.getTimers();
  -		controller = (SamplerController)group.getSamplerController().clone();
  -		listeners = controller.getListeners();
  -		Entry entry = null;
  -		while (running)
  -		{
  -			if(!((entry = controller.nextEntry()) instanceof CycleEntry))
  -			{
  -				delay(timers);
  -				if (entry == null)
  -				{
  -					running = false;
  -					break;
  -				}
  -				Sampler sampler = null;
  -				try
  -				{
  -					sampler = getSampler(entry);
  -				}
  -				catch (Exception ex)
  -				{
  -					ex.printStackTrace();
  -					running = false;
  -				}
  -				SampleResult result = sampler.sample(entry);
  -				checkAssertions(entry,result);
  -				notifyListeners(result);
  -			}
  -		}
  -	}
  -
  -	private void checkAssertions(Entry entry,SampleResult result)
  -	{
  -		Iterator iter = entry.getAssertions().iterator();
  -		List resultList = new LinkedList();
  -		while(iter.hasNext())
  -		{
  -			resultList.add(((Assertion)iter.next()).getResult(result));
  -		}
  -		result.putValue(SampleResult.ASSERTION_RESULTS,resultList);
  -	}
  -
  -	/************************************************************
  -	 *  !ToDo (Method description)
  -	 ***********************************************************/
  -	public void stop()
  -	{
  -		running = false;
  -	}
  -
  -	private Sampler getSampler(Entry entry) throws Exception
  -	{
  -		Class sClass = entry.getSamplerClass();
  -		Sampler sampler = (Sampler)samplers.get(sClass);
  -		if (sampler == null)
  -		{
  -			sampler = (Sampler)sClass.newInstance();
  -			samplers.put(sClass, sampler);
  -		}
  -		return sampler;
  -	}
  -
  -	private void delay(List timers)
  -	{
  -		int sum = 0;
  -		Iterator iter = timers.iterator();
  -		while (iter.hasNext())
  -		{
  -			sum += ((Timer)iter.next()).delay();
  -		}
  -		try
  -		{
  -			Thread.sleep(sum);
  -		}
  -		catch (InterruptedException e)
  -		{
  -			e.printStackTrace();
  -		}
  -	}
  -
  -	private void notifyListeners(SampleResult result)
  -	{
  -		SampleEvent event = new SampleEvent(result, group.getName());
  -		Iterator iter = listeners.iterator();
  -		while (iter.hasNext())
  -		{
  -			SampleListener item = (SampleListener)iter.next();
  -			item.sampleOccurred(event);
  -		}
  -		group.sampleOccurred(event);
  -	}
  -
  -}
  -
  +/* Project: Mako
  + *  Copyright (c) Xerox Corporation 1999-2001. All rights reserved.  Xerox, The
  + *			Document Company, and the stylized X are trademarks of the Xerox
  + *			Corporation. All other products are trademarks of their respective
  + *			companies.
  + *
  + *  All rights reserved
  + * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/threads/JMeterThread.java,v 1.15 2001/08/30 17:19:03 mstover1 Exp $
  + */
  +package org.apache.jmeter.threads;
  +
  +import java.util.*;
  +
  +import org.apache.jmeter.samplers.SampleListener;
  +import org.apache.jmeter.control.NoEntryException;
  +import org.apache.jmeter.timers.Timer;
  +import org.apache.jmeter.control.SamplerController;
  +import org.apache.jmeter.samplers.SampleEvent;
  +import org.apache.jmeter.samplers.Sampler;
  +import org.apache.jmeter.samplers.SampleResult;
  +import org.apache.jmeter.samplers.*;
  +import org.apache.jmeter.assertions.*;
  +
  +/************************************************************
  + *  The JMeter interface to the sampling process, allowing JMeter to see the
  + *  timing, add listeners for sampling events and to stop the sampling process.
  + *
  + *@author     $Author: mstover1 $
  + *@created    $Date: 2001/08/30 17:19:03 $
  + *@version    $Revision: 1.15 $
  + ***********************************************************/
  +public class JMeterThread implements Runnable, java.io.Serializable
  +{
  +
  +	ThreadGroup group;
  +	Collection listeners;
  +	List timers;
  +	SamplerController controller;
  +	private boolean running;
  +	private int threadNumberInGroup;
  +	static Map samplers = new HashMap();
  +
  +	/************************************************************
  +	 *  !ToDo (Constructor description)
  +	 ***********************************************************/
  +	public JMeterThread()
  +	{
  +	}
  +
  +	/************************************************************
  +	 *  !ToDo (Constructor description)
  +	 *
  +	 *@param  group  !ToDo (Parameter description)
  +	 ***********************************************************/
  +	public JMeterThread(ThreadGroup group)
  +	{
  +		this.group = group;
  +		running = true;
  +		threadNumberInGroup = group.threadNumber();
  +	}
  +
  +	/************************************************************
  +	 *  !ToDo (Method description)
  +	 ***********************************************************/
  +	public void run()
  +	{
  +		running = true;
  +		timers = group.getTimers();
  +		controller = (SamplerController)group.getSamplerController().clone();
  +		listeners = controller.getListeners();
  +		Entry entry = null;
  +		rampUpDelay();
  +		while (running)
  +		{
  +			if (!((entry = controller.nextEntry()) instanceof CycleEntry))
  +			{
  +				delay(timers);
  +				if (entry == null)
  +				{
  +					running = false;
  +					break;
  +				}
  +				Sampler sampler = null;
  +				try
  +				{
  +					sampler = getSampler(entry);
  +				}
  +				catch (Exception ex)
  +				{
  +					ex.printStackTrace();
  +					running = false;
  +				}
  +				SampleResult result = sampler.sample(entry);
  +				checkAssertions(entry, result);
  +				notifyListeners(result);
  +			}
  +		}
  +	}
  +
  +	/************************************************************
  +	 *  !ToDo (Method description)
  +	 ***********************************************************/
  +	public void stop()
  +	{
  +		running = false;
  +	}
  +
  +	private Sampler getSampler(Entry entry) throws Exception
  +	{
  +		Class sClass = entry.getSamplerClass();
  +		Sampler sampler = (Sampler)samplers.get(sClass);
  +		if (sampler == null)
  +		{
  +			sampler = (Sampler)sClass.newInstance();
  +			samplers.put(sClass, sampler);
  +		}
  +		return sampler;
  +	}
  +
  +	private void checkAssertions(Entry entry, SampleResult result)
  +	{
  +		Iterator iter = entry.getAssertions().iterator();
  +		List resultList = new LinkedList();
  +		while (iter.hasNext())
  +		{
  +			resultList.add(((Assertion)iter.next()).getResult(result));
  +		}
  +		result.putValue(SampleResult.ASSERTION_RESULTS, resultList);
  +	}
  +
  +	private void delay(List timers)
  +	{
  +		int sum = 0;
  +		Iterator iter = timers.iterator();
  +		while (iter.hasNext())
  +		{
  +			sum += ((Timer)iter.next()).delay();
  +		}
  +		try
  +		{
  +			Thread.sleep(sum);
  +		}
  +		catch (InterruptedException e)
  +		{
  +			e.printStackTrace();
  +		}
  +	}
  +
  +	private void notifyListeners(SampleResult result)
  +	{
  +		SampleEvent event = new SampleEvent(result, group.getName());
  +		Iterator iter = listeners.iterator();
  +		while (iter.hasNext())
  +		{
  +			SampleListener item = (SampleListener)iter.next();
  +			item.sampleOccurred(event);
  +		}
  +		group.sampleOccurred(event);
  +	}
  +
  +	/**
  +	 * Initial delay if ramp-up period is active for this group
  +	 */
  +	private void rampUpDelay()
  +	{
  +		int rampUpMs = group.getRampUp() * 1000;
  +		int threads = group.getNumThreads();
  +		if (rampUpMs > 0 && threads > 0)
  +		{
  +			int delayPerThread = rampUpMs / threads;
  +			int initialDelay = delayPerThread * threadNumberInGroup;
  +			try
  +			{
  +				Thread.sleep(initialDelay);
  +				System.out.println("Thread #" + (threadNumberInGroup + 1) + " of " + threads + " now active.");
  +			}
  +			catch (InterruptedException e)
  +			{
  +				e.printStackTrace();
  +			}
  +		}
  +	}
  +
  +}
  +
  
  
  
  1.15      +32 -0     jakarta-jmeter/src/org/apache/jmeter/threads/ThreadGroup.java
  
  Index: ThreadGroup.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/threads/ThreadGroup.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- ThreadGroup.java	2001/08/28 21:28:33	1.14
  +++ ThreadGroup.java	2001/08/30 17:19:03	1.15
  @@ -73,7 +73,7 @@
    *  Apache Foundation
    *
    *@author     Michael Stover
  - *@created    $Date: 2001/08/28 21:28:33 $
  + *@created    $Date: 2001/08/30 17:19:03 $
    *@version    1.0
    ***********************************************************/
   
  @@ -87,6 +87,8 @@
   	List timers = new LinkedList();
   	private String name;
   	private SampleQueue queue = null;
  +	int rampUp = 0;
  +	private int threadsStarted = 0;
   
   	private static List addableList;
   
  @@ -149,10 +151,35 @@
   	}
   
   	/************************************************************
  +	 *  !ToDo (Method aadescription)
  +	 *
  +	 *@param  rampUp  !ToDo (Parameter description)
  +	 ***********************************************************/
  +	public void setRampUp(int rampUp)
  +	{
  +		this.rampUp = rampUp;
  +	}
  +
  +	/************************************************************
   	 *  !ToDoo (Method description)
   	 *
   	 *@return    !ToDo (Return description)
   	 ***********************************************************/
  +	public int getRampUp()
  +	{
  +		return this.rampUp;
  +	}
  +
  +	public synchronized int threadNumber()
  +	{
  +		return threadsStarted++;
  +	}
  +
  +	/************************************************************
  +	 *  !ToDoo (Method description)
  +	 *
  +	 *@return    !ToDo (Return description)
  +	 ***********************************************************/
   	public SamplerController getSamplerController()
   	{
   		return this.control;
  @@ -173,6 +200,11 @@
   	{
   		return this.numThreads;
   	}
  +
  +	public synchronized void resetThreadCount()
  +		{
  +		threadsStarted = 0;
  +		}
   
   	/************************************************************
   	 *  !ToDoo (Method description)
  
  
  
  1.7       +160 -150  jakarta-jmeter/src/org/apache/jmeter/threads/gui/ThreadGroupGui.java
  
  Index: ThreadGroupGui.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/threads/gui/ThreadGroupGui.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ThreadGroupGui.java	2001/07/26 00:34:51	1.6
  +++ ThreadGroupGui.java	2001/08/30 17:19:03	1.7
  @@ -1,150 +1,160 @@
  -/*
  - * ====================================================================
  - * The Apache Software License, Version 1.1
  - *
  - * Copyright (c) 2001 The Apache Software Foundation.  All rights
  - * reserved.
  - *
  - * Redistribution and use in source and binary forms, with or without
  - * modification, are permitted provided that the following conditions
  - * are met:
  - *
  - * 1. Redistributions of source code must retain the above copyright
  - * notice, this list of conditions and the following disclaimer.
  - *
  - * 2. Redistributions in binary form must reproduce the above copyright
  - * notice, this list of conditions and the following disclaimer in
  - * the documentation and/or other materials provided with the
  - * distribution.
  - *
  - * 3. The end-user documentation included with the redistribution,
  - * if any, must include the following acknowledgment:
  - * "This product includes software developed by the
  - * Apache Software Foundation (http://www.apache.org/)."
  - * Alternately, this acknowledgment may appear in the software itself,
  - * if and wherever such third-party acknowledgments normally appear.
  - *
  - * 4. The names "Apache" and "Apache Software Foundation" and
  - * "Apache JMeter" must not be used to endorse or promote products
  - * derived from this software without prior written permission. For
  - * written permission, please contact apache@apache.org.
  - *
  - * 5. Products derived from this software may not be called "Apache",
  - * "Apache JMeter", nor may "Apache" appear in their name, without
  - * prior written permission of the Apache Software Foundation.
  - *
  - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  - * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  - * SUCH DAMAGE.
  - * ====================================================================
  - *
  - * This software consists of voluntary contributions made by many
  - * individuals on behalf of the Apache Software Foundation.  For more
  - * information on the Apache Software Foundation, please see
  - * <http://www.apache.org/>.
  - */
  - package org.apache.jmeter.threads.gui;
  -
  -import javax.swing.*;
  -import java.awt.event.*;
  -
  -import org.apache.jmeter.gui.*;
  -import org.apache.jmeter.threads.ThreadGroup;
  -import org.apache.jmeter.util.JMeterUtils;
  -
  -/**
  - * Title:        JMeter
  - * Description:
  - * Copyright:    Copyright (c) 2000
  - * Company:      Apache
  - * @author Michael Stover
  - * @version 1.0
  - */
  -
  -public class ThreadGroupGui extends JPanel implements ModelSupported,KeyListener
  -{
  -
  -	ThreadGroup model;
  -	LoopControlPanel loopPanel;
  -
  -	private JLabel nameLabel = new JLabel(JMeterUtils.getResString("name"));
  -	private JTextField nameInput = new JTextField(30);
  -	private JLabel threadLabel = new JLabel(JMeterUtils.getResString("number_of_threads"));
  -	private JTextField threadInput = new JTextField(5);
  -
  -	public ThreadGroupGui()
  -	{
  -	}
  -
  -	public void setModel(Object model)
  -	{
  -		this.model = (ThreadGroup)model;
  -		init();
  -	}
  -
  -	public void updateGui()
  -	{
  -		if(model != null)
  -		{
  -			nameInput.setText(model.getName());
  -			threadInput.setText(""+model.getNumThreads());
  -			loopPanel.updateGui();
  -		}
  -	}
  -
  -	private void init()
  -	{
  -		nameInput.addKeyListener(this);
  -		threadInput.addKeyListener(this);
  -		nameInput.setName(NAME_FIELD);
  -		threadInput.setName("Number Threads");
  -		this.setLayout(new VerticalLayout(2,VerticalLayout.LEFT,VerticalLayout.TOP));
  -		JPanel namePanel = new JPanel();
  -		namePanel.add(nameLabel);
  -		namePanel.add(nameInput);
  -		this.add(namePanel);
  -
  -		JPanel threadPanel = new JPanel();
  -		threadPanel.add(threadLabel);
  -		threadPanel.add(threadInput);
  -		this.add(threadPanel);
  -		this.add(createControllerPanel());
  -	}
  -
  -	public JPanel createControllerPanel()
  -	{
  -		loopPanel = new LoopControlPanel(false);
  -		loopPanel.setModel(model.getSamplerController());
  -		return loopPanel;
  -	}
  -
  -	public void keyReleased(KeyEvent e)
  -		{
  -			String field = e.getComponent().getName();
  -			if(field.equals(NAME_FIELD))
  -			{
  -				model.setName(nameInput.getText());
  -			}
  -			else
  -			{
  -				model.setNumThreads(Integer.parseInt(threadInput.getText()));
  -			}
  -		}
  -
  -		public void keyTyped(KeyEvent e)
  -		{
  -		}
  -
  -		public void keyPressed(KeyEvent e)
  -		{
  -		}
  -}
  \ No newline at end of file
  +/* Project: Mako
  + *  Copyright (c) Xerox Corporation 1999-2001. All rights reserved.  Xerox, The
  + *			Document Company, and the stylized X are trademarks of the Xerox
  + *			Corporation. All other products are trademarks of their respective
  + *			companies.
  + *
  + *  All rights reserved
  + * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/threads/gui/ThreadGroupGui.java,v 1.7 2001/08/30 17:19:03 mstover1 Exp $
  + */
  +package org.apache.jmeter.threads.gui;
  +
  +import javax.swing.*;
  +import java.awt.event.*;
  +
  +import org.apache.jmeter.gui.*;
  +import org.apache.jmeter.threads.ThreadGroup;
  +import org.apache.jmeter.util.JMeterUtils;
  +
  +/************************************************************
  + *  Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
  + *
  + *@author     Michael Stover
  + *@created    $Date: 2001/08/30 17:19:03 $
  + *@version    1.0
  + ***********************************************************/
  +
  +public class ThreadGroupGui extends JPanel implements ModelSupported, KeyListener
  +{
  +
  +	ThreadGroup model;
  +	LoopControlPanel loopPanel;
  +
  +	private JLabel nameLabel = new JLabel(JMeterUtils.getResString("name"));
  +	private JTextField nameInput = new JTextField(30);
  +	private JLabel threadLabel = new JLabel(JMeterUtils.getResString("number_of_threads"));
  +	private JLabel rampLabel = new JLabel(JMeterUtils.getResString("ramp_up"));
  +	private JTextField threadInput = new JTextField(5);
  +	private JTextField rampInput = new JTextField(5);
  +	private final static String THREAD_NAME = "Number Threads";
  +	private final static String RAMP_NAME = "Ramp-Up";
  +
  +	/************************************************************
  +	 *  !ToDo (Constructor description)
  +	 ***********************************************************/
  +	public ThreadGroupGui()
  +	{
  +	}
  +
  +	/************************************************************
  +	 *  !ToDo (Method description)
  +	 *
  +	 *@param  model  !ToDo (Parameter description)
  +	 ***********************************************************/
  +	public void setModel(Object model)
  +	{
  +		this.model = (ThreadGroup)model;
  +		init();
  +	}
  +
  +	/************************************************************
  +	 *  !ToDo (Method description)
  +	 ***********************************************************/
  +	public void updateGui()
  +	{
  +		if (model != null)
  +		{
  +			nameInput.setText(model.getName());
  +			threadInput.setText("" + model.getNumThreads());
  +			rampInput.setText("" + model.getRampUp());
  +			loopPanel.updateGui();
  +		}
  +	}
  +
  +	/************************************************************
  +	 *  !ToDo (Method description)
  +	 *
  +	 *@return    !ToDo (Return description)
  +	 ***********************************************************/
  +	public JPanel createControllerPanel()
  +	{
  +		loopPanel = new LoopControlPanel(false);
  +		loopPanel.setModel(model.getSamplerController());
  +		return loopPanel;
  +	}
  +
  +	/************************************************************
  +	 *  !ToDo (Method description)
  +	 *
  +	 *@param  e  !ToDo (Parameter description)
  +	 ***********************************************************/
  +	public void keyReleased(KeyEvent e)
  +	{
  +		String field = e.getComponent().getName();
  +		if (field.equals(NAME_FIELD))
  +		{
  +			model.setName(nameInput.getText());
  +		}
  +		else if (field.equals(THREAD_NAME))
  +		{
  +			model.setNumThreads(Integer.parseInt(threadInput.getText()));
  +		}
  +		else if (field.equals(RAMP_NAME))
  +		{
  +			try
  +			{
  +				model.setRampUp(Integer.parseInt(rampInput.getText()));
  +			}
  +			catch (NumberFormatException nfe)
  +			{
  +				// Ignore - only set value if valid
  +			}
  +		}
  +
  +	}
  +
  +	/************************************************************
  +	 *  !ToDo (Method description)
  +	 *
  +	 *@param  e  !ToDo (Parameter description)
  +	 ***********************************************************/
  +	public void keyTyped(KeyEvent e)
  +	{
  +	}
  +
  +	/************************************************************
  +	 *  !ToDo (Method description)
  +	 *
  +	 *@param  e  !ToDo (Parameter description)
  +	 ***********************************************************/
  +	public void keyPressed(KeyEvent e)
  +	{
  +	}
  +
  +	private void init()
  +	{
  +		nameInput.addKeyListener(this);
  +		threadInput.addKeyListener(this);
  +		rampInput.addKeyListener(this);
  +		nameInput.setName(NAME_FIELD);
  +		threadInput.setName(THREAD_NAME);
  +		rampInput.setName(RAMP_NAME);
  +		this.setLayout(new VerticalLayout(2, VerticalLayout.LEFT, VerticalLayout.TOP));
  +		JPanel namePanel = new JPanel();
  +		namePanel.add(nameLabel);
  +		namePanel.add(nameInput);
  +		this.add(namePanel);
  +
  +		JPanel threadPanel = new JPanel();
  +		threadPanel.add(threadLabel);
  +		threadPanel.add(threadInput);
  +		this.add(threadPanel);
  +
  +		JPanel rampPanel = new JPanel();
  +		rampPanel.add(rampLabel);
  +		rampPanel.add(rampInput);
  +		this.add(rampPanel);
  +
  +		this.add(createControllerPanel());
  +	}
  +}
  
  
  
  1.15      +0 -0      jakarta-jmeter/src/org/apache/jmeter/timers/ConstantTimer.java
  
  Index: ConstantTimer.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/timers/ConstantTimer.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- ConstantTimer.java	2001/08/28 21:28:33	1.14
  +++ ConstantTimer.java	2001/08/30 17:19:03	1.15
  @@ -5,7 +5,7 @@
    *			companies.
    *
    *  All rights reserved
  - * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/timers/ConstantTimer.java,v 1.14 2001/08/28 21:28:33 mstover1 Exp $
  + * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/timers/ConstantTimer.java,v 1.15 2001/08/30 17:19:03 mstover1 Exp $
    */
   package org.apache.jmeter.timers;
   
  @@ -25,8 +25,8 @@
    *  value update and user interaction.
    *
    *@author     <a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>
  - *@created    $Date: 2001/08/28 21:28:33 $
  - *@version    $Revision: 1.14 $ $Date: 2001/08/28 21:28:33 $
  + *@created    $Date: 2001/08/30 17:19:03 $
  + *@version    $Revision: 1.15 $ $Date: 2001/08/30 17:19:03 $
    ***********************************************************/
   
   public class ConstantTimer implements Timer, JMeterComponentModel, Saveable,
  
  
  
  1.12      +0 -0      jakarta-jmeter/src/org/apache/jmeter/timers/GaussianRandomTimer.java
  
  Index: GaussianRandomTimer.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/timers/GaussianRandomTimer.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- GaussianRandomTimer.java	2001/08/28 21:28:33	1.11
  +++ GaussianRandomTimer.java	2001/08/30 17:19:03	1.12
  @@ -66,7 +66,7 @@
    * an average value and a gaussian distributed variation.
    *
    * @author  <a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>
  - * @version $Revision: 1.11 $ $Date: 2001/08/28 21:28:33 $
  + * @version $Revision: 1.12 $ $Date: 2001/08/30 17:19:03 $
    */
   public class GaussianRandomTimer extends RandomTimer implements JMeterComponentModel,
   		Serializable
  
  
  
  1.14      +0 -0      jakarta-jmeter/src/org/apache/jmeter/timers/RandomTimer.java
  
  Index: RandomTimer.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/timers/RandomTimer.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- RandomTimer.java	2001/08/28 21:28:33	1.13
  +++ RandomTimer.java	2001/08/30 17:19:03	1.14
  @@ -5,7 +5,7 @@
    *			companies.
    *
    *  All rights reserved
  - * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/timers/RandomTimer.java,v 1.13 2001/08/28 21:28:33 mstover1 Exp $
  + * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/timers/RandomTimer.java,v 1.14 2001/08/30 17:19:03 mstover1 Exp $
    */
   package org.apache.jmeter.timers;
   
  @@ -23,8 +23,8 @@
    *  method, is abstract and must be extended to provide full functionality.
    *
    *@author     <a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>
  - *@created    $Date: 2001/08/28 21:28:33 $
  - *@version    $Revision: 1.13 $ $Date: 2001/08/28 21:28:33 $
  + *@created    $Date: 2001/08/30 17:19:03 $
  + *@version    $Revision: 1.14 $ $Date: 2001/08/30 17:19:03 $
    ***********************************************************/
   
   public abstract class RandomTimer implements Timer,
  
  
  
  1.12      +0 -0      jakarta-jmeter/src/org/apache/jmeter/timers/UniformRandomTimer.java
  
  Index: UniformRandomTimer.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/timers/UniformRandomTimer.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- UniformRandomTimer.java	2001/08/28 21:28:33	1.11
  +++ UniformRandomTimer.java	2001/08/30 17:19:03	1.12
  @@ -66,7 +66,7 @@
    * an average value and a uniformly distributed variation.
    *
    * @author  <a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>
  - * @version $Revision: 1.11 $ $Date: 2001/08/28 21:28:33 $
  + * @version $Revision: 1.12 $ $Date: 2001/08/30 17:19:03 $
    */
   public class UniformRandomTimer extends RandomTimer implements JMeterComponentModel,
   		Serializable
  
  
  
  1.13      +0 -0      jakarta-jmeter/src/org/apache/jmeter/util/ClassFinder.java
  
  Index: ClassFinder.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/util/ClassFinder.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- ClassFinder.java	2001/08/28 21:28:33	1.12
  +++ ClassFinder.java	2001/08/30 17:19:03	1.13
  @@ -5,7 +5,7 @@
    *			companies.
    *
    *  All rights reserved
  - * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/util/ClassFinder.java,v 1.12 2001/08/28 21:28:33 mstover1 Exp $
  + * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/util/ClassFinder.java,v 1.13 2001/08/30 17:19:03 mstover1 Exp $
    */
   package org.apache.jmeter.util;
   
  @@ -811,8 +811,8 @@
   	 *  !ToDo (Class description)
   	 *
   	 *@author     $Author: mstover1 $
  -	 *@created    $Date: 2001/08/28 21:28:33 $
  -	 *@version    $Revision: 1.12 $
  +	 *@created    $Date: 2001/08/30 17:19:03 $
  +	 *@version    $Revision: 1.13 $
   	 ***********************************************************/
   	public static class Test extends TestCase
   	{
  
  
  
  1.3       +0 -0      jakarta-jmeter/xdocs/running.xml
  
  Index: running.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/xdocs/running.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- running.xml	2001/08/28 21:28:33	1.2
  +++ running.xml	2001/08/30 17:19:03	1.3
  @@ -50,7 +50,7 @@
   
   <p align="center"><font size="-1">Copyright (c) 1998-99 <a href="http://java.apache.org">The Java Apache
   Project</a>.<br/>
  -$Id: running.xml,v 1.2 2001/08/28 21:28:33 mstover1 Exp $</font> <br/>
  +$Id: running.xml,v 1.3 2001/08/30 17:19:03 mstover1 Exp $</font> <br/>
   <font size="-1">All rights reserved.</font></p>
   </section>
   </body>
  
  
  
  1.4       +1 -4      jakarta-jmeter/xdocs/user_manual/proxy_server.xml
  
  Index: proxy_server.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/xdocs/user_manual/proxy_server.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- proxy_server.xml	2001/08/28 21:28:34	1.3
  +++ proxy_server.xml	2001/08/30 17:19:03	1.4
  @@ -47,8 +47,6 @@
   not.</p>
   <p>
   When you are ready to begin, hit &quot;start&quot;.</p>
  -<p>
  -Currently, the Proxy Server does not save these settings when saved to file.</p>
   </section>
   <section name="Where do the samples get recorded to?">
   <p>
  @@ -57,8 +55,7 @@
   Url Sample element with domain or path settings, then your Web Test controllers will be created with blank domain and/or path settings (provided
   they match, of course).  This allows you to simply create test plans with a single top level config element to control which server name is
   being tested.<br/>
  -If there are no Simple Controllers in your test plan, then the Web Test controllers will be generated directly under the ThreadGroup
  -object in your tree.
  +If there are no Simple Controllers in your test plan, then no samples will be recorded.
   </p>
   </section>
   <section name="All Done">
  
  
  
  1.3       +15 -0     jakarta-jmeter/xdocs/user_manual/threadgroups.xml
  
  Index: threadgroups.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/xdocs/user_manual/threadgroups.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- threadgroups.xml	2001/08/02 22:27:33	1.2
  +++ threadgroups.xml	2001/08/30 17:19:03	1.3
  @@ -65,6 +65,21 @@
   multiple different servers with only a single change.  Additionally, its always best to put the CookieManager element at
   the ThreadGroup level so that all test samples will share the same cookies.
   </p>
  +</section>
  +<section name="Ramp-Up">
  +<p>
  +A ThreadGroup can have a <i>ramp-up</i> period associated with it, to provide a way to gradually increase
  +the simulated load.  The default value of the ramp-up parameter is zero.  With this setting, the number of threads
  +specified for the ThreadGroup are all started immediately when the test begins.
  +</p>
  +
  +<p>
  +If the ramp-up parameter is set to a value greater than zero, the threads are started one at a time, spaced evenly
  +over the ramp-up period.  The first thread is started immediately, at time=zero.  After that, another thread is started
  +every &lt;rampUp&gt; / &lt;numThreads&gt; seconds.  After &lt;rampUp&gt; seconds have elapsed, all threads will be running.
  +</p>
  +
  +
   
   </section>
   </body>
  
  
  

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