morgand     01/08/20 13:26:51

  Modified:    latka/conf suite.dtd
               latka/src/java/org/apache/commons/latka/http Request.java
                        RequestImpl.java
               latka/src/java/org/apache/commons/latka/util/xml
                        BasicDelegateHandler.java
               latka/src/java/org/apache/commons/latka/xml
                        RequestHandler.java
  Added:       latka/src/java/org/apache/commons/latka/xml
                        RequestHeaderHandler.java
  Log:
  added ability to set request headers
  
  Revision  Changes    Path
  1.7       +9 -4      jakarta-commons/latka/conf/Attic/suite.dtd
  
  Index: suite.dtd
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/latka/conf/Attic/suite.dtd,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- suite.dtd 2001/08/20 17:08:36     1.6
  +++ suite.dtd 2001/08/20 20:26:51     1.7
  @@ -10,8 +10,8 @@
   %tests.ent;
   
   <!ELEMENT suite ( (session | request)+ )>
  -<!ATTLIST suite defaultHost CDATA #IMPLIED
  -                defaultPort CDATA #IMPLIED
  +<!ATTLIST suite defaultHost  CDATA #IMPLIED
  +                defaultPort  CDATA #IMPLIED
                   label        CDATA #IMPLIED>
   
   <!ELEMENT session (request+)>
  @@ -19,7 +19,7 @@
   <!ATTLIST session sessionId CDATA #IMPLIED
                     label      CDATA #IMPLIED>
   
  -<!ELEMENT request (credentials?, param*, validate?)>
  +<!ELEMENT request (credentials?, requestHeader*, param*, validate?)>
   <!ATTLIST request path   CDATA           #REQUIRED
                     method (post | get)   "get"
                     secure (true | false) "false"
  @@ -28,9 +28,14 @@
                     label  CDATA           #IMPLIED
                     followRedirects (true | false) "true">
   
  +<!-- fix me, credentials are currently ignored -->
   <!ELEMENT credentials EMPTY>
  -<!ATTLIST credentials user_name CDATA #REQUIRED
  +<!ATTLIST credentials userName CDATA #REQUIRED
                         password  CDATA #REQUIRED>
  +
  +<!ELEMENT requestHeader EMPTY>
  +<!ATTLIST requestHeader headerName  CDATA #REQUIRED
  +                        headerValue CDATA #IMPLIED>
   
   <!ELEMENT param (paramName, paramValue)>
   
  
  
  
  1.4       +11 -0     
jakarta-commons/latka/src/java/org/apache/commons/latka/http/Request.java
  
  Index: Request.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/latka/src/java/org/apache/commons/latka/http/Request.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Request.java      2001/08/20 17:08:37     1.3
  +++ Request.java      2001/08/20 20:26:51     1.4
  @@ -60,6 +60,17 @@
     public void setParameters(Map parameters);
   
     /**
  +   * Sets a request header.
  +   * 
  +   * @param headerName header name
  +   * @param headerValue header value or null for a null header
  +   */
  +  public void setHeader(String headerName, String headerValue);
  +
  +  // getHeader method purposely ommitted.  HttpClient does not retain
  +  // header information after the request is submitted.
  +
  +  /**
      * Retrieve the session associated with this request.
      *
      * @return a <code>Session</code> object
  
  
  
  1.5       +4 -4      
jakarta-commons/latka/src/java/org/apache/commons/latka/http/RequestImpl.java
  
  Index: RequestImpl.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/latka/src/java/org/apache/commons/latka/http/RequestImpl.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- RequestImpl.java  2001/08/20 17:08:37     1.4
  +++ RequestImpl.java  2001/08/20 20:26:51     1.5
  @@ -172,13 +172,12 @@
     }
   
     /**
  -   * protected for now.  Currently used only for setting the
  -   * referer in session requests
  +   * Set a header in the request
      * 
      * @param headerName name of any HTTP request header
      * @param headerValue value of that header
      */
  -  protected void setHeader(String headerName, String headerValue) {
  +  public void setHeader(String headerName, String headerValue) {
       _httpMethod.setHeader(headerName,headerValue);
     }
   
  @@ -192,7 +191,8 @@
     }
   
     /**
  -   * @return the amount of time it took to execute this request (in milliseconds)
  +   * @return the amount of time it took to execute this request (in milliseconds),
  +   * or -1 if the request has not yet been executed
      */
     public int getRequestTiming() {
       return(int) _requestTiming;
  
  
  
  1.5       +5 -3      
jakarta-commons/latka/src/java/org/apache/commons/latka/util/xml/BasicDelegateHandler.java
  
  Index: BasicDelegateHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/latka/src/java/org/apache/commons/latka/util/xml/BasicDelegateHandler.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- BasicDelegateHandler.java 2001/08/20 17:08:37     1.4
  +++ BasicDelegateHandler.java 2001/08/20 20:26:51     1.5
  @@ -59,7 +59,7 @@
       // method call releases on the first element
       delegate();
   
  -    log.info("broadcasting first event to delegate");
  +    log.info("broadcasting first event to delegate: " + _handler);
       startElement(namespaceURI,localName,rawName,atts);
     }
     
  @@ -81,15 +81,17 @@
     protected void release(String namespaceURI, String localName,
                            String rawName, Attributes atts) 
     throws SAXException {
  -    _handler.startElement(namespaceURI,localName,rawName,atts);
  +    log.info("begin tag release");
       release();
  +    _handler.startElement(namespaceURI,localName,rawName,atts);
     }
   
     protected void release(String namespaceURI, String localName, 
                            String rawName) 
     throws SAXException {
  -    _handler.endElement(namespaceURI,localName,rawName);
  +    log.info("end tag release");
       release();
  +    _handler.endElement(namespaceURI,localName,rawName);
     }
   
   }
  
  
  
  1.5       +4 -0      
jakarta-commons/latka/src/java/org/apache/commons/latka/xml/RequestHandler.java
  
  Index: RequestHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/latka/src/java/org/apache/commons/latka/xml/RequestHandler.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- RequestHandler.java       2001/08/20 17:08:38     1.4
  +++ RequestHandler.java       2001/08/20 20:26:51     1.5
  @@ -92,6 +92,10 @@
           _listener.requestSkipped(new RequestSkippedEvent(_request,null));
           log.info("request skipped");
         }
  +    } else if (localName.equals("requestHeader")) {  
  +      log.info("adding request headers");
  +      RequestHeaderHandler headerHandler  = new 
RequestHeaderHandler(_reader,_request);
  +      headerHandler.delegate(uri,localName,qName,atts);
       } else if (localName.equals("param")) {
         log.info("adding parameters: params should follow");
         ParameterHandler paramHandler = new ParameterHandler(_reader,_request);
  
  
  
  1.1                  
jakarta-commons/latka/src/java/org/apache/commons/latka/xml/RequestHeaderHandler.java
  
  Index: RequestHeaderHandler.java
  ===================================================================
  package org.apache.commons.latka.xml;
  
  import org.apache.commons.latka.http.Request;
  
  import org.apache.commons.logging.Log;
  import org.apache.commons.logging.LogSource;
  
  import org.xml.sax.Attributes;
  import org.xml.sax.SAXException;
  import org.xml.sax.XMLReader;
  
  public class RequestHeaderHandler extends LatkaHandler {
  
    protected Request _request = null;
  
    protected static final Log log = LogSource.getInstance(RequestHeaderHandler.class);
  
    public RequestHeaderHandler(XMLReader reader,
                            Request request) {
      super(reader);
      _request = request;
    }
  
    public void startElement(String uri, String localName, 
                             String qName, Attributes atts) 
    throws SAXException {
  
      log.info("request header received");
  
      if (localName.equals("requestHeader")) {
        log.info("adding header");
        _request.setHeader(atts.getValue("headerName"),
                           atts.getValue("headerValue"));
      } else {
        // release as soon as all the headers are processed
        release(uri,localName,qName,atts);
      }
  
    }
  
    public void endElement(String namespaceURI, String localName, 
                           String rawName) throws SAXException {
  
      if (!localName.equals("requestHeader")) {
        release(namespaceURI,localName,rawName);
      }
  
    }
  }
  
  
  

Reply via email to