3. Goals for the Java EE 6 Platform
• Easier to use
• More flexible
• Easier to learn
• Easier to evolve going forward
3
4. Profiles
Timeline Java EE 6
EJB Lite
Ease of
Restful WS
Development Web Beans
Java EE 5 Extensibility
Web Ease of
Services
Development
J2EE 1.4 Annotations
` Web Services, EJB 3.0
Robustness
Management, Persistence API
J2EE 1.3 Deployment, New and
Enterprise Java
Platform CMP, Async. Updated
Connector Connector Web Services
J2EE 1.2 Architecture
Java EE 6
Servlet, JSP, Web Profile
JPE EJB, JMS
Project RMI/IIOP
4
5. Major New Features in Java EE 6
• Profiles
• Pruning
• Extensibility
• More ease of development
5
6. Profiles
• A profile is a targeted bundle of technologies
• Rules set by the Java EE Platform spec
• Profiles can be subsets, supersets, overlapping
• Define immediately a Web Profile
• JCP process for future profiles
• Spec decoupling ongoing
6
7. Pruning
• Make some technologies optional
• Same rules as proposed by Java SE
> “pruned now, optional in the next release”
• Pruned status will be marked out in the javadocs
• Current pruning list:
> JAX-RPC, EJB Entity Beans, JAXR, JSR-88
7
8. Extensibility
• Level playing field
• Embrace open source libraries, frameworks
• No configuration needed for web frameworks
> Discover servlet, servlet filters, listeners for a framework
• Useful to support scripting languages too
8
9. Proposed Components (1)
Full JSRs
• EJB 3.1 (JSR 318) PUBLIC REVIEW DONE
PUBLIC REVIEW DONE
• JPA 2.0 (JSR 317)
PUBLIC REVIEW ONGOING
• Servlet 3.0 (JSR 315)
• JSF 2.0 (JSR 314) PUBLIC REVIEW ONGOING
• JAX-RS 1.0 (JSR 311) COMPLETED
• Connector Architecture 1.6 (JSR 322) PUBLIC REVIEW ONGOING
PUBLIC REVIEW ONGOING
• Web Beans 1.0 (JSR 299)
• Bean Validation 1.0 (JSR 303) PUBLIC REVIEW SOON
9
11. EJB 3.1 Lite
• Simple, modern subset of EJB for use outside of the
full platform
• Contents:
> Session beans (stateful, stateless, singletons)
> Transaction and security attributes
> Interceptors
> ejb-jar.xml
• Embeddable container API
• Bootstraps on Java SE
• Beans looked up by global name
11
12. Packaging
• EJB components can be packaged directly inside a
web application archive (war file)
Java EE 5 Java EE 6
ShoppingCart ShoppingCart
BuyBooks.war
EJB Class EJB Class
ShoppingCart.jar
BuyBooks.war
BuyBooks.ear
12
13. Web Beans
• Adds contextual services to the platform
• Unifies JSF managed beans and EJB components
• Extensible scopes (session, conversation, ...)
• Dependency injection framework
@LoggedIn User user;
• Binding types to choose between objects of the
same type
• Deployment types to select entire families of beans
(e.g. mock objects)
13
14. Removing Barriers
• Easy to use EJB components in web applications
• Unified EL resolver in Web Beans
> “#{foo}” → @Stateless @Named(“foo”)
• Web Beans injection unified with @Resource
• Apply javax.interceptor to all components
• Uniform validation API across JSF, JPA
14
15. Web Profile
• Much discussion inside the EG and outside
• Latest proposal: a fully functional mid-sized profile
• Accepted:
> Servlet 3.0, JSP 2.1, JSR-45, EL 1.2, JSTL 1.2, JSF 2.0
> EJB Lite 3.1, JTA 1.1, JPA 2.0, JSR-250
• Controversial:
> JAX-RS 1.1, Web Beans 1.0
15
16. Schedule
• Public review of all specs done by January
• Proposed final draft by February
• Final release May 2009
• Implementation: GlassFish V3
> Prelude available now
> Modules updated continuously
> Should be feature complete in March
16