Description of differences between RAP 1.2.2 and RAP 1.2.1 (including Servlet API)

Last Updated: 05/30/00 04:11 PM

Introduction

These additions are clarifications after Interoperability Test 4, or modifications to accommodate further research for project Prism (Cornell's DLI2 project).

  1. Added Sequence Number to AttachedDataStream.

    In order to allow an indefinite, but ordered group of DataStreams to be attached to a single role name, we added a "sequenceNumber" to the AttachedDataStream structure and to the parameters for the SetDataStream method in the Servlet interface in the Servlet API.

    To see why this is necessary, think of a "lecture" Servlet that can deliver a video of a lecture as well as the corresponding slides.  We want to have a single Servlet that allows as many slides to be attached as necessary, but we also need to know which is slide 1, slide 2, etc.  The sequence number allows that.

     

  2. removed "inputBufferLength" param from InternalStream SetBytes()

  3. During Interoperability Test 4, we found that CNRI was interpreting this parameter as "number of bytes to be written from the inputBuffer", while Cornell was interpreting this parameter as "the actual length of the inputBuffer."  Cornell's Fedora implementation threw an error if the parameter length was not the same as inputBuffer.length.

    To clarify this, we decided to remove the inputBufferLength -- the inputBuffer parameter must now be populated with exactly the bytes to be written -- no more and no less.

    An alternative would be to keep the inputBufferLength (conceptually using it as "numBytesToWrite") and add a parameter for the offset -- the point in the inputBuffer at which to start counting.  We decided to take the former route and leave it up to the client code to get the correct bytes into the inputBuffer.

  4. ServletAPI changes