Down And Dirty With Java EE 7 - Jfokus

Transcription

Down and Dirtywith Java EE 7Reza RahmanJava EE/GlassFish EvangelistReza.Rahman@Oracle.com@reza rahman

Program Agenda Java EE 7 Cargo Tracker The API Changes The Code! Looking Ahead 2Copyright 2012, Oracle and/or its affiliates. All rights reserved.Public

Java EE Past, Present and FutureJava EE 7Java EE 6Java EE 5J2EE 1.4WebServicesMgmt,Deployment,AsyncConnectorJ2EE 1.3J2EE 1.2Servlet, JSP,EJB, JMS,RMI3CMP,ConnectorArchitectureCopyright 2012, Oracle and/or its affiliates. All rights reserved.PublicEase ofDevelopment,EJB 3, JPA,JSF, JAXB,JAX-WS,StAX, SAAJPruning,Extensibility,Ease of Dev,JAX-RSCDIValidationJMS 2,Batch, / BMP,JSR 88Web ProfileWeb ProfileServlet 3,EJB 3.1 LiteJAX-RS 2

Java EE 7JSF 2.2PortableExtensionsJAX-RS2.0EL 3.0Servlet 3.1CommonAnnotations1.1Interceptors 1.1Managed Beans 1.0Connector1.6New4EJB 3.2JPA 2.1MajorReleaseCDI 1.1JTA 1.2UpdatedCopyright 2012, Oracle and/or its affiliates. All rights reserved.PublicJMS 2.0Concurrency Utilities(JSR 236)Bean Validation 1.1JSP 2.2Batch Applications(JSR 352)Java API for JSON(JSR 353)Java API for WebSocket(JSR 356)

Java EE in Actionhttp://cargotracker.java.net5Copyright 2012, Oracle and/or its affiliates. All rights reserved.Public

JMS 2 API modernization– Dependency injection– Fluent APIs– Intelligent defaults– Unchecked exceptions New features– Delivery delay, async send Platform alignment– MDB activation properties, JMS resource definition6Copyright 2012, Oracle and/or its affiliates. All rights reserved.Public

Java API for WebSocket High level API for HTML 5 WebSockets– Full-duplex TCP-like communication on the Web utilizing HTTP Both client and server-side (Java SE and Java EE) Both declarative and programmatic Pluggable and extensible7Copyright 2012, Oracle and/or its affiliates. All rights reserved.Public

Java API for JSON Processing Low level API to parse, generate, transform, query JSON– JSON equivalent of JAXP Object Model and Streaming API– Similar to DOM and StAX Binding JSON to Java objects forthcoming– JSON equivalent of JAXB8Copyright 2012, Oracle and/or its affiliates. All rights reserved.Public

Bean Validation 1.1 Method constraints– Very useful for JAX-RS and WebSocket CDI Alignment– All Bean Validation artifacts now injection capable EL 3 integration– More expressive validation messages9Copyright 2012, Oracle and/or its affiliates. All rights reserved.Public

JAX-RS 2 Client API Message Filters & Entity Interceptors– Servlet filters and CDI interceptors for JAX-RS– Common configuration Asynchronous Processing – Server & Client Hypermedia support– Transitional and structural links Content negotiation Bean Validation 1.1 integration10Copyright 2012, Oracle and/or its affiliates. All rights reserved.Public

JPA 2.1 Schema generation Stored procedures Unsynchronized persistence contexts Entity Graphs Entity converters11Copyright 2012, Oracle and/or its affiliates. All rights reserved.Public

JSF 2.2 HTML5 Support– Pass-through elements and attributes Managed beans deprecated/CDI alignment– @ViewScoped for CDI @FlowScoped Stateless views Resource library contracts View actions File upload component12Copyright 2012, Oracle and/or its affiliates. All rights reserved.Public

Batch Applications for the Java Platform API for robust batch processing targeted to Java EE, Java SE Common architecture– Operator, repository, job, step, reader-processor-writer pattern Common features– Chunking, check-pointing, transactions, retries, exceptions, workflow,parallelism13Copyright 2012, Oracle and/or its affiliates. All rights reserved.Public

Concurrency Utilities for Java EE Provides simple, safe API for concurrency in Java EE Builds on Java SE concurrency– ManageExecutorService– ManagedScheduledExecutorService– ManagedThreadFactory Relatively low-level API Important enabler for Java EE ecosystem14Copyright 2012, Oracle and/or its affiliates. All rights reserved.Public

Concurrency Utilities for Java EEManaged Task Executorpublic class TestServlet extends HTTPServlet {@Resource(name Service executor;Future future executor.submit(new MyTask());class MyTask implements Runnable {public void run() {. // Task logic}}}15Copyright 2012, Oracle and/or its affiliates. All rights reserved.Public

Yet More JTA 1.2– @Transactional, @TransactionScoped EL 3.0– Standalone API, lambda expressions, collections, operators Servlet 3.1– Non-blocking I/O, upgrade to WebSocket, security CDI 1.1– Global enablement, @AroundConstruct, @Vetoed EJB 3.2– Truncating CMP/BMP16Copyright 2012, Oracle and/or its affiliates. All rights reserved.Public

Java EE 8 JSON-B JCache CDI 2 More CDI/EJB alignment JMS.next()? Security Testability Cloud, PaaS, multitenancy/SaaS Action-oriented Web framework/HTML 5 alignment? NoSQL? Modularity?http://glassfish.org/survey17Copyright 2012, Oracle and/or its affiliates. All rights reserved.Public

Try it ase/glassfish-4.0.zip18Copyright 2012, Oracle and/or its affiliates. All rights reserved.Public

Resources Java EE Tutorials– htm Digging Deeper– 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/theaquarium19Copyright 2012, Oracle and/or its affiliates. All rights reserved.Public

Java EE Past, Present and Future J2EE 1.3 CMP, Connector Architecture J2EE 1.4 Ease of Web Services Mgmt, Deployment, Async Connector Java EE 5 Development, EJB 3, JPA, JSF, JAXB, JAX-WS, StAX, SAAJ Java EE 6 Pruning, Extensibility, Ease of Dev, JAX-RS CDI Validation Web Profile Servlet 3, EJB 3.1 Lite Java EE 7 JMS 2, Batch, TX, Concurrency,