SlideShare une entreprise Scribd logo
1  sur  28
Have You Seen Java EE
Lately?
Reza Rahman
Java EE/GlassFish Evangelist
reza.rahman@oracle.com
@reza_rahman
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public2
Program Agenda
 Java EE Overview
 Cargo Tracker
 API Overview + Demo
 The Ecosystem
 Looking Ahead
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public3
Java EE Past, Present, & Future
J2EE 1.3
CMP,
JCA
J2EE 1.4
Web
Services
,
Mgmt,
Deplymn
t
Java EE 5
Ease of
Use,
EJB 3,
JPA, JSF,
JAXB,
JAX-WS
Java EE 6
Pruning,
Ease of
Use,
JAX-RS,
CDI,
Bean-
Validation
Web
Profile
Servlet 3,
EJB 3.1
Lite
Java EE 7
JMS 2,
Batch, TX,
Concurr,
Web-
Sockets,
JSON
Web Profile
JAX-RS 2
J2EE 1.2
Servlet,
JSP, EJB,
JMS, RMI
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public4
Java EE Past, Present, & Future
J2EE 1.3
CMP,
JCA
J2EE 1.4
Web
Services
,
Mgmt,
Deplymn
t
Java EE 5
Ease of
Use,
EJB 3,
JPA, JSF,
JAXB,
JAX-WS
Java EE 6
Pruning,
Ease of
Use,
JAX-RS,
CDI,
Bean-
Validation
Web
Profile
Servlet 3,
EJB 3.1
Lite
Java EE 7
JMS 2,
Batch, TX,
Concurr,
Web-
Sockets,
JSON
Web Profile
JAX-RS 2
J2EE 1.2
Servlet,
JSP, EJB,
JMS, RMI
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public5
Java EE Past, Present, & Future
J2EE 1.3
CMP,
JCA
J2EE 1.4
Web
Services
,
Mgmt,
Deplymn
t
Java EE 5
Ease of
Use,
EJB 3,
JPA, JSF,
JAXB,
JAX-WS
Java EE 6
Pruning,
Ease of
Use,
JAX-RS,
CDI,
Bean-
Validation
Web
Profile
Servlet 3,
EJB 3.1
Lite
Java EE 7
JMS 2,
Batch, TX,
Concurr,
Web-
Sockets,
JSON
Web Profile
JAX-RS 2
J2EE 1.2
Servlet,
JSP, EJB,
JMS, RMI
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public6
Java EE Past, Present, & Future
J2EE 1.3
CMP,
JCA
J2EE 1.4
Web
Services
,
Mgmt,
Deplymn
t
Java EE 5
Ease of
Use,
EJB 3,
JPA, JSF,
JAXB,
JAX-WS
Java EE 6
Pruning,
Ease of
Use,
JAX-RS,
CDI,
Bean-
Validation
Web
Profile
Servlet 3,
EJB 3.1
Lite
Java EE 7
JMS 2,
Batch, TX,
Concurr,
Web-
Sockets,
JSON
Web Profile
JAX-RS 2
J2EE 1.2
Servlet,
JSP, EJB,
JMS, RMI
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public7
Java EE Today
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public8
Java EE Today
Core Principles
 Open vendor neutral technical standard
 Stable core for a strong ecosystem
 Fully integrated runtime, intelligent defaults and convention-over-
configuration
 Non-redundant APIs with specialized roles
 Minimalism, simplicity and productivity
 Java centric – strong static typing, strongly Object Oriented,
focused on “blue collar” developers, strongly backwards
compatible
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public9
Java EE Today
What it is Not
 No XML hell
 No configuration hell
 No jar/dependency hell
 No feature bloat
 No snake-oil/hypeware
 No bloated deployments
 No lock-in
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public10
Java EE 7
EJB 3EJB 3
ServletServlet
JSFJSF JAX-RSJAX-RS
JMSJMS CDICDI
JPAJPA
UpdatedMajor
Release
New
Batch
Applications
Batch
Applications
JavaMailJavaMail
JAX-WSJAX-WS
BeanValidationBeanValidation
Java API for
JSON
Java API for
JSON
Java API for
WebSocket
Java API for
WebSocket
JTAJTAJCAJCAJACCJACC JASPICJASPIC
JAXBJAXB
Unchanged
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public11
Java EE Demo Application
http://cargotracker.java.net
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public12
JSF
 True MVC, component oriented, productive
 Facelets for view
– XHTML
– Templating
– Composite components
 Data, event binding to CDI via EL
 Validation, conversion, navigation, flow
 Supports AJAX, HTML 5
 Strong plug-in ecosystem
– PrimeFaces, RichFaces, ADF Faces, many others
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public13
JSF API
 Facelets tags
– <ui:composition>, <ui:define>, <ui:insert>,
<ui:component>, <ui:repeat>
 HTML tags
– <h:form>, <h:inputText>, <h:selectOneMenu>,
<h:commandButton>, <h:commandLink>, <h:panelGrid>
 Core tags
– <f:convert...>, <f:validat...>, <f:ajax>
 Event/data binding to CDI via EL
– <h:inputText … value=“#{hello.name}” …>
 CDI Scopes
– @ViewScoped, @FlowScoped
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public14
CDI
 Next generation type-safe dependency management
 Large number of component scopes
 Interceptors/decorators
 Type-safe events
 Portable extensions API to integrate third-party tools and
frameworks cleanly to Java EE
– DeltaSpike, Forge, Agorava, MyBatis-CDI, PicketLink, many more
 Improving testability
– Arquillian
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public15
CDI API
 Basic dependency injection
– @Inject, @Qualifier, @Stereotype, @Alternative,
@Named, @Produces, @Disposes
 Context management
– @RequestScoped, @SessionScoped, @ConversationScoped,
@ApplicationScoped, @Scope (@FlowScoped, @ViewScoped,
@TransactionScoped)
 Lightweight events
– Event, @Observes
 Interceptors/decorators
– @Interceptor, @InterceptorBinding, @AroundInvoke,
@Decorator, @Delegate
 Portable extensions SPI
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public16
EJB 3
 Enterprise service components
– Thread-safe, transactional, bandwidth-throttled, monitored
 Just POJOs + annotations
 Component types
– @Stateless, @Stateful, @Singleton, @MessageDriven
 Services
– @TransactionAttribute (JTA/CDI @Transactional),
@RolesAllowed, @RunAs, @Asynchronous, @Schedule,
@Lock, @Remote
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public17
JPA
 ORM mapping/domain modeling
 CRUD EntityManager API
 Rich query capabilities
– JPQL
– Criteria Queries
– Native Queries
– Stored procedures
 Caching
 Small plug-in ecosystem
– QueryDSL, DeltaSpike Query Module, Spring Data/CDI
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public18
JPA API
 Domain modeling
– @Entity, @Embeddable, @OneToOne, @OneToMany,
@ManyToOne, @ManyToMany, @ElementCollection, @Id
 Relational mapping
– @Table, @Column, @JoinColumn, @JoinTable, @Basic,
@Lob, @Temporal, @Enumerated, @Cacheable
 CRUD API
– EntityManager, Query, CriteriaQuery,
@PersistenceContext, @NamedQuery, @NamedNativeQuery,
@NamedStoredProcedureQuery
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public19
Bean Validation
 Declarative constraint management across application layers
 Constraint
– Restriction on a bean, field, property, method parameter, return value
– Not null, between 10 and 45, valid email, etc
– @Max, @Min, @Size, @NotNull, @Pattern, @Future, @Past
– Custom constraints
– Evaluated automatically
 Integrated with JSF, JPA, CDI, JAX-RS
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public20
JMS 2
 Reliable asynchronous messaging API for Java
 Point-to-point (queues), publish-subscribe (topic)
 Small, powerful API
– Message, Destination, Queue, Topic,
ConnectionFactory, Connection, Session,
MessageProducer, MessageConsumer, JMSContext,
JMSProducer, JMSConsumer, MessageListener,
@JMSConnectionFactory
 Message types
– TextMessage, ObjectMessage, BytesMessage,
MapMessage, StreamMessage
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public21
JAX-RS 2
 REST development API for Java
 Server and client
 Annotation based
– @Path, @GET, @POST, @PUT, @DELETE, @PathParam,
@QueryParam, @Produces, @Consumes
 Pluggable and extensible
– Providers, filters, interceptors
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public22
Java API for WebSocket
 High level declarative API for WebSocket
 Both client and server-side
 Small, powerful API
– @ServerEndpoint, @OnOpen, @OnClose, @OnMessage,
@OnError, Session, Remote
 Pluggable and extensible
– Encoders, decoders, sub-protocols
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public23
Java EE Platforms
GlassFishJava EE 7
Java EE 6
TomEE
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public24
Java EE Ecosystem
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public25
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
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public26
Java EE 8 Possibilities
 Web Standards/HTML5 Alignment
– HTTP2, SSE, JSON-B, JSON-P, action-oriented web framework,
hypermedia
 Cloud
– Simple security providers, REST management/monitoring
 CDI Alignment
– CDI 2, EJB services outside EJB, EJB pruning
 Enterprise
– JCache, Configuration, JMS
 Java SE 8 alignment
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public27
Adopt-a-JSR for Java EE 8
 Grassroots participation to shape Java EE
 Launched in Java EE 7 time-frame, key community element for
Java EE 8
– 30 Java user groups participating!
http://glassfish.org/adoptajsr
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public28
Resources
 Java EE Tutorials
– http://docs.oracle.com/javaee/7/tutorial/doc/home.htm
 Digging Deeper
– http://docs.oracle.com/javaee/7/firstcup/doc/home.htm
– https://glassfish.java.net/hol/
– https://java.net/projects/cargotracker/
 Java EE 7 Transparent Expert Groups
– http://javaee-spec.java.net
 Java EE 7 Reference Implementation
– http://glassfish.org
 The Aquarium
– http://blogs.oracle.com/theaquarium

Contenu connexe

Tendances

Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)
Hamed Hatami
 
Ankara JUG Ağustos 2013 - Oracle ADF
Ankara JUG Ağustos 2013 - Oracle ADFAnkara JUG Ağustos 2013 - Oracle ADF
Ankara JUG Ağustos 2013 - Oracle ADF
Ankara JUG
 

Tendances (16)

Best Way to Write SQL in Java
Best Way to Write SQL in JavaBest Way to Write SQL in Java
Best Way to Write SQL in Java
 
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot
 
Testing Java EE Applications Using Arquillian
Testing Java EE Applications Using ArquillianTesting Java EE Applications Using Arquillian
Testing Java EE Applications Using Arquillian
 
JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6
 
Java EE7 Demystified
Java EE7 DemystifiedJava EE7 Demystified
Java EE7 Demystified
 
EJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and StrategyEJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and Strategy
 
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!
 
Finally, EE Security API JSR 375
Finally, EE Security API JSR 375Finally, EE Security API JSR 375
Finally, EE Security API JSR 375
 
Modern web application development with java ee 7
Modern web application development with java ee 7Modern web application development with java ee 7
Modern web application development with java ee 7
 
Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)
 
Java EE7 in action
Java EE7 in actionJava EE7 in action
Java EE7 in action
 
MVC 1.0 / JSR 371
MVC 1.0 / JSR 371MVC 1.0 / JSR 371
MVC 1.0 / JSR 371
 
JavaScript Frameworks and Java EE – A Great Match
JavaScript Frameworks and Java EE – A Great MatchJavaScript Frameworks and Java EE – A Great Match
JavaScript Frameworks and Java EE – A Great Match
 
Java EE 7 overview
Java EE 7 overviewJava EE 7 overview
Java EE 7 overview
 
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 SystemsJava 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
 
Ankara JUG Ağustos 2013 - Oracle ADF
Ankara JUG Ağustos 2013 - Oracle ADFAnkara JUG Ağustos 2013 - Oracle ADF
Ankara JUG Ağustos 2013 - Oracle ADF
 

Similaire à Have You Seen Java EE Lately?

Consuming Java EE in Desktop, Web, and Mobile Frontends
Consuming Java EE in Desktop, Web, and Mobile FrontendsConsuming Java EE in Desktop, Web, and Mobile Frontends
Consuming Java EE in Desktop, Web, and Mobile Frontends
Geertjan Wielenga
 
10 Tips for Java EE 7 with PrimeFaces - JavaOne 2013
10 Tips for Java EE 7 with PrimeFaces - JavaOne 201310 Tips for Java EE 7 with PrimeFaces - JavaOne 2013
10 Tips for Java EE 7 with PrimeFaces - JavaOne 2013
Martin Fousek
 

Similaire à Have You Seen Java EE Lately? (20)

GlassFish BOF
GlassFish BOFGlassFish BOF
GlassFish BOF
 
JavaCro'14 - Consuming Java EE Backends in Desktop, Web, and Mobile Frontends...
JavaCro'14 - Consuming Java EE Backends in Desktop, Web, and Mobile Frontends...JavaCro'14 - Consuming Java EE Backends in Desktop, Web, and Mobile Frontends...
JavaCro'14 - Consuming Java EE Backends in Desktop, Web, and Mobile Frontends...
 
Consuming Java EE in Desktop, Web, and Mobile Frontends
Consuming Java EE in Desktop, Web, and Mobile FrontendsConsuming Java EE in Desktop, Web, and Mobile Frontends
Consuming Java EE in Desktop, Web, and Mobile Frontends
 
Java EE for the Cloud
Java EE for the CloudJava EE for the Cloud
Java EE for the Cloud
 
Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014
 
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUGThe Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
 
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
 
Java EE 6 : Paving The Path For The Future
Java EE 6 : Paving The Path For The FutureJava EE 6 : Paving The Path For The Future
Java EE 6 : Paving The Path For The Future
 
Java EE7
Java EE7Java EE7
Java EE7
 
10 Tips for Java EE 7 with PrimeFaces - JavaOne 2013
10 Tips for Java EE 7 with PrimeFaces - JavaOne 201310 Tips for Java EE 7 with PrimeFaces - JavaOne 2013
10 Tips for Java EE 7 with PrimeFaces - JavaOne 2013
 
Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7
 
JDK 10 Java Module System
JDK 10 Java Module SystemJDK 10 Java Module System
JDK 10 Java Module System
 
JavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFacesJavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFaces
 
Java ee7 1hour
Java ee7 1hourJava ee7 1hour
Java ee7 1hour
 
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
 
OTN Tour 2013: What's new in java EE 7
OTN Tour 2013: What's new in java EE 7OTN Tour 2013: What's new in java EE 7
OTN Tour 2013: What's new in java EE 7
 
Presente e Futuro: Java EE.next()
Presente e Futuro: Java EE.next()Presente e Futuro: Java EE.next()
Presente e Futuro: Java EE.next()
 
JAX-RS 2.0: RESTful Web Services
JAX-RS 2.0: RESTful Web ServicesJAX-RS 2.0: RESTful Web Services
JAX-RS 2.0: RESTful Web Services
 
Java SE 8
Java SE 8Java SE 8
Java SE 8
 
Java EE 8 Overview (Japanese)
Java EE 8 Overview (Japanese)Java EE 8 Overview (Japanese)
Java EE 8 Overview (Japanese)
 

Plus de Reza Rahman

Plus de Reza Rahman (6)

IBM WebSphere Family on Azure
IBM WebSphere Family on AzureIBM WebSphere Family on Azure
IBM WebSphere Family on Azure
 
Why Java/Jakarta EE Developers are First-Class Citizens on Azure
Why Java/Jakarta EE Developers are First-Class Citizens on AzureWhy Java/Jakarta EE Developers are First-Class Citizens on Azure
Why Java/Jakarta EE Developers are First-Class Citizens on Azure
 
Running WebLogic on Azure Kubernetes and Virtual Machines
Running WebLogic on Azure Kubernetes and Virtual MachinesRunning WebLogic on Azure Kubernetes and Virtual Machines
Running WebLogic on Azure Kubernetes and Virtual Machines
 
Powering Java on Azure with JBoss EAP
Powering Java on Azure with JBoss EAPPowering Java on Azure with JBoss EAP
Powering Java on Azure with JBoss EAP
 
Down-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EEDown-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EE
 
Java EE and Spring Side-by-Side
Java EE and Spring Side-by-SideJava EE and Spring Side-by-Side
Java EE and Spring Side-by-Side
 

Dernier

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Dernier (20)

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

Have You Seen Java EE Lately?

  • 1. Have You Seen Java EE Lately? Reza Rahman Java EE/GlassFish Evangelist reza.rahman@oracle.com @reza_rahman
  • 2. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public2 Program Agenda  Java EE Overview  Cargo Tracker  API Overview + Demo  The Ecosystem  Looking Ahead
  • 3. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public3 Java EE Past, Present, & Future J2EE 1.3 CMP, JCA J2EE 1.4 Web Services , Mgmt, Deplymn t Java EE 5 Ease of Use, EJB 3, JPA, JSF, JAXB, JAX-WS Java EE 6 Pruning, Ease of Use, JAX-RS, CDI, Bean- Validation Web Profile Servlet 3, EJB 3.1 Lite Java EE 7 JMS 2, Batch, TX, Concurr, Web- Sockets, JSON Web Profile JAX-RS 2 J2EE 1.2 Servlet, JSP, EJB, JMS, RMI
  • 4. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public4 Java EE Past, Present, & Future J2EE 1.3 CMP, JCA J2EE 1.4 Web Services , Mgmt, Deplymn t Java EE 5 Ease of Use, EJB 3, JPA, JSF, JAXB, JAX-WS Java EE 6 Pruning, Ease of Use, JAX-RS, CDI, Bean- Validation Web Profile Servlet 3, EJB 3.1 Lite Java EE 7 JMS 2, Batch, TX, Concurr, Web- Sockets, JSON Web Profile JAX-RS 2 J2EE 1.2 Servlet, JSP, EJB, JMS, RMI
  • 5. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public5 Java EE Past, Present, & Future J2EE 1.3 CMP, JCA J2EE 1.4 Web Services , Mgmt, Deplymn t Java EE 5 Ease of Use, EJB 3, JPA, JSF, JAXB, JAX-WS Java EE 6 Pruning, Ease of Use, JAX-RS, CDI, Bean- Validation Web Profile Servlet 3, EJB 3.1 Lite Java EE 7 JMS 2, Batch, TX, Concurr, Web- Sockets, JSON Web Profile JAX-RS 2 J2EE 1.2 Servlet, JSP, EJB, JMS, RMI
  • 6. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public6 Java EE Past, Present, & Future J2EE 1.3 CMP, JCA J2EE 1.4 Web Services , Mgmt, Deplymn t Java EE 5 Ease of Use, EJB 3, JPA, JSF, JAXB, JAX-WS Java EE 6 Pruning, Ease of Use, JAX-RS, CDI, Bean- Validation Web Profile Servlet 3, EJB 3.1 Lite Java EE 7 JMS 2, Batch, TX, Concurr, Web- Sockets, JSON Web Profile JAX-RS 2 J2EE 1.2 Servlet, JSP, EJB, JMS, RMI
  • 7. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public7 Java EE Today
  • 8. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public8 Java EE Today Core Principles  Open vendor neutral technical standard  Stable core for a strong ecosystem  Fully integrated runtime, intelligent defaults and convention-over- configuration  Non-redundant APIs with specialized roles  Minimalism, simplicity and productivity  Java centric – strong static typing, strongly Object Oriented, focused on “blue collar” developers, strongly backwards compatible
  • 9. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public9 Java EE Today What it is Not  No XML hell  No configuration hell  No jar/dependency hell  No feature bloat  No snake-oil/hypeware  No bloated deployments  No lock-in
  • 10. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public10 Java EE 7 EJB 3EJB 3 ServletServlet JSFJSF JAX-RSJAX-RS JMSJMS CDICDI JPAJPA UpdatedMajor Release New Batch Applications Batch Applications JavaMailJavaMail JAX-WSJAX-WS BeanValidationBeanValidation Java API for JSON Java API for JSON Java API for WebSocket Java API for WebSocket JTAJTAJCAJCAJACCJACC JASPICJASPIC JAXBJAXB Unchanged
  • 11. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public11 Java EE Demo Application http://cargotracker.java.net
  • 12. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public12 JSF  True MVC, component oriented, productive  Facelets for view – XHTML – Templating – Composite components  Data, event binding to CDI via EL  Validation, conversion, navigation, flow  Supports AJAX, HTML 5  Strong plug-in ecosystem – PrimeFaces, RichFaces, ADF Faces, many others
  • 13. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public13 JSF API  Facelets tags – <ui:composition>, <ui:define>, <ui:insert>, <ui:component>, <ui:repeat>  HTML tags – <h:form>, <h:inputText>, <h:selectOneMenu>, <h:commandButton>, <h:commandLink>, <h:panelGrid>  Core tags – <f:convert...>, <f:validat...>, <f:ajax>  Event/data binding to CDI via EL – <h:inputText … value=“#{hello.name}” …>  CDI Scopes – @ViewScoped, @FlowScoped
  • 14. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public14 CDI  Next generation type-safe dependency management  Large number of component scopes  Interceptors/decorators  Type-safe events  Portable extensions API to integrate third-party tools and frameworks cleanly to Java EE – DeltaSpike, Forge, Agorava, MyBatis-CDI, PicketLink, many more  Improving testability – Arquillian
  • 15. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public15 CDI API  Basic dependency injection – @Inject, @Qualifier, @Stereotype, @Alternative, @Named, @Produces, @Disposes  Context management – @RequestScoped, @SessionScoped, @ConversationScoped, @ApplicationScoped, @Scope (@FlowScoped, @ViewScoped, @TransactionScoped)  Lightweight events – Event, @Observes  Interceptors/decorators – @Interceptor, @InterceptorBinding, @AroundInvoke, @Decorator, @Delegate  Portable extensions SPI
  • 16. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public16 EJB 3  Enterprise service components – Thread-safe, transactional, bandwidth-throttled, monitored  Just POJOs + annotations  Component types – @Stateless, @Stateful, @Singleton, @MessageDriven  Services – @TransactionAttribute (JTA/CDI @Transactional), @RolesAllowed, @RunAs, @Asynchronous, @Schedule, @Lock, @Remote
  • 17. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public17 JPA  ORM mapping/domain modeling  CRUD EntityManager API  Rich query capabilities – JPQL – Criteria Queries – Native Queries – Stored procedures  Caching  Small plug-in ecosystem – QueryDSL, DeltaSpike Query Module, Spring Data/CDI
  • 18. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public18 JPA API  Domain modeling – @Entity, @Embeddable, @OneToOne, @OneToMany, @ManyToOne, @ManyToMany, @ElementCollection, @Id  Relational mapping – @Table, @Column, @JoinColumn, @JoinTable, @Basic, @Lob, @Temporal, @Enumerated, @Cacheable  CRUD API – EntityManager, Query, CriteriaQuery, @PersistenceContext, @NamedQuery, @NamedNativeQuery, @NamedStoredProcedureQuery
  • 19. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public19 Bean Validation  Declarative constraint management across application layers  Constraint – Restriction on a bean, field, property, method parameter, return value – Not null, between 10 and 45, valid email, etc – @Max, @Min, @Size, @NotNull, @Pattern, @Future, @Past – Custom constraints – Evaluated automatically  Integrated with JSF, JPA, CDI, JAX-RS
  • 20. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public20 JMS 2  Reliable asynchronous messaging API for Java  Point-to-point (queues), publish-subscribe (topic)  Small, powerful API – Message, Destination, Queue, Topic, ConnectionFactory, Connection, Session, MessageProducer, MessageConsumer, JMSContext, JMSProducer, JMSConsumer, MessageListener, @JMSConnectionFactory  Message types – TextMessage, ObjectMessage, BytesMessage, MapMessage, StreamMessage
  • 21. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public21 JAX-RS 2  REST development API for Java  Server and client  Annotation based – @Path, @GET, @POST, @PUT, @DELETE, @PathParam, @QueryParam, @Produces, @Consumes  Pluggable and extensible – Providers, filters, interceptors
  • 22. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public22 Java API for WebSocket  High level declarative API for WebSocket  Both client and server-side  Small, powerful API – @ServerEndpoint, @OnOpen, @OnClose, @OnMessage, @OnError, Session, Remote  Pluggable and extensible – Encoders, decoders, sub-protocols
  • 23. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public23 Java EE Platforms GlassFishJava EE 7 Java EE 6 TomEE
  • 24. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public24 Java EE Ecosystem
  • 25. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public25 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
  • 26. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public26 Java EE 8 Possibilities  Web Standards/HTML5 Alignment – HTTP2, SSE, JSON-B, JSON-P, action-oriented web framework, hypermedia  Cloud – Simple security providers, REST management/monitoring  CDI Alignment – CDI 2, EJB services outside EJB, EJB pruning  Enterprise – JCache, Configuration, JMS  Java SE 8 alignment
  • 27. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public27 Adopt-a-JSR for Java EE 8  Grassroots participation to shape Java EE  Launched in Java EE 7 time-frame, key community element for Java EE 8 – 30 Java user groups participating! http://glassfish.org/adoptajsr
  • 28. Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public28 Resources  Java EE Tutorials – http://docs.oracle.com/javaee/7/tutorial/doc/home.htm  Digging Deeper – http://docs.oracle.com/javaee/7/firstcup/doc/home.htm – https://glassfish.java.net/hol/ – https://java.net/projects/cargotracker/  Java EE 7 Transparent Expert Groups – http://javaee-spec.java.net  Java EE 7 Reference Implementation – http://glassfish.org  The Aquarium – http://blogs.oracle.com/theaquarium

Notes de l'éditeur

  1. The J2EE period (prior to Java EE 5) is marked with a successful effort to establish the server-side Java standards based ecosystem. Though widely criticized for complexity J2EE remains one of the most influential and groundbreaking technologies in the enterprise. The Java community stepped in to meet the programming model challenges in J2EE with projects like Spring and Hibernate.
  2. Java EE 5 absorbed many of the programming model changes from the community and included it’s own set of key innovations. The key changes in Java EE 5 were POJO programming, annotations over XML, intelligent defaults and zero-configuration systems. As a result of the changes in Java EE 5, Java EE remains one of the easiest to use platforms available today.
  3. The key change in Java EE 6 was to introduce first-class generic dependency injection as a built-in part of the platform through CDI. The industry reception of Java EE 6 has been great resulting in the growing adoption of Java EE. Java EE 6 also introduced the Web Profile and a pruning process to make the platform as lightweight as possible.
  4. Java EE 7 is an opportunity to build upon the success of Java EE 6 to make sure enterprise developers are ready for emerging challenges.
  5. The industry is on the path to adopting Java EE 7. There are already five certified compatible implementations – GlassFish 4, WildFly 8, Hitachi Cosminexus, TmaxSoft JEUS and WebSphere Liberty 8.5. WebLogic is well on the way to Java EE 7 certification and uses many of the OSS components from GlassFish 4. JBoss EAP is the upstream project for WildFly and will be Java EE 7 compatible soon. TomEE, the Tomcat based open source Java EE application server is also working on Java EE 7. The rest of the available Java EE platforms will likely catch up gradually.
  6. Adopt-a-JSR is a grassroots level, JUG-led initiative to increase participation in the JCP from rank-and-file Java developers. The idea is that Java developers will self-organize through their JUG and contribute to specific tasks as a group to a JSR. Beyond participating through Adopt-a-JSR, developers are always most welcome to participate as experts or JSR observers. Anyone can join a JSRs user alias and be heard at any time. Adopt-a-JSR was reasonably successful for Java EE 7. We hope to significantly build upon that success in Java EE 8. For details on the initiative please visit the linked resource.