KEMBAR78
Java EE 6 and GlassFish portfolio | PDF
Java EE 6 - Update

Harpreet Singh –
GlassFish Portfolio Product Manager



  Sun Microsystems

                                      1
The Elephant
     In The Room




                   2
Here's what I can ...



Show             Say
                        3
Business As Usual




                    4
Business As Usual
       =
Participate in an active community
                 +
      Create a Great Product
                 +
       Kick Competitive Butt
                                     5
Any Questions?




                 6
Business @ Hand
Java EE 6 Update

                  7
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
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
Compatible Java EE 5 Implementations




                                       10
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
GLASSFISH
Q&A

            35

Java EE 6 and GlassFish portfolio

  • 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 Ican ... Show Say 3
  • 4.
  • 5.
    Business As Usual = Participate in an active community + Create a Great Product + Kick Competitive Butt 5
  • 6.
  • 7.
    Business @ Hand JavaEE 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 Over18M 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 EE5 Implementations 10
  • 11.
    Goals for theJava 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 thePlatform: 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 • Fullyfunctional 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 thePlatform: 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 opensource 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 6Status •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 JSRStatus • 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 JSRStatus 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-basedprogramming 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 AsyncAPI • 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 • Singletonbeans: @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 • EJBTimer 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 • EJBcomponents 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 API2.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.