SlideShare ist ein Scribd-Unternehmen logo
1 von 63
JAVA EE 8 UPDATE
Ryan Cuprak
Agenda
• Java EE 8 specification overview and current status
• Example of proposed enhancements
• JavaOne 2016 Java EE Reboot
• How to get involved and help
Importance of Java EE
https://javaee-guardians.io/java-ee-adoption-surveys
Java EE Ecosystem
Microservices and Java EE
http://microprofile.io
Java EE: Past, Present, Future
J2EE 1.2
Servlet,
JSP,
EJB,
JMS,
RMI
J2EE 1.3
CMP,
JCA
J2EE 1.4
Web
Services,
Mgmt,
Deploy
Java EE 5
Ease of
Use,
EJB 3,
JPA, JSF,
JAXB,
JAX-WS
Java EE 6
Pruning,
Ease of
Use,
JAX-RS,
CDI,
Bean-
ValidationWeb Profile
Servlet 3,
EJB 3.1 Lite
Java EE 7
JMS 2,
Batch, TX,
Concurrency
Web-
Sockets,
JSON
Java EE 8
SERVLET 4,
JSON-B,
JSON-P 1.1,
JSF 2.3, CDI
2.0, JAX-
RS 2.1,
SECURITY
Java EE 8 Community Survey
https://java.net/downloads/javaee-spec/JavaEE8_Community_Survey_Results.pdf
https://blogs.oracle.com/ldemichiel/entry/results_from_the_java_ee
Java EE 8 Overview – Original Plan
• Continued Enhancements for Web Standards Alignment
• HTTP/2, JSON Binding, JSON-P, MVC
• Cloud enhancements
• Security, RESTful Management API
• CDI Programming Model
• Ease of use, EJB via CDI
• Smaller, but Important Features
• Caching, Better Messaging
• Alignment with Java SE 8
Java EE 8 Specifications (Original)
• JMS 2.1
• JAX-RS 2.1
• JSF 2.3
• CDI 2.0
• JSON-P 1.1
• Servlet 4.0
• JCache 1.0
• JSON-B 1.0
• MVC 1.0
• Java EE Security1.0
• Java EE Management 2.0
Java EE 8 Reboot
JSRs proposed to be dropped:
• Management 2.0 (JSR 373)
• JMS 2.1 (JSR 368)
• MVC 1.0 (JSR 371)
Expanded scope:
• Security 1.0 (JSR 375)
Proposed new JSRs:
• Health Checking
• Configuration
New Survey Conducted
Results Not Yet Published
New Target Release
Q4 2017
UPDATED SPECIFICATION
Servlet 4.0
• Early Draft published 10/2015
• Early implementation available in Tomcat 9
JSR 369
Expert Group
Activity
Servlet 4.0: HTTP/2
• HTTP/2 Support -> Major Update
• Why do we need HTTP/2?
• Problems with HTTP/1.1:
• Head-of-Line Blocking
• HTTP Pipelining, File Concatenation, & Image Sprites
• Key differences:
• Binary instead of textual
• Fully multiplexed instead of ordered and blocking
• One connection for parallelism
• Uses header compression
• Allows server push
JSR 369
Servlet 4.0: HTTP/2 Support
NOTE: HTTPS only for browsers!
Servlet 4.0
• Principal goal to support HTTP/2
• Request/response multiplexing over single connection
• Transparent to most developers, although possibly slight
changes to the Servlet API
• Most affected: frameworks
JSR 369
Servlet 4.0 – Exposing HTTP./2
• Stream Prioritization
• New Priority class
• Enhance HttpServletRequest and HttpServletResponse to
accommodate
• Server Push
• Frameworks can push resources to the client
• Not replacing WebSockets
JSR 369
Servlet 4.0 - HttpClient API
• Plans to provide easy to use API
• Target HttpClient in Java 9
• Support both HTTP/1.1 and 2
• Builds on existing Java API Classes
JSR 368
JMS 2.1 Asynchronous Batches
Example:
@MessageDriven
public class MyFlexibleMDB {
@JMSQueueListener(destinationLookup="java:global/
myQueue")
public void myMessageCallback(@Batch(maxSize=10,timeout=
1000) Message[] messages) {
...
}
JSR 368
JMS 2.1 Declarative JMS Listeners
@ApplicationScoped
@MaxConcurrency(10)
public class HandlingEventRegistrationAttemptConsumer {
@JmsListener(
destinationLookup="jms/HandlingEventRegistrationAttemptQueue",
selector="source = 'mobile'",
batchSize=10, retry=5, retryDelay=7000,
orderBy=TIMESTAMP)
@Transactional
public void onEventRegistrationAttempt(
HandlingEventRegistrationAttempt... attempts) {
...
}
}
JSR 368
JAX-RS 2.1
• JSR 370 - In Early Stages
• No builds available for testing.
• Reboot: Add Circuit Breaker support
JSR 370
Expert Group
Activity
JAX-RS 2.1
• Hypermedia API
• Reactive API
• Security API
• Support for SSE (Server Sent Events)
• Improved CDI Integration
• Support for Non-Blocking IO in Providers
JSR 370
JAX-RS 2.1
• Conditional JAXB on Runtimes
• Integration with JSON-B
• Support for CDI in Java SE
JSR 370
JSF 2.3
• JSR 372 - in active progress
• Milestones available for testing
• Read, Test, Supply Feedback
JSR 372
Emails from
Oracle spec
leads
JSF 2.3
• Standardize Web Socket integration
• f:websocket
• Multi-field validation
• Enhanced CDI Integration
• Lifecycle Enhancements
• PostRenderViewEvent
• EL API Enhancements
• Configuration Enhancements
• AJAX Enhancements
JSR 372
JSF 2.3 Enhanced CDI Integration
Injection of Resources
@Inject
FacesContext facesContext;
@ApplicationMap
@Inject
Map applicationMap;
JSR 372
JSF 2.3 Enhanced CDI Integration
• Wider Support of Injection into JSF Artifacts
• javax.faces.convert.Converter
• javax.faces.validator.Validator
• javax.faces.component.behavior.Behavior
• Upgraded to CDI qualifiers
JSR 372
CDI 2.0
• JSR 365 - in active progress
• Early draft review 2 published August 2016
• Test Releases of Reference Implementation
http://weld.cdi-spec.org/news/
JSR 374
CDI 2.0
• Java SE Bootstrap
• XML Configuration
• Asynchronous Events
• @Startup for CDI Beans
• Portable Extension SPI Simplification
• Small features and enhancements
JSR 374
CDI 2.0
Workshop Status Description
Parts API was split Working on modularity (sub specs)
Events Finished Enhance events (asynchronous,
ordering,etc… )
AOP Started Interceptors & Decoractors enhancement
Java SE First part done Boostrap CDI in Java SE
JDK 8 Started Enhancements from Java 8
SPI Not Started more open SPI for 3rd party
Contexts Not Started Provide a way to start/stop contexts for SE
mode
JSR 374
CDI Event System Enhancements
• Asynchronous Events
@Inject
private ExperimentalEvent<Configuration> event;
…
event.fireAsync(new Configuration());
• Call to event.fireAsync() returns immediately
JSR 365
CDI 2.0 @Schedule Outside EJB
@ApplicationScoped
public class MyScheduledBean {
...
@Schedule(...)
public void myScheduledTask() { ... }
}
@ApplicationScoped
@Stereotype
@Retention(RUNTIME)
@Target(TYPE)
@Schedule(...)
public @interface MonthlyTask {}
JSR 365
JSON-P 1.1
• JSR 374 - In Early Draft Review
• More Information:
• https://json-processing-spec.java.net/
• Sources: https://java.net/projects/jsonp
JSR 374
JSON-P 1.1
• Updates to new API in Java EE 7
• New JSON Standards
• JSON-Pointer and JSON-Patch
• Editing Operations on JSON objects and arrays
• Helper Classes and Enhanced Java SE 8 support
JSR 374
JSON-P 1.1 Java SE 8 Support
• Java 8 Stream Support
• JsonArray persons;
persons.getValuesAs(JsonObject.class).stream()
.filter(x->x.getString(“age”) >= 65)
.forEach(System.out.println(x.getString(“name”)));
JSR 374
JSON-P 1.1: JSON-Pointer
JSR 374
JSON-P 1.1: JSON-Patch
public void
shouldBuildJsonPatchExpressionUsingJsonPatchBuilder() {
JsonPatchBuilder patchBuilder = new JsonPatchBuilder();
JsonObject result = patchBuilder.add("/email",
"john@example.com")
.replace("/age", 30)
.remove("/phoneNumber")
.test("/firstName", "John")
.copy("/address/lastName", "/lastName")
.apply(buildPerson());
}
JSR 374
Java EE Management API 2.0
• Oracle proposing to drop JSR from EE 8.
• Currently working on Early Draft
• Java EE Management API 1.0 – released 2002
• Join mailing list of JSR 373
JSR 373
Java EE Management API 2.0
• REST Based Interface to Supersede EJB Management
APIs of JSR 77
• Monitoring and deployment
• SSE for Event Support (WebSockets also under
consideration)
JSR 373
Bean Validation 2.0
• Add support for LocalTime, Optional, etc.
• Leverage type annotation, repeatable annotations,
reflective parameter name retrieval
• Potential enhancements:
• Customized constraint validations
• Object graph validation
• Example:
List<@Email String> emails;
JSR 380
NEW SPECIFICATIONS
MVC
• Model - View - Controller
• JSR 371
• Active Progress…download milestones
• Ozark: https://ozark.java.net/
JSR 371
MVC
• Action-Based Web Framework for Java EE
• Follows suit of Spring MVC or Apache Struts
• Does Not Replace JSF
• Model: CDI, Bean Validation, JPA
• View: Facelets, JSP (Extensible)
• Controller: Layered on top of JAX-RS
JSR 371
MVC: Controller Example
@Controller
@Path("/customers")
@View("my-view.jsp")
public class CustomerController {
@Inject
private Models models;
@GET
public String getItems(){
. . .
return “customers.jsp”;
}
JSR 371
MVC: View Example
<c:forEach var="customer" items="${customers}">
<tr>
<td class="text-left">${customer.name}</td>
<td class="text-center">
<form action="${pageContext.request.contextPath}/r/customers/edit"
method="POST">
<input type="hidden" name="id" value="${item.id}"/>
<button type="submit">
Edit
</button>
</form>
</td>
</tr>
</c:forEach>
JSR 371
JSON-B
• Java API for JSON Binding
• JSR 367 - Public Review
• Read the spec, start testing:
https://java.net/projects/jsonb-spec/pages/Home
JSR 367
JSON-B Next Logical Step
• Standardize means of converting JSON to Java objects
and vice versa
• Default mapping algorithm for converting Java classes
• Draw from best of breed ideas in existing JSON binding
solutions
• Provide JAX-RS a standard way to support
“application/json” for POJOs
• JAX-RS currently supports JSON-P
JSR 367
JSON-B Mapping
@Entity public class Person {
@Id String name;
String gender;
@ElementCollection
Map<String, String> phones;
...
}
Person duke = new Person();
duke.setName("Duke");
duke.setGender("Male");
phones = new HashMap<>();
phones.put("home", "650-123-4567");
phones.put("mobile",
"650-234-5678");
duke.setPhones(phones);
{
"name":"Duke",
"gender":"Male",
"phones":{
"home":"650-123-4567",
"mobile":"650-234-5678"
}
}
JSR 367
JSON-B: Proposed Custom Mapping
• Utilization of annotations to map fields to JSON Document Elements
@JsonProperty(“poolType”)
public String poolType;
@JsonPropertyOrder(“poolType”,”shape”)
public class Pool(){
public String poolType;
public String shape;
…
}
{
poolType : “Inground”,
}
{
poolType : “Inground”,
shape : “Rectangle”
}
JSR 367
Java EE Security
• Improve Java EE platform by ensuring that the security
API is useful in the modern cloud/PaaS paradigm
• Simplify, standardize, modernize
• Promotes modern concepts (EL and CDI)
JSR 367
Java EE Security
• Simplify security providers
• Easy pluggability and mapping
• Enabling existing security annotations for all beans
• Proposed examples:
• https://github.com/javaee-security-spec/javaee-security-proposals
JSR 375
Java EE Security: Proposed Provider
@SecurityProvider
public class MySecurityProvider {
@Inject UserService userService;
@OnAuthentication
// The parameters could suit the credentials mechanism being used.
public Principal getPrincipal(String username, String password) {
// Construct the principal using the user service.
}
@OnAuthorization
public String[] getRoles (Principal principal) {
// Construct an array of roles using the principal and user service.
}
}
JSR 375
Java EE Security – JavaOne 2016
• Add OAuth and OpenID support
• Secret management
JSR 375
JCache
• Java Temporary Caching API
• JSR 107 - Started in 2001
• Provides a common way for Java applications to create,
access, update, and remove entries from caches
JSR 197
JCache
• Provide applications with caching
functionality…particularly the ability to cache Java objects
• Define common set of caching concepts & facilities
• Minimize learning curve
• Maximize portability
• Support in-process and distributed cache implementations
JSR 107
Others: Not Addressed
• JPA
• WebSocket
• Concurrency Utilities
• Batching
• etc…
PROPOSED JSRS
Configuration
• Standardize a mechanism of defining, injecting and using
configuration within an application.
• Define configuration persistence mechanisms, formats,
and bindings.
• Support for merging, overriding, and federating
configurations from different sources
• Provide a standard mechanism for working with
mutable/dynamic configurations
Health Check
• Goal: Standardize health reporting
• Proposed new REST API enabling health checking
• Available via configurable context (/healthcheck)
• Will include semantics for reporting health
• Health status codes
• Reasons/warnings
• Health of dependencies
Java EE Roadmap - JavaOne 2016
2016
• Feedback through Survey
• Launch Java EE Next JSRs
2017
• Java EE 8
• Specs, RI, TCK complete
• Initial microservices support
• Define Java EE 9
• Early access implementation
of Java EE 9
2018
• Java EE 9
• Specs, RI, TCK complete
• Modular Java EE runtime
• Enhanced microservices
support
Java EE: Take Action
• Start working with Java EE 8 today
• Tools:
• GlassFish v5 (or Payara)
• Tomcat 9 web sockets
• Milestones
• Examples and Specification Docs
Java EE Resources
• JavaOne 2016 EE 8 Update/Reboot
• http://tinyurl.com/zeark5t
• Java EE 8 by Arjan Tijms
• https://javaee8.zeef.com/arjan.tijms
• JavaOne 2016 Sessions
• https://www.oracle.com/javaone/
• JSR 366
• https://www.jcp.org/en/jsr/detail?id=366
Join Us!
https://javaee-guardians.io
Adopt-A-JSR
• Started in 2007, easy way for JUGs to get involved
• What you can do depends upon what you want to do &
what spec leads are looking for

Weitere ähnliche Inhalte

Was ist angesagt?

Java EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVCJava EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVCJosh Juneau
 
Faster java ee builds with gradle [con4921]
Faster java ee builds with gradle [con4921]Faster java ee builds with gradle [con4921]
Faster java ee builds with gradle [con4921]Ryan Cuprak
 
Java on Azure
Java on AzureJava on Azure
Java on AzurePhilly JUG
 
Enterprise Java Web Application Frameworks Sample Stack Implementation
Enterprise Java Web Application Frameworks   Sample Stack ImplementationEnterprise Java Web Application Frameworks   Sample Stack Implementation
Enterprise Java Web Application Frameworks Sample Stack ImplementationMert Çalışkan
 
What's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and BeyondWhat's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and BeyondOracle
 
50 New Features of Java EE 7 in 50 minutes
50 New Features of Java EE 7 in 50 minutes50 New Features of Java EE 7 in 50 minutes
50 New Features of Java EE 7 in 50 minutesArun Gupta
 
Java EE Revisits GoF Design Patterns
Java EE Revisits GoF Design PatternsJava EE Revisits GoF Design Patterns
Java EE Revisits GoF Design PatternsMurat Yener
 
Java EE 7 for WebLogic 12c Developers
Java EE 7 for WebLogic 12c DevelopersJava EE 7 for WebLogic 12c Developers
Java EE 7 for WebLogic 12c DevelopersBruno Borges
 
Changes in WebLogic 12.1.3 Every Administrator Must Know
Changes in WebLogic 12.1.3 Every Administrator Must KnowChanges in WebLogic 12.1.3 Every Administrator Must Know
Changes in WebLogic 12.1.3 Every Administrator Must KnowBruno Borges
 
20151010 my sq-landjavav2a
20151010 my sq-landjavav2a20151010 my sq-landjavav2a
20151010 my sq-landjavav2aIvan Ma
 
jDays2015 - JavaEE vs. Spring Smackdown
jDays2015 - JavaEE vs. Spring SmackdownjDays2015 - JavaEE vs. Spring Smackdown
jDays2015 - JavaEE vs. Spring SmackdownMert Çalışkan
 
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012Sam Brannen
 
Scala play-framework
Scala play-frameworkScala play-framework
Scala play-frameworkAbdhesh Kumar
 
Spring framework
Spring frameworkSpring framework
Spring frameworkAircon Chen
 
Spring - CDI Interop
Spring - CDI InteropSpring - CDI Interop
Spring - CDI InteropRay Ploski
 
Java EE8 - by Kito Mann
Java EE8 - by Kito Mann Java EE8 - by Kito Mann
Java EE8 - by Kito Mann Kile Niklawski
 
Migrating a JSF-Based Web Application from Spring 3 to Java EE 7 and CDI
Migrating a JSF-Based Web Application from Spring 3 to Java EE 7 and CDIMigrating a JSF-Based Web Application from Spring 3 to Java EE 7 and CDI
Migrating a JSF-Based Web Application from Spring 3 to Java EE 7 and CDIMario-Leander Reimer
 
Apache DeltaSpike the CDI toolbox
Apache DeltaSpike the CDI toolboxApache DeltaSpike the CDI toolbox
Apache DeltaSpike the CDI toolboxAntoine Sabot-Durand
 

Was ist angesagt? (19)

Java EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVCJava EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVC
 
Faster java ee builds with gradle [con4921]
Faster java ee builds with gradle [con4921]Faster java ee builds with gradle [con4921]
Faster java ee builds with gradle [con4921]
 
Java on Azure
Java on AzureJava on Azure
Java on Azure
 
Enterprise Java Web Application Frameworks Sample Stack Implementation
Enterprise Java Web Application Frameworks   Sample Stack ImplementationEnterprise Java Web Application Frameworks   Sample Stack Implementation
Enterprise Java Web Application Frameworks Sample Stack Implementation
 
What's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and BeyondWhat's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and Beyond
 
50 New Features of Java EE 7 in 50 minutes
50 New Features of Java EE 7 in 50 minutes50 New Features of Java EE 7 in 50 minutes
50 New Features of Java EE 7 in 50 minutes
 
Java EE Revisits GoF Design Patterns
Java EE Revisits GoF Design PatternsJava EE Revisits GoF Design Patterns
Java EE Revisits GoF Design Patterns
 
Java EE 7 for WebLogic 12c Developers
Java EE 7 for WebLogic 12c DevelopersJava EE 7 for WebLogic 12c Developers
Java EE 7 for WebLogic 12c Developers
 
Changes in WebLogic 12.1.3 Every Administrator Must Know
Changes in WebLogic 12.1.3 Every Administrator Must KnowChanges in WebLogic 12.1.3 Every Administrator Must Know
Changes in WebLogic 12.1.3 Every Administrator Must Know
 
20151010 my sq-landjavav2a
20151010 my sq-landjavav2a20151010 my sq-landjavav2a
20151010 my sq-landjavav2a
 
jDays2015 - JavaEE vs. Spring Smackdown
jDays2015 - JavaEE vs. Spring SmackdownjDays2015 - JavaEE vs. Spring Smackdown
jDays2015 - JavaEE vs. Spring Smackdown
 
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012
 
Scala play-framework
Scala play-frameworkScala play-framework
Scala play-framework
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
Spring - CDI Interop
Spring - CDI InteropSpring - CDI Interop
Spring - CDI Interop
 
Java EE8 - by Kito Mann
Java EE8 - by Kito Mann Java EE8 - by Kito Mann
Java EE8 - by Kito Mann
 
Java 9 Modularity in Action
Java 9 Modularity in ActionJava 9 Modularity in Action
Java 9 Modularity in Action
 
Migrating a JSF-Based Web Application from Spring 3 to Java EE 7 and CDI
Migrating a JSF-Based Web Application from Spring 3 to Java EE 7 and CDIMigrating a JSF-Based Web Application from Spring 3 to Java EE 7 and CDI
Migrating a JSF-Based Web Application from Spring 3 to Java EE 7 and CDI
 
Apache DeltaSpike the CDI toolbox
Apache DeltaSpike the CDI toolboxApache DeltaSpike the CDI toolbox
Apache DeltaSpike the CDI toolbox
 

Andere mochten auch

Containerless in the Cloud with AWS Lambda
Containerless in the Cloud with AWS LambdaContainerless in the Cloud with AWS Lambda
Containerless in the Cloud with AWS LambdaRyan Cuprak
 
Top 50 java ee 7 best practices [con5669]
Top 50 java ee 7 best practices [con5669]Top 50 java ee 7 best practices [con5669]
Top 50 java ee 7 best practices [con5669]Ryan Cuprak
 
Configuration for Java EE: Config JSR and Tamaya
Configuration for Java EE: Config JSR and TamayaConfiguration for Java EE: Config JSR and Tamaya
Configuration for Java EE: Config JSR and TamayaDmitry Kornilov
 
Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Ryan Cuprak
 
Jms deep dive [con4864]
Jms deep dive [con4864]Jms deep dive [con4864]
Jms deep dive [con4864]Ryan Cuprak
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Ryan Cuprak
 
Adopt-a-JSR session (JSON-B/P)
Adopt-a-JSR session (JSON-B/P)Adopt-a-JSR session (JSON-B/P)
Adopt-a-JSR session (JSON-B/P)Dmitry Kornilov
 
Updates to the java api for json processing for java ee 8
Updates to the java api for json processing for java ee 8Updates to the java api for json processing for java ee 8
Updates to the java api for json processing for java ee 8Alex Soto
 
JavaOne 2013: Organizing Your Local Community
JavaOne 2013: Organizing Your Local CommunityJavaOne 2013: Organizing Your Local Community
JavaOne 2013: Organizing Your Local CommunityRyan Cuprak
 
Java script nirvana in netbeans [con5679]
Java script nirvana in netbeans [con5679]Java script nirvana in netbeans [con5679]
Java script nirvana in netbeans [con5679]Ryan Cuprak
 
A first Draft to Java Configuration
A first Draft to Java ConfigurationA first Draft to Java Configuration
A first Draft to Java ConfigurationAnatole Tresch
 
Web protocols for java developers
Web protocols for java developersWeb protocols for java developers
Web protocols for java developersPavel Bucek
 
Developing in the Cloud
Developing in the CloudDeveloping in the Cloud
Developing in the CloudRyan Cuprak
 
JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014Ryan Cuprak
 
Combining R With Java For Data Analysis (Devoxx UK 2015 Session)
Combining R With Java For Data Analysis (Devoxx UK 2015 Session)Combining R With Java For Data Analysis (Devoxx UK 2015 Session)
Combining R With Java For Data Analysis (Devoxx UK 2015 Session)Ryan Cuprak
 
Java EE for the Cloud
Java EE for the CloudJava EE for the Cloud
Java EE for the CloudDmitry Kornilov
 
Making Java REST with JAX-RS 2.0
Making Java REST with JAX-RS 2.0Making Java REST with JAX-RS 2.0
Making Java REST with JAX-RS 2.0Dmytro Chyzhykov
 
Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!Reza Rahman
 

Andere mochten auch (20)

Containerless in the Cloud with AWS Lambda
Containerless in the Cloud with AWS LambdaContainerless in the Cloud with AWS Lambda
Containerless in the Cloud with AWS Lambda
 
Top 50 java ee 7 best practices [con5669]
Top 50 java ee 7 best practices [con5669]Top 50 java ee 7 best practices [con5669]
Top 50 java ee 7 best practices [con5669]
 
Configuration for Java EE: Config JSR and Tamaya
Configuration for Java EE: Config JSR and TamayaConfiguration for Java EE: Config JSR and Tamaya
Configuration for Java EE: Config JSR and Tamaya
 
Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and
 
Jms deep dive [con4864]
Jms deep dive [con4864]Jms deep dive [con4864]
Jms deep dive [con4864]
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
 
Adopt-a-JSR session (JSON-B/P)
Adopt-a-JSR session (JSON-B/P)Adopt-a-JSR session (JSON-B/P)
Adopt-a-JSR session (JSON-B/P)
 
Updates to the java api for json processing for java ee 8
Updates to the java api for json processing for java ee 8Updates to the java api for json processing for java ee 8
Updates to the java api for json processing for java ee 8
 
JavaOne 2013: Organizing Your Local Community
JavaOne 2013: Organizing Your Local CommunityJavaOne 2013: Organizing Your Local Community
JavaOne 2013: Organizing Your Local Community
 
Java script nirvana in netbeans [con5679]
Java script nirvana in netbeans [con5679]Java script nirvana in netbeans [con5679]
Java script nirvana in netbeans [con5679]
 
A first Draft to Java Configuration
A first Draft to Java ConfigurationA first Draft to Java Configuration
A first Draft to Java Configuration
 
Fun with Kotlin
Fun with KotlinFun with Kotlin
Fun with Kotlin
 
Web protocols for java developers
Web protocols for java developersWeb protocols for java developers
Web protocols for java developers
 
Developing in the Cloud
Developing in the CloudDeveloping in the Cloud
Developing in the Cloud
 
JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014
 
Combining R With Java For Data Analysis (Devoxx UK 2015 Session)
Combining R With Java For Data Analysis (Devoxx UK 2015 Session)Combining R With Java For Data Analysis (Devoxx UK 2015 Session)
Combining R With Java For Data Analysis (Devoxx UK 2015 Session)
 
Java EE for the Cloud
Java EE for the CloudJava EE for the Cloud
Java EE for the Cloud
 
Mobile banking 2012
Mobile banking 2012Mobile banking 2012
Mobile banking 2012
 
Making Java REST with JAX-RS 2.0
Making Java REST with JAX-RS 2.0Making Java REST with JAX-RS 2.0
Making Java REST with JAX-RS 2.0
 
Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!
 

Ă„hnlich wie Java EE 8 Update

Java EE 8: On the Horizon
Java EE 8:  On the HorizonJava EE 8:  On the Horizon
Java EE 8: On the HorizonJosh Juneau
 
Boston 2011 OTN Developer Days - Java EE 6
Boston 2011 OTN Developer Days - Java EE 6Boston 2011 OTN Developer Days - Java EE 6
Boston 2011 OTN Developer Days - Java EE 6Arun Gupta
 
Java ee 8 + security overview
Java ee 8 + security overviewJava ee 8 + security overview
Java ee 8 + security overviewRudy De Busscher
 
Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010Arun Gupta
 
Java EE 6 & GlassFish v3 @ DevNexus
Java EE 6 & GlassFish v3 @ DevNexusJava EE 6 & GlassFish v3 @ DevNexus
Java EE 6 & GlassFish v3 @ DevNexusArun Gupta
 
Overview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGOverview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGMarakana Inc.
 
Java EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUGJava EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUGArun Gupta
 
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnition
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnitionJava EE 6 & GlassFish = Less Code + More Power @ DevIgnition
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnitionArun Gupta
 
Java EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerJava EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerArun Gupta
 
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...Arun Gupta
 
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3 Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3 Skills Matter
 
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...Arun Gupta
 
What’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new StrategyWhat’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new StrategyMohamed Taman
 
Java EE 6, Eclipse @ EclipseCon
Java EE 6, Eclipse @ EclipseConJava EE 6, Eclipse @ EclipseCon
Java EE 6, Eclipse @ EclipseConLudovic Champenois
 
JavaOne 2014 Java EE 8 Booth Slides
JavaOne 2014 Java EE 8 Booth SlidesJavaOne 2014 Java EE 8 Booth Slides
JavaOne 2014 Java EE 8 Booth SlidesEdward Burns
 
Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010
Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010
Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010Arun Gupta
 
AAI-1713 Introduction to Java EE 7
AAI-1713 Introduction to Java EE 7AAI-1713 Introduction to Java EE 7
AAI-1713 Introduction to Java EE 7WASdev Community
 
AAI 1713-Introduction to Java EE 7
AAI 1713-Introduction to Java EE 7AAI 1713-Introduction to Java EE 7
AAI 1713-Introduction to Java EE 7Kevin Sutter
 

Ă„hnlich wie Java EE 8 Update (20)

Java EE 8: On the Horizon
Java EE 8:  On the HorizonJava EE 8:  On the Horizon
Java EE 8: On the Horizon
 
Boston 2011 OTN Developer Days - Java EE 6
Boston 2011 OTN Developer Days - Java EE 6Boston 2011 OTN Developer Days - Java EE 6
Boston 2011 OTN Developer Days - Java EE 6
 
Java ee 8 + security overview
Java ee 8 + security overviewJava ee 8 + security overview
Java ee 8 + security overview
 
Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010
 
Java EE 6 & GlassFish v3 @ DevNexus
Java EE 6 & GlassFish v3 @ DevNexusJava EE 6 & GlassFish v3 @ DevNexus
Java EE 6 & GlassFish v3 @ DevNexus
 
Overview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGOverview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUG
 
Java EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUGJava EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUG
 
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnition
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnitionJava EE 6 & GlassFish = Less Code + More Power @ DevIgnition
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnition
 
Java EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerJava EE 6 = Less Code + More Power
Java EE 6 = Less Code + More Power
 
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
 
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3 Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
 
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
 
What’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new StrategyWhat’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new Strategy
 
Next stop: Spring 4
Next stop: Spring 4Next stop: Spring 4
Next stop: Spring 4
 
Jsp
JspJsp
Jsp
 
Java EE 6, Eclipse @ EclipseCon
Java EE 6, Eclipse @ EclipseConJava EE 6, Eclipse @ EclipseCon
Java EE 6, Eclipse @ EclipseCon
 
JavaOne 2014 Java EE 8 Booth Slides
JavaOne 2014 Java EE 8 Booth SlidesJavaOne 2014 Java EE 8 Booth Slides
JavaOne 2014 Java EE 8 Booth Slides
 
Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010
Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010
Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010
 
AAI-1713 Introduction to Java EE 7
AAI-1713 Introduction to Java EE 7AAI-1713 Introduction to Java EE 7
AAI-1713 Introduction to Java EE 7
 
AAI 1713-Introduction to Java EE 7
AAI 1713-Introduction to Java EE 7AAI 1713-Introduction to Java EE 7
AAI 1713-Introduction to Java EE 7
 

Mehr von Ryan Cuprak

Jakarta EE Test Strategies (2022)
Jakarta EE Test Strategies (2022)Jakarta EE Test Strategies (2022)
Jakarta EE Test Strategies (2022)Ryan Cuprak
 
DIY Home Weather Station (Devoxx Poland 2023)
DIY Home Weather Station (Devoxx Poland 2023)DIY Home Weather Station (Devoxx Poland 2023)
DIY Home Weather Station (Devoxx Poland 2023)Ryan Cuprak
 
Polygot Java EE on the GraalVM
Polygot Java EE on the GraalVMPolygot Java EE on the GraalVM
Polygot Java EE on the GraalVMRyan Cuprak
 
Exploring Java Heap Dumps (Oracle Code One 2018)
Exploring Java Heap Dumps (Oracle Code One 2018)Exploring Java Heap Dumps (Oracle Code One 2018)
Exploring Java Heap Dumps (Oracle Code One 2018)Ryan Cuprak
 
Faster Java EE Builds with Gradle
Faster Java EE Builds with GradleFaster Java EE Builds with Gradle
Faster Java EE Builds with GradleRyan Cuprak
 
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 201450 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014Ryan Cuprak
 

Mehr von Ryan Cuprak (6)

Jakarta EE Test Strategies (2022)
Jakarta EE Test Strategies (2022)Jakarta EE Test Strategies (2022)
Jakarta EE Test Strategies (2022)
 
DIY Home Weather Station (Devoxx Poland 2023)
DIY Home Weather Station (Devoxx Poland 2023)DIY Home Weather Station (Devoxx Poland 2023)
DIY Home Weather Station (Devoxx Poland 2023)
 
Polygot Java EE on the GraalVM
Polygot Java EE on the GraalVMPolygot Java EE on the GraalVM
Polygot Java EE on the GraalVM
 
Exploring Java Heap Dumps (Oracle Code One 2018)
Exploring Java Heap Dumps (Oracle Code One 2018)Exploring Java Heap Dumps (Oracle Code One 2018)
Exploring Java Heap Dumps (Oracle Code One 2018)
 
Faster Java EE Builds with Gradle
Faster Java EE Builds with GradleFaster Java EE Builds with Gradle
Faster Java EE Builds with Gradle
 
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 201450 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
 

KĂĽrzlich hochgeladen

8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...software pro Development
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 

KĂĽrzlich hochgeladen (20)

8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 

Java EE 8 Update

  • 1. JAVA EE 8 UPDATE Ryan Cuprak
  • 2. Agenda • Java EE 8 specification overview and current status • Example of proposed enhancements • JavaOne 2016 Java EE Reboot • How to get involved and help
  • 3. Importance of Java EE https://javaee-guardians.io/java-ee-adoption-surveys
  • 5. Microservices and Java EE http://microprofile.io
  • 6. Java EE: Past, Present, Future J2EE 1.2 Servlet, JSP, EJB, JMS, RMI J2EE 1.3 CMP, JCA J2EE 1.4 Web Services, Mgmt, Deploy Java EE 5 Ease of Use, EJB 3, JPA, JSF, JAXB, JAX-WS Java EE 6 Pruning, Ease of Use, JAX-RS, CDI, Bean- ValidationWeb Profile Servlet 3, EJB 3.1 Lite Java EE 7 JMS 2, Batch, TX, Concurrency Web- Sockets, JSON Java EE 8 SERVLET 4, JSON-B, JSON-P 1.1, JSF 2.3, CDI 2.0, JAX- RS 2.1, SECURITY
  • 7. Java EE 8 Community Survey https://java.net/downloads/javaee-spec/JavaEE8_Community_Survey_Results.pdf https://blogs.oracle.com/ldemichiel/entry/results_from_the_java_ee
  • 8. Java EE 8 Overview – Original Plan • Continued Enhancements for Web Standards Alignment • HTTP/2, JSON Binding, JSON-P, MVC • Cloud enhancements • Security, RESTful Management API • CDI Programming Model • Ease of use, EJB via CDI • Smaller, but Important Features • Caching, Better Messaging • Alignment with Java SE 8
  • 9. Java EE 8 Specifications (Original) • JMS 2.1 • JAX-RS 2.1 • JSF 2.3 • CDI 2.0 • JSON-P 1.1 • Servlet 4.0 • JCache 1.0 • JSON-B 1.0 • MVC 1.0 • Java EE Security1.0 • Java EE Management 2.0
  • 10. Java EE 8 Reboot JSRs proposed to be dropped: • Management 2.0 (JSR 373) • JMS 2.1 (JSR 368) • MVC 1.0 (JSR 371) Expanded scope: • Security 1.0 (JSR 375) Proposed new JSRs: • Health Checking • Configuration New Survey Conducted Results Not Yet Published New Target Release Q4 2017
  • 12. Servlet 4.0 • Early Draft published 10/2015 • Early implementation available in Tomcat 9 JSR 369 Expert Group Activity
  • 13. Servlet 4.0: HTTP/2 • HTTP/2 Support -> Major Update • Why do we need HTTP/2? • Problems with HTTP/1.1: • Head-of-Line Blocking • HTTP Pipelining, File Concatenation, & Image Sprites • Key differences: • Binary instead of textual • Fully multiplexed instead of ordered and blocking • One connection for parallelism • Uses header compression • Allows server push JSR 369
  • 14. Servlet 4.0: HTTP/2 Support NOTE: HTTPS only for browsers!
  • 15. Servlet 4.0 • Principal goal to support HTTP/2 • Request/response multiplexing over single connection • Transparent to most developers, although possibly slight changes to the Servlet API • Most affected: frameworks JSR 369
  • 16. Servlet 4.0 – Exposing HTTP./2 • Stream Prioritization • New Priority class • Enhance HttpServletRequest and HttpServletResponse to accommodate • Server Push • Frameworks can push resources to the client • Not replacing WebSockets JSR 369
  • 17. Servlet 4.0 - HttpClient API • Plans to provide easy to use API • Target HttpClient in Java 9 • Support both HTTP/1.1 and 2 • Builds on existing Java API Classes JSR 368
  • 18. JMS 2.1 Asynchronous Batches Example: @MessageDriven public class MyFlexibleMDB { @JMSQueueListener(destinationLookup="java:global/ myQueue") public void myMessageCallback(@Batch(maxSize=10,timeout= 1000) Message[] messages) { ... } JSR 368
  • 19. JMS 2.1 Declarative JMS Listeners @ApplicationScoped @MaxConcurrency(10) public class HandlingEventRegistrationAttemptConsumer { @JmsListener( destinationLookup="jms/HandlingEventRegistrationAttemptQueue", selector="source = 'mobile'", batchSize=10, retry=5, retryDelay=7000, orderBy=TIMESTAMP) @Transactional public void onEventRegistrationAttempt( HandlingEventRegistrationAttempt... attempts) { ... } } JSR 368
  • 20. JAX-RS 2.1 • JSR 370 - In Early Stages • No builds available for testing. • Reboot: Add Circuit Breaker support JSR 370 Expert Group Activity
  • 21. JAX-RS 2.1 • Hypermedia API • Reactive API • Security API • Support for SSE (Server Sent Events) • Improved CDI Integration • Support for Non-Blocking IO in Providers JSR 370
  • 22. JAX-RS 2.1 • Conditional JAXB on Runtimes • Integration with JSON-B • Support for CDI in Java SE JSR 370
  • 23. JSF 2.3 • JSR 372 - in active progress • Milestones available for testing • Read, Test, Supply Feedback JSR 372 Emails from Oracle spec leads
  • 24. JSF 2.3 • Standardize Web Socket integration • f:websocket • Multi-field validation • Enhanced CDI Integration • Lifecycle Enhancements • PostRenderViewEvent • EL API Enhancements • Configuration Enhancements • AJAX Enhancements JSR 372
  • 25. JSF 2.3 Enhanced CDI Integration Injection of Resources @Inject FacesContext facesContext; @ApplicationMap @Inject Map applicationMap; JSR 372
  • 26. JSF 2.3 Enhanced CDI Integration • Wider Support of Injection into JSF Artifacts • javax.faces.convert.Converter • javax.faces.validator.Validator • javax.faces.component.behavior.Behavior • Upgraded to CDI qualifiers JSR 372
  • 27. CDI 2.0 • JSR 365 - in active progress • Early draft review 2 published August 2016 • Test Releases of Reference Implementation http://weld.cdi-spec.org/news/ JSR 374
  • 28. CDI 2.0 • Java SE Bootstrap • XML Configuration • Asynchronous Events • @Startup for CDI Beans • Portable Extension SPI Simplification • Small features and enhancements JSR 374
  • 29. CDI 2.0 Workshop Status Description Parts API was split Working on modularity (sub specs) Events Finished Enhance events (asynchronous, ordering,etc… ) AOP Started Interceptors & Decoractors enhancement Java SE First part done Boostrap CDI in Java SE JDK 8 Started Enhancements from Java 8 SPI Not Started more open SPI for 3rd party Contexts Not Started Provide a way to start/stop contexts for SE mode JSR 374
  • 30. CDI Event System Enhancements • Asynchronous Events @Inject private ExperimentalEvent<Configuration> event; … event.fireAsync(new Configuration()); • Call to event.fireAsync() returns immediately JSR 365
  • 31. CDI 2.0 @Schedule Outside EJB @ApplicationScoped public class MyScheduledBean { ... @Schedule(...) public void myScheduledTask() { ... } } @ApplicationScoped @Stereotype @Retention(RUNTIME) @Target(TYPE) @Schedule(...) public @interface MonthlyTask {} JSR 365
  • 32. JSON-P 1.1 • JSR 374 - In Early Draft Review • More Information: • https://json-processing-spec.java.net/ • Sources: https://java.net/projects/jsonp JSR 374
  • 33. JSON-P 1.1 • Updates to new API in Java EE 7 • New JSON Standards • JSON-Pointer and JSON-Patch • Editing Operations on JSON objects and arrays • Helper Classes and Enhanced Java SE 8 support JSR 374
  • 34. JSON-P 1.1 Java SE 8 Support • Java 8 Stream Support • JsonArray persons; persons.getValuesAs(JsonObject.class).stream() .filter(x->x.getString(“age”) >= 65) .forEach(System.out.println(x.getString(“name”))); JSR 374
  • 36. JSON-P 1.1: JSON-Patch public void shouldBuildJsonPatchExpressionUsingJsonPatchBuilder() { JsonPatchBuilder patchBuilder = new JsonPatchBuilder(); JsonObject result = patchBuilder.add("/email", "john@example.com") .replace("/age", 30) .remove("/phoneNumber") .test("/firstName", "John") .copy("/address/lastName", "/lastName") .apply(buildPerson()); } JSR 374
  • 37. Java EE Management API 2.0 • Oracle proposing to drop JSR from EE 8. • Currently working on Early Draft • Java EE Management API 1.0 – released 2002 • Join mailing list of JSR 373 JSR 373
  • 38. Java EE Management API 2.0 • REST Based Interface to Supersede EJB Management APIs of JSR 77 • Monitoring and deployment • SSE for Event Support (WebSockets also under consideration) JSR 373
  • 39. Bean Validation 2.0 • Add support for LocalTime, Optional, etc. • Leverage type annotation, repeatable annotations, reflective parameter name retrieval • Potential enhancements: • Customized constraint validations • Object graph validation • Example: List<@Email String> emails; JSR 380
  • 41. MVC • Model - View - Controller • JSR 371 • Active Progress…download milestones • Ozark: https://ozark.java.net/ JSR 371
  • 42. MVC • Action-Based Web Framework for Java EE • Follows suit of Spring MVC or Apache Struts • Does Not Replace JSF • Model: CDI, Bean Validation, JPA • View: Facelets, JSP (Extensible) • Controller: Layered on top of JAX-RS JSR 371
  • 43. MVC: Controller Example @Controller @Path("/customers") @View("my-view.jsp") public class CustomerController { @Inject private Models models; @GET public String getItems(){ . . . return “customers.jsp”; } JSR 371
  • 44. MVC: View Example <c:forEach var="customer" items="${customers}"> <tr> <td class="text-left">${customer.name}</td> <td class="text-center"> <form action="${pageContext.request.contextPath}/r/customers/edit" method="POST"> <input type="hidden" name="id" value="${item.id}"/> <button type="submit"> Edit </button> </form> </td> </tr> </c:forEach> JSR 371
  • 45. JSON-B • Java API for JSON Binding • JSR 367 - Public Review • Read the spec, start testing: https://java.net/projects/jsonb-spec/pages/Home JSR 367
  • 46. JSON-B Next Logical Step • Standardize means of converting JSON to Java objects and vice versa • Default mapping algorithm for converting Java classes • Draw from best of breed ideas in existing JSON binding solutions • Provide JAX-RS a standard way to support “application/json” for POJOs • JAX-RS currently supports JSON-P JSR 367
  • 47. JSON-B Mapping @Entity public class Person { @Id String name; String gender; @ElementCollection Map<String, String> phones; ... } Person duke = new Person(); duke.setName("Duke"); duke.setGender("Male"); phones = new HashMap<>(); phones.put("home", "650-123-4567"); phones.put("mobile", "650-234-5678"); duke.setPhones(phones); { "name":"Duke", "gender":"Male", "phones":{ "home":"650-123-4567", "mobile":"650-234-5678" } } JSR 367
  • 48. JSON-B: Proposed Custom Mapping • Utilization of annotations to map fields to JSON Document Elements @JsonProperty(“poolType”) public String poolType; @JsonPropertyOrder(“poolType”,”shape”) public class Pool(){ public String poolType; public String shape; … } { poolType : “Inground”, } { poolType : “Inground”, shape : “Rectangle” } JSR 367
  • 49. Java EE Security • Improve Java EE platform by ensuring that the security API is useful in the modern cloud/PaaS paradigm • Simplify, standardize, modernize • Promotes modern concepts (EL and CDI) JSR 367
  • 50. Java EE Security • Simplify security providers • Easy pluggability and mapping • Enabling existing security annotations for all beans • Proposed examples: • https://github.com/javaee-security-spec/javaee-security-proposals JSR 375
  • 51. Java EE Security: Proposed Provider @SecurityProvider public class MySecurityProvider { @Inject UserService userService; @OnAuthentication // The parameters could suit the credentials mechanism being used. public Principal getPrincipal(String username, String password) { // Construct the principal using the user service. } @OnAuthorization public String[] getRoles (Principal principal) { // Construct an array of roles using the principal and user service. } } JSR 375
  • 52. Java EE Security – JavaOne 2016 • Add OAuth and OpenID support • Secret management JSR 375
  • 53. JCache • Java Temporary Caching API • JSR 107 - Started in 2001 • Provides a common way for Java applications to create, access, update, and remove entries from caches JSR 197
  • 54. JCache • Provide applications with caching functionality…particularly the ability to cache Java objects • Define common set of caching concepts & facilities • Minimize learning curve • Maximize portability • Support in-process and distributed cache implementations JSR 107
  • 55. Others: Not Addressed • JPA • WebSocket • Concurrency Utilities • Batching • etc…
  • 57. Configuration • Standardize a mechanism of defining, injecting and using configuration within an application. • Define configuration persistence mechanisms, formats, and bindings. • Support for merging, overriding, and federating configurations from different sources • Provide a standard mechanism for working with mutable/dynamic configurations
  • 58. Health Check • Goal: Standardize health reporting • Proposed new REST API enabling health checking • Available via configurable context (/healthcheck) • Will include semantics for reporting health • Health status codes • Reasons/warnings • Health of dependencies
  • 59. Java EE Roadmap - JavaOne 2016 2016 • Feedback through Survey • Launch Java EE Next JSRs 2017 • Java EE 8 • Specs, RI, TCK complete • Initial microservices support • Define Java EE 9 • Early access implementation of Java EE 9 2018 • Java EE 9 • Specs, RI, TCK complete • Modular Java EE runtime • Enhanced microservices support
  • 60. Java EE: Take Action • Start working with Java EE 8 today • Tools: • GlassFish v5 (or Payara) • Tomcat 9 web sockets • Milestones • Examples and Specification Docs
  • 61. Java EE Resources • JavaOne 2016 EE 8 Update/Reboot • http://tinyurl.com/zeark5t • Java EE 8 by Arjan Tijms • https://javaee8.zeef.com/arjan.tijms • JavaOne 2016 Sessions • https://www.oracle.com/javaone/ • JSR 366 • https://www.jcp.org/en/jsr/detail?id=366
  • 63. Adopt-A-JSR • Started in 2007, easy way for JUGs to get involved • What you can do depends upon what you want to do & what spec leads are looking for