2015-08-25 19:10 GMT+02:00 Nigel Deakin <nigel.deakin@oracle.com>:
I'm sorry I don't understand you. I thought you were asking about an API which does not use annotation.

Both are needed (like websocket spec). Annotation one is nice for fully business code and/or simple libs but relying on CDI allows to simplify the wiring since you can reuse CDI beans under the hood ie have an implicit connection factory if there is a single one etc which is not possible in fully SE context.

On 25/08/2015 18:03, Romain Manni-Bucau wrote:
Integrating it in CDI lifecycle through an event allow CDI users to still use it in the right phase of the container
boot so it is still important IMO and avoid all users to have their own custom listener for it -
@Initialized(AppScoped.class). Also allow to enrich the API through the event itself making things smoother IMO.

Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> | Blog <http://rmannibucau.wordpress.com> | Github
<https://github.com/rmannibucau> | LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber

2015-08-25 18:58 GMT+02:00 Nigel Deakin <nigel.deakin@oracle.com <mailto:nigel.deakin@oracle.com>>:

    On 25/08/2015 17:35, Romain Manni-Bucau wrote:

        well was thinking to both but I see it really nice to not rely only on annotation - and aligned with most specs
        - since
        sometimes you just want to either be able to rely on a loop or a custom config to register your listeners.
        are too rigid for such cases.

    Obviously, if users don't want to use CDI (or MDBs, which are also declarative), then they would use the normal JMS
    API. The existing API to register an async message listener isn't good enough, and we may improve it in JMS 2.1, but
    that's not something that I'd want to bother the people on cdi-dev with.