Submit Search
Upload
Java EE 8 - An instant snapshot
•
5 likes
•
10,728 views
David Delabassee
Follow
Presented at JDK.IO (Copenhagen - January 2015)
Read less
Read more
Software
Report
Share
Report
Share
1 of 91
Download now
Download to read offline
Recommended
EJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and Strategy
David Delabassee
MVC 1.0 / JSR 371
MVC 1.0 / JSR 371
David Delabassee
What's coming in Java EE 8
What's coming in Java EE 8
David Delabassee
Adopt-a-JSR for JSON Processing 1.1, JSR 374
Adopt-a-JSR for JSON Processing 1.1, JSR 374
Heather VanCura
Seven Points for Applying Java EE 7
Seven Points for Applying Java EE 7
Hirofumi Iwasaki
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
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
Move from J2EE to Java EE
Move from J2EE to Java EE
Hirofumi Iwasaki
Recommended
EJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and Strategy
David Delabassee
MVC 1.0 / JSR 371
MVC 1.0 / JSR 371
David Delabassee
What's coming in Java EE 8
What's coming in Java EE 8
David Delabassee
Adopt-a-JSR for JSON Processing 1.1, JSR 374
Adopt-a-JSR for JSON Processing 1.1, JSR 374
Heather VanCura
Seven Points for Applying Java EE 7
Seven Points for Applying Java EE 7
Hirofumi Iwasaki
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
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
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
Best Way to Write SQL in Java
Best Way to Write SQL in Java
Gerger
Down-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EE
Reza Rahman
Burns jsf-confess-2015
Burns jsf-confess-2015
Edward Burns
Java EE Revisits GoF Design Patterns
Java EE Revisits GoF Design Patterns
Murat Yener
What's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and Beyond
Oracle
Finally, EE Security API JSR 375
Finally, EE Security API JSR 375
Alex Kosowski
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Edward Burns
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
Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015
Edward Burns
Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!
Reza Rahman
Ed presents JSF 2.2 and WebSocket to Gameduell.
Ed presents JSF 2.2 and WebSocket to Gameduell.
Edward Burns
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
GlassFish BOF
GlassFish BOF
glassfish
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
JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015
Edward Burns
JSONB introduction and comparison with other frameworks
JSONB introduction and comparison with other frameworks
Dmitry Kornilov
ESB
ESB
Hamed Hatami
Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)
Hamed Hatami
Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3
Arun Gupta
Java EE Next
Java EE Next
David Delabassee
More Related Content
What's hot
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?
Reza Rahman
Best Way to Write SQL in Java
Best Way to Write SQL in Java
Gerger
Down-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EE
Reza Rahman
Burns jsf-confess-2015
Burns jsf-confess-2015
Edward Burns
Java EE Revisits GoF Design Patterns
Java EE Revisits GoF Design Patterns
Murat Yener
What's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and Beyond
Oracle
Finally, EE Security API JSR 375
Finally, EE Security API JSR 375
Alex Kosowski
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Edward Burns
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
Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015
Edward Burns
Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!
Reza Rahman
Ed presents JSF 2.2 and WebSocket to Gameduell.
Ed presents JSF 2.2 and WebSocket to Gameduell.
Edward Burns
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
GlassFish BOF
GlassFish BOF
glassfish
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
JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015
Edward Burns
What's hot
(17)
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?
Best Way to Write SQL in Java
Best Way to Write SQL in Java
Down-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EE
Burns jsf-confess-2015
Burns jsf-confess-2015
Java EE Revisits GoF Design Patterns
Java EE Revisits GoF Design Patterns
What's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and Beyond
Finally, EE Security API JSR 375
Finally, EE Security API JSR 375
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015
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
Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015
Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!
Ed presents JSF 2.2 and WebSocket to Gameduell.
Ed presents JSF 2.2 and WebSocket to Gameduell.
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
GlassFish BOF
GlassFish BOF
JavaCro'15 - Java EE 8 - An instant snapshot - David Delabassee
JavaCro'15 - Java EE 8 - An instant snapshot - David Delabassee
JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015
Viewers also liked
JSONB introduction and comparison with other frameworks
JSONB introduction and comparison with other frameworks
Dmitry Kornilov
ESB
ESB
Hamed Hatami
Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)
Hamed Hatami
Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3
Arun Gupta
Java EE Next
Java EE Next
David Delabassee
Java ee 8 + security overview
Java ee 8 + security overview
Rudy De Busscher
AngularJS for Java Developers
AngularJS for Java Developers
Loc Nguyen
Java EE 7 for Real Enterprise Systems
Java EE 7 for Real Enterprise Systems
Hirofumi Iwasaki
Java EE 8 - February 2017 update
Java EE 8 - February 2017 update
David Delabassee
Java EE 7 Recipes
Java EE 7 Recipes
Josh Juneau
Software Architecture for DevOps and Continuous Delivery
Software Architecture for DevOps and Continuous Delivery
Eberhard Wolff
Java EE 7 - Overview and Status
Java EE 7 - Overview and Status
Java Usergroup Berlin-Brandenburg
Java EE Introduction
Java EE Introduction
ejlp12
Developing Modern Java Web Applications with Java EE 7 and AngularJS
Developing Modern Java Web Applications with Java EE 7 and AngularJS
Shekhar Gulati
Fifty Features of Java EE 7 in 50 Minutes
Fifty Features of Java EE 7 in 50 Minutes
glassfish
Viewers also liked
(15)
JSONB introduction and comparison with other frameworks
JSONB introduction and comparison with other frameworks
ESB
ESB
Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)
Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3
Java EE Next
Java EE Next
Java ee 8 + security overview
Java ee 8 + security overview
AngularJS for Java Developers
AngularJS for Java Developers
Java EE 7 for Real Enterprise Systems
Java EE 7 for Real Enterprise Systems
Java EE 8 - February 2017 update
Java EE 8 - February 2017 update
Java EE 7 Recipes
Java EE 7 Recipes
Software Architecture for DevOps and Continuous Delivery
Software Architecture for DevOps and Continuous Delivery
Java EE 7 - Overview and Status
Java EE 7 - Overview and Status
Java EE Introduction
Java EE Introduction
Developing Modern Java Web Applications with Java EE 7 and AngularJS
Developing Modern Java Web Applications with Java EE 7 and AngularJS
Fifty Features of Java EE 7 in 50 Minutes
Fifty Features of Java EE 7 in 50 Minutes
Similar to Java EE 8 - An instant snapshot
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
112815 java ee8_davidd
112815 java ee8_davidd
Takashi Ito
JavaOne2015フィードバック @ 富山合同勉強会
JavaOne2015フィードバック @ 富山合同勉強会
Takashi Ito
Presente e Futuro: Java EE.next()
Presente e Futuro: Java EE.next()
Bruno Borges
Java API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and update
Martin Grebac
20160123 java one2015_feedback @ Osaka
20160123 java one2015_feedback @ Osaka
Takashi Ito
JSON-B for CZJUG
JSON-B for CZJUG
Dmitry Kornilov
Java EE for the Cloud
Java EE for the Cloud
Dmitry Kornilov
RESTful Services and Distributed OSGi - 04/2009
RESTful Services and Distributed OSGi - 04/2009
Roland Tritsch
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
Java EE 7 (Lyon JUG & Alpes JUG - March 2014)
Java EE 7 (Lyon JUG & Alpes JUG - March 2014)
David Delabassee
What’s new in JSR 367 Java API for JSON Binding
What’s new in JSR 367 Java API for JSON Binding
Dmitry Kornilov
GlassFish Roadmap
GlassFish Roadmap
glassfish
Oracle REST Data Services
Oracle REST Data Services
Chris Muir
What's new in the Java API for JSON Binding
What's new in the Java API for JSON Binding
Dmitry Kornilov
The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011
Arun Gupta
World of many (OpenStack) clouds - the Making of the Intercloud
World of many (OpenStack) clouds - the Making of the Intercloud
Lew Tucker
JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?
Edward Burns
Similar to Java EE 8 - An instant snapshot
(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
112815 java ee8_davidd
112815 java ee8_davidd
JavaOne2015フィードバック @ 富山合同勉強会
JavaOne2015フィードバック @ 富山合同勉強会
Presente e Futuro: Java EE.next()
Presente e Futuro: Java EE.next()
Java API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and update
20160123 java one2015_feedback @ Osaka
20160123 java one2015_feedback @ Osaka
JSON-B for CZJUG
JSON-B for CZJUG
Java EE for the Cloud
Java EE for the Cloud
RESTful Services and Distributed OSGi - 04/2009
RESTful Services and Distributed OSGi - 04/2009
Pushing JavaEE outside of the enterprise: Home Automation & IoT - David Delab...
Pushing JavaEE outside of the enterprise: Home Automation & IoT - David Delab...
Java EE 7 (Lyon JUG & Alpes JUG - March 2014)
Java EE 7 (Lyon JUG & Alpes JUG - March 2014)
What’s new in JSR 367 Java API for JSON Binding
What’s new in JSR 367 Java API for JSON Binding
GlassFish Roadmap
GlassFish Roadmap
Oracle REST Data Services
Oracle REST Data Services
What's new in the Java API for JSON Binding
What's new in the Java API for JSON Binding
The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011
World of many (OpenStack) clouds - the Making of the Intercloud
World of many (OpenStack) clouds - the Making of the Intercloud
JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?
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 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
Project Avatar (Lyon JUG & Alpes JUG - March 2014)
Project Avatar (Lyon JUG & Alpes JUG - March 2014)
David Delabassee
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
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 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
Project Avatar (Lyon JUG & Alpes JUG - March 2014)
Project Avatar (Lyon JUG & Alpes JUG - March 2014)
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Recently uploaded
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
vyaparkranti
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
OnePlan Solutions
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
Tier1 app
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
Safe Software
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
OnePlan Solutions
Osi security architecture in network.pptx
Osi security architecture in network.pptx
VinzoCenzo
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
RTS corp
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
Shane Coughlan
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
RTS corp
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
Christian Birchler
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
preethippts
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
andrehoraa
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Applitools
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
Bert Jan Schrijver
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
Jean Silva
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
kalichargn70th171
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Angel Borroy López
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
itservices996
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profile
akrivarotava
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
Alexandre Beguel
Recently uploaded
(20)
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Osi security architecture in network.pptx
Osi security architecture in network.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profile
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
Java EE 8 - An instant snapshot
1.
David Delabassee (@delabassee)
Oracle Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Java EE 8 -‐ An instant snapshot JDK.IO 2015 1
2.
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. 2
3.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Program Agenda How did we get here? What do we want to do? How can you get involved? 1 2 3 Preview of Java EE 8 3
4.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Feedback from the Community • Many sources – Users lists of java.net projects – JIRAs – JavaOne 2013 Java EE BOF and Java EE EG meeting – Outreach by evangelists • Consolidated into Community Survey 4
5.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE 8 Community Survey • 3 parts over 3½ months – 47 questions – 15 fill-‐ins – 1000’s of comments • 4500+ respondents • Prioritization of most-‐popular features 5
6.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Community-‐Prioritized Features 6 http://glassfish.org/survey
7.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. You asked for it, you got it! 7 Java EE 8 Driven by Community Feedback
8.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE 8 Themes • HTML5 / Web Tier Enhancements • Ease of Development / CDI alignment • Infrastructure for running in the Cloud • Enterprise • Java SE 8 alignment 8
9.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE 8 Themes • HTML5 / Web Tier Enhancements • Ease of Development / CDI alignment • Infrastructure for running in the Cloud 9
10.
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 10
11.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSON-‐B Which of these APIs do you think is important to be included in Java EE 8? Java API for JSON Binding 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, Gson, EclipseLink MOXy, Fleece, JSON-‐lib, Flexjson, Json-‐io, JSONiJ, 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 @Entity public class Person { @Id String name; String gender; @ElementCollection Map<String,String> phones; ... // getters and setters } Person duke = new Person(); duke.setName("Duke"); duke.setGender("M"); phones = new HashMap<String,String>(); phones.put("home", "650-‐123-‐4567"); phones.put("mobile", "650-‐234-‐5678"); duke.setPhones(phones); Marshaller marshaller = new JsonContext().createMarshaller().setPrettyPrinting(true); marshaller.marshal(duke, System.out); { "name":"Duke", "gender":"M", "phones":{ "home":"650-‐123-‐4567", "mobile":"650-‐234-‐5678"} } 14
15.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. • All the way from client to database – JSON-‐B will provide JAX-‐RS a standard way to support “application/json” media type JSON-‐B JPA JSON-‐B Data Source JSON JAX-‐RS Java Objects 15 JSR 367
16.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSON-‐P 1.1 Java API for JSON Processing 16 • Keep JSON-‐P spec up-‐to-‐date • Track new standards • Add editing operations to JsonObject and JsonArray • Java SE 8 • JSON Big Data
17.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSON-‐P: Java API for JSON Processing 1.1 • JSON-‐Pointer – IETF RFC 6901 – String syntax for referencing a JSON value "/0/phone/mobile" Tracking new standards 17
18.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSON-‐P JsonArray contacts = … JsonPointer p = Json.createPointer("/0/phones/mobile"); JsonValue v = p.getValue(contacts); … JsonArray result = p.replace(contacts, "123-‐4567"); [ { "name":"Duke", "gender":"M", "phones":{ "home":"650-‐123-‐4567", "mobile":"650-‐234-‐5678"}}, { "name":"Jane", "gender":"F", "phones":{ "mobile":"707-‐555-‐9999"}} ] 18
19.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSON-‐P: Java API for JSON Processing 1.1 • JSON-‐Patch – IETF RFC 6902 • Patch is a JSON document – Array of objects / operations for modifying a JSON document – Must have "op" field and "path" field – add, replace, remove, move, copy, test [ {"op":"replace","path":"/0/phones/mobile","value":"650-‐111-‐222"}, {"op":"remove","path":"/1"} ] Tracking new standards 19
20.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSON-‐P [ { "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 [ { "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 [ { "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. JSON-‐P 1.1 JSON Query using Lambda Operations JsonArray contacts = ...; List<String> femaleNames = contacts.getValuesAs(JsonObject.class).stream() .filter(x-‐>"F".equals(x.getString("gender"))) .map(x-‐>(x.getString("name")) .collect(Collectors.toList()); 23
24.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSON-‐P 1.1 JSON Query collecting results in JsonArray JsonArray contacts = ...; JsonArray femaleNames = contacts.getValuesAs(JsonObject.class).stream() .filter(x-‐>"F".equals(x.getString("gender"))) .map(x-‐>(x.getString("name")) .collect(JsonCollectors.toJsonArray()); 24
25.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSR 374 • Keep JSON-‐P spec up-‐to-‐date • Track new standards • Add editing operations to JsonObject and JsonArray • Java SE 8 • JSON Big Data 25 JSON-‐P 1.1
26.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Server-‐sent Events Should we also standardize a Java API for server-‐sent events? 26
27.
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 27
28.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Server-‐sent Events • Several possibilities: Servlet; WebSocket; JAX-‐RS; standalone • 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 (JAX-‐RS RI) already supports SSE 28
29.
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 29
30.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JAX-‐RS StockThread class class StockThread extends Thread { private EventOutput eo; private AtomicBoolean ab = new AtomicBoolean(true); public StockThread(EventOutput eo) { this.eo = eo; } public void terminate() { ab.set(false); } @Override public void run() { while (ab.get()) { try { // ... eo.send(new StockQuote("...")); // ... } catch (IOException e) { // ... } } } } 30 Server-‐sent Events
31.
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 31 Server-‐sent Events
32.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Model View Controller 1.0 (MVC) Should Java EE provide support for MVC alongside JSF? Is there any one de-‐facto standard technology in this space to which we should look for inspiration? 32
33.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Model View Controller • Pattern used to implement a user interface – Model – View – Controller • Styles – Component-‐based – Action-‐based – etc. 33
34.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Component-‐based MVC • A specific style of MVC made popular by component frameworks • Controller provided by the framework • Examples – JavaServer Faces – Wicket – Tapestry – Seam (discontinued) – Apache Click (retired) 34
35.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Action-‐based MVC • Controller(s) defined by the application • Examples – Struts 2 – Spring MVC 35
36.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Compare & Contrast • Manual request parameter processing • No view kept around • Limited support for re-‐usable behavior • Developer responsible for all HTML / JavaScript • No automatic input conversion • No automatic input validation • Request centric 36 • Automatic request parameter procession • View kept around • Component libraries that implement re-‐ usable behavior • Components render HTML / JavaScript • Automatic input conversion • Automatic input validation • Page centric Action-‐based MVC Component-‐based MVC
37.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. MVC 1.0 • Glues together key Java EE technologies – Model • CDI, Bean Validation, JPA – View • Facelets, JSP, SPI? – Controller • Invent new technology Vs Leverage existing technologies (e.g. JAX-‐RS) • Misc. – Programmatic API so you can change the runtime behaviour – Type conversion of form inputs, etc. 37 Action-‐based Model-‐View-‐Controller architecture
38.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. MVC 1.0 38 Example <!DOCTYPE html PUBLIC "-‐//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-‐transitional.dtd"> <html> <head><title>Rough example</title></head> <body> <form action="/rough-‐example/form1a"> <input id="input1" value="#{roughExampleBean.value}"/> <input id="submit" type="submit" value="Submit"/> </form> </body> </html>
39.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. MVC 1.0 39 Example @Named("roughExampleBean”) @RequestScoped public class RoughExampleBean implements Serializable { private String value; @Path(value = "/form1a") public String form1(@Inject HttpServletRequest request) { String input1 = request.getParameter("inputText1"); setValue("We set input1 manually to -‐ " + input1); return "/form1b"; } //… omitted getter/setter methods … }
40.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Servlet API A real life example 40 index.html style1.css . . . script1.js pic1.jpg photo1.png styleX.css scriptX.js picX.jpg photoX.png . . . . . . . . .
41.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. HTTP 1.1 Head-‐of-‐Line blocking 41 Client Server index.html index.html style1.css style2.css script1.js ... style1.css style2.css script1.js ...
42.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. HTTP 1.1 42 • Open multiple TCPs sockets – Browser limit themselves to 6 sockets – = 6 sockets per client X # connections • Inefficient use of sockets • Doesn’t solve the issue! Workaround -‐ ‘HoLB’
43.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. HTTP 1.1 Issue 43 • Modern web page now consists of more than 90 resources fetched from 15 distinct hosts – http://httparchive.org • Shoving more than one logical file into one physical file – TCP Efficiency Improves with Larger Files • File Concatenation and Image Sprites
44.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. HTTP 1.1 Workaround -‐ Image Sprites 44
45.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. HTTP 1.1 Workaround -‐ Asset inlining 45 … <img src="data:image/gif;base64,R0lGODlhEAAOexs3eeALMAAOazToeHh0tLS/ 7LZv0jvb29tf3Ubge8WSLrhf3kdbW1mxsjkhfkjfhGHhcjGDSHJUYgJvhgtyrHgfGfHy t56HGfGH56ge8WSLf6GGHhfkjfhhfkjfhpBREzxvt6QAA4lsjkhfkjfhdxwqBnuIoYty GhBKoOjJj6GGHvvhdsbxus38GV3pBREzxvt6QAA4lsjkhfkjfhdxwqBnuIoYtyGhBKoO jJj6GGHvvhdsbxus38GV3vvhdsbxusbasbPmfyH5BAAAjAAAALAAfhGHhcjAAAAQAA4l sjkhfkjfhGHhcjGDSHJUYgJvhgtyrHgfhfkjfhpBREzxvt6QAA4lsjkhfkjfhdxwqBnu IoYtyGhBKoOjJj6GGHvvhdsbxus38GV3GfHyt56HGfGH56ge8WsjkhfkjfhGHhcjGDSH JUYgJvhgtyrHgfGfHyt56HGfGH56gebxus38G8WSLf6GGHvvhdsbxusbaSLf6GGHvvhd sbxusbaOiQA4lsjkhfkjf4lsjkhfkjf4lsjbxus38GkhfkjfhfkjfhpBREzxvt6QAA4l sjkhfkjfhdxwqBnuIoYtyGhBKoOjJj6GGHvvhdsbxus38GV3DcPjjBceXsplojj…” /> …
46.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. HTTP 1.1 Workaround -‐ Domain Sharding 46
47.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. HTTP 1.1 circa 1999 47 • HTTP uses TCP poorly - HTTP flows are short and bursty - TCP was built for long-‐lived flows • Solutions – Sprites – Domain sharding – Assets Inlining – File concatenations – … Problems Vs Solutions
48.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. HTTP/2 HTTP/2 submitted to IETF RFC Editor • Reduce latency • Address the HOL blocking problem • Support parallelism (without requiring multiple connections) • Retain semantics of HTTP 1.1 • Define interaction with HTTP 1.x Address the Limitations of HTTP 1.x 48
49.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. HTTP/2 • Request/Response multiplexing over single connection – Fully bidirectional – Multiple streams • Binary Framing • Upgrade from HTTP 1.1 • Header Compression • Stream Prioritization • Server Push 49 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
50.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. HTTP/2 Header Compression 50
51.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. HTTP/2 Server Push /index.html : stream 1 /style.css : stream 2 /script.js : stream 4 Client Server stream 1 HEADERS stream 1 FRAME x stream 2 PROMISE stream 4 PROMISE 51
52.
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 52
53.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JSF 2.3 • CDI Alignment – @Inject FacesContext, ExternalContext, etc. – Rely on CDI for EL resolving – CDI managed versions of Validator and Converter – Invoking CDI managed bean methods directly from Ajax, etc. • “Adjustments” for MVC – Facelets, JSF scopes, etc. • Misc. – Multi-‐field validation, etc. 53
54.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE 8 Themes • HTML5 / Web Tier Enhancements • Ease of Development / CDI alignment • Infrastructure for running in the Cloud 54
55.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Ease of Development / CDI Alignment • Simplified messaging through CDI-‐based “MDBs” • JAX-‐RS injection alignment • WebSocket scopes • Pruning of EJB 2.x client view and IIOP interoperability • Security interceptors • … 55
56.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Security Simplifications / CDI Alignment Should we consider adding Security Interceptors in Java EE 8? Should we simplify authorization by introducing an EL-‐enabled authorization annotation? 56
57.
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 57
58.
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 58
59.
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 } } JMS MDBs Today 59
60.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. JMS 2.1 @RequestScoped public class MyListenerBean { @JMSListener(destinationLookup="jms/myQueue") @Transactional public void myCallback(Message message) { ... } } Allow any Java EE bean to be a listener 60
61.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. • Modularity • Java SE support • Enhanced Events • Misc. – AOP – SPI – Interceptors and Decorators enhancements – Cleaning 61 CDI 2.0
62.
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 • Will help CDI adoption • 3 parts – CDI Light, DI only & events – Full CDI – Full CDI, with Java EE integration 62 Modularity
63.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. CDI 2.0 • Boost CDI adoption • Provide a mean of building new stack out of Java EE • Add SPI for integration with standard services – JPA – JAX-‐RS – etc. 63 Java SE Support
64.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. CDI 2.0 • Asynchronous Events • Event Ordering • Event Range 64 Enhanced Events
65.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. 65 public class ProducerClass { @Inject Event<SomeEvent> someEvent; public void someMethod(...) { ... someEvent.fire(myEvent); } } CDI 2.0 Asynchronous Events public class AnotherClass { public void someObserver(@Observes SomeEvent someEvent) { ... } } public class AsynchProducerClass { @Inject Event<Payload> someEvent; public void anotherMethod() { someEvent.fireAsync(new Payload(), callBack -‐> System.out.println("Done!)); } }
66.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. 66 CDI 2.0 Events Ordering public void importantObserver(@Observes @Priority(1) Payload pld) { ... } public void anotherObserver(@Observes @Priority(2) Payload pld) { ... }
67.
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 67
68.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE 8 Themes • HTML5 / Web Tier Enhancements • Ease of Development / CDI alignment • Infrastructure for running in the Cloud 68
69.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Modernize the Infrastructure • Java EE Management 2.0 – REST-‐based APIs for Management and Deployment • Java EE Security 1.0 – Authorization – Password Aliasing – User Management – Role Mapping – Authentication – REST Authentication For On-‐Premise and for in the Cloud 69
70.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Management and Deployment APIs Should we define new APIs to deploy and manage applications? Should such new Deployment and Management APIs be REST APIs or JMX APIs? 70
71.
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 71
72.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE Security 1.0 Candidate Areas to Enhance Portability, Flexibility, Ease-‐of-‐Use • Password Aliasing • User Management • Role Mapping • Authentication • REST Authentication • Authorization 72
73.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE Security 1.0 Enhance Portability, Flexibility, Ease-‐of-‐Use Should we add support for password aliases (including the ability to provision credentials along with the application)? 73
74.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE Security 1.0 Password Aliasing • Standardized syntax for password aliases – Avoids storing passwords in clear text in code, deployment descriptors, files @DataSourceDefinition( name="java:app/MyDataSource", className="com.example.MyDataSource", ... user="duke", password="${ALIAS=dukePassword}") • Standardized secure credentials archive for bundling alias and password with App – Used by platform as credential store for resolving alias 74
75.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE Security 1.0 Enhance Portability, Flexibility, Ease-‐of-‐Use Should we standardize on requirements for simple security providers and their configuration? 75
76.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE Security 1.0 User Management • Allow application to manage its own users and groups – Without need to access server configuration • Users stored in application-‐specified repository (e.g. LDAP) • User service manipulates users from user source App LDAP UserInfo UserService LDAP UserSource 76
77.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE Security 1.0 User Management • UserSourceDefinition • UserService – Create/delete users, create/delete groups, add user to group, load UserInfo by user name; etc… • UserInfo – get user name, password, get user’s roles, get user’s attributes, … 77
78.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE Security 1.0 User Management @LdapUserSourceDefinition( name="java:app/ldapUserSource", ldapUrl="ldap://someURL", ldapUser="ElDap", ldapPassword="${ALIAS=LdapPW}", ... ) public class MyAuthenticator { @Resource(lookup="java:app/ldapUserSource") private UserService userService; private boolean isAccountEnabled(String username) { return userService.loadUserByUsername(username).isEnabled(); } ... } 78
79.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE Security 1.0 Enhance Portability, Flexibility, Ease-‐of-‐Use Should we standardize group-‐to-‐role-‐mapping? 79
80.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE Security 1.0 Role Mapping • Standardize role service – Role mappings can be stored in app-‐specified repository (e.g. LDAP) – Application can assign roles to users and groups, based on application-‐specific model – Without need to access server configuration App LDAP RoleService LDAP RoleMapper 80
81.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE Security 1.0 Role Mapping • RoleMapperDefinition – DataSource, Ldap, Memory/File, Custom, predefined • RoleService – grant/revoke roles for user/group, get roles for user/group, ... @Resource(lookup="java:app/devRoleMapper") RoleService roleService; List<String> getRoles(String username) { return roleService.getRolesForUser(username); } ... 81
82.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE 8 Themes • HTML5 / Web Tier Enhancements • Ease of Development / CDI alignment • Infrastructure for running in the Cloud • Enterprise • Java SE 8 alignment 82
83.
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….. 83
84.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. And More to Follow… • Bean Validation • EL • Concurrency Utilities • Connector Architecture • WebSocket • Interceptors • JPA • EJB • JTA • JCache • Batch • JavaMail • … 84
85.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Roadmap • Tentative Delivery Schedule – Q3 2014: JSR 369 Expert Group formed – Q1 2015: early draft – Q3 2015: public review – Q4 2015: proposed final draft – Q3 2016: final release • TBC! • Contribute! 85
86.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Transparency • Our Java EE 8 JSRs run in the open on java.net – http://javaee-‐spec.java.net – One project per JSR – jax-‐rs-‐spec, mvc-‐spec, servlet-‐spec,… • Publicly viewable Expert Group mail archive – Users observer lists gets all copies • Publicly accessible issue tracker / JIRA • Publicly accessible download area • … Commitment to JCP transparent processes 86
87.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Adopt A JSR for Java EE 8 • Make Java EE 8 the most community driven platform to date! - Share ideas and feedback (e.g. fill issues) - Follow EG discussions, chime in - Read early versions of specifications, Javadocs - Write apps using early RI builds - Write, speak about the technology - Encourage others to participate, etc. • http://glassfish.org/adoptajsr 87
88.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. GlassFish http://glassfish.org Java EE Reference Implementation 88
89.
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 89
90.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Tak! 90
91.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. 91
Download now