jakarta-jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Molettiere <pie...@sfinteractive.com>
Subject Suggested UrlConfig Patch
Date Thu, 07 Jun 2001 01:46:35 GMT


I've just been writing a new controller for a project
I'm working on, and found a need for a few enhancements
to org.apache.jmeter.protocol.http.config.UrlConfig.

1) UrlConfig didn't support any port other than 80. 
Often, people run webservers on non-standard ports,
such as 8080.

2) UrlConfig didn't support passing query strings to
GET urls, even if there was an Arguments object in the
UrlConfig's properties.

3) UrlConfig didn't support any protocol other than
http. (I'm thinking specifically about https, since
it looks like ftp, etc is handled by a separate package.

Here's a patch that provides both 1) and 2), and 
allows you to set arbitrary protocols on the UrlConfig,
even though setting non-http protocols (anything other
than http or https) will result in an Exception in
HTTPSampler. Further, https needs to be properly 
configured in the jvm to work correctly.

I've set it up so that if the port, protocol, or query
string isn't set, then the previous defaults are used.

In the case of port, I changed the default value to -1, 
since this is a flag to the java.net.URL constructor
which tells it to use the default port for the specified
protocol.


Peter
--
Peter Molettiere
senior engineer
sfinteractive.com


==========================================================


*** UrlConfig.java	Sat Mar 17 14:25:49 2001
--- UrlConfig.java	Wed Jun  6 18:06:28 2001
***************
*** 70,78 ****
--- 70,81 ----
  
  public class UrlConfig extends AbstractConfigElement
  {
+ 	public final static String PROTOCOL = "protocol";
  	public final static String DOMAIN = "domain";
  	public final static String PATH = "path";
  	public final static String METHOD = "method";
+ 	public final static String PORT = "port";
+ 	public final static String QUERYSTRING = "querystring";
  	public final static String ARGUMENTS = "arguments";
  	public final static String POST = "POST";
  	public final static String GET = "GET";
***************
*** 101,107 ****
  		{
  			setPath("/"+getPath());
  		}
! 		return new URL("http", (String)properties.get(DOMAIN), 80,
(String)properties.get(PATH));
  	}
  
  	public String getPath()
--- 104,110 ----
  		{
  			setPath("/"+getPath());
  		}
! 		return new URL(getProtocol(), (String)properties.get(DOMAIN),
getPort(), getPath() + getQueryString() );
  	}
  
  	public String getPath()
***************
*** 127,132 ****
--- 130,171 ----
  	public String getMethod()
  	{
  		return (String)properties.get(METHOD);
+ 	}
+ 
+ 	public void setPort( Integer p ) {
+ 	    properties.put(PORT,p);
+ 	}
+ 
+ 	public int getPort() {
+ 	    Integer p = (Integer) properties.get(PORT);
+ 	    if( p == null ) {
+ 		return -1;
+ 	    }
+ 	    return p.intValue();
+ 	}
+ 
+ 	public void setQueryString(String qs) {
+ 	    properties.put(QUERYSTRING, qs);
+ 	}
+ 
+ 	public String getQueryString() {
+ 	    String qs = (String) properties.get(QUERYSTRING);
+ 	    if( qs == null || qs.equals("") ) {
+ 		return "";
+ 	    }
+ 	    return "?" + qs;
+ 	}
+ 
+ 	public void setProtocol(String p) {
+ 	    properties.put(PROTOCOL, p);
+ 	}
+ 
+ 	public String getProtocol() {
+ 	    String p = (String) properties.get(PROTOCOL);
+ 	    if( p == null || p == "" ) {
+ 		return "http";
+ 	    }
+ 	    return p;
  	}
  
  	/************************************************************

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


Mime
View raw message