Gents,
I have a suggestion on a small refactor for the CometProcessor, mainly to make it a little bit more flexible,
here are my suggestions

1. public void begin(HttpServletRequest request, HttpServletResponse response) Suggestion - remove this method, its never called from the container anyway, so there is no need to require the implementation

2. public void end(HttpServletRequest request, HttpServletResponse response)
Suggestion - remove this method, its never called from the container, same logic as above

3. public boolean read(HttpServletRequest request, HttpServletResponse response)
Suggestion - change this method to
public boolean event(CometEvent event) This will allow the container to implement notifications for timeouts, socket close, and read events through a single channel.
  Easier to add future events and/or more fine grained events

4. public boolean error(HttpServletRequest request, HttpServletResponse response) Suggestion - remove this method, as it can be replaced with the event method. If we do want to keep this method, lets include a little bit more info about the error, is it a timeout or a socket close, or an in process exception etc

5. CometEvent

public class CometEvent {
  public enum EventType {
READ,TIMEOUT,SOCKET_CLOSE,CONTAINER_SHUTDOWN,CONTEXT_SHUTDOWN,GENERIC_ERROR //and anything else, we could also create groups of types, READ,ERROR,SHUTDOWN, with subtypes
  }

  public HttpServletRequest getRequest();
  public HttpServletResponse getResponse();
  ...and other useful info here
}

I believe this would allow for more flexibility in the future and a cleaner interface. The CometServlet can actually stay exactly the same, if need be, as the begin,end methods can be called based on service() and event()

Filip


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

Reply via email to