mstover1    02/05/13 05:19:14

  Modified:    src_1/org/apache/jmeter/protocol/http/control
                        HeaderManager.java
               src_1/org/apache/jmeter/protocol/http/proxy
                        HttpRequestHdr.java Proxy.java
               src_1/org/apache/jmeter/protocol/http/sampler
                        HTTPSampler.java
               src_1/org/apache/jmeter/samplers SampleResult.java
               src_1/org/apache/jmeter/save SaveService.java
  Log:
  proxy server work in new sources
  
  Revision  Changes    Path
  1.6       +2 -2      
jakarta-jmeter/src_1/org/apache/jmeter/protocol/http/control/HeaderManager.java
  
  Index: HeaderManager.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/protocol/http/control/HeaderManager.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- HeaderManager.java        2 May 2002 22:54:58 -0000       1.5
  +++ HeaderManager.java        13 May 2002 12:19:14 -0000      1.6
  @@ -75,7 +75,7 @@
    * pass HTTP headers along with a request.
    *
    * @author  <a href="mailto:[EMAIL PROTECTED]";>Giacomo Pati</a>
  - * @version $Revision: 1.5 $ $Date: 2002/05/02 22:54:58 $
  + * @version $Revision: 1.6 $ $Date: 2002/05/13 12:19:14 $
    */
   public class HeaderManager extends AbstractTestElement implements
                Serializable
  @@ -271,7 +271,7 @@
                                if (header == null) {
                                         continue;
                                }
  -                             if (header.getName().equals(name)) {
  +                             if (header.getName().equalsIgnoreCase(name)) {
                                         removeIndices.addElement(new Integer(i));
                                }
                  }
  
  
  
  1.9       +7 -3      
jakarta-jmeter/src_1/org/apache/jmeter/protocol/http/proxy/HttpRequestHdr.java
  
  Index: HttpRequestHdr.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/protocol/http/proxy/HttpRequestHdr.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- HttpRequestHdr.java       29 Apr 2002 22:11:57 -0000      1.8
  +++ HttpRequestHdr.java       13 May 2002 12:19:14 -0000      1.9
  @@ -11,9 +11,11 @@
   import org.apache.jmeter.samplers.Entry;
   import org.apache.jmeter.protocol.http.config.*;
   import org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui;
  +import org.apache.jmeter.protocol.http.gui.HeaderPanel;
   import org.apache.jmeter.protocol.http.sampler.*;
   import org.apache.jmeter.protocol.http.control.HeaderManager;
   import org.apache.jmeter.protocol.http.control.Header;
  +import org.apache.jmeter.testelement.TestElement;
   
   //
   // Class:     HttpRequestHdr
  @@ -24,8 +26,8 @@
    * !ToDo (Class description)
    *
    *@author    $Author: mstover1 $
  - *@created   $Date: 2002/04/29 22:11:57 $
  - *@version   $Revision: 1.8 $
  + *@created   $Date: 2002/05/13 12:19:14 $
  + *@version   $Revision: 1.9 $
    ***************************************/
   public class HttpRequestHdr
   {
  @@ -142,13 +144,15 @@
                while(keys.hasNext())
                {
                        String key = (String)keys.next();
  -                     if(!key.equalsIgnoreCase("cookie") && 
!key.equalsIgnoreCase("content-length"))
  +                     if(!key.equalsIgnoreCase("proxy-connection") && 
!key.equalsIgnoreCase("content-length"))
                        {
                                Header h = new Header(key,(String)headers.get(key));
                                manager.add(h);
                        }
                }
                manager.setName("Browser-derived headers");
  +             
manager.setProperty(TestElement.TEST_CLASS,HeaderManager.class.getName());
  +             manager.setProperty(TestElement.GUI_CLASS,HeaderPanel.class.getName());
                return  manager;
        }
   
  
  
  
  1.6       +12 -26    
jakarta-jmeter/src_1/org/apache/jmeter/protocol/http/proxy/Proxy.java
  
  Index: Proxy.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/protocol/http/proxy/Proxy.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- Proxy.java        28 Apr 2002 21:40:53 -0000      1.5
  +++ Proxy.java        13 May 2002 12:19:14 -0000      1.6
  @@ -63,6 +63,7 @@
   import org.apache.jmeter.samplers.SampleResult;
   import org.apache.jmeter.protocol.http.sampler.HTTPSampler;
   import org.apache.jmeter.testelement.TestElement;
  +import org.apache.jmeter.protocol.http.control.HeaderManager;
   //
   // Class:     Proxy
   // Abstract:  Thread to handle one client request. get the requested
  @@ -138,16 +139,16 @@
                boolean TakenFromCache = false;
                boolean isCachable = false;
                try {
  -                     byte[] clientRequest =
  -                             request.parse(new BufferedInputStream(
  +                     byte[] clientRequest = request.parse(new BufferedInputStream(
                                ClientSocket.getInputStream()));
                        HTTPSampler sampler = request.getSampler();
  -                     writeToClient(
  -                             sampler.getDomain(),
  -                             sampler.getPort(),
  -                             new BufferedInputStream(new 
ByteArrayInputStream(clientRequest)),
  +                     HeaderManager headers = request.getHeaderManager();
  +                     sampler.setHeaderManager(headers);
  +                     byte[] serverResponse = sampler.sample().getResponseData();
  +                     writeToClient(serverResponse,
                                new 
BufferedOutputStream(ClientSocket.getOutputStream()));
  -                     target.deliverSampler(sampler,new 
TestElement[]{request.getHeaderManager()});
  +                     //headers.removeHeaderNamed("cookie");
  +                     target.deliverSampler(sampler,new TestElement[]{headers});
                } catch (UnknownHostException uhe) {
                        System.out.println("Server Not Found.");
                        try {
  @@ -234,34 +235,19 @@
                } catch (Exception e) {}
        }
        private void writeToClient(
  -             String server,
  -             int serverPort,
  -             InputStream in,
  +             byte[] inBytes,
                OutputStream out)
                throws IOException {
  -             BufferedInputStream serverIn = null;
  -             BufferedOutputStream serverOut = null;
                try {
  -                     int x = 0;
  -                     Socket toServer = new Socket(server, serverPort);
  -                     serverOut = new 
BufferedOutputStream(toServer.getOutputStream());
  -                     serverIn = new BufferedInputStream(toServer.getInputStream());
  -                     while ((x = in.read()) != -1) {
  -                             serverOut.write(x);
  -                     }
  -                     serverOut.flush();
  -                     while ((x = serverIn.read()) != -1) {
  -                             out.write(x);
  -                     }
  +                     
  +                     out.write(inBytes);
                        out.flush();
  +                     System.out.println("Done writing to client");
                } catch (IOException e) {
                        e.printStackTrace();
                } finally {
                        try {
  -                             in.close();
                                out.close();
  -                             serverIn.close();
  -                             serverOut.close();
                        } catch (Exception ex) {}
                }
        }
  
  
  
  1.7       +60 -28    
jakarta-jmeter/src_1/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java
  
  Index: HTTPSampler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- HTTPSampler.java  29 Apr 2002 17:08:11 -0000      1.6
  +++ HTTPSampler.java  13 May 2002 12:19:14 -0000      1.7
  @@ -53,10 +53,7 @@
    * <http://www.apache.org/>.
    */
   package org.apache.jmeter.protocol.http.sampler;
  -import java.io.BufferedInputStream;
  -import java.io.ByteArrayOutputStream;
  -import java.io.IOException;
  -import java.io.PrintWriter;
  +import java.io.*;
   import java.net.HttpURLConnection;
   import java.net.MalformedURLException;
   import java.net.URL;
  @@ -83,8 +80,8 @@
    * HTTP requests, including cookies and authentication.
    *
    *@author    Michael Stover
  - *@created   $Date: 2002/04/29 17:08:11 $
  - *@version   $Revision: 1.6 $
  + *@created   $Date: 2002/05/13 12:19:14 $
  + *@version   $Revision: 1.7 $
    ***************************************/
   public class HTTPSampler extends AbstractSampler
   {
  @@ -432,11 +429,13 @@
                BufferedInputStream in = new 
BufferedInputStream(conn.getInputStream());
                java.io.ByteArrayOutputStream w = new ByteArrayOutputStream();
                int x = 0;
  -             while((x = in.read(buffer)) != -1)
  +             while((x = in.read(buffer)) > -1)
                {
                        w.write(buffer, 0, x);
                }
                in.close();
  +             w.flush();
  +             w.close();
                return w.toByteArray();
        }
   
  @@ -447,8 +446,15 @@
         *@param conn  connection from which the headers are read
         *@param res   where the headers read are stored
         ***************************************/
  -     protected void getResponseHeaders(HttpURLConnection conn, SampleResult res)
  +     protected byte[] getResponseHeaders(HttpURLConnection conn, SampleResult res) 
throws IOException
        {
  +             StringBuffer headerBuf = new StringBuffer();
  +             //PrintWriter headerBytes = new PrintWriter(output);
  +             headerBuf.append("HTTP/1.1 ");
  +             headerBuf.append(conn.getResponseCode());
  +             headerBuf.append(" ");
  +             headerBuf.append(conn.getResponseMessage());
  +             headerBuf.append("\n");
                DefaultConfiguration headers = new 
DefaultConfiguration(HTTPSampler.HEADERS,
                                
"org.apache.jmeter.protocol.http.samplers.HTTPSampler");
                for(int i = 1; conn.getHeaderFieldKey(i) != null; i++)
  @@ -457,9 +463,18 @@
                                        
"org.apache.jmeter.protocol.http.samplers.HTTPSampler");
                        header.setAttribute("name",conn.getHeaderFieldKey(i));
                        header.setValue(conn.getHeaderField(i));
  +                     
if(!conn.getHeaderFieldKey(i).equalsIgnoreCase("transfer-encoding"))
  +                     {
  +                             headerBuf.append(conn.getHeaderFieldKey(i));
  +                             headerBuf.append(": ");
  +                             headerBuf.append(conn.getHeaderField(i));
  +                             headerBuf.append("\n");
  +                     }
                }
  -
  +             headerBuf.append("\n");
  +             //headerBytes.close();
                res.addChild(headers);
  +             return headerBuf.toString().getBytes("8859_1");
        }
   
        /*
  @@ -550,15 +565,15 @@
         *@param time  time when the URL request was first started
         *@return      HTTP response code divided by 100
         ***************************************/
  -     private int getErrorLevel(HttpURLConnection conn, SampleResult res, long time)
  +     private int getErrorLevel(HttpURLConnection conn, SampleResult res, long time) 
throws IOException
        {
  -             int errorLevel = 2;
  +             int errorLevel = 200;
                int responseCode = 0;
                String message = null;
                try
                {
                        responseCode = ((HttpURLConnection)conn).getResponseCode();
  -                     errorLevel = responseCode / 100;
  +                     errorLevel = responseCode;
                        message = ((HttpURLConnection)conn).getResponseMessage();
                        res.setResponseCode(String.valueOf(responseCode));
                        res.setResponseMessage(message);
  @@ -612,10 +627,10 @@
                        }
                }
                URL newUrl = new URL(loc);
  -             urlConfig.setProperty(HTTPSampler.DOMAIN, newUrl.getHost());
  -             urlConfig.setProperty(HTTPSampler.PATH, newUrl.getFile());
  -             urlConfig.setProperty(HTTPSampler.ARGUMENTS, new Arguments());
  -             urlConfig.setMethod(HTTPSampler.GET);
  +             this.setDomain(newUrl.getHost());
  +             this.setPath(newUrl.getFile());
  +             this.setArguments(new Arguments());
  +             this.setMethod(HTTPSampler.GET);
        }
   
        /****************************************
  @@ -674,21 +689,24 @@
                        saveConnectionCookies(conn, u, getCookieManager());
   
                        int errorLevel = getErrorLevel(conn, res, time);
  -                     if(errorLevel == 2)
  +                     if(errorLevel/100 == 2 || errorLevel == 304)
                        {
  -                             byte[] ret = readResponse(conn);
  -                             time = System.currentTimeMillis() - time;
  -                             res.setResponseData(ret);
  -                             res.setSuccessful(true);
  -                             getResponseHeaders(conn, res);
  +                             time = bundleResponseInResult(time, res, conn);
                        }
  -                     else if(errorLevel == 3)
  +                     else if(errorLevel/100 == 3)
                        {
  -                             redirectUrl(conn, u, url);
  -
  -                             time = System.currentTimeMillis() - time;
  -                             res = sample(url, true);
  -                             time += res.getTime();
  +                             if(redirected)
  +                             {
  +                                     time = bundleResponseInResult(time,res,conn);
  +                             }
  +                             else
  +                             {
  +                                     redirectUrl(conn, u, url);
  +     
  +                                     time = System.currentTimeMillis() - time;
  +                                     res = sample(url, true);
  +                                     time += res.getTime();  
  +                             }
                        }
                        else
                        {
  @@ -711,6 +729,20 @@
                }
                catClass.debug("End : sample2");
                return res;
  +     }
  +
  +     private long bundleResponseInResult(long time, SampleResult 
  +                     res, HttpURLConnection conn) throws IOException, 
  +                     FileNotFoundException {
  +             byte[] ret = readResponse(conn);
  +             byte[] head = getResponseHeaders(conn, res);
  +             time = System.currentTimeMillis() - time;
  +             byte[] complete = new byte[ret.length+head.length];
  +             System.arraycopy(head,0,complete,0,head.length);
  +             System.arraycopy(ret,0,complete,head.length,ret.length);
  +             res.setResponseData(complete);
  +             res.setSuccessful(true);
  +             return time;
        }
   
        /****************************************
  
  
  
  1.7       +9 -6      
jakarta-jmeter/src_1/org/apache/jmeter/samplers/SampleResult.java
  
  Index: SampleResult.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/samplers/SampleResult.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- SampleResult.java 2 May 2002 22:54:59 -0000       1.6
  +++ SampleResult.java 13 May 2002 12:19:14 -0000      1.7
  @@ -67,8 +67,8 @@
    *  sample of an entry.
    *
    *@author     $Author: mstover1 $
  - *@created    $Date: 2002/05/02 22:54:59 $
  - *@version    $Revision: 1.6 $
  + *@created    $Date: 2002/05/13 12:19:14 $
  + *@version    $Revision: 1.7 $
    */
   public class SampleResult extends DefaultConfiguration implements Serializable
   {
  @@ -77,6 +77,7 @@
        public final static String TAG_NAME = "sampleResult";
        public final static String TEXT = "text";
        public final static String BINARY = "bin";
  +     private byte[] responseData;
   
        Map map;
        long time;
  @@ -231,9 +232,10 @@
         */
        public void setResponseData(byte[] response)
        {
  -             DefaultConfiguration responseChild = new 
DefaultConfiguration(RESPONSE_DATA, "");
  +             responseData = response;
  +             /*DefaultConfiguration responseChild = new 
DefaultConfiguration(RESPONSE_DATA, "");
                responseChild.setValue(getHexString(response));
  -             addChild(responseChild);
  +             addChild(responseChild);*/
        }
   
        /**
  @@ -265,14 +267,15 @@
         */
        public byte[] getResponseData()
        {
  -             Configuration responseChild = getChild(RESPONSE_DATA);
  +             return responseData;
  +             /*Configuration responseChild = getChild(RESPONSE_DATA);
                ByteArrayOutputStream bytes = new ByteArrayOutputStream();
                String res = responseChild.getValue("");
                for (int i = 0; i < res.length(); i+=2)
                {
                        bytes.write(Integer.parseInt(res.substring(i,i+2),16));
                }
  -             return bytes.toByteArray();
  +             return bytes.toByteArray();*/
        }
   
        public void setSamplerData(Sampler s)
  
  
  
  1.3       +5 -1      jakarta-jmeter/src_1/org/apache/jmeter/save/SaveService.java
  
  Index: SaveService.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/save/SaveService.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SaveService.java  26 Apr 2002 00:03:57 -0000      1.2
  +++ SaveService.java  13 May 2002 12:19:14 -0000      1.3
  @@ -90,7 +90,7 @@
                        {
                                
config.addChild(createConfigForCollection(name,(Collection)value));
                        }
  -                     else
  +                     else if(value != null)
                        {
                                
config.addChild(createConfigForString(name,value.toString()));
                        }
  @@ -214,6 +214,10 @@
                        else if(items[i].getName().equals("collection"))
                        {
                                coll.add(createCollection(items[i]));
  +                     }
  +                     else if(items[i].getName().equals("string"))
  +                     {
  +                             coll.add(items[i].getValue());
                        }
                }
                return coll;
  
  
  

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

Reply via email to