Submit Search
Upload
What's coming in Java EE 8
•
5 likes
•
2,330 views
David Delabassee
Follow
What's coming in Java EE 8 Presented at JavaOne LAD (June 2015)
Read less
Read more
Software
Report
Share
Report
Share
1 of 71
Download now
Download to read offline
Recommended
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot
David Delabassee
Best Way to Write SQL in Java
Best Way to Write SQL in Java
Gerger
Move from J2EE to Java EE
Move from J2EE to Java EE
Hirofumi Iwasaki
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?
Reza Rahman
Seven Points for Applying Java EE 7
Seven Points for Applying Java EE 7
Hirofumi Iwasaki
EJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and Strategy
David Delabassee
Java EE Revisits GoF Design Patterns
Java EE Revisits GoF Design Patterns
Murat Yener
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
Edward Burns
Recommended
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot
David Delabassee
Best Way to Write SQL in Java
Best Way to Write SQL in Java
Gerger
Move from J2EE to Java EE
Move from J2EE to Java EE
Hirofumi Iwasaki
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?
Reza Rahman
Seven Points for Applying Java EE 7
Seven Points for Applying Java EE 7
Hirofumi Iwasaki
EJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and Strategy
David Delabassee
Java EE Revisits GoF Design Patterns
Java EE Revisits GoF Design Patterns
Murat Yener
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
Edward Burns
JavaCro'15 - Java EE 8 - An instant snapshot - David Delabassee
JavaCro'15 - Java EE 8 - An instant snapshot - David Delabassee
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
MVC 1.0 / JSR 371
MVC 1.0 / JSR 371
David Delabassee
JSONB introduction and comparison with other frameworks
JSONB introduction and comparison with other frameworks
Dmitry Kornilov
Java EE 7 - Overview and Status
Java EE 7 - Overview and Status
Java Usergroup Berlin-Brandenburg
What's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and Beyond
Oracle
Java EE 8: On the Horizon
Java EE 8: On the Horizon
Josh Juneau
JavaScript Frameworks and Java EE – A Great Match
JavaScript Frameworks and Java EE – A Great Match
Reza Rahman
Finally, EE Security API JSR 375
Finally, EE Security API JSR 375
Alex Kosowski
GlassFish BOF
GlassFish BOF
glassfish
Down-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EE
Reza Rahman
2015 JavaOne EJB/CDI Alignment
2015 JavaOne EJB/CDI Alignment
David Blevins
Construindo aplicações com HTML5, WebSockets, e Java EE 7
Construindo aplicações com HTML5, WebSockets, e Java EE 7
Bruno Borges
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems
Arshal Ameen
Testing Java EE Applications Using Arquillian
Testing Java EE Applications Using Arquillian
Reza Rahman
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Edward Burns
Java EE 7 overview
Java EE 7 overview
Masoud Kalali
What's Coming in Java EE 8
What's Coming in Java EE 8
PT.JUG
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot
David Delabassee
Java EE 8 - What’s new on the Web front
Java EE 8 - What’s new on the Web front
David Delabassee
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
David Delabassee
Java API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and update
Martin Grebac
112815 java ee8_davidd
112815 java ee8_davidd
Takashi Ito
More Related Content
What's hot
JavaCro'15 - Java EE 8 - An instant snapshot - David Delabassee
JavaCro'15 - Java EE 8 - An instant snapshot - David Delabassee
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
MVC 1.0 / JSR 371
MVC 1.0 / JSR 371
David Delabassee
JSONB introduction and comparison with other frameworks
JSONB introduction and comparison with other frameworks
Dmitry Kornilov
Java EE 7 - Overview and Status
Java EE 7 - Overview and Status
Java Usergroup Berlin-Brandenburg
What's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and Beyond
Oracle
Java EE 8: On the Horizon
Java EE 8: On the Horizon
Josh Juneau
JavaScript Frameworks and Java EE – A Great Match
JavaScript Frameworks and Java EE – A Great Match
Reza Rahman
Finally, EE Security API JSR 375
Finally, EE Security API JSR 375
Alex Kosowski
GlassFish BOF
GlassFish BOF
glassfish
Down-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EE
Reza Rahman
2015 JavaOne EJB/CDI Alignment
2015 JavaOne EJB/CDI Alignment
David Blevins
Construindo aplicações com HTML5, WebSockets, e Java EE 7
Construindo aplicações com HTML5, WebSockets, e Java EE 7
Bruno Borges
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems
Arshal Ameen
Testing Java EE Applications Using Arquillian
Testing Java EE Applications Using Arquillian
Reza Rahman
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Edward Burns
Java EE 7 overview
Java EE 7 overview
Masoud Kalali
What's hot
(16)
JavaCro'15 - Java EE 8 - An instant snapshot - David Delabassee
JavaCro'15 - Java EE 8 - An instant snapshot - David Delabassee
MVC 1.0 / JSR 371
MVC 1.0 / JSR 371
JSONB introduction and comparison with other frameworks
JSONB introduction and comparison with other frameworks
Java EE 7 - Overview and Status
Java EE 7 - Overview and Status
What's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and Beyond
Java EE 8: On the Horizon
Java EE 8: On the Horizon
JavaScript Frameworks and Java EE – A Great Match
JavaScript Frameworks and Java EE – A Great Match
Finally, EE Security API JSR 375
Finally, EE Security API JSR 375
GlassFish BOF
GlassFish BOF
Down-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EE
2015 JavaOne EJB/CDI Alignment
2015 JavaOne EJB/CDI Alignment
Construindo aplicações com HTML5, WebSockets, e Java EE 7
Construindo aplicações com HTML5, WebSockets, e Java EE 7
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems
Testing Java EE Applications Using Arquillian
Testing Java EE Applications Using Arquillian
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 overview
Java EE 7 overview
Similar to What's coming in Java EE 8
What's Coming in Java EE 8
What's Coming in Java EE 8
PT.JUG
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot
David Delabassee
Java EE 8 - What’s new on the Web front
Java EE 8 - What’s new on the Web front
David Delabassee
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
David Delabassee
Java API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and update
Martin Grebac
112815 java ee8_davidd
112815 java ee8_davidd
Takashi Ito
Presente e Futuro: Java EE.next()
Presente e Futuro: Java EE.next()
Bruno Borges
What’s new in JSR 367 Java API for JSON Binding
What’s new in JSR 367 Java API for JSON Binding
Dmitry Kornilov
JSON-B for CZJUG
JSON-B for CZJUG
Dmitry Kornilov
What's new in the Java API for JSON Binding
What's new in the Java API for JSON Binding
Dmitry Kornilov
Java EE for the Cloud
Java EE for the Cloud
Dmitry Kornilov
Java EE 8 Overview (Japanese)
Java EE 8 Overview (Japanese)
Logico
XML-Free Programming : Java Server and Client Development without <>
XML-Free Programming : Java Server and Client Development without <>
Arun Gupta
Pushing JavaEE outside of the enterprise: Home Automation & IoT - David Delab...
Pushing JavaEE outside of the enterprise: Home Automation & IoT - David Delab...
Codemotion Tel Aviv
The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011
Arun Gupta
JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?
Edward Burns
RESTful Services and Distributed OSGi - 04/2009
RESTful Services and Distributed OSGi - 04/2009
Roland Tritsch
Configuration for Java EE: Config JSR and Tamaya
Configuration for Java EE: Config JSR and Tamaya
Dmitry Kornilov
JavaOne2015フィードバック @ 富山合同勉強会
JavaOne2015フィードバック @ 富山合同勉強会
Takashi Ito
RESTful web service with JBoss Fuse
RESTful web service with JBoss Fuse
ejlp12
Similar to What's coming in Java EE 8
(20)
What's Coming in Java EE 8
What's Coming in Java EE 8
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot
Java EE 8 - What’s new on the Web front
Java EE 8 - What’s new on the Web front
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and update
112815 java ee8_davidd
112815 java ee8_davidd
Presente e Futuro: Java EE.next()
Presente e Futuro: Java EE.next()
What’s new in JSR 367 Java API for JSON Binding
What’s new in JSR 367 Java API for JSON Binding
JSON-B for CZJUG
JSON-B for CZJUG
What's new in the Java API for JSON Binding
What's new in the Java API for JSON Binding
Java EE for the Cloud
Java EE for the Cloud
Java EE 8 Overview (Japanese)
Java EE 8 Overview (Japanese)
XML-Free Programming : Java Server and Client Development without <>
XML-Free Programming : Java Server and Client Development without <>
Pushing JavaEE outside of the enterprise: Home Automation & IoT - David Delab...
Pushing JavaEE outside of the enterprise: Home Automation & IoT - David Delab...
The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011
JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?
RESTful Services and Distributed OSGi - 04/2009
RESTful Services and Distributed OSGi - 04/2009
Configuration for Java EE: Config JSR and Tamaya
Configuration for Java EE: Config JSR and Tamaya
JavaOne2015フィードバック @ 富山合同勉強会
JavaOne2015フィードバック @ 富山合同勉強会
RESTful web service with JBoss Fuse
RESTful web service with JBoss Fuse
More from David Delabassee
JVMs in Containers - Best Practices
JVMs in Containers - Best Practices
David Delabassee
JVMs in Containers
JVMs in Containers
David Delabassee
Serverless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
David Delabassee
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs
David Delabassee
Randstad Docker meetup - Serverless
Randstad Docker meetup - Serverless
David Delabassee
Java Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed Banff
David Delabassee
Serverless Kotlin
Serverless Kotlin
David Delabassee
REST in an Async World
REST in an Async World
David Delabassee
JAX-RS 2.1 Reloaded
JAX-RS 2.1 Reloaded
David Delabassee
Java EE 8 - February 2017 update
Java EE 8 - February 2017 update
David Delabassee
Java EE Next
Java EE Next
David Delabassee
Java EE Next - BeJUG JavaOne Afterglow 2016
Java EE Next - BeJUG JavaOne Afterglow 2016
David Delabassee
HTTP/2 comes to Java
HTTP/2 comes to Java
David Delabassee
Java EE 8 - Work in progress
Java EE 8 - Work in progress
David Delabassee
HTTP/2 comes to Java (Dec. 2015 version)
HTTP/2 comes to Java (Dec. 2015 version)
David Delabassee
HTTP/2 Comes to Java
HTTP/2 Comes to Java
David Delabassee
HTTP/2 Comes to Java
HTTP/2 Comes to Java
David Delabassee
Avatar 2.0
Avatar 2.0
David Delabassee
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
David Delabassee
Pushing Java EE outside of the Enterprise - Home Automation
Pushing Java EE outside of the Enterprise - Home Automation
David Delabassee
More from David Delabassee
(20)
JVMs in Containers - Best Practices
JVMs in Containers - Best Practices
JVMs in Containers
JVMs in Containers
Serverless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs
Randstad Docker meetup - Serverless
Randstad Docker meetup - Serverless
Java Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed Banff
Serverless Kotlin
Serverless Kotlin
REST in an Async World
REST in an Async World
JAX-RS 2.1 Reloaded
JAX-RS 2.1 Reloaded
Java EE 8 - February 2017 update
Java EE 8 - February 2017 update
Java EE Next
Java EE Next
Java EE Next - BeJUG JavaOne Afterglow 2016
Java EE Next - BeJUG JavaOne Afterglow 2016
HTTP/2 comes to Java
HTTP/2 comes to Java
Java EE 8 - Work in progress
Java EE 8 - Work in progress
HTTP/2 comes to Java (Dec. 2015 version)
HTTP/2 comes to Java (Dec. 2015 version)
HTTP/2 Comes to Java
HTTP/2 Comes to Java
HTTP/2 Comes to Java
HTTP/2 Comes to Java
Avatar 2.0
Avatar 2.0
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
Pushing Java EE outside of the Enterprise - Home Automation
Pushing Java EE outside of the Enterprise - Home Automation
Recently uploaded
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
kalichargn70th171
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
AxelRicardoTrocheRiq
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
MyIntelliSource, Inc.
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
VitsRangannavar
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
stazi3110
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
aditisharan08
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
VICTOR MAESTRE RAMIREZ
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽❤️🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽❤️🧑🏻 89...
gurkirankumar98700
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
shikhaohhpro
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
kellynguyen01
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
kaushalgiri8080
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
soniya singh
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Christina Lin
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
joe51371421
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
Power Karaoke
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
Mehedi Hasan Shohan
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
OnePlan Solutions
Professional Resume Template for Software Developers
Professional Resume Template for Software Developers
Vinodh Ram
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio, Inc.
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
ICS
Recently uploaded
(20)
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽❤️🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽❤️🧑🏻 89...
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Professional Resume Template for Software Developers
Professional Resume Template for Software Developers
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
What's coming in Java EE 8
1.
What’s coming in
Java EE 8 David Delabassee -‐ @delabassee Software Evangelist Java EE Org. -‐ Oracle June 2015 Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
2.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Agenda How did we get here? What do we want to do? How can you get involved? Preview of Java EE 8
3.
Safe Harbor Statement The
following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 3
4.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE 7 ENTERPRISE EDITION ‣ Batch ‣ Concurrency ‣ Simplified JMS ‣ More annotated POJOs ‣ Less boilerplate code ‣ Cohesive integrated platform DEVELOPER PRODUCTIVITY ‣ WebSockets ‣ JSON ‣ Servlet 3.1 NIO ‣ REST MEETING ENTERPRISE DEMANDS Java EE 7 4
5.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Industry Trends We're Seeing Cloud Mobile HTTP/2 SECURITY Reactive Programming User Experience 5
6.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Feedback from the Community • Many sources – Users lists of java.net projects – JIRAs – JavaOne Java EE BOF and Java EE EG meeting – Outreach by evangelists • Consolidated into Community Survey – 47 questions – 15.000 answers 6
7.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Community-‐Prioritized Features http://glassfish.org/survey 7
8.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. You asked for it, you got it! Java EE 8 Driven by Community Feedback
9.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE 8 Themes • HTML5 / Web Tier Enhancements • Ease of Development • Infrastructure for running in the Cloud 9
10.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE 8 Themes • HTML5 / Web Tier Enhancements • Ease of Development • Infrastructure for running in the Cloud 10
11.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. HTML5 Support / Web Tier Enhancements • JSON Binding • JSON Processing enhancements • Server-‐sent Events • Action-‐based MVC • HTTP/2 support 11
12.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSON-‐B • API to marshal/unmarshal Java objects to/from JSON – Similar to JAXB runtime API in XML world • Default mapping of classes to JSON – Annotations to customize the default mappings – JsonProperty, JsonTransient, JsonNillable, JsonValue, … Java API for JSON Binding 12
13.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSON-‐B • Draw from best practices of existing JSON binding implementations – Jackson, Genson, EclipseLink MOXy, Fleece, JSON-‐lib, Gson, Flexjson, Json-‐io, JSONiJ, Johnzon, Xstream, etc. • Switch JSON binding providers • Implementations compete on common ground Standard API 13
14.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSON-‐B // from default JsonbBuilder instance of the default JsonbProvider Jsonb jsonb = JsonbBuilder.create(); JsonbProvider myProvider = JsonbProvider.provider("foo.bar.ProviderImpl"); Jsonb jsonb = JsonbBuilder.newBuilder(myProvider); // UnMarshall Book book = jsonb.fromJson(new File("myBook.json"), Book.class); // Marshall jsonb.toJson(myObject, new File(“foo.json”)); jsonb.toJson(myObject, new PrintWriter(System.out)); 14
15.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSON-‐P 1.1 Java API for JSON Processing • Keep JSON-‐P spec up-‐to-‐date • Track new standards • Add editing operations to JsonObject and JsonArray • Java SE 8 • JSON Big Data 15
16.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSON-‐P 1.1 • String syntax for referencing a JSON value "/0/phone/mobile" JSON-‐Pointer – IETF RFC 6901 16
17.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSON-‐P 1.1 JsonArray contacts = … JsonPointer pointer = new JsonPointer("/0/name"); JsonValue value = pointer.getValue(contacts); [ { "name":"Duke", "gender":"M", "phones":{ "home":"650-‐123-‐4567", "mobile":"650-‐234-‐5678"}}, { "name":"Jane", "gender":"F", "phones":{ "mobile":"707-‐555-‐9999"}} ] 17
18.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSON-‐P 1.1 • String syntax for referencing a JSON value “/0/name" • Methods – getValue() – JSON operations: add(), replace(), remove() JSON-‐Pointer – IETF RFC 6901 JsonPointer pointer = new JsonPointer("/0/name"); JsonArray result = pointer.replace(contacts, Json.createValue("Alex")); 18
19.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSON-‐P 1.1 • Patch is a JSON document – Array of objects / operations for modifying a JSON document – add, replace, remove, move, copy, test JSON-‐Patch – IETF RFC 6902 [ {"op":"replace","path":"/0/phones/mobile","value":"650-‐111-‐222"}, {"op":"remove","path":"/1"} ] 19
20.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSON-‐P 1.1 [ { "op":"replace", "path":"/0/phones/mobile", "value":"650-‐111-‐2222"}, { "op":"remove", "path":"/1"} ] [ { "name":"Duke", "gender":"M", "phones":{ "home":"650-‐123-‐4567", "mobile":"650-‐234-‐5678"}}, { "name":"Jane", "gender":"F", "phones":{ "mobile":"707-‐555-‐9999"}} ] 20
21.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSON-‐P 1.1 [ { "op":"replace", "path":"/0/phones/mobile", "value":"650-‐111-‐2222"}, { "op":"remove", "path":"/1"} ] [ { "name":"Duke", "gender":"M", "phones":{ "home":"650-‐123-‐4567", "mobile":"650-‐111-‐2222"}}, { "name":"Jane", "gender":"F", "phones":{ "mobile":"707-‐555-‐9999"}} ] 21
22.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSON-‐P 1.1 [ { "op":"replace", "path":"/0/phones/mobile", "value":"650-‐111-‐2222"}, { "op":"remove", "path":"/1"} ] [ { "name":"Duke", "gender":"M", "phones":{ "home":"650-‐123-‐4567", "mobile":"650-‐111-‐2222"}} ] 22
23.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JsonArray target = …; JsonArray patch = …; JsonPatch jsonPatch = new JsonPatch(patch); JsonArray result = jsonPatch.apply(target); JSON-‐P 1.1 JsonPatchBuilder builder = new JsonPatchBuilder(); JsonArray result = builder.add("/Joe/phones/office", "1234-‐567") .remove("/Amy/age") .apply(contacts); 23
24.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSON-‐P 1.1 JSON-‐Merge Patch – IETF RFC 7386 Orignal Patch Result {"a":"b"} {"a":"c"} {"a":"c"} {"a":"b"} {"b":"c"} {"a":"b", "b":"c"} {"a":"b"} {"a":null} { } {"a":"b", {"a":null} {"b":"c"} "b":"c"} { } {"a": {"a": {"bb": {"bb": {"ccc": {}}} null}}} 24
25.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSON-‐P 1.1 { "title": "Hello!", "author": { "familyName": null }, "tags": [ "example" ], "phoneNumber": "+01-‐123-‐456-‐7890" } { "title": "Goodbye!", "author": { "givenName": "John", "familyName": "Doe" }, "tags": [ "example", "sample" ], "content": "This will be unchanged" } { "title": "Hello!", "author": { "givenName": "John" }, "tags": [ "example" ], "content": "This will be unchanged", "phoneNumber": "+01-‐123-‐456-‐7890" } JSON-‐Merge Patch – IETF RFC 7386 25
26.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JsonObject contact = …; // The target to be patched JsonObject patch = …; JsonValue output = JsonMergePatch.mergePatch(target, patch); JSON-‐P 1.1 JSON-‐Merge Patch – IETF RFC 7386 26
27.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSON-‐P 1.1 • Reverse operation – Given two objects returns the patch to apply (diff) JSON-‐Patch & JSON-‐Merge Patch Diff JsonValue output = JsonMergePatch.diff(original, target); JsonArray diff = JsonPatch.diff(original, target); 27
28.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSON-‐P 1.1 JSON Query collecting results in JsonArray JsonArray cars = ...; JsonArray audis = cars.getValuesAs(JsonObject.class).stream() .filter(x-‐>"Audi".equals(x.getString("brand"))) .map(x-‐>(x.getString("serial")) .collect(JsonCollectors.toJsonArray()); 28
29.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSON-‐P 1.1 • Keep JSON-‐P spec up-‐to-‐date • Track new standards • Add editing operations to JsonObject and JsonArray • Java SE 8 • JSON Big Data JSR 374 29
30.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Server-‐sent Events • Part of HTML5 standardization • Server-‐to-‐client streaming of text data • Media type: “text/event-‐stream” • Long-‐lived HTTP connection – Client establishes connection – Server pushes update notifications to client 30
31.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Server-‐sent Events • Servlet, WebSocket, JAX-‐RS or standalone API? • JAX-‐RS deemed most natural fit – Streaming HTTP resources already supported – Small extension • Server API: new media type; EventOutput • Client API: new handler for server side events – Convenience of mixing with other HTTP operations; new media type – Jersey already supports SSE 31
32.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Server-‐sent Events @Path("tickers") public class StockTicker { … @Get @Produces("text/event-‐stream") public EventOutput getQuotes() { EventOutput eo = new EventOutput(); new StockThread(eo).start() return eo; } } JAX-‐RS resource class 32
33.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JAX-‐RS StockThread class class StockThread extends Thread { private EventOutput eo; … @Override public void run() { try { … eo.send(new StockQuote("...")); } catch (IOException e) { … } } } Server-‐sent Events 33
34.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. WebTarget target = client.target("http://example.com/tickers"); EventSource eventSource = new EventSource(target) { @Override public void onEvent(InboundEvent inboundEvent) { StockQuote sq = inboundEvent.readData(StockQuote.class); // ... } }; eventSource.open(); JAX-‐RS Client Server-‐sent Events 34
35.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. MVC 1.0 • Why? – Java EE 8 Community Survey – UI landscape is not one size fits all Action-‐based Model-‐View-‐Controller architecture 35
36.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. MVC 1.0 • Model – CDI, Bean Validation, JPA • View – Facelets, JSP, SPI? • Controller – Invent new technology Vs. Leverage existing technologies? Glues together key Java EE technologies 36
37.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Controller @Path("hello") @Controller public class HelloController { @GET @View("view1.xhtml") public void hello() { // do business stuff } } 37
38.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Controller @Path("hello") public class HelloController { @GET @Controller public String hello() { // do business stuff return "viewA.jsp"; } } 38
39.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Model @Named(“greeting”) @RequestScoped public class Greeting { private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } } 39
40.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. View <%@ page contentType=“text/html;charset=UTF-8” language=“java” %> <html> <head> <title>Hello</title> </head> <body> <p>Hello ${greeting.message}</p> </body> </html> 40
41.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. View <html> <head> <title>FreeMarker</title> </head> <body> <p>Hello ${user}</p> </body> </html> 41
42.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSR 371 • View Engine – JSP & Facelets – FreeMarker, Velocity, Thymeleaf, Mustache, Handlebars, Pebble, AsciiDoc • Validation • Exception Mapping Providers • Bootstrap via javax.ws.rs.core.Application • @Produces • CDI Events Early Draft Review 42
43.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. HTTP 1.1 circa 1999 • HoLB • HTTP uses TCP poorly - HTTP flows are short and bursty - TCP was built for long-‐lived flows • Solutions - File concatenations, Assets Inlining, Domain sharding, etc. Problems Vs Solutions 43
44.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. HTTP/2 • HTTP/2 – Hypertext Transfer Protocol version 2 -‐ RFC 7540 – HPACK -‐ Header Compression for HTTP/2 -‐ RFC 7541 • Reduce latency • Address the HOL blocking problem • Support parallelism • Retain semantics of HTTP 1.1 • Define interaction with HTTP 1.x Address the Limitations of HTTP 1.x 44
45.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. HTTP/2 • One TCP Connection • Request -‐> Stream – Multiplexed – Prioritised • Binary Framing Layer – Prioritisation – Flow Control – Server Push • Header Compression Multiplexed Binary Frames POST /upload HTTP/1.1 Host: www.test.com Content-‐Type: application/json Content-‐Length: 15 {“name”:“duke”} HTTP 1.1 HTTP/2 HEADERS frame DATA frame 45
46.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. HTTP/2 Server Push /index.html : stream 1 /style.css : stream 2 /logo.png : stream 4 Client Server stream 1 HEADERS stream 1 FRAME x stream 2 PROMISE stream 4 PROMISE 46
47.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Servlet 4.0 • Request/response multiplexing – Servlet Request as HTTP/2 message • Stream prioritization – Add stream priority to HttpServletRequest • Server push • Binary framing • Upgrade from HTTP 1.1 HTTP/2 Features in Servlet API 47
48.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE 8 Themes • HTML5 / Web Tier Enhancements • Ease of Development • Infrastructure for running in the Cloud 48
49.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE 8 Themes • HTML5 / Web Tier Enhancements • Ease of Development • Infrastructure for running in the Cloud 49
50.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Ease of Development • CDI alignment • JAX-‐RS injection alignment • Simplified messaging through CDI-‐based “MDBs” • WebSocket scopes • Pruning of EJB 2.x client view and IIOP interoperability • Security interceptors • … 50
51.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JMS 2.1 • Alternative to EJB message-‐driven beans • Simpler JMS-‐specific annotations • Usable by any CDI bean • No need for MessageListener implementation New API to receive messages asynchronously 51
52.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JMS @MessageDriven(activationConfig = { @ActivationConfigProperty(propertyName="connectionFactoryLookup", propertyValue="jms/myCF"), @ActivationConfigProperty(propertyName="destinationLookup", propertyValue="jms/myQueue"), @ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.queue")}) public class MyMDB implements MessageListener { public void onMessage(Message message) { // extract message body String body = message.getBody(String.class)); // process message body } } MDBs Today 52
53.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JMS 2.1 @MessageDriven public class MyMessageBean implements JMSMessageDrivenBean { @JMSListener(lookup="java:global/Trades", type=JMSListener.Type.QUEUE) public void processTrade(TextMessage tradeMessage) { ... } } 53 MDBs Tomorrow?
54.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. • Java SE support • Modularity • Enhanced Events • Misc. – AOP – SPI – Interceptors and Decorators enhancements – Cleaning CDI 2.0 54
55.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. CDI 2.0 • Add new features to CDI without bloating the specification • “Sub specification”(aka “parts”) that can be used independently – SE – EE – more? • Will help CDI adoption Modularity 55
56.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. public class ProducerClass { @Inject Event<SomeEvent> someEvent; public void someMethod(...) { ... someEvent.fire(...); } } CDI 2.0 Synchronous Events public class ConsumerClass { public void someObserver(@Observes SomeEvent someEvent) { ... } } 56
57.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. CDI 2.0 Asynchronous Events public class ConsumerClass { public void someObserver(@ObservesAsync SomeEvent someEvent) { ... } } public class AsynchProducerClass { @Inject Event<Payload> someEvent; public void anotherMethod() { CompletionStage<…> completionStage someEvent.fireAsync(...); } } 57
58.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. CDI 2.0 Events Ordering public void importantObserver(@Observes @Priority(1) MyEvent evt) { ... } public void anotherObserver(@Observes @Priority(10) MyEvent evt) { ... } 58
59.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Pruning Should we prune EJB 2.x remote and local client view (EJBObject, EJBLocalObject, EJBHome, and EJBLocalHome interfaces)? Should we prune CORBA, including support for interoperability by means of IIOP? Candidates for Proposed Optional status 59
60.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE 8 Themes • HTML5 / Web Tier Enhancements • Ease of Development • Infrastructure for running in the Cloud 60
61.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Modernize the Infrastructure • Java EE Management 2.0 • Java EE Security 1.0 For On-‐Premise and for in the Cloud 61
62.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE Management 2.0 • Update to JSR 77 (“J2EE Management”) • REST-‐based interfaces to augment (or replace) current Management EJB APIs – Currently used OBJECT_NAME to become URL – Define CRUD operations over individual managed objects – Server-‐sent events used for event support • Simple deployment interfaces also to be considered as part of management API 62
63.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE Security 1.0 @IsAuthorized("hasRoles('Manager') && schedule.officeHrs") void transferFunds() @IsAuthorized("hasRoles('Manager') && hasAttribute('directReports', employee.id)") double getSalary(long employeeId); @IsAuthorized(ruleSourceName="java:app/payrollAuthRules", rule="report") void displayReport(); Authorization via CDI Interceptors 63
64.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE Security 1.0 Candidate Areas to Enhance Portability, Flexibility, Ease-‐of-‐Use • Authorization Interceptors • User Management • Role Mapping • Authentication • REST Authentication • Password Aliasing 64
65.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE 8 Themes • HTML5 / Web Tier Enhancements • Ease of Development • Infrastructure for running in the Cloud • Java SE 8 alignment 65
66.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE 8 JSRs • Java EE 8 Platform (JSR 366) • CDI 2.0 (JSR 365) • JSON Binding 1.0 (JSR 367) • JMS 2.1 (JSR 368) • Java Servlet 4.0 (JSR 369) • JAX-‐RS 2.1 (JSR 370) • MVC 1.0 (JSR 371) * • JSF 2.3 (JSR 372) • Java EE Management 2.0 (JSR 373) • JSON-‐P 1.1 (JSR 374) • Java EE Security 1.0 (JSR 375) So far….. 66
67.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. And More to Follow… • JPA • Bean Validation • JCache • Connector Architecture • WebSocket • Interceptors • EJB • JTA • Batch • Concurrency Utilities • JavaMail • … 67
68.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Roadmap • Tentative Delivery Schedule – Q3 2014: Expert Group formed – Q3 2015: Early Draft – Q4 2015: Public Review – Q2 2016: Proposed Final Draft – H1 2017: Final Release • Contribute! 68
69.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. How to Get Involved • Join an Expert Group – http://javaee-‐spec.java.net • Adopt a JSR – http://glassfish.org/adoptajsr • The Aquarium – http://blogs.oracle.com/theaquarium • Java EE Reference Implementation – http://glassfish.org 69
70.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Obrigado! 70
71.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved.
Download now