Thanks Joe and welcome out of JCP process limbo! Thanks for the detailed review and comments.
See comments inline....I snipped out some that I'm going to cover in the summary in the next few emails:
I think that's up to the implementation at this point. I'd expect implementations built on the servlet api would intercept the Http handshake with any filters configured to that URI, but I'm not sure we need to say anything about that in this JSR.
* Cross cutting concerns
It wasn't clear whether javax.servlet.Filters would intercept the WebSocket. In some of the apps there are cross-cutting interceptors that perform functions such as: authentication/authorization, auditing (recording all messages across all endpoints for compliance reasons), monitoring (timings, throughput, latency, etc), and session tracking (who's currently connected).
I think the scope for us is to define components that can participate in the initial websocket handshake (for example check URLs, subprotocols, extensions) and thereafter deal (only) with web socket messages. I hadn't envisioned that these components would try to handle general Http requests too. Via access to the HttpSession, I'd expect web socket components to be able to share data with servlets and JSPs in the same web application. Is that the kind of use case you had in mind ?* Upgrading HTTP requests
Not clear how URL endpoints could be defined that can handle both vanilla HTTP requests (i.e. a Servlet) and WebSockets, depending on whether an upgrade was requested.
At the moment we haven't said anything about what exiting the close method is supposed to have done - whether it waits until the socket is closed, or whether it issues the request to close it to the implementation and moves. The latter approach might be a reasonable way to do since we could use the endpoint.hasClosed(session) call to notify.* Non-blocking closes
While there are non-blocking versions of the send() methods, there is no way to do a non-blocking close().
Message not available
[jsr356-experts] Re: [jsr356-users] Re: For Review: v002 API and example code