I'm assuming you mean https://github.com/apache/cxf/blob/master/distribution/src/main/release/samples/jax_rs/sse_cdi/src/main/java/demo/jaxrs/sse/StatsApplication.java#L39 ? That looks manually registered.
For my #1 its a CDI 2.0 feature. I think it'll work with this approach though. Any thoughts on the instability? John On Mon, Sep 18, 2017 at 5:09 AM Sergey Beryozkin <sberyoz...@gmail.com> wrote: > Have a look at the sse cdi demo Andriy added to the distribution, > the feature (the one dealing with SSE) is expected to be auto-registered. > > Re the transport id, by default CXF assumes it is 'plain' HTTP, so it > needs a hint. > > What did you mean with 1) ? > > Sergey > > On 18/09/17 00:57, John D. Ament wrote: > > Ok, i was able to work a bit deeper into this. > > > > 1. the integration works, but firing async events doesn't work. I'm not > > sure it should, since you're just appending to the request; but I want to > > play with async requests a bit. > > > > 2. The integration seems flakey I'm afraid. I'll run a test, almost > always > > it passes, but then every off test run will cause SSE to not get > > activated. I have no reproducer for this. > > > > When it does fail, all I get on the log is > > > > Sep 17, 2017 7:50:33 PM > org.apache.cxf.transport.servlet.ServletController > > invoke > > WARNING: Can't find the request for http://my-hostname:4403/rest's > Observer > > > > However, I see none of the atmosphere bootstrap occurring when this > > happens. Here's full logs for both failure and success: > > https://paste.apache.org/rWwj > > > > 3. I had to manually install the feature. Does CXF have any notion of > > automatically registering features? > > > > 4. I also had to customize the transport id. It would be good if this > was > > automatic. > > > > John > > > > On Sun, Sep 17, 2017 at 4:21 PM John D. Ament <johndam...@apache.org> > wrote: > > > >> I'm trying to create a very basic example of using SSE + CDI events. To > >> do that, I created a basic endpoint based on a CXF systest that I found, > >> but tried to adapt it to work with CDI. > >> > >> @Path("/sse") > >> @RequestScoped > >> public class SseEventEndpoint { > >> @Inject > >> private Event<SseEvent> event; > >> @Context > >> private Sse sse; > >> @GET > >> @Path("{connectionId}") > >> @Produces(MediaType.SERVER_SENT_EVENTS) > >> public void onEvent(@Context SseEventSink sink, > >> @PathParam("connectionId") final String id) { > >> System.out.println("Received request "+sse); > >> event.fireAsync(new SseEvent(sink, sse, id)); > >> } > >> } > >> > >> However, no matter what I do, the Sse object is null. Is there > something > >> I need to do to enable Sse integration? This is what my dependencies > look > >> like > >> > >> <dependency> > >> <groupId>org.apache.cxf</groupId> > >> <artifactId>cxf-integration-cdi</artifactId> > >> </dependency> > >> <dependency> > >> <groupId>org.apache.cxf</groupId> > >> <artifactId>cxf-rt-rs-client</artifactId> > >> </dependency> > >> <dependency> > >> <groupId>org.apache.cxf</groupId> > >> <artifactId>cxf-rt-rs-sse</artifactId> > >> </dependency> > >> <dependency> > >> <groupId>org.apache.cxf</groupId> > >> <artifactId>cxf-rt-transports-http</artifactId> > >> </dependency> > >> > > > > > -- > Sergey Beryozkin > > Talend Community Coders > http://coders.talend.com/ >