You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@jakarta.apache.org by se...@apache.org on 2010/12/09 17:51:52 UTC

svn commit: r1044030 - /jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HttpClientDefaultParameters.java

Author: sebb
Date: Thu Dec  9 16:51:52 2010
New Revision: 1044030

URL: http://svn.apache.org/viewvc?rev=1044030&view=rev
Log:
Make generic so it supports both Commons and Apache HttpClient implementations

Modified:
    jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HttpClientDefaultParameters.java

Modified: jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HttpClientDefaultParameters.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HttpClientDefaultParameters.java?rev=1044030&r1=1044029&r2=1044030&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HttpClientDefaultParameters.java (original)
+++ jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HttpClientDefaultParameters.java Thu Dec  9 16:51:52 2010
@@ -28,15 +28,15 @@ import java.util.Iterator;
 import java.util.Map;
 import java.util.Properties;
 
-import org.apache.commons.httpclient.HttpVersion;
-import org.apache.commons.httpclient.ProtocolException;
-import org.apache.commons.httpclient.params.HttpParams;
 import org.apache.jorphan.logging.LoggingManager;
 import org.apache.jorphan.util.JOrphanUtils;
 import org.apache.log.Logger;
 
 /*
- * Utility class to set up default HttpClient parameters from a file
+ * Utility class to set up default HttpClient parameters from a file.
+ * 
+ * Supports both Commons HttpClient and Apache HttpClient.
+ * 
  */
 public class HttpClientDefaultParameters {
 
@@ -46,7 +46,48 @@ public class HttpClientDefaultParameters
     private HttpClientDefaultParameters(){
     }
 
-    public static void load(String file, HttpParams params){
+    // Helper class (callback) for applying parameter definitions
+    private static abstract class GenericHttpParams {
+        public abstract void setParameter(String name, Object value);
+    }
+
+    /**
+     * Loads a property file and converts parameters as necessary.
+     * 
+     * @param file the file to load
+     * @param params Commons HttpClient parameter instance
+     */
+    public static void load(String file, 
+            final org.apache.commons.httpclient.params.HttpParams params){
+        load(file, 
+                new GenericHttpParams (){
+                    @Override
+                    public void setParameter(String name, Object value) {
+                        params.setParameter(name, value);
+                    }            
+                }
+            );
+    }
+
+    /**
+     * Loads a property file and converts parameters as necessary.
+     * 
+     * @param file the file to load
+     * @param params Apache HttpClient parameter instance
+     */
+    public static void load(String file, 
+            final org.apache.http.params.HttpParams params){
+        load(file, 
+                new GenericHttpParams (){
+                    @Override
+                    public void setParameter(String name, Object value) {
+                        params.setParameter(name, value);
+                    }            
+                }
+            );
+    }
+
+    private static void load(String file, GenericHttpParams params){
         log.info("Reading httpclient parameters from "+file);
         File f = new File(file);
         InputStream is = null;
@@ -71,18 +112,17 @@ public class HttpClientDefaultParameters
                             params.setParameter(name, Long.valueOf(value));
                         } else if (type.equals("Boolean")){
                             params.setParameter(name, Boolean.valueOf(value));
-                        } else if (type.equals("HttpVersion")){
-                            params.setParameter(name, HttpVersion.parse("HTTP/"+value));
+                        } else if (type.equals("HttpVersion")){ // Commons HttpClient only
+                            params.setParameter(name, 
+                                    org.apache.commons.httpclient.HttpVersion.parse("HTTP/"+value));
                         } else {
-                            log.warn("Unexpected type: "+type);
+                            log.warn("Unexpected type: "+type+" for name "+name);
                         }
                     } else {
                             log.info("Defining "+key+ " as "+value);
                             params.setParameter(key, value);
                     }
-                } catch (NumberFormatException e) {
-                    log.error("Error in property: "+key+"="+value+" "+e.toString());
-                } catch (ProtocolException e) {
+                } catch (Exception e) {
                     log.error("Error in property: "+key+"="+value+" "+e.toString());
                 }
             }
@@ -94,8 +134,5 @@ public class HttpClientDefaultParameters
             JOrphanUtils.closeQuietly(is);
         }
     }
-//    public static void main(String args[]){
-//        load("bin/httpclient.parameters",
-//            org.apache.commons.httpclient.params.DefaultHttpParams.getDefaultParams());
-//    }
+
 }



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