khammond    01/10/07 08:37:06

  Modified:    src/org/apache/jmeter/protocol/http/control
                        HttpTestSample.java
  Log:
  Added logic. Now supports retrieval of images for multipart form requests.
  
  Revision  Changes    Path
  1.26      +277 -286  
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.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- HttpTestSample.java       2001/08/31 00:46:44     1.25
  +++ HttpTestSample.java       2001/10/07 15:37:06     1.26
  @@ -1,286 +1,277 @@
  -/*
  - * ====================================================================
  - * 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 [EMAIL PROTECTED]
  - *
  - * 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.control;
  -
  -import java.util.*;
  -import java.io.*;
  -
  -import org.apache.jmeter.config.ConfigElement;
  -import org.apache.jmeter.protocol.http.config.*;
  -import org.apache.jmeter.protocol.http.config.MultipartUrlConfig;
  -import org.apache.jmeter.control.GenericController;
  -import org.apache.jmeter.control.NoEntryException;
  -import org.apache.jmeter.samplers.SampleResult;
  -import org.apache.jmeter.protocol.http.sampler.*;
  -import org.apache.jmeter.control.SamplerController;
  -import org.apache.jmeter.samplers.*;
  -import org.apache.jmeter.gui.JMeterComponentModel;
  -import org.apache.jmeter.gui.MenuFactory;
  -
  -import org.apache.log4j.*;
  -import org.apache.jmeter.control.AbstractGenerativeController;
  -
  -/************************************************************
  - *  Title: Apache JMeter Description: Copyright: Copyright (c) 2000 Company:
  - *  Apache Foundation
  - *
  - *@author     Michael Stover
  - *@created    $Date: 2001/08/31 00:46:44 $
  - *@version    1.0
  - ***********************************************************/
  -
  -public class HttpTestSample extends AbstractGenerativeController implements 
JMeterComponentModel,
  -             Serializable
  -{
  -     private UrlConfig defaultUrl;
  -     private boolean getImages = false;
  -     private static List addableList = null;
  -
  -     private static Category catClass =
  -                     Category.getInstance(HttpTestSample.class);
  -
  -     /************************************************************
  -      *  Constructor for the HttpTestSample object
  -      ***********************************************************/
  -
  -     public HttpTestSample()
  -     {
  -             super();
  -             catClass.debug("Start : HttpTestSample1");
  -             defaultUrl = new UrlConfig();
  -             catClass.debug("End : HttpTestSample1");
  -     }
  -
  -     /************************************************************
  -      *  !ToDo (Method description)
  -      *
  -      *@param  getImages  !ToDo (Parameter description)
  -      ***********************************************************/
  -     public void setGetImages(boolean getImages)
  -     {
  -             this.getImages = getImages;
  -     }
  -
  -     /************************************************************
  -      *  Set the default url and parameters to be displayed when this controller is
  -      *  added to a ThreadGroup etc.
  -      *
  -      *@param  config  the default url
  -      ***********************************************************/
  -     public void setDefaultUrl(UrlConfig config)
  -     {
  -             defaultUrl = config;
  -             if (catClass.isDebugEnabled())
  -             {
  -                     catClass.debug("Setting defaultUrl - " + config.toString());
  -             }
  -     }
  -
  -     /************************************************************
  -      *  !ToDoo (Method description)
  -      *
  -      *@return    !ToDo (Return description)
  -      ***********************************************************/
  -     public boolean isGetImages()
  -     {
  -             return getImages;
  -     }
  -
  -     /************************************************************
  -      *  Gets the DefaultUrl attribute of the HttpTestSample object
  -      *
  -      *@return    The DefaultUrl value
  -      ***********************************************************/
  -
  -     public UrlConfig getDefaultUrl()
  -     {
  -
  -             if (catClass.isDebugEnabled())
  -             {
  -                     catClass.debug("Returning defaultUrl - " +
  -                                     defaultUrl.toString());
  -             }
  -             return defaultUrl;
  -     }
  -
  -
  -     /************************************************************
  -      *  Gets the ClassLabel attribute of the HttpTestSample object
  -      *
  -      *@return    The ClassLabel value
  -      ***********************************************************/
  -
  -     public String getClassLabel()
  -     {
  -
  -             return "Web Testing";
  -     }
  -
  -
  -     /************************************************************
  -      *  Gets the GuiClass attribute of the HttpTestSample object
  -      *
  -      *@return    The GuiClass value
  -      ***********************************************************/
  -
  -     public Class getGuiClass()
  -     {
  -
  -             return 
org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui.class;
  -     }
  -
  -
  -     /************************************************************
  -      *  Gets the AddList attribute of the HttpTestSample object
  -      *
  -      *@return    The AddList value
  -      ***********************************************************/
  -
  -     public Collection getAddList()
  -     {
  -             if(addableList == null)
  -             {
  -                     addableList = new LinkedList();
  -                     addableList.add(new CookieManager().getClassLabel());
  -                     addableList.add(new HeaderManager().getClassLabel());
  -                     addableList.add(new AuthManager().getClassLabel());
  -                     addableList.add(MenuFactory.getAssertionMenu());
  -             }
  -             return addableList;
  -     }
  -
  -
  -     /************************************************************
  -      *  Gets the TagHandlerClass attribute of the HttpTestSample object
  -      *
  -      *@return    The TagHandlerClass value
  -      ***********************************************************/
  -     public Class getTagHandlerClass()
  -     {
  -
  -             return org.apache.jmeter.save.handlers.HttpTestSampleHandler.class;
  -     }
  -
  -     /************************************************************
  -      *  !ToDo (Method description)
  -      ***********************************************************/
  -     public void convertUrlToMultipart()
  -     {
  -             MultipartUrlConfig newConfig = new MultipartUrlConfig();
  -             newConfig.addConfigElement(defaultUrl);
  -             defaultUrl = newConfig;
  -     }
  -
  -     /************************************************************
  -      *  !ToDo (Method description)
  -      ***********************************************************/
  -     public void convertUrlToDefault()
  -     {
  -             UrlConfig newConfig = new UrlConfig();
  -             newConfig.addConfigElement(defaultUrl);
  -             defaultUrl = newConfig;
  -     }
  -
  -     /************************************************************
  -      *  Clones this object
  -      *
  -      *@return    the cloned instance
  -      ***********************************************************/
  -
  -     public Object clone()
  -     {
  -             catClass.debug("Start : clone1");
  -             HttpTestSample control = new HttpTestSample();
  -             control.setDefaultUrl(defaultUrl);
  -             control.setGetImages(getImages);
  -             this.standardCloneProc(control);
  -
  -             catClass.debug("End : clone1");
  -             return control;
  -     }
  -
  -     /************************************************************
  -      *  Description of the Method
  -      *
  -      *@return          Description of the Returned Value
  -      ***********************************************************/
  -
  -     protected Entry createEntry()
  -     {
  -             Entry entry = new Entry();
  -             entry.addConfigElement(defaultUrl, UrlConfig.class);
  -             // IMPORTANT : when addind new types of instance of
  -             // ensure that you add those more specific classes first
  -             // e.g. UrlConfigFull extends UrlConfig so the test for
  -             // instance of UrlConfigFull should come before the test for
  -             // UrlConfig
  -             if (defaultUrl instanceof MultipartUrlConfig)
  -             {
  -                     entry.setSamplerClass(MultipartFormSampler.class);
  -             }
  -             else if (defaultUrl instanceof UrlConfig)
  -             {
  -                     if (getImages)
  -                     {
  -                             entry.setSamplerClass(HTTPSamplerFull.class);
  -                     }
  -                     else
  -                     {
  -                             entry.setSamplerClass(HTTPSampler.class);
  -                     }
  -             }
  -             return entry;
  -     }
  -}
  \ No newline at end of file
  +/*
  + * ====================================================================
  + * 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 [EMAIL PROTECTED]
  + *
  + * 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.control;
  +
  +import java.util.*;
  +import java.io.*;
  +
  +import org.apache.jmeter.config.ConfigElement;
  +import org.apache.jmeter.protocol.http.config.*;
  +import org.apache.jmeter.protocol.http.config.MultipartUrlConfig;
  +import org.apache.jmeter.control.GenericController;
  +import org.apache.jmeter.control.NoEntryException;
  +import org.apache.jmeter.samplers.SampleResult;
  +import org.apache.jmeter.protocol.http.sampler.*;
  +import org.apache.jmeter.control.SamplerController;
  +import org.apache.jmeter.samplers.*;
  +import org.apache.jmeter.gui.JMeterComponentModel;
  +import org.apache.jmeter.gui.MenuFactory;
  +import org.apache.jmeter.control.AbstractGenerativeController;
  +
  +import org.apache.log4j.*;
  +
  +/************************************************************
  + *  Title: Apache JMeter Description: Copyright: Copyright (c) 2000 Company:
  + *  Apache Foundation
  + *
  + *@author     Michael Stover
  + *@created    $Date: 2001/10/07 15:37:06 $
  + *@version    1.0
  + ***********************************************************/
  +public class HttpTestSample extends AbstractGenerativeController implements 
JMeterComponentModel,
  +             Serializable
  +{
  +     private UrlConfig defaultUrl;
  +     private boolean getImages = false;
  +     private static List addableList = null;
  +     private static Category catClass =
  +                     Category.getInstance(HttpTestSample.class);
  +
  +     /************************************************************
  +      *  Constructor for the HttpTestSample object
  +      ***********************************************************/
  +     public HttpTestSample()
  +     {
  +             super();
  +             catClass.debug("Start : HttpTestSample1");
  +             defaultUrl = new UrlConfig();
  +             catClass.debug("End : HttpTestSample1");
  +     }
  +
  +     /************************************************************
  +      *  !ToDo (Method description)
  +      *
  +      *@param  getImages  !ToDo (Parameter description)
  +      ***********************************************************/
  +     public void setGetImages(boolean getImages)
  +     {
  +             this.getImages = getImages;
  +     }
  +
  +     /************************************************************
  +      *  Set the default url and parameters to be displayed when this controller is
  +      *  added to a ThreadGroup etc.
  +      *
  +      *@param  config  the default url
  +      ***********************************************************/
  +     public void setDefaultUrl(UrlConfig config)
  +     {
  +             defaultUrl = config;
  +             if (catClass.isDebugEnabled())
  +             {
  +                     catClass.debug("Setting defaultUrl - " + config.toString());
  +             }
  +     }
  +
  +     /************************************************************
  +      *  !ToDoo (Method description)
  +      *
  +      *@return    !ToDo (Return description)
  +      ***********************************************************/
  +     public boolean isGetImages()
  +     {
  +             return getImages;
  +     }
  +
  +     /************************************************************
  +      *  Gets the DefaultUrl attribute of the HttpTestSample object
  +      *
  +      *@return    The DefaultUrl value
  +      ***********************************************************/
  +     public UrlConfig getDefaultUrl()
  +     {
  +             if (catClass.isDebugEnabled())
  +             {
  +                     catClass.debug("Returning defaultUrl - " +
  +                                     defaultUrl.toString());
  +             }
  +             return defaultUrl;
  +     }
  +
  +     /************************************************************
  +      *  Gets the ClassLabel attribute of the HttpTestSample object
  +      *
  +      *@return    The ClassLabel value
  +      ***********************************************************/
  +     public String getClassLabel()
  +     {
  +             return "Web Testing";
  +     }
  +
  +     /************************************************************
  +      *  Gets the GuiClass attribute of the HttpTestSample object
  +      *
  +      *@return    The GuiClass value
  +      ***********************************************************/
  +     public Class getGuiClass()
  +     {
  +             return 
org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui.class;
  +     }
  +
  +     /************************************************************
  +      *  Gets the AddList attribute of the HttpTestSample object
  +      *
  +      *@return    The AddList value
  +      ***********************************************************/
  +     public Collection getAddList()
  +     {
  +             if(addableList == null)
  +             {
  +                     addableList = new LinkedList();
  +                     addableList.add(new CookieManager().getClassLabel());
  +                     addableList.add(new HeaderManager().getClassLabel());
  +                     addableList.add(new AuthManager().getClassLabel());
  +                     addableList.add(MenuFactory.getAssertionMenu());
  +             }
  +             return addableList;
  +     }
  +
  +     /************************************************************
  +      *  Gets the TagHandlerClass attribute of the HttpTestSample object
  +      *
  +      *@return    The TagHandlerClass value
  +      ***********************************************************/
  +     public Class getTagHandlerClass()
  +     {
  +             return org.apache.jmeter.save.handlers.HttpTestSampleHandler.class;
  +     }
  +
  +     /************************************************************
  +      *  !ToDo (Method description)
  +      ***********************************************************/
  +     public void convertUrlToMultipart()
  +     {
  +             MultipartUrlConfig newConfig = new MultipartUrlConfig();
  +             newConfig.addConfigElement(defaultUrl);
  +             defaultUrl = newConfig;
  +     }
  +
  +     /************************************************************
  +      *  !ToDo (Method description)
  +      ***********************************************************/
  +     public void convertUrlToDefault()
  +     {
  +             UrlConfig newConfig = new UrlConfig();
  +             newConfig.addConfigElement(defaultUrl);
  +             defaultUrl = newConfig;
  +     }
  +
  +     /************************************************************
  +      *  Clones this object
  +      *
  +      *@return    the cloned instance
  +      ***********************************************************/
  +     public Object clone()
  +     {
  +             catClass.debug("Start : clone1");
  +             HttpTestSample control = new HttpTestSample();
  +             control.setDefaultUrl(defaultUrl);
  +             control.setGetImages(getImages);
  +             this.standardCloneProc(control);
  +             catClass.debug("End : clone1");
  +             return control;
  +     }
  +
  +     /************************************************************
  +      *  Description of the Method
  +      *
  +      *@return          Description of the Returned Value
  +      ***********************************************************/
  +     protected Entry createEntry()
  +     {
  +             Entry entry = new Entry();
  +             entry.addConfigElement(defaultUrl, UrlConfig.class);
  +             // IMPORTANT : when addind new types of instance of
  +             // ensure that you add those more specific classes first
  +             // e.g. UrlConfigFull extends UrlConfig so the test for
  +             // instance of UrlConfigFull should come before the test for
  +             // UrlConfig
  +             if (defaultUrl instanceof MultipartUrlConfig)
  +             {
  +                     if (getImages)
  +                     {
  +                             entry.setSamplerClass(MultipartFormSamplerFull.class);
  +                     }
  +                     else
  +                     {
  +                             entry.setSamplerClass(MultipartFormSampler.class);
  +                     }
  +             }
  +
  +             else if (defaultUrl instanceof UrlConfig)
  +             {
  +                     if (getImages)
  +                     {
  +                             entry.setSamplerClass(HTTPSamplerFull.class);
  +                     }
  +                     else
  +                     {
  +                             entry.setSamplerClass(HTTPSampler.class);
  +                     }
  +             }
  +             return entry;
  +     }
  +}
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to