You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by pi...@apache.org on 2001/07/20 05:25:30 UTC
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/warp WarpConnection.java WarpRequest.java WarpRequestHandler.java WarpResponse.java
pier 01/07/19 20:25:30
Modified: catalina/src/share/org/apache/catalina/connector/warp
WarpConnection.java WarpRequest.java
WarpRequestHandler.java WarpResponse.java
Log:
Reflect changes of JTC into JT4 for Tomcat B6
Revision Changes Path
1.9 +4 -2 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/warp/WarpConnection.java
Index: WarpConnection.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/warp/WarpConnection.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- WarpConnection.java 2001/07/20 00:00:53 1.8
+++ WarpConnection.java 2001/07/20 03:25:30 1.9
@@ -210,7 +210,8 @@
public void send(WarpPacket packet)
throws IOException {
if (Constants.DEBUG) {
- logger.debug(">> TYPE="+packet.getType()+" LENGTH="+packet.size);
+ String typ=Integer.toHexString(packet.getType());
+ logger.debug(">> TYPE="+typ+" LENGTH="+packet.size);
logger.debug(">> "+packet.dump());
}
@@ -251,7 +252,8 @@
}
if (Constants.DEBUG) {
- logger.debug("<< TYPE="+packet.getType()+" LENGTH="+packet.size);
+ String typ=Integer.toHexString(packet.getType());
+ logger.debug("<< TYPE="+typ+" LENGTH="+packet.size);
logger.debug("<< "+packet.dump());
}
}
1.6 +0 -1 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/warp/WarpRequest.java
Index: WarpRequest.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/warp/WarpRequest.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- WarpRequest.java 2001/07/20 00:01:26 1.5
+++ WarpRequest.java 2001/07/20 03:25:30 1.6
@@ -62,7 +62,6 @@
public class WarpRequest extends HttpRequestBase {
private Host host=null;
- private Context context=null;
public WarpRequest() {
super();
1.9 +4 -3 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/warp/WarpRequestHandler.java
Index: WarpRequestHandler.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/warp/WarpRequestHandler.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- WarpRequestHandler.java 2001/07/20 00:01:32 1.8
+++ WarpRequestHandler.java 2001/07/20 03:25:30 1.9
@@ -132,8 +132,8 @@
if (Constants.DEBUG)
logger.debug("Request content type="+ctyp+" length="+
clen);
- request.setContentType(ctyp);
- request.setContentLength(clen);
+ if (ctyp.length()>0) request.setContentType(ctyp);
+ if (clen>0) request.setContentLength(clen);
break;
}
@@ -172,7 +172,8 @@
} catch (Exception e) {
logger.log(e);
}
- response.getStream().close();
+ request.finishRequest();
+ response.finishResponse();
if (Constants.DEBUG)
logger.debug("Request has been processed");
break;
1.5 +97 -17 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/warp/WarpResponse.java
Index: WarpResponse.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/warp/WarpResponse.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- WarpResponse.java 2001/07/20 00:01:38 1.4
+++ WarpResponse.java 2001/07/20 03:25:30 1.5
@@ -84,36 +84,75 @@
import org.apache.catalina.util.RequestUtil;
public class WarpResponse extends HttpResponseBase {
+ /** The local stream */
+ private Stream localstream;
+ /** The packet used for processing headers */
private WarpPacket packet;
+ /** The connection to which we are associated */
private WarpConnection connection;
+ /**
+ * Create a new instance of a <code>WarpResponse</code>.
+ */
public WarpResponse() {
super();
- recycle();
+ // A WarpResponse is _always_ associated with a Stream
+ this.localstream=new Stream(this);
+ this.setStream(localstream);
}
+ /**
+ * Recycle this <code>WarpResponse</code> instance.
+ */
public void recycle() {
+ // Recycle our parent
super.recycle();
- this.setStream(new Stream(this));
+ // Recycle the stream
+ this.localstream.recycle();
+ // Tell the parent that a stream is already in use.
+ this.setStream(localstream);
}
+ /**
+ * Set the <code>WarpPacket</code> instance used to process headers.
+ */
public void setPacket(WarpPacket packet) {
this.packet=packet;
}
+ /**
+ * Return the <code>WarpPacket</code> instance used to process headers.
+ */
public WarpPacket getPacket() {
return(this.packet);
}
-
+
+ /**
+ * Associate this <code>WarpResponse</code> instance with a specific
+ * <code>WarpConnection</code> instance.
+ */
public void setConnection(WarpConnection connection) {
this.connection=connection;
}
+ /**
+ * Return the <code>WarpConnection</code> associated this instance of
+ * <code>WarpResponse</code>.
+ */
public WarpConnection getConnection() {
return(this.connection);
}
/**
+ * Flush output and finish.
+ */
+ public void finishResponse()
+ throws IOException {
+ super.finishResponse();
+ this.localstream.finish();
+ }
+
+ /**
* Send the HTTP response headers, if this has not already occurred.
*/
protected void sendHeaders() throws IOException {
@@ -205,38 +244,79 @@
committed = true;
}
-
- private class Stream extends OutputStream {
- private WarpConnection connection;
- private WarpPacket packet;
-
- private Stream(WarpResponse response) {
+
+ /**
+ * The <code>OutputStream</code> that will handle all response body
+ * transmission.
+ */
+ protected class Stream extends OutputStream {
+ /** The response associated with this stream instance. */
+ private WarpResponse response=null;
+ /** The packet used by this stream instance. */
+ private WarpPacket packet=null;
+ /** Wether <code>close()</code> was called or not. */
+ private boolean closed=false;
+
+ /**
+ * Construct a new instance of a <code>WarpResponse.Stream</code>
+ * associated with a parent <code>WarpResponse</code>.
+ */
+ protected Stream(WarpResponse response) {
super();
- this.connection=response.getConnection();
+ this.response=response;
this.packet=new WarpPacket();
- packet.setType(Constants.TYPE_RES_BODY);
}
+ /**
+ * Write one byte of data to the <code>WarpPacket</code> nested
+ * within this <code>WarpResponse.Stream</code>. All data is buffered
+ * until the <code>flush()</code> or <code>close()</code> method is
+ * not called.
+ */
public void write(int b)
throws IOException {
+ if (closed) throw new IOException("Stream closed");
packet.buffer[packet.size++]=(byte)b;
}
+ /**
+ * Flush the current packet to the WARP client.
+ */
public void flush()
throws IOException {
- this.connection.send(packet);
- packet.reset();
+ if (closed) throw new IOException("Stream closed");
packet.setType(Constants.TYPE_RES_BODY);
+ response.getConnection().send(packet);
+ packet.reset();
}
-
+
+ /**
+ * Flush this <code>WarpResponse.Stream</code> and close it.
+ */
public void close()
throws IOException {
+ if (closed) throw new IOException("Stream closed");
flush();
- packet.reset();
packet.setType(Constants.TYPE_RES_DONE);
- this.connection.send(packet);
+ response.getConnection().send(packet);
packet.reset();
- packet.setType(Constants.TYPE_RES_BODY);
+ }
+
+ /**
+ * Flush this <code>WarpResponse.Stream</code> and close it.
+ */
+ public void finish()
+ throws IOException {
+ if (closed) return;
+ else this.close();
+ }
+
+ /**
+ * Recycle this <code>WarpResponse.Stream</code> instance.
+ */
+ public void recycle() {
+ this.packet.reset();
+ this.closed=false;
}
}
}
Re: cvs commit:
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/warp
WarpConnection.java WarpRequest.java WarpRequestHandler.java
WarpResponse.java
Posted by "Pier P. Fumagalli" <pi...@betaversion.org>.
I tagged the webapp portion of j-t-c with the "tomcat_40_b6"... Night...
Pier