@dblevins @tomitribe
David Blevins
Java Message Service
Jakarta Messaging 3.x
@dblevins @tomitribe
AGENDA
● Death of JMS 2.1
● Jakarta EE 9 / Jakarta Messaging 3.0
● Possible directions for Messaging 3.x
● Get Involved
@dblevins @tomitribe
JMS Timeline
May 2013
JAVA EE 7
JMS 2.0
JCA 1.6
Sep 2019
JAKARTA EE 8
JMS 2.0
JCA 1.7
Aug 2017
JAVA EE 8
JMS 2.0
JCA 1.7
JMS 2.1
Proposed
Sep 2013
JAVA EE 7
JMS 2.1
Withdrawn
Nov 2016
JAVA EE 7
@dblevins @tomitribe
JMS Timeline
Sep 2020
JAKARTA EE 9
3.0
javax > jakarta
2021
JAKARTA EE 10
3.1
new features
2021?
3.2
new features
….
3.3
new features
@dblevins @tomitribe
JMS Timeline
Sep 2020
JAKARTA EE 9
3.0
javax > jakarta
2021
JAKARTA EE 10
3.1
new features
2021?
3.2
new features
….
3.3
new features
@dblevins @tomitribe
JMS 2.0 in a Nutshell
The 2 minute perspective
@dblevins @tomitribe
JMS 1.1
@dblevins @tomitribe
JMS 2.0
@dblevins @tomitribe
BUILDER API
@dblevins @tomitribe
Text Message
@dblevins @tomitribe
JMS 2.0 in a Nutshell
The 5 minute perspective
@dblevins @tomitribe
JMS 2.0
Programmatic
New Builders
JMSContext
JMSProducer
JMSConsumer
Some increased CDI support
JMS 2.1
Declarative
New Annotations
@QueueListener
@TopicListener
@MessageSelector
Greater CDI support
@dblevins @tomitribe
Jakarta Messaging 3.x Ideas
● JMS 2.1
● CDI Consumers
● Property Conversion
● CDI Stereotypes #1 - In API
● CDI Stereotypes #2 - In your code
● JSON-B Messages
● MessagingClient
@dblevins @tomitribe
Jakarta Messaging 3.x Ideas
1. JMS 2.1
2. CDI Consumers
3. Property Conversion
4. CDI Stereotypes #1 - In API
5. CDI Stereotypes #2 - In your code
6. JSON-B Messages
7. MessagingClient
@dblevins @tomitribe
JMS 2.0 in a Nutshell
The 5 minute perspective
@dblevins @tomitribe
JMS 2.1 removed from Java EE 8
Now the basis of Jakarta Messaging 3.0
@dblevins @tomitribe
The Problem With MDBs
JMS 2.0 and before
@dblevins @tomitribe
@dblevins @tomitribe
@dblevins @tomitribe
@dblevins @tomitribe
@dblevins @tomitribe
SO 2004….
@dblevins @tomitribe
LEARNING FROM JAX-RS
● No interfaces
● Fluid method signatures
● Annotation-based configuration
● Strongly Typed
● Self-documenting
● Targeted: annotations can be on
○ Class, Method, Parameter, Field
@dblevins @tomitribe
OH YEAH
@dblevins @tomitribe
Jakarta Messaging 3.0 Ideas
● JMS 2.1
● CDI Consumers
● Property Conversion
● CDI Stereotypes #1 - In API
● CDI Stereotypes #2 - In your code
● JSON-B Messages
● MessagingClient
@dblevins @tomitribe
Still not perfect...
@dblevins @tomitribe
Jakarta Messaging 3.x Ideas
● JMS 2.1
● CDI Consumers
● Property Conversion
● CDI Stereotypes #1 - In API
● CDI Stereotypes #2 - In your code
● JSON-B Messages
● MessagingClient
@dblevins @tomitribe
Still not perfect...
@dblevins @tomitribe
Jakarta Messaging 3.x Ideas
● JMS 2.1
● CDI Consumers
● Property Conversion
● CDI Stereotypes #1 - In API
● CDI Stereotypes #2 - In your code
● JSON-B Messages
● MessagingClient
@dblevins @tomitribe
Still not perfect...
@dblevins @tomitribe
Jakarta Messaging 3.x Ideas
● JMS 2.1
● CDI Consumers
● Property Conversion
● CDI Stereotypes #1 - In API
● CDI Stereotypes #2 - In your code
● JSON-B Messages
● MessagingClient
@dblevins @tomitribe
Still not perfect...
@dblevins @tomitribe
Jakarta Messaging 3.x Ideas
● JMS 2.1
● CDI Consumers
● Property Conversion
● CDI Stereotypes #1 - In API
● CDI Stereotypes #2 - In your code
● JSON-B Messages
● MessagingClient
@dblevins @tomitribe
Still not perfect...
@dblevins @tomitribe
Jakarta Messaging 3.x Ideas
● JMS 2.1
● CDI Consumers
● Property Conversion
● CDI Stereotypes #1 - In API
● CDI Stereotypes #2 - In your code
● JSON-B Messages
● MessagingClient
@dblevins @tomitribe
Still not perfect...
@dblevins @tomitribe
Jakarta Messaging 3.x Ideas
● JMS 2.1
● CDI Consumers
● Property Conversion
● CDI Stereotypes #1 - In API
● CDI Stereotypes #2 - In your code
● JSON-B Messages
● MessagingClient
@dblevins @tomitribe
MicroProfile REST Client
2 Minute Overview
@dblevins @tomitribe
Given this JAX-RS Resource
@dblevins @tomitribe
Client Interface
@dblevins @tomitribe
Client Builder
@dblevins @tomitribe
MicroProfile Rest Client
● JMS 2.1
● CDI Consumers
● Property Conversion
● CDI Stereotypes #1 - In API
● CDI Stereotypes #2 - In your code
● JSON-B Messages
● MessagingClient
@dblevins @tomitribe
Jakarta Messaging 3.x - All Together
● JMS 2.1
● CDI Consumers
● Property Conversion
● CDI Stereotypes #1 - In API
● CDI Stereotypes #2 - In your code
● JSON-B Messages
● MessagingClient
@dblevins @tomitribe
FROM THIS… JMS 2.1
@dblevins @tomitribe
FROM THIS… JMS 2.1
@dblevins @tomitribe
FROM THIS… JMS 2.1
@dblevins @tomitribe
TO THIS Jakarta Messaging 3.x
@dblevins @tomitribe
Get Involved
Jakarta Messaging
- https://github.com/eclipse-ee4j/jms-api
- https://accounts.eclipse.org/mailing-list/jms-dev
This Code
- https://github.com/tomitribe/jms-proposals
@dblevins @tomitribe
Thank you
Contact us @TOMITRIBE

DevNexus 2020 - Jakarta Messaging 3.x, Redefining JMS