users@jax-rs-spec.java.net

[jax-rs-spec users] Re: Server-Sent Events API proposal

From: Sergey Beryozkin <sberyozkin_at_talend.com>
Date: Sun, 5 Feb 2017 17:23:15 +0000

Hi Pavel
There was an issue I was trying to raise when the SSE draft was
originally proposed.
Specifically, it was about a default media type for SSE data.
Right now one needs to set a media type with the SSE builder. The
question was if we could let people use @Produces,
so that they do not set it every time an SSE data is returned, similarly
to the way it is done in the 'traditional' JAX-RS - one either
uses @Produces or uses Response to customize

What do you think ?

Thanks, Sergey
On 27/01/17 15:03, Sergey Beryozkin wrote:
> I've only glanced so far over the proposed changes, it all looks very
> neat, but we will def provide more feedback later on.
>
> As far as Flow is concerned, is the idea to use it only as part of SSE
> ? What will happen to it once the future JAX-RS API will be Java
> 9-only based ?
>
> Cheers, Sergey
>
> On 27/01/17 14:54, Sergey Beryozkin wrote:
>> Hi, I've been planning to move to m03 next week and see how the
>> latest reactive API fits,
>>
>> As far as SSE is concerned I've asked my colleague Andriy who did
>> implement the initial SSE proposal to evaluate the latest one when he
>> gets a chance and I will also have a look but unlikely next week,
>>
>> I recall Andriy raised an issue on this list, something to do with
>> initializing SSE Broadcasters, Marek said at a time he would look at it.
>>
>> Thanks, Sergey
>> On 27/01/17 07:55, Pavel Bucek wrote:
>>> No commends/feedback?
>>>
>>> I understand that the change is not a small one - feel free to ask
>>> if you need to have something explained in more detail.
>>>
>>> Please let me know if someone is planning to look into this topic.
>>> Ideally by the end of this week (start of the day Monday, CET). If
>>> there are no comments, we might need to move it forward even without
>>> any other input, but I don't really want to do that..
>>>
>>> Thanks and regards,
>>> Pavel
>>>
>>> On 24/01/2017 20:54, Pavel Bucek wrote:
>>>>
>>>> Dear experts,
>>>>
>>>> please allow me to bring up another addition planned to be included
>>>> in JAX-RS 2.1: Support for Server Sent Events.
>>>>
>>>> The API was introduced a while back [1], but we did incorporate
>>>> some changes, mostly alignments with Java SE 8 and another one,
>>>> slightly more controversial - alignment with Java SE 9 Flow API.
>>>>
>>>> Why we should use Flow API? We want to make the transition to Java
>>>> 9 as smooth as possible. Please note that today, the JAX-RS sources
>>>> do contain Flow class (1:1 copy from Java SE 9), but that is NOT a
>>>> final state. We want to work with it as much as possible, but we
>>>> will minimize and clean up the code before final release. How?
>>>> Consider following example:
>>>>
>>>> public interface SseBroadcasterextends AutoCloseable, Flow.Publisher<OutboundSseEvent> {
>>>> //...
>>>> }
>>>>
>>>> could be modified to
>>>>
>>>> public interface SseBroadcasterextends AutoCloseable {
>>>> //...
>>>> void subscribe(SseSubscriber<?super OutboundSseEvent> subscriber);
>>>> }
>>>>
>>>> I hope you will like the attempt to be "forward-compatible", but I
>>>> assume that this proposal alone will bring some opinions - please
>>>> share them! Last note: currently, the Flow API is used only in SSE.
>>>> We plan to use it heavily in Non-blocking I/O. If you think there
>>>> are other areas where we can take advantage of Subscriber/Publisher
>>>> methods, please let us know.
>>>>
>>>> Let me get back to the SSE API.
>>>>
>>>> Very brief description of the API is on the wiki [2], I will expand
>>>> that once we'll have some feedback.
>>>>
>>>> The proposal contains support for server and client side. All
>>>> classes are in the package javax.ws.rs.sse [3]. There is no added
>>>> class from the last proposal, but there are some changes:
>>>>
>>>> - [server] SseBroadcaster extends Publisher<OutboundSseEvent>
>>>> - [server] replaced SseBroadcaster.Listener by
>>>> SseBroadcaster#onException and SseBroadcaster#onClose
>>>> - [server] SseEventOutput extends Subscriber<OutboundSseEvent>
>>>> - [client] SseEventSource extends Publisher<InboundSseEvent>
>>>>
>>>> Corresponding commit [4] looks like a bigger one, but most of it is
>>>> renaming based on introduced interfaces, the core of the change is
>>>> relatively small.
>>>>
>>>> I look forward to your comments and suggestions.
>>>>
>>>> I don't want to prolong this already too long email - please let me
>>>> know if there are some areas which I should describe in more detail.
>>>>
>>>> Thanks and regards,
>>>> Pavel & Santiago
>>>>
>>>> [1]
>>>> https://java.net/projects/jax-rs-spec/lists/jsr370-experts/archive/2015-10/message/28
>>>> [2] https://java.net/projects/jax-rs-spec/pages/ServerSentEvents
>>>> [3]
>>>> https://github.com/jax-rs/api/tree/master/jaxrs-api/src/main/java/javax/ws/rs/sse
>>>> [4]
>>>> https://github.com/jax-rs/api/commit/b2b8f3f4f20696558a3ff52b0de17fb04c343d02
>>>>
>>>
>>
>