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/06 12:27:10 UTC
svn commit: r1042587 -
/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CacheManager.java
Author: sebb
Date: Mon Dec 6 11:27:09 2010
New Revision: 1042587
URL: http://svn.apache.org/viewvc?rev=1042587&view=rev
Log:
Add Apache HttpClient support
Modified:
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CacheManager.java
Modified: jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CacheManager.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CacheManager.java?rev=1042587&r1=1042586&r2=1042587&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CacheManager.java (original)
+++ jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CacheManager.java Mon Dec 6 11:27:09 2010
@@ -28,11 +28,11 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Date;
-import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.URIException;
import org.apache.commons.httpclient.util.DateParseException;
import org.apache.commons.httpclient.util.DateUtil;
+import org.apache.http.HttpResponse;
import org.apache.jmeter.config.ConfigTestElement;
import org.apache.jmeter.engine.event.LoopIterationEvent;
import org.apache.jmeter.protocol.http.util.HTTPConstantsInterface;
@@ -98,7 +98,7 @@ public class CacheManager extends Config
/**
* Save the Last-Modified, Etag, and Expires headers if the result is cacheable.
- *
+ * Version for Java implementation.
* @param conn connection
* @param res result
*/
@@ -115,7 +115,7 @@ public class CacheManager extends Config
/**
* Save the Last-Modified, Etag, and Expires headers if the result is cacheable.
- *
+ * Version for Commons HttpClient implementation.
* @param method
* @param res result
*/
@@ -130,6 +130,23 @@ public class CacheManager extends Config
}
}
+ /**
+ * Save the Last-Modified, Etag, and Expires headers if the result is cacheable.
+ * Version for Apache HttpClient implementation.
+ * @param method
+ * @param res result
+ */
+ public void saveDetails(HttpResponse method, SampleResult res) {
+ if (isCacheable(res)){
+ method.getLastHeader(USE_EXPIRES);
+ String lastModified = getHeader(method ,HTTPConstantsInterface.LAST_MODIFIED);
+ String expires = getHeader(method ,HTTPConstantsInterface.EXPIRES);
+ String etag = getHeader(method ,HTTPConstantsInterface.ETAG);
+ String cacheControl = getHeader(method, HTTPConstantsInterface.CACHE_CONTROL);
+ setCache(lastModified, cacheControl, expires, etag, res.getUrlAsString()); // TODO correct URL?
+ }
+ }
+
// helper method to save the cache entry
private void setCache(String lastModified, String cacheControl, String expires, String etag, String url) {
if (log.isDebugEnabled()){
@@ -156,9 +173,15 @@ public class CacheManager extends Config
getCache().put(url, new CacheEntry(lastModified, expiresDate, etag));
}
- // Helper method to deal with missing headers
+ // Helper method to deal with missing headers - Commons HttpClient
private String getHeader(HttpMethod method, String name){
- Header hdr = method.getResponseHeader(name);
+ org.apache.commons.httpclient.Header hdr = method.getResponseHeader(name);
+ return hdr != null ? hdr.getValue() : null;
+ }
+
+ // Apache HttpClient
+ private String getHeader(HttpResponse method, String name) {
+ org.apache.http.Header hdr = method.getLastHeader(name);
return hdr != null ? hdr.getValue() : null;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@jakarta.apache.org
For additional commands, e-mail: notifications-help@jakarta.apache.org