Java EE 6 and GlassFish portfolio

  • 1,400 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,400
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
50
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Java EE 6 - Update Harpreet Singh – GlassFish Portfolio Product Manager Sun Microsystems 1
  • 2. The Elephant In The Room 2
  • 3. Here's what I can ... Show Say 3
  • 4. Business As Usual 4
  • 5. Business As Usual = Participate in an active community + Create a Great Product + Kick Competitive Butt 5
  • 6. Any Questions? 6
  • 7. Business @ Hand Java EE 6 Update 7
  • 8. Java EE: Past & Present Right Sizing Ease of Development Java EE 6 EJB Lite Web Java EE 5 Restful WS Services Ease of Web Beans Development Extensibility J2EE 1.4 Annotations Robustness Web Services, EJB 3.0 Enterprise Java Management, Persistence API Platform J2EE 1.3 Deployment, New and CMP, Async. Updated Connector Connector Web Services Java EE 6 J2EE 1.2 Architecture Servlet, JSP, Web Profile JPE EJB, JMS Project RMI/IIOP 8
  • 9. Java EE Adoption Over 18M Downloads since FY'06 Active Users Y/Y Download Growth 12000000 10000000 8000000 Add. 6000000 Forcast YTD 4000000 2000000 0 FY 06 FY 07 FY 08 FY 09 9
  • 10. Compatible Java EE 5 Implementations 10
  • 11. Goals for the Java EE 6 Platform • “Right Sizing” ● Flexible, lighter weight • Extensible ● Embrace Open Source Frameworks • Easier to use, develop on ● Continue on path set by Java EE 5 11
  • 12. Right Sizing the Platform: Profiles • Make platform flexible > Decouple specifications to allow more combinations > Expands potential licensee ecosystem > Profiles ● Targeted technology bundles ● Defined through the JCP ● First profile: Web Profile – Defined by the Java EE 6 Expert Group 12
  • 13. Web Profile • Fully functional mid-sized profile > Actively discussed in Java EE Expert Group and outside it > Technologies* ● Servlet 3.0, EJB Lite 3.1, JPA 2.0, JSP 2.2, EL 1.2, JSTL 1.2, JSF 2.0, JTA 1.1, JSR-45, JSR-250 *Final set of technologies will be determined by the platform EG 13
  • 14. Right Sizing the Platform: Pruning • Make platform lighter > Makes some technologies optional > Pruned today, means ● Optional in the next release ● Deleted in the subsequent release > Pruned Technologies will be marked in the javadocs > Current pruning list ● JAX-RPC, EJB 2.X Entity Beans, JAXR, JSR-88 14
  • 15. Extensibility • Embrace open source libraries and frameworks • Zero-configuration, drag-and-drop for web frameworks > Servlets, servlet filters, context listeners for a framework get discovered and registered automatically • Plugin library jars using web fragments 15
  • 16. Ease of Development • Continue advancements of Java EE 5 • Primary focus: Web Tier • Multiple Areas easier to use: EJB 3.1 • General principles > Annotation-based programming model > Reduce or eliminate need for deployment descriptors > Traditional API for advanced users 16
  • 17. Ease of Development: Adding an EJB to a Web Application Java EE 5 Java EE 6 ShoppingCart BuyBooks.war BuyBooks.war EJB Class ShoppingCart.jar ShoppingCart EJB Class BuyBooks.ear 17
  • 18. EoD Example - Annotations Servlet in Java EE 5: Create two source files <!--Deployment descriptor web.xml --> /* Code in Java Class */ <web-app> <servlet> package com.foo; <servlet- public class MyServlet name>MyServlet extends HttpServlet { </servlet-name> public void <servlet-class> doGet(HttpServletRequest com.foo.MyServlet req,HttpServletResponse res) </servlet-class> </servlet> { <servlet-mapping> <servlet- ... name>MyServlet } </servlet-name> <url-pattern>/myApp/* </url-pattern> </servlet-mapping> ... ... </web-app> } 18
  • 19. EoD Example - Annotations Servlet in Java EE 6: In many cases a single source file package com.foo; @WebServlet(name=”MyServlet”, urlPattern=”/myApp/*”) public class MyServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) { ... } 19
  • 20. Java EE 6 Status •Public reviews completed •Majority of the specs are in Proposed Final Draft •Preview release available for JavaOne > Reference Implementation is GlassFish V3 > Regular RI source drops started •Final release in Q3 > Targeted for September • Making the process more open 20
  • 21. Java EE JSR Status • EJB 3.1 PFD • Connectors 1.6PFD • JPA 2.0PFD • JCDI 1.0PFD June • Servlet 3.0 PFD • Bean ValidationPFD • JSF 2.0FD Submitted • Java EE 6.0PFD June > Platform > Managed Beans > Web Profile 21
  • 22. Java EE JSR Status Continued • JACC 1.3 MR Final • JASPIC 1.1 MR Final • JSR 250 1.1 MR Soon MR Final • JAXB 2.2 MR Final • JAX-RS 1.1 • JAX-WS 2.2 MR Final • EL 2.2 MR Final MR Final • JSP 2.2 22
  • 23. Servlet 3.0 • Use of annotations for greater ease of development • Optional web.xml • Better defaults • Enable web framework pluggability • Support for asynchronous processing • Alignments with JSF 2.0 and JAX-RS 1.0 23
  • 24. Servlet 3.0 • Annotation-based programming model > @WebServlet @WebFilter etc. • Modular web.xml descriptor: > WEB-INF/lib/mylibrary.jar -> Meta_INF/web-fragment.xml • Annotations and web fragments are merged • Programmatic API for dynamic registration of servlets 24
  • 25. Servlet 3.0 Async API • Useful for Comet, chat rooms, long waits • Must declare @WebServlet(asyncSupported=true) • Then call AsyncContext ctx = ServletRequest.startAsync(req,res); • AsyncContext can then either: dispatch(String path) start(Runnable action) • AsyncContext.start(Runnable) must be paired with: complete() 25
  • 26. EJB 3.1 Ease-of-use improvements • No-interface view > One source file per bean • Allow EJB component classes inside a web app > No ejb-jar > Use WEB-INF/classes > Shared component environment 26
  • 27. EJB 3.1 • Singleton beans: @Singleton > Shared state > One instance per bean per server JVM > Support for container-managed concurrency and bean-managed concurrency @ConcurrencyManagement • Light-weight asynchronicity > Async business methods @Asynchronous > Methods must return void or Future<T> 27
  • 28. EJB 3.1 • EJB Timer Service enhancements > Cron-like scheduling > Initialization-time timer creation @Schedule(dayOfWeek=”Mon,Wed”) • Embeddable EJB container > Provides use in Java SE environments > Bootstrapping API EJBContainer 28
  • 29. EJB 3.1 Lite Proper, portable subset of EJB 3.1 • Session beans (stateless, stateful, singletons) > Local, no-interface views • Transactions • Security • Interceptors • ejb-jar.xml or annotations • Embeddable container API: EJBContainer • OK to bootstrap on Java SE 29
  • 30. Web Beans 1.0 • Adds contextual services to the platform • Unifies JSF managed beans and EJB components • Dependency injection framework > @LoggedIn User user; • Binding type to select among alternatives • Built-in scope management (request, session, conversation, application scopes) • Deployment types to select families of beans (e.g. mock) • Programmatic API: Manager, Bean, Context 30
  • 31. Removing Barriers • EJB components can be placed in web applications > No need to wrap them in an EJB jar archive • Web Beans has a unified EL resolver > Place @Named(“foo”) on a bean to give it a name > Use “#{foo}” to refer to it from JSR • Unify @Resource-style injection with Web Beans • Apply javax.interceptor more widely 31
  • 32. Java Persistence API 2.0 • Expanded object/relational mapping functionality • Additions to the Java Persistence query language • Metamodel API • Type-safe Criteria API • Pessimistic locking • Standardized caching configuration • Support for automatic validation 32
  • 33. JSF 2.0 • Easier to develop components • Better leverage annotations • Declarative renderers • View description language (similar to Facelets, JSFTemplating, Tiles) • Intuitive Ajax for JSF • Additions to the render kit: calendar, tree, tab view, etc. • Streamlined rendering process via caching • Scripting 33
  • 34. Summary •Right Sizing •More Information > Java EE Hub > Profiles ● http://java.sun.com/javaee > Pruning > Java EE SDK Downloads http://java.sun.com/javaee/downloads •Extensible ● > JCP •Ease of use and > http://jcp.org/en/jsr/detail?id=316 development • RI and source code available today 34
  • 35. GLASSFISH Q&A 35