SlideShare a Scribd company logo
@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

More Related Content

Similar to DevNexus 2020 - Jakarta Messaging 3.x, Redefining JMS

Welcome to React & Flux !
Welcome to React & Flux !Welcome to React & Flux !
Welcome to React & Flux !
Ritesh Kumar
 
Jonas Barochia_Java Developer
Jonas Barochia_Java DeveloperJonas Barochia_Java Developer
Jonas Barochia_Java Developer
Jonas Barochia
 
[CB21] ProxyLogon is Just the Tip of the Iceberg, A New Attack Surface on Mic...
[CB21] ProxyLogon is Just the Tip of the Iceberg, A New Attack Surface on Mic...[CB21] ProxyLogon is Just the Tip of the Iceberg, A New Attack Surface on Mic...
[CB21] ProxyLogon is Just the Tip of the Iceberg, A New Attack Surface on Mic...
CODE BLUE
 
Through the JMX Window
Through the JMX WindowThrough the JMX Window
Through the JMX Window
C2B2 Consulting
 

Similar to DevNexus 2020 - Jakarta Messaging 3.x, Redefining JMS (20)

Creando microservicios con Java y Microprofile - Nicaragua JUG
Creando microservicios con Java y Microprofile - Nicaragua JUGCreando microservicios con Java y Microprofile - Nicaragua JUG
Creando microservicios con Java y Microprofile - Nicaragua JUG
 
Hybrid Cloud Application Development without vendor lockin
Hybrid Cloud Application Development without vendor lockinHybrid Cloud Application Development without vendor lockin
Hybrid Cloud Application Development without vendor lockin
 
DDD in Pixel Federation volume 2
DDD in Pixel Federation volume 2DDD in Pixel Federation volume 2
DDD in Pixel Federation volume 2
 
Welcome to React & Flux !
Welcome to React & Flux !Welcome to React & Flux !
Welcome to React & Flux !
 
CDI 2.0 is coming
CDI 2.0 is comingCDI 2.0 is coming
CDI 2.0 is coming
 
Jonas Barochia_Java Developer
Jonas Barochia_Java DeveloperJonas Barochia_Java Developer
Jonas Barochia_Java Developer
 
BigDecimal: Avoid rounding errors on decimals in JavaScript (Node.TLV 2020)
BigDecimal: Avoid rounding errors on decimals in JavaScript (Node.TLV 2020)BigDecimal: Avoid rounding errors on decimals in JavaScript (Node.TLV 2020)
BigDecimal: Avoid rounding errors on decimals in JavaScript (Node.TLV 2020)
 
Jakarta EE and MicroProfile - EclipseCon 2020
Jakarta EE and MicroProfile - EclipseCon 2020Jakarta EE and MicroProfile - EclipseCon 2020
Jakarta EE and MicroProfile - EclipseCon 2020
 
Understanding the Performance Impact of Generated JavaScript.pptx
Understanding the Performance Impact of Generated JavaScript.pptxUnderstanding the Performance Impact of Generated JavaScript.pptx
Understanding the Performance Impact of Generated JavaScript.pptx
 
Professional Services Insights into Improving Sitecore XP
Professional Services Insights into Improving Sitecore XPProfessional Services Insights into Improving Sitecore XP
Professional Services Insights into Improving Sitecore XP
 
State of GeoServer 2.12
State of GeoServer 2.12State of GeoServer 2.12
State of GeoServer 2.12
 
Resume
ResumeResume
Resume
 
Adopting DLM at Greentube
Adopting DLM at GreentubeAdopting DLM at Greentube
Adopting DLM at Greentube
 
[CB21] ProxyLogon is Just the Tip of the Iceberg, A New Attack Surface on Mic...
[CB21] ProxyLogon is Just the Tip of the Iceberg, A New Attack Surface on Mic...[CB21] ProxyLogon is Just the Tip of the Iceberg, A New Attack Surface on Mic...
[CB21] ProxyLogon is Just the Tip of the Iceberg, A New Attack Surface on Mic...
 
Sukumar Resume
Sukumar ResumeSukumar Resume
Sukumar Resume
 
Through the JMX Window
Through the JMX WindowThrough the JMX Window
Through the JMX Window
 
Mastering MicroStation DGN: How to Integrate CAD and GIS
Mastering MicroStation DGN: How to Integrate CAD and GISMastering MicroStation DGN: How to Integrate CAD and GIS
Mastering MicroStation DGN: How to Integrate CAD and GIS
 
State of GeoServer 2.13
State of GeoServer 2.13State of GeoServer 2.13
State of GeoServer 2.13
 
Managing Data in Jakarta EE Applications
Managing Data in Jakarta EE ApplicationsManaging Data in Jakarta EE Applications
Managing Data in Jakarta EE Applications
 
2015 JavaOne EJB/CDI Alignment
2015 JavaOne EJB/CDI Alignment2015 JavaOne EJB/CDI Alignment
2015 JavaOne EJB/CDI Alignment
 

More from David Blevins

2011 JavaOne EJB with Meta Annotations
2011 JavaOne EJB with Meta Annotations2011 JavaOne EJB with Meta Annotations
2011 JavaOne EJB with Meta Annotations
David Blevins
 
2011 JavaOne Apache TomEE Java EE 6 Web Profile
2011 JavaOne Apache TomEE Java EE 6 Web Profile2011 JavaOne Apache TomEE Java EE 6 Web Profile
2011 JavaOne Apache TomEE Java EE 6 Web Profile
David Blevins
 
2011 JavaOne Fun with EJB 3.1 and OpenEJB
2011 JavaOne Fun with EJB 3.1 and OpenEJB2011 JavaOne Fun with EJB 3.1 and OpenEJB
2011 JavaOne Fun with EJB 3.1 and OpenEJB
David Blevins
 

More from David Blevins (16)

2019 JJUG CCC Stateless Microservice Security with MicroProfile JWT
2019 JJUG CCC Stateless Microservice Security with MicroProfile JWT2019 JJUG CCC Stateless Microservice Security with MicroProfile JWT
2019 JJUG CCC Stateless Microservice Security with MicroProfile JWT
 
2018 jPrime Deconstructing and Evolving REST Security
2018 jPrime Deconstructing and Evolving REST Security2018 jPrime Deconstructing and Evolving REST Security
2018 jPrime Deconstructing and Evolving REST Security
 
2018 Denver JUG Deconstructing and Evolving REST Security
2018 Denver JUG Deconstructing and Evolving REST Security2018 Denver JUG Deconstructing and Evolving REST Security
2018 Denver JUG Deconstructing and Evolving REST Security
 
2018 Boulder JUG Deconstructing and Evolving REST Security
2018 Boulder JUG Deconstructing and Evolving REST Security2018 Boulder JUG Deconstructing and Evolving REST Security
2018 Boulder JUG Deconstructing and Evolving REST Security
 
2018 JavaLand Deconstructing and Evolving REST Security
2018 JavaLand Deconstructing and Evolving REST Security2018 JavaLand Deconstructing and Evolving REST Security
2018 JavaLand Deconstructing and Evolving REST Security
 
2018 IterateConf Deconstructing and Evolving REST Security
2018 IterateConf Deconstructing and Evolving REST Security2018 IterateConf Deconstructing and Evolving REST Security
2018 IterateConf Deconstructing and Evolving REST Security
 
2018 SDJUG Deconstructing and Evolving REST Security
2018 SDJUG Deconstructing and Evolving REST Security2018 SDJUG Deconstructing and Evolving REST Security
2018 SDJUG Deconstructing and Evolving REST Security
 
2017 Devoxx MA Deconstructing and Evolving REST Security
2017 Devoxx MA Deconstructing and Evolving REST Security2017 Devoxx MA Deconstructing and Evolving REST Security
2017 Devoxx MA Deconstructing and Evolving REST Security
 
2017 JavaOne Deconstructing and Evolving REST Security
2017 JavaOne Deconstructing and Evolving REST Security2017 JavaOne Deconstructing and Evolving REST Security
2017 JavaOne Deconstructing and Evolving REST Security
 
2017 JCP EC: Configuration JSR
2017 JCP EC: Configuration JSR2017 JCP EC: Configuration JSR
2017 JCP EC: Configuration JSR
 
2017 dev nexus_deconstructing_rest_security
2017 dev nexus_deconstructing_rest_security2017 dev nexus_deconstructing_rest_security
2017 dev nexus_deconstructing_rest_security
 
2016 JavaOne Deconstructing REST Security
2016 JavaOne Deconstructing REST Security2016 JavaOne Deconstructing REST Security
2016 JavaOne Deconstructing REST Security
 
JavaOne 2013 - Apache TomEE, Java EE Web Profile {and more} on Tomcat
JavaOne 2013 - Apache TomEE, Java EE Web Profile {and more} on TomcatJavaOne 2013 - Apache TomEE, Java EE Web Profile {and more} on Tomcat
JavaOne 2013 - Apache TomEE, Java EE Web Profile {and more} on Tomcat
 
2011 JavaOne EJB with Meta Annotations
2011 JavaOne EJB with Meta Annotations2011 JavaOne EJB with Meta Annotations
2011 JavaOne EJB with Meta Annotations
 
2011 JavaOne Apache TomEE Java EE 6 Web Profile
2011 JavaOne Apache TomEE Java EE 6 Web Profile2011 JavaOne Apache TomEE Java EE 6 Web Profile
2011 JavaOne Apache TomEE Java EE 6 Web Profile
 
2011 JavaOne Fun with EJB 3.1 and OpenEJB
2011 JavaOne Fun with EJB 3.1 and OpenEJB2011 JavaOne Fun with EJB 3.1 and OpenEJB
2011 JavaOne Fun with EJB 3.1 and OpenEJB
 

Recently uploaded

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 

Recently uploaded (20)

Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Server-Driven User Interface (SDUI) at Priceline
Server-Driven User Interface (SDUI) at PricelineServer-Driven User Interface (SDUI) at Priceline
Server-Driven User Interface (SDUI) at Priceline
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Transforming The New York Times: Empowering Evolution through UX
Transforming The New York Times: Empowering Evolution through UXTransforming The New York Times: Empowering Evolution through UX
Transforming The New York Times: Empowering Evolution through UX
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 

DevNexus 2020 - Jakarta Messaging 3.x, Redefining JMS