users@jax-rs-spec.java.net

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

From: Sebastian Daschner <java_at_sebastian-daschner.de>
Date: Fri, 27 Jan 2017 12:36:56 +0100

Hi guys,

I plan to take a look into this on the weekend as well. I would also
appreciate a wait-for-feedback timeout of one week :-)

Cheers,
Sebastian


On 01/27/2017 09:34 AM, Pavel Bucek wrote:
>
> Hi Ondrej,
>
> Thanks for your response.
>
> I'm not sure whether a week is justifiable, but we'll see how other
> will react.
>
> We are working on other things, no worries. It's not like we're
> blocked by it momentarily, but at some point, the work reaches the
> state where it doesn't make sense to continue unless the previous
> topic is finished.
>
> Have a nice weekend,
> Pavel
>
>
> On 27/01/2017 09:14, Ondrej Mihályi wrote:
>> I'd like to have a look at it, but after investing a lot of time
>> reviewing the reactive client API, I needed to give JAX-RS a break
>> and continue with my day job. I hope to have some time in next couple
>> of days, but I would appreciate if you could wait for comments one
>> week later.
>>
>> If you need to move forward, I humbly suggest working on another
>> topic while waiting for feedback on SSE.
>>
>> Ondrej
>>
>> 2017-01-27 8:55 GMT+01:00 Pavel Bucek <pavel.bucek_at_oracle.com
>> <mailto:pavel.bucek_at_oracle.com>>:
>>
>> 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 SseBroadcaster extends AutoCloseable, Flow.Publisher<OutboundSseEvent> {
>>> //...
>>> }
>>>
>>> could be modified to
>>>
>>> public interface SseBroadcaster extends 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
>>> <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
>>> <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
>>> <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
>>> <https://github.com/jax-rs/api/commit/b2b8f3f4f20696558a3ff52b0de17fb04c343d02>
>>>
>>>