Java EE 6

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    9 Favorites

    Java EE 6 - Presentation Transcript

    1. Java EE 6 Platform Overview and Highlights Roberto Chinnici JSR-316 Specification Lead Sun Microsystems, Inc. 1
    2. Contents Goals • Features • Component JSRs • Highlights • Schedule • Sun Confidential: Internal Only 2
    3. Goals for the Java EE 6 Platform Easier to use • More flexible • Easier to learn • Easier to evolve going forward • Sun Confidential: Internal Only 3
    4. Profiles Platform Evolution Java EE 6 EJB Lite Ease of Restful WS Development Web Beans Java EE 5 Validation Web Extensibility Ease of Services Development J2EE 1.4 Annotations EJB 3.0 Web Services, Robustness Persistence API Management, J2EE 1.3 New and Deployment, Enterprise Updated CMP, Async. Java Platform Web Services Connector Connector Java EE 6 J2EE 1.2 Architecture Web Profile Servlet, JSP, EJB, JMS JPE RMI/IIOP Project Sun Confidential: Internal Only 4
    5. Major New Features in Java EE 6 Profiles • Pruning • Extensibility • More ease of development • Sun Confidential: Internal Only 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 • Sun Confidential: Internal Only 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 Sun Confidential: Internal Only 7
    8. Extensibility • Embrace open source libraries, frameworks • Full pluggability in the web container • No configuration needed for web frameworks > Discover servlet, servlet filters, listeners for a framework > Dynamically add servlets, filters to an application • Used to support scripting languages Sun Confidential: Internal Only 8
    9. Proposed Components (1) Full JSRs EJB 3.1 (JSR 318) PFD • PFD • JPA 2.0 (JSR 317) PR DONE Servlet 3.0 (JSR 315) • JSF 2.0 (JSR 314) PFD SOON • JAX-RS 1.0 (JSR 311) COMPLETED • Connector Architecture 1.6 (JSR 322) PFD • PR DONE Bean Validation 1.0 (JSR 303) • JCDI 1.0 (née Web Beans) (JSR 299) PR DONE • Sun Confidential: Internal Only 9
    10. Proposed Components (2) Maintenance Releases JAXB 2.2 COMPLETED • SOON • JAX-WS 2.2 SOON JSR-109 1.3 • JAX-RS 1.1 COMPLETED • EL 1.2 • JSP 1.2 • Authentication SPI 1.1 (JSR-196) COMPLETED • Common Annotations 1.1 (JSR-250) • Sun Confidential: Internal Only 10
    11. Web Profile • A fully functional mid-sized profile for web apps • 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 > Bean Validation 1.0 • Not decided yet: > Web Beans 1.0 • Out for now: > JAX-RS 1.1 Sun Confidential: Internal Only 11
    12. Servlet 3.0 Highlights (1) • Annotations to define web components > @WebServlet @WebFilter @WebListener • Greatly reduced editing of web.xml • File upload • Customizable session cookie configuration > ServletContext.getSessionCookieConfig method • Selectable session tracking modes > ServletContext.setSessionTrackingMode > ServletContext.getEffectiveSessionTrackingModes Sun Confidential: Internal Only 12
    13. Servlet 3.0 Highlights (2) • Modular web.xml using fragments > WEB-INF/lib/mylib.jar → META-INF/web-fragment.xml • New initializers for extensions > ServletContainerInitializer interface • Programmatic API for dynamic registration of servlets and filters > ServletContext.addServlet/addFilter methods • Ability to tweak servlet/filter configuration at startup > ServletRegistration interface Sun Confidential: Internal Only 13
    14. Servlet 3.0 Async Processing • Use cases: Comet, chat rooms, long waits • Opt-in system for servlets, filters > @WebServlet(asyncSupported=true) > @WebFilter(asyncSupported=true) • Enter async mode explicitly: > AsyncContext ctx = ServletRequest.startAsync(...) • Then: > ctx.dispatch(...) // to somebody else > ctx.start(Runnable) // to an async action > ctx.complete() // done processing Sun Confidential: Internal Only 14
    15. EJB 3.1 Highlights • Singleton beans > @Singleton • No-interface view • Calendar timers > @Schedule(dayOfWeek=“Fri”, hour=”12”) • Non-persistent timers > @Schedule(minute=”*/10”, hour=”*”, persistent=false) • Async business methods > @Asynchronous public Future<Result> compute(...) Sun Confidential: Internal Only 15
    16. 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 in JNDI by global name Sun Confidential: Internal Only 16
    17. EJB Components in a Web Module • EJB components can be defined directly inside a web module (war file) • Things to keep in mind: java:comp is shared by all components > A single class loader is used > Local view scoped to the web module > Descriptor WEB-INF/ejb-jar.xml > or META-INF/ejb-jar.xml in a jar inside WEB-INF/lib > No entity beans Sun Confidential: Internal Only 17
    18. Multiple JNDI scopes • Familiar with java:comp • Now adding: > java:module module-scoped, like inside a war file > java:application application-scoped > java:global scoped to multiple applications • Usable throughout > @Resource(name=”java:module/env/db”) DataSource db; • EJBs are automatically registered > java:global/myApp/myModule/MyBean!com.acme.MyInterface > java:module/MyBean // shorthand Sun Confidential: Internal Only 18
    19. JPA 2.0 Highlights • Metamodel API > OO view on entities, managed types, etc. > EntityManagerFactory.getMetaModel • Typesafe metamodel Generated by tools and stored in a persistence unit > Typesafe view of attributes, including collections > @Entity public class Order { … } > @TypesafeMetamodel public class Order_ { … } > • Criteria API to build queries in Java > Alternative to JPAQL Sun Confidential: Internal Only 19
    20. JPA 2.0 Criteria Query Example SELECT o.quantity, a.zipcode FROM Customer c JOIN c.orders o JOIN c.address a WHERE a.state = 'CA’ ORDER BY o.quantity, a.zipcode @PersistenceUnit EntityManagerFactory emf; QueryBuilder qb = emf.getQueryBuilder() CriteriaQuery q = qb.create(); Root<Customer> c = q.from(Customer.class); Join<Customer, Order> o = c.join(Customer_.orders); Join<Customer, Address> a = c.join(Customer_.address); q.where(qb.equal(a.get(Address_.state), \"CA\")); q.orderBy(qb.asc(o.get(Order_.quantity)), qb.asc(a.get(Address_.zipcode))); q.select(o.get(Order_.quantity), a.get(Address_.zipcode)); Sun Confidential: Internal Only 20
    21. Bean Validation (JSR-303) • Now included in Java EE 6 • Integrated with JSF 2.0 and JPA 2.0 • Examples: > @NotNull @Size(max=40) private String streetName; > @NotNull @Valid private Country country; • TraversableResolver for object graph validation • Validation API * > Set<ConstraintViolation> Validator.validate(Object) • Validator and ValidatorFactory will be injectable Sun Confidential: Internal Only 21
    22. JCDI (formerly known as Web Beans) • Type-based dependency injection > @LoggedIn User user; > @Produces @LoggedIn User getLoggedInUser() { … } • Context management > @RequestScoped, @SessionScoped, @ConversationScoped, ... • Reflective API > Manager, Context, InjectionPoint • Heavy use of meta-annotations > @BindingType public @interface LoggedIn {} Sun Confidential: Internal Only 22
    23. JCDI Basics • Resolution is by bean type and binding type(s) > bean type + set(binding types) → bean Not string based! • @LoggedIn User = (User, @LoggedIn) → bean • Bean ≠ Class • Beans are enabled/disabled in batches via • deployment types • Put as much info as possible on bean class > @ConversationScoped @Current public class ShoppingCart {} Sun Confidential: Internal Only 23
    24. JCDI Example @ConversationScoped @Current public class ShoppingCart { … } @PayByCreditCard public class CreditCardPaymentProcessor implements PaymentProcessor {…} public class Checkout { private @Current ShoppingCart cart; private @PayByCreditCard PaymentProcessor payByCard; public void checkout() { … } } Sun Confidential: Internal Only 24
    25. Transparency • JAX-RS 1.0 was done completely in the open Public expert group mailing list and meeting minutes > Public issue tracker > Public spec drops > Open source reference implementation > • JSF 2.0 opened up its mailing list recently • All other Java EE JSRs to follow shortly • Commitment to transparency going forward > All Java EE 7 JSRs will be done in the open from the very beginning Sun Confidential: Internal Only 25
    26. Schedule Public review of all specs completed • Proposed final drafts in progress • Final release September 2009 • Implementation: GlassFish V3 • Sun Confidential: Internal Only 26
    27. Q&A Sun Confidential: Internal Only 27
    28. Java EE 6 Platform Overview and Highlights Roberto Chinnici roberto.chinnici@sun.com 28

    + Alexis Moussine PouchkineAlexis Moussine Pouchkine, 7 months ago

    custom

    1312 views, 9 favs, 0 embeds more stats

    Platform overview and Highlights. Speaker: Roberto more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1312
      • 1312 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 9
    • Downloads 0
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories