JMS 2.0 was finally released on 21 May 2013.
The specification document and API documentation may be downloaded from the JCP website here.
JMS 2.0 was developed by the Java Community Process as JSR 343.
Comments are invited. You can either send email to the JMS spec user list (you will need to subscribe first: see how to subscribe) or directly to the maintenance lead, Nigel Deakin. Reports of possible errors or omissions are especially welcome.
A full list of the new features, changes and clarifications introduced in JMS 2.0 is given in the specification. See section B.5 "Version 2.0" of the "Change history" appendix. Here is a summary:
The JMS 2.0 specification now requires JMS providers to implement both P2P and Pub-Sub.
The following new messaging features have been added in JMS 2.0:
The following change has been made to aid scalability:
Several changes have been made to the JMS API to make it simpler and easier to use:
A new chapter has been added which describes some additional restrictions and behaviour which apply when using the JMS API in the Java EE web or EJB container. This information was previously only available in the EJB and Java EE platform specifications.
A new chapter has been added which defines a number of standard configuration properties for JMS message-driven beans.
New methods have been added to Session which return a MessageConsumer on a durable topic subscription. Applications could previously only obtain a domain-specific TopicSubscriber, even though its use was discouraged.
The specification has been clarified in various places.
The JMS 2.0 specification was developed by recording each proposed change in a a JIRA issue tracker. Here's a summary page of all JIRA issues incorporated into JMS 2.0
Watch this 15 minute slide presentation
Read these two OTN articles by by Nigel Deakin, JSR 343 spec lead:
Listen to a Java Spotlight Podcast interview with Nigel Deakin, JSR 343 spec lead in which he talks to host Roger Brinkley about some of the new features in JMS 2.0.
If, having read about JMS 2.0, you have questions about why it was designed as it was, read the JMS 2.0 design FAQ.
The purpose of a reference implementation is to prove that a specification can be implemented. There are two reference implementations for JMS 2.0.
A NetBeans project which demonstrates some of the new features of JMS 2.0 may be downloaded as a zip or checked out from the project's subversion repository here. An earlier version was demonstrated at JavaOne 2012.
This demonstration (which was last updated to work with GlassFish build 82) shows
Please report issues with this demonstration directly to Nigel Deakin.
Also see the JMS 2.0 Planning page
|Stage|| Initial plan|
| Current plan|
|JSR approval||March 2011||March 2011|
|Expert group formation||March 2011||May 2011|
|Early draft review||Q3 2011||28 Feb - 29 Mar 2012|
|Submission of Public Review Draft to the JCP||19 Dec 2012||19 Dec 2012|
|Start of Public Review||3 Jan 2013||3 Jan 2013|
|End of Public Review||4 Feb 2013||4 Feb 2013|
|Completion of JCP Public Review Ballot||18 Feb 2013||18 Feb 2013|
|Submission of Proposed Final Draft to the JCP||20 Feb 2013||20 Feb 2013|
|Submission of Materials for Final Ballot to the JCP||20 Mar 2013||20 Mar 2013|
|Start of Final Ballot||26 Mar 2013||26 Mar 2013|
|Completion of Final Ballot||8 Apr 2013||8 Apr 2013|
|Release of Spec, RI, TCK|| ||21 May 2013|
This was based in the schedule for the Java EE platform