You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by co...@apache.org on 2002/02/06 18:51:44 UTC

cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/server/tomcat33 JkRequest33.java JkResponse33.java JkServlet33.java Worker33.java

costin      02/02/06 09:51:44

  Modified:    jk/java/org/apache/jk/server/tomcat33 JkRequest33.java
                        JkResponse33.java JkServlet33.java Worker33.java
  Log:
  Update for the API changes.
  
  Add the missing input stream support.
  
  Now the 33 adapter should be fully functional ( or close enough - I'll
  start running watchdogs ). Config is still missing from both adapters,
  it's the only thing remaining before we're ready to release jk2 ( the java
  side ).
  
  Revision  Changes    Path
  1.3       +32 -30    jakarta-tomcat-connectors/jk/java/org/apache/jk/server/tomcat33/JkRequest33.java
  
  Index: JkRequest33.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/tomcat33/JkRequest33.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JkRequest33.java	26 Jan 2002 17:25:20 -0000	1.2
  +++ JkRequest33.java	6 Feb 2002 17:51:44 -0000	1.3
  @@ -63,7 +63,6 @@
   import java.net.*;
   import java.util.*;
   
  -import org.apache.jk.*;
   import org.apache.jk.core.*;
   import org.apache.jk.common.*;
   import org.apache.tomcat.modules.server.PoolTcpConnector;
  @@ -78,8 +77,9 @@
   class JkRequest33 extends Request 
   {
       BaseRequest ajpReq;
  -    Channel ch;
  -    Endpoint ep;
  +    MsgContext ep;
  +
  +    JkInputStream jkIS;
       
       public JkRequest33(BaseRequest ajpReq) 
       {
  @@ -91,7 +91,7 @@
   	remoteAddrMB = ajpReq.remoteAddr();
   	remoteHostMB = ajpReq.remoteHost();
   	serverNameMB = ajpReq.serverName();
  -
  +        
   	// XXX sync cookies 
   	scookies = new Cookies( headers );
   	urlDecoder=new UDecoder();
  @@ -106,9 +106,11 @@
   	this.ajpReq=ajpReq;
       }
   
  -    public void setEndpoint( Channel ch, Endpoint ep ) {
  -        this.ch=ch;
  +    public void setEndpoint( MsgContext ep ) {
           this.ep=ep;
  +        int bodyNote= ep.getWorkerEnv().getNoteId( WorkerEnv.ENDPOINT_NOTE,
  +                                                   "jkInputStream");
  +        jkIS=(JkInputStream)ep.getNote( bodyNote );
       }
       
       // -------------------- Wrappers for changed method names
  @@ -155,17 +157,6 @@
   	return ajpReq.getSecure();
       }
       
  -    public int getContentLength() {
  -        int i=ajpReq.getContentLength();
  -	if( i >= 0 ) return i;
  -	i= super.getContentLength();
  -	return i;
  -    }
  -
  -    public void setContentLength( int i ) {
  -	super.setContentLength(i); // XXX sync
  -    }
  -
       // -------------------- Attributes --------------------
       
       public void setAttribute(String name, Object value) {
  @@ -191,6 +182,7 @@
       public void recycle() {
   	super.recycle();
   	ajpReq.recycle();
  +        jkIS.recycle();
       }
   
       public String dumpRequest() {
  @@ -199,26 +191,36 @@
       
       // -------------------- 
       
  -    // XXX This should go away if we introduce an InputBuffer.
  -    // We almost have it as result of encoding fixes, but for now
  -    // just keep this here, doesn't hurt too much.
       public int doRead() throws IOException 
       {
  -	if( available <= 0 )
  -	    return -1;
  -// 	available--;
  -// 	return ajp13.reqHandler.doRead(ajp13);
  -        return -1;
  +        // we need to manager the request's available
  +        // this should go away, we support this in JkInputStream,
  +        // which is similar with OutputBuffer - it should
  +        // take away the body processing
  +        if( contentLength == -1 ) {
  +            return jkIS.read();
  +	}
  +	if( available <= 0 ) {
  +            return -1;
  +        }
  +	available--;
  +
  +        return jkIS.read();
       }
       
       public int doRead(byte[] b, int off, int len) throws IOException 
       {
  -	if( available <= 0 )
  +        int rd=-1;
  +        if( contentLength == -1 ) {
  +	    rd=jkIS.read(b,off,len);
  +	    return rd;
  +	}
  +	if( available <= 0 ) {
   	    return -1;
  -// 	int rd=ajp13.reqHandler.doRead( ajp13, b,off, len );
  -// 	available -= rd;
  -// 	return rd;
  -        return -1;
  +        }
  +	rd=jkIS.read( b,off, len );
  +	available -= rd;
  +	return rd;
       }
       
   }
  
  
  
  1.3       +3 -3      jakarta-tomcat-connectors/jk/java/org/apache/jk/server/tomcat33/JkResponse33.java
  
  Index: JkResponse33.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/tomcat33/JkResponse33.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JkResponse33.java	26 Jan 2002 17:25:20 -0000	1.2
  +++ JkResponse33.java	6 Feb 2002 17:51:44 -0000	1.3
  @@ -80,7 +80,7 @@
   {
       boolean finished=false;
       Channel ch;
  -    Endpoint ep;
  +    MsgContext ep;
       int headersMsgNote;
       int c2bConvertersNote;
       int utfC2bNote;
  @@ -92,8 +92,8 @@
           utfC2bNote=we.getNoteId( WorkerEnv.ENDPOINT_NOTE, "utfC2B" );
       }
   
  -    public void setEndpoint( Channel ch, Endpoint ep ) {
  -        this.ch=ch;
  +    public void setEndpoint( MsgContext ep ) {
  +        this.ch=ep.getChannel();
           this.ep=ep;
           MsgAjp msg=(MsgAjp)ep.getNote( headersMsgNote );
           if( msg==null ) {
  
  
  
  1.3       +4 -3      jakarta-tomcat-connectors/jk/java/org/apache/jk/server/tomcat33/JkServlet33.java
  
  Index: JkServlet33.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/tomcat33/JkServlet33.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JkServlet33.java	12 Jan 2002 04:20:43 -0000	1.2
  +++ JkServlet33.java	6 Feb 2002 17:51:44 -0000	1.3
  @@ -90,16 +90,17 @@
       public void initializeContainer(ServletConfig cfg) {
           try {
               ServletContext sctx=cfg.getServletContext();
  -            Context ctx=(Context)sctx.getAttribute( Context.ATTRIB_REAL_CONTEXT );
  +            Context ctx=
  +                (Context)sctx.getAttribute( Context.ATTRIB_REAL_CONTEXT );
               if( ctx==null ) {
                   d("Untrusted app or error, ctx==null ");
                   return;
               }
               cm=ctx.getContextManager();
  -            
               // We now have control over the whole thing !
  -            
  +
               // We could register an interceptor to be notified
  +            // on tomcat's events
               registerInterceptors();
               
               Worker33 worker=new Worker33();
  
  
  
  1.3       +9 -6      jakarta-tomcat-connectors/jk/java/org/apache/jk/server/tomcat33/Worker33.java
  
  Index: Worker33.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/tomcat33/Worker33.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Worker33.java	26 Jan 2002 17:25:20 -0000	1.2
  +++ Worker33.java	6 Feb 2002 17:51:44 -0000	1.3
  @@ -80,7 +80,7 @@
   /** Tomcat 33 worker
    *
    */
  -public class Worker33 extends Worker
  +public class Worker33 extends JkHandler
   {
       ContextManager cm;
       
  @@ -92,35 +92,38 @@
       private int reqNote;
       
       public void init() throws IOException {
  -        reqNote=we.getNoteId( WorkerEnv.REQUEST_NOTE, "tomcat33Request" );
  +        reqNote=wEnv.getNoteId( WorkerEnv.REQUEST_NOTE, "tomcat33Request" );
       }
   
       public void setContextManager( ContextManager cm ) {
           this.cm=cm;
       }
       
  -    public void service( BaseRequest req, Channel ch, Endpoint ep )
  +    public int invoke( Msg msg, MsgContext ep ) // BaseRequest req, Channel ch, Endpoint ep )
           throws IOException
       {
           d("Incoming request " );
  +        BaseRequest req=ep.getRequest();
  +        Channel ch=ep.getChannel();
           JkRequest33 treq=(JkRequest33)req.getNote( reqNote );
           JkResponse33 tres;
           if( treq==null ) {
               treq=new JkRequest33(req);
               req.setNote( reqNote, treq );
  -            tres=new JkResponse33(we);
  +            tres=new JkResponse33(wEnv);
               treq.setResponse( tres );
               cm.initRequest( treq, tres );
           }
           tres=(JkResponse33)treq.getResponse();
  -        treq.setEndpoint( ch, ep );
  -        tres.setEndpoint( ch, ep );
  +        treq.setEndpoint( ep );
  +        tres.setEndpoint( ep );
   
           try {
               cm.service( treq, tres );
           } catch(Exception ex ) {
               ex.printStackTrace();
           }
  +        return OK;
       }
   
       private static final int dL=0;
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>