Open dblevins opened 4 years ago
Was a corresponding issue filed against the Connector spec to enable this usage?
Btw, will the package really remain jakarta.jms
, not jakarta.messaging
?
@bshannon not yet, but filing that and linking it in this issue is the plan. Likely this weekend.
This is a solid start. What I have had in mind is to make the @MessageConsumer top level annotation unnecessary and the beans become just CDI beans with some allowed sensible scopes.
I am working to get my paperwork sorted out so I can contribute more than just comments. In the meanwhile, please let me know if there is some way I can help.
Reza Rahman Principal Program Manager Java on Azure
Please note that views here are my own as an individual community member and do not represent the views of my employer.
@keilw I think it is best to keep the package names unchanged. It is not ideal I know, but it will make writing backwards compatibility tools and functionality easier.
Reza Rahman Principal Program Manager Java on Azure
Please note that views here are my own as an individual community member and do not represent the views of my employer.
Replace the JMS 2.1 proposed
JMSMessageDrivenBean
with an annotation, tentatively called@MessageConsumer
Background
JMS 2.1 proposed a
JMSMessageDrivenBean
interface which would be implemented by the MDB to allow the bean to be mapped to a Connector per the Connector 1.7 rules for no-interface views.The Connector 1.7 rules require the Connector Provider to supply an interface with no methods and specify it as the message listener interface. The proposed
JMSMessageDrivenBean
would have been specified by the JMS RA (Connector) in the ra.xml file as follows:A bean developer would then implement this no-method interface so that it could have the ability to use the new annotation-based JMS 2.1 API. For example:
Issues
While functional, this solution is a bit awkward:
java.io.Serializable
Proposal
As annotations are essentially interfaces, the proposal is to update the Connector specification such that the
<messagelistener-type>
may be either aninterface
or an@interface
(annotation). When the type is an annotation, this shall be deemed to function identically to the Connector 1.7 no-interface view.For Jakarta Messaging the implication is that the proposed
JMSMessageDrivenBean
interface could be replaced with an annotation, such asMessageConsumer
:A bean developer could use that annotation as follows:
Benefits
@Path