KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tctest > performance > http > load > OneHitWorkItem


1 /*
2  * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
3  */

4 package com.tctest.performance.http.load;
5
6 import org.apache.commons.httpclient.HttpClient;
7 import org.apache.commons.httpclient.HttpState;
8 import org.apache.commons.httpclient.methods.GetMethod;
9
10 import java.io.IOException JavaDoc;
11
12 public class OneHitWorkItem extends ExpiringWorkItem {
13
14   private final String JavaDoc url;
15   private final boolean doStats;
16
17   public OneHitWorkItem(final String JavaDoc host, final String JavaDoc url) {
18     this(host, url, false, Long.MAX_VALUE);
19   }
20
21   public OneHitWorkItem(final String JavaDoc host, final String JavaDoc url, final boolean doStats, final long endtime) {
22     super(endtime);
23     this.url = "http://" + host + url;
24     this.doStats = doStats;
25   }
26
27   public void executeImpl(HttpClient httpClient, StatsCollector collector) throws IOException JavaDoc {
28     httpClient.setState(new HttpState()); // clean state (no session)
29

30     final GetMethod method = new GetMethod(url);
31     try {
32       final long startTime = System.currentTimeMillis();
33       final int statusCode = httpClient.executeMethod(method);
34       final long endTime = System.currentTimeMillis();
35       if (doStats) collector.addStat(new ResponseStatistic(startTime, endTime, url, statusCode));
36       consumeResponse(method);
37     } finally {
38       method.releaseConnection();
39     }
40   }
41 }
42
Popular Tags