SlideShare a Scribd company logo
1 of 40
Download to read offline
1   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
The Java EE 7 Platform:
Productivity++ and
Embracing HTML5

Arun Gupta, Java EE & GlassFish Guy
@arungupta
The preceding is intended to outline our general product direction. It is
             intended for information purposes only, and may not be incorporated
             into any contract. It is not a commitment to deliver any material, code,
             or functionality, and should not be relied upon in making purchasing
             decisions. The development, release, and timing of any features or
             functionality described for Oracle s products remains at the sole
             discretion of Oracle.




3   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java EE 6 Platform
                                                                           December 10, 2009


4   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java EE 6 – Key Statistics

                §  50+ Million Java EE 6 Component Downloads
                §  #1 Choice for Enterprise Developers
                §  #1 Application Development Platform
                §  Fastest implementation of a Java EE release




5   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java EE 7 Revised Scope
           Productivity and HTML5
           •  Higher Productivity
                    –  Less Boilerplate
                    –  Richer Functionality
                    –  More Defaults
           •  HTML5 Support
                    –  WebSocket
                    –  JSON
                    –  HTML5 Forms


6   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java EE 7 – Candidate JSRs
                                                                                  JAX-RS                                        Java Caching API
                                     JSP 2.2                        JSF 2.2         2.0
                                                                                               EL 3.0                              (JSR 107)
 Portable
Extensions




                                                                                                        Bean Validation 1.1
                                                                                                                               Concurrency Utilities
                                                                           Servlet 3.1                                             (JSR 236)

  Common                                                                                                                        Batch Applications
                Interceptors 1.1                                                         CDI 1.1                                    (JSR 352)
Annotations 1.1
                                                                                                                                Java API for JSON
    Managed Beans 1.0                                                              EJB 3.2                                          (JSR 353)

Connector                                                                                                                     Java API for WebSocket
                                            JPA 2.1                          JTA 1.2         JMS 2.0                                (JSR 356)
   1.6

         New                       Major                           Updated
                                   Release



7   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java API for RESTful Web Services 2.0

              •  Client API
              •  Message Filters & Entity Interceptors
              •  Asynchronous Processing – Server & Client
              •  Hypermedia Support
              •  Common Configuration




8   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java API for RESTful Web Services 2.0
           Client API - Now

            // Get instance of Client
            Client client = ClientFactory.newClient();

              

            // Get customer name for the shipped products
            String name = client.target(“../orders/{orderId}/customer”)

                                       .resolveTemplate(”orderId", ”10”)

                                       .queryParam(”shipped", ”true”)

                                       .request()

                                       .get(String.class);"




9   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java Message Service 2.0
            Simplify the existing API

            •  Less verbose
            •  Reduce boilerplate code
            •  Resource injection
            •  Connection, Session, and other objects are
               AutoCloseable
            •  Requires Resource Adapter for Java EE containers
            •  Simplified API in both Java SE and EE

10   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java Message Service 2.0
            Sending a Message using JMS 1.1
            @Resource(lookup = "myConnectionFactory”)

            ConnectionFactory connectionFactory;"                                                   Application Server
            @Resource(lookup = "myQueue”)
                                                          Specific Resources
            Queue myQueue;"

            public void sendMessage (String payload) {

                Connection connection = null;

                try {

                    connection = connectionFactory.createConnection();

                    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    Boilerplate Code
                    MessageProducer messageProducer = session.createProducer(myQueue);

                    TextMessage textMessage = session.createTextMessage(payload);

                    messageProducer.send(textMessage);

                } catch (JMSException ex) {

                    //. . .

                } finally {

                    if (connection != null) {

                        try {

                             connection.close();
                                                   Exception Handling
                        } catch (JMSException ex) {"

                                          //. . .

                                   }

                           }

                   }

            }"




11   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java Message Service 2.0
            Sending message using JMS 2.0

            @Inject

            JMSContext context;"
            "
            @Resource(lookup = "java:global/jms/demoQueue”)

            Queue demoQueue;"
            "
            public void sendMessage(String payload) {"
                context.createProducer().send(demoQueue, payload);"
            }"




12   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java API for JSON Processing 1.0

            •  API to parse and generate JSON
            •  Streaming API
                     –  Low-level, efficient way to parse/generate JSON
                     –  Provides pluggability for parsers/generators
            •  Object Model
                     –  Simple, easy-to-use high-level API
                     –  Implemented on top of Streaming API
            •  Binding JSON to Java objects forthcoming

13   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java API for JSON Processing 1.0
           Streaming API – JsonParser
          {"
                      "firstName": "John", "lastName": "Smith", "age": 25, 

                  "phoneNumber": [

                       { "type": "home", "number": "212 555-1234" },

                       { "type": "fax", "number": "646 555-4567" }

                   ]

          }"
          Iterator<Event> it = parser.iterator();"
          Event event = it.next();                                          // START_OBJECT
          event = it.next();                                                // KEY_NAME
          event = it.next();                                                // VALUE_STRING
          String name = parser.getString();                                 // "John”
          "
14   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java API for WebSocket 1.0

           §  API for WebSocket Client/Endpoints
                –  Annotation-driven (@WebSocketEndpoint)
                –  Interface-driven (Endpoint)
                –  Client (@WebSocketClient)

           §  SPI for data frames
                     –  WebSocket opening handshake negotiation

           §  Integration with Java EE Web container



15   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java API for WebSocket 1.0
          Hello World – POJO/Annotation-driven
      import javax.websocket.*;

      

      @WebSocketEndpoint("/hello")

      public class HelloBean {

      

                       @WebSocketMessage

                       public String sayHello(String name) {

                           return “Hello “ + name;

                       }

      }"




16   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java API for WebSocket 1.0
         Chat Server
           @WebSocketEndpoint("/chat")"
           public class ChatBean {"
                        Set<Session> peers = Collections.synchronizedSet(…);

           

                        @WebSocketOpen

                        public void onOpen(Session peer) {

                            peers.add(peer);

                        }

           

                        @WebSocketClose

                        public void onClose(Session peer) {

                            peers.remove(peer);

                        }

           

                        . . ."

17   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java API for WebSocket 1.0
         Chat Server (contd.)
                        . . .

           

                        @WebSocketMessage"
                        public void message(String message, Session client) {"
                                     for (Session peer : peers) {

                                         peer.getRemote().sendObject(message);

                                     }

                        }

           }"




18   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Bean Validation 1.1

           §  Open: Spec, Reference Implementation, TCK
           §  Alignment with Dependency Injection
           §  Method-level validation
                     –  Constraints on parameters and return values
                     –  Check pre-/post-conditions




19   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Bean Validation 1.1
            Method Parameter and Result Validation

       public void placeOrder( 

     Built-in
               @NotNull String productName,

               @NotNull @Max(“10”) Integer quantity,

     Custom    @Customer String customer) { 

                  //. . .

       }"

            @Future

            public Date getAppointment() {

                //. . .

            }"

20   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Batch Applications for the Java Platform 1.0

           §  Suited for non-interactive, bulk-oriented and long-
               running tasks
           §  Computationally intensive
           §  Can execute sequentially/parallel
           §  May be initiated
                     –  Adhoc
                     –  Scheduled
                                  §  No scheduling APIs included


21   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Batch Applications for the Java Platform 1.0
         Concepts
            •  Job: Entire batch process
                     –  Put together through a Job Specification Language (XML)

            •  Step: Independent, sequential phase of a job
                     –  ItemReader: Retrieval of input for a step, one at a time
                     –  ItemProcessor: Business processing of an item
                     –  ItemWriter: Output of an item, chunks of items at a time

            •  JobOperator: Manage batch processing
            •  JobRepository: Metadata for jobs




22   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Batch Applications for the Java Platform 1.0
             Job Specification Language – Chunked Step
<step id=”sendStatements”>"           @ReadItem

  <chunk reader=”AccountReader”"      public Account readAccount() {

     processor=”AccountProcessor”
        // read account using JPA"
     writer=”EmailWriter”"            }"
     chunk-size=”10” />"              "
</step>"
                      @ProcessItem"
                      public Account processAccount(Account account) {

                           // calculate balance"
                      }"
  @WriteItems"        "
      public void sendEmail(List<Account> accounts) {

          // use JavaMail to send email"
      }"
      "
 23   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java Persistence API 2.1

           §  Schema Generation
           §  Unsynchronized Persistence Contexts
           §  Bulk update/delete using Criteria"
           §  User-defined functions using FUNCTION
           §  Stored Procedure Query




24   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Servlet 3.1

           §  Non-blocking I/O
           §  Protocol Upgrade
           §  Security Enhancements




25   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Servlet 3.1
         Non-blocking IO - Traditional
         public class TestServlet extends HttpServlet

            protected void doGet(HttpServletRequest request,

                                     HttpServletResponse response) 

                              throws IOException, ServletException {

               ServletInputStream input = request.getInputStream();

               byte[] b = new byte[1024];

               int len = -1;

               while ((len = input.read(b)) != -1) {

                  . . .

               }

            }

         }"

26   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Servlet 3.1
         Non-blocking I/O: doGet Code Sample


         AsyncContext context = request.startAsync();

         ServletInputStream input = request.getInputStream();

         input.setReadListener(

             new MyReadListener(input, context)); "




27   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Servlet 3.1
         Non-blocking I/O: MyReadListener Code Sample
         @Override

         public void onDataAvailable() {

            try {

               StringBuilder sb = new StringBuilder();

               int len = -1;

               byte b[] = new byte[1024];

               while (input.isReady() && (len = input.read(b)) != -1) {

                  String data = new String(b, 0, len);

                  System.out.println("--> " + data);

               }

            } catch (IOException ex) {

               . . .

            }

         }

         . . .

28       "
     Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Concurrency Utilities for Java EE 1.0
         Goals
           §  Provide concurrency capabilities to Java EE application
                components
                     –  Without compromising container integrity

           §  Support simple (common) and advanced concurrency
                patterns




29   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Concurrency Utilities for Java EE 1.0
         Defining ManagedExecutorService using JNDI
           §  Recommended to bind in java:comp/env/concurrent
                subcontext
         <resource-env-ref>

           <resource-env-ref-name>

             concurrent/BatchExecutor

           </resource-env-ref-name>

           <resource-env-ref-type>

             javax.enterprise.concurrent.ManagedExecutorService

           </resource-env-ref-type>

         </resource-env-ref>"

30   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Concurrency Utilities for Java EE 1.0
         Submit Tasks to ManagedExecutorService using JNDI
         public class TestServlet extends HTTPServlet {

           @Resource(name=“concurrent/BatchExecutor”)

           ManagedExecutorService executor;

         

                   Future future = executor.submit(new MyTask());

         

                   class MyTask implements Runnable {

                      public void run() { 

                         . . . // task logic

                      }

                   }

         }

31
         "
     Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
JavaServer Faces 2.2

           §  Flow Faces
           §  HTML5 Friendly Markup Support
                     –  Pass through attributes and elements

           §  Cross Site Request Forgery Protection
           §  Loading Facelets via ResourceHandler"
           §  File Upload Component
           §  Multi-templating


32   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java EE 7 – Implementation Status

                                                                            4.0


                   download.java.net/glassfish/4.0/promoted/
33   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java EE 8 and Beyond
            Standards-based cloud programming model

           •  Deliver cloud architecture                                                     Storage
                                                                                                         NoSQL

           •  Multi tenancy for SaaS                                          JSON-B
                                                                                                             Multitenancy
                                                                                             Java EE 7
              applications                                                  Concurrency
                                                                                                                    Cloud
                                                                                             PaaS
           •  Incremental delivery of JSRs                                                Enablement     Thin Server
                                                                                                         Architecture

           •  Modularity based on Jigsaw



34   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Adopt-a-JSR
         How do I get started ? – glassfish.org/adoptajsr




35   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Adopt-a-JSR
         Participating JUGs




36   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Call to Action

               •  Specs: javaee-spec.java.net
               •  Implementation: glassfish.org
               •  The Aquarium: blogs.oracle.com/theaquarium
               •  Adopt a JSR: glassfish.org/adoptajsr
               •  NetBeans: wiki.netbeans.org/JavaEE7




37   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Q&A

38   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
39   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
40   Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

More Related Content

What's hot

Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...Arun Gupta
 
GlassFish REST Administration Backend at JavaOne India 2012
GlassFish REST Administration Backend at JavaOne India 2012GlassFish REST Administration Backend at JavaOne India 2012
GlassFish REST Administration Backend at JavaOne India 2012Arun Gupta
 
GIDS 2012: Java Message Service 2.0
GIDS 2012: Java Message Service 2.0GIDS 2012: Java Message Service 2.0
GIDS 2012: Java Message Service 2.0Arun Gupta
 
GIDS 2012: PaaSing a Java EE Application
GIDS 2012: PaaSing a Java EE ApplicationGIDS 2012: PaaSing a Java EE Application
GIDS 2012: PaaSing a Java EE ApplicationArun Gupta
 
The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011Arun Gupta
 
What's new in JMS 2.0 - OTN Bangalore 2013
What's new in JMS 2.0 - OTN Bangalore 2013What's new in JMS 2.0 - OTN Bangalore 2013
What's new in JMS 2.0 - OTN Bangalore 2013Jagadish Prasath
 
TDC 2011: The Java EE 7 Platform: Developing for the Cloud
TDC 2011: The Java EE 7 Platform: Developing for the CloudTDC 2011: The Java EE 7 Platform: Developing for the Cloud
TDC 2011: The Java EE 7 Platform: Developing for the CloudArun Gupta
 
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012Arun Gupta
 
Ejb 3.0 Runtime Environment
Ejb 3.0 Runtime EnvironmentEjb 3.0 Runtime Environment
Ejb 3.0 Runtime Environmentrradhak
 
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, JohannesburgJava EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, JohannesburgArun Gupta
 
Java EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureJava EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureArun Gupta
 
JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012
JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012
JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012Arun Gupta
 
Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012
Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012
Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012Arun Gupta
 
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011Arun Gupta
 
Understanding
Understanding Understanding
Understanding Arun Gupta
 
PaaSing a Java EE 6 Application at Geecon 2012
PaaSing a Java EE 6 Application at Geecon 2012PaaSing a Java EE 6 Application at Geecon 2012
PaaSing a Java EE 6 Application at Geecon 2012Arun Gupta
 
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3 Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3 Skills Matter
 
Indic threads pune12-java ee 7 platformsimplification html5
Indic threads pune12-java ee 7 platformsimplification html5Indic threads pune12-java ee 7 platformsimplification html5
Indic threads pune12-java ee 7 platformsimplification html5IndicThreads
 
OTN Tour 2013: What's new in java EE 7
OTN Tour 2013: What's new in java EE 7OTN Tour 2013: What's new in java EE 7
OTN Tour 2013: What's new in java EE 7Bruno Borges
 

What's hot (20)

Java EE 7 overview
Java EE 7 overviewJava EE 7 overview
Java EE 7 overview
 
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
 
GlassFish REST Administration Backend at JavaOne India 2012
GlassFish REST Administration Backend at JavaOne India 2012GlassFish REST Administration Backend at JavaOne India 2012
GlassFish REST Administration Backend at JavaOne India 2012
 
GIDS 2012: Java Message Service 2.0
GIDS 2012: Java Message Service 2.0GIDS 2012: Java Message Service 2.0
GIDS 2012: Java Message Service 2.0
 
GIDS 2012: PaaSing a Java EE Application
GIDS 2012: PaaSing a Java EE ApplicationGIDS 2012: PaaSing a Java EE Application
GIDS 2012: PaaSing a Java EE Application
 
The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011
 
What's new in JMS 2.0 - OTN Bangalore 2013
What's new in JMS 2.0 - OTN Bangalore 2013What's new in JMS 2.0 - OTN Bangalore 2013
What's new in JMS 2.0 - OTN Bangalore 2013
 
TDC 2011: The Java EE 7 Platform: Developing for the Cloud
TDC 2011: The Java EE 7 Platform: Developing for the CloudTDC 2011: The Java EE 7 Platform: Developing for the Cloud
TDC 2011: The Java EE 7 Platform: Developing for the Cloud
 
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
 
Ejb 3.0 Runtime Environment
Ejb 3.0 Runtime EnvironmentEjb 3.0 Runtime Environment
Ejb 3.0 Runtime Environment
 
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, JohannesburgJava EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
 
Java EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureJava EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for future
 
JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012
JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012
JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012
 
Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012
Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012
Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012
 
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
 
Understanding
Understanding Understanding
Understanding
 
PaaSing a Java EE 6 Application at Geecon 2012
PaaSing a Java EE 6 Application at Geecon 2012PaaSing a Java EE 6 Application at Geecon 2012
PaaSing a Java EE 6 Application at Geecon 2012
 
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3 Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
 
Indic threads pune12-java ee 7 platformsimplification html5
Indic threads pune12-java ee 7 platformsimplification html5Indic threads pune12-java ee 7 platformsimplification html5
Indic threads pune12-java ee 7 platformsimplification html5
 
OTN Tour 2013: What's new in java EE 7
OTN Tour 2013: What's new in java EE 7OTN Tour 2013: What's new in java EE 7
OTN Tour 2013: What's new in java EE 7
 

Viewers also liked

JavaServer Faces 2.0 - JavaOne India 2011
JavaServer Faces 2.0 - JavaOne India 2011JavaServer Faces 2.0 - JavaOne India 2011
JavaServer Faces 2.0 - JavaOne India 2011Arun Gupta
 
Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010Arun Gupta
 
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...Arun Gupta
 
Java EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerJava EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerArun Gupta
 
Understanding the nuts & bolts of Java EE 6
Understanding the nuts & bolts of Java EE 6Understanding the nuts & bolts of Java EE 6
Understanding the nuts & bolts of Java EE 6Arun Gupta
 
Java EE 7: Boosting Productivity and Embracing HTML5
Java EE 7: Boosting Productivity and Embracing HTML5Java EE 7: Boosting Productivity and Embracing HTML5
Java EE 7: Boosting Productivity and Embracing HTML5Arun Gupta
 

Viewers also liked (6)

JavaServer Faces 2.0 - JavaOne India 2011
JavaServer Faces 2.0 - JavaOne India 2011JavaServer Faces 2.0 - JavaOne India 2011
JavaServer Faces 2.0 - JavaOne India 2011
 
Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010
 
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
 
Java EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerJava EE 6 = Less Code + More Power
Java EE 6 = Less Code + More Power
 
Understanding the nuts & bolts of Java EE 6
Understanding the nuts & bolts of Java EE 6Understanding the nuts & bolts of Java EE 6
Understanding the nuts & bolts of Java EE 6
 
Java EE 7: Boosting Productivity and Embracing HTML5
Java EE 7: Boosting Productivity and Embracing HTML5Java EE 7: Boosting Productivity and Embracing HTML5
Java EE 7: Boosting Productivity and Embracing HTML5
 

Similar to The Java EE 7 Platform: Productivity++ & Embracing HTML5

GlassFish BOF
GlassFish BOFGlassFish BOF
GlassFish BOFglassfish
 
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...Arun Gupta
 
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnition
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnitionJava EE 6 & GlassFish = Less Code + More Power @ DevIgnition
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnitionArun Gupta
 
Java EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUGJava EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUGArun Gupta
 
Java EE7
Java EE7Java EE7
Java EE7Jay Lee
 
Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010Arun Gupta
 
Spark IT 2011 - Java EE 6 Workshop
Spark IT 2011 - Java EE 6 WorkshopSpark IT 2011 - Java EE 6 Workshop
Spark IT 2011 - Java EE 6 WorkshopArun Gupta
 
Boston 2011 OTN Developer Days - Java EE 6
Boston 2011 OTN Developer Days - Java EE 6Boston 2011 OTN Developer Days - Java EE 6
Boston 2011 OTN Developer Days - Java EE 6Arun Gupta
 
Java EE 7 for WebLogic 12c Developers
Java EE 7 for WebLogic 12c DevelopersJava EE 7 for WebLogic 12c Developers
Java EE 7 for WebLogic 12c DevelopersBruno Borges
 
Java EE 6 & GlassFish v3 @ DevNexus
Java EE 6 & GlassFish v3 @ DevNexusJava EE 6 & GlassFish v3 @ DevNexus
Java EE 6 & GlassFish v3 @ DevNexusArun Gupta
 
Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010
Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010
Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010Arun Gupta
 
Java EE 6 : Paving The Path For The Future
Java EE 6 : Paving The Path For The FutureJava EE 6 : Paving The Path For The Future
Java EE 6 : Paving The Path For The FutureIndicThreads
 
Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011Agora Group
 
Fifty New Features of Java EE 7 in Fifty Minutes
Fifty New Features of Java EE 7 in Fifty MinutesFifty New Features of Java EE 7 in Fifty Minutes
Fifty New Features of Java EE 7 in Fifty MinutesArun Gupta
 
Fifty Features of Java EE 7 in 50 Minutes
Fifty Features of Java EE 7 in 50 MinutesFifty Features of Java EE 7 in 50 Minutes
Fifty Features of Java EE 7 in 50 Minutesglassfish
 
Java EE 6 workshop at Dallas Tech Fest 2011
Java EE 6 workshop at Dallas Tech Fest 2011Java EE 6 workshop at Dallas Tech Fest 2011
Java EE 6 workshop at Dallas Tech Fest 2011Arun Gupta
 
OTN Developer Days - Java EE 6
OTN Developer Days - Java EE 6OTN Developer Days - Java EE 6
OTN Developer Days - Java EE 6glassfish
 
Java 7 Dolphin manjula kollipara
Java 7 Dolphin manjula kolliparaJava 7 Dolphin manjula kollipara
Java 7 Dolphin manjula kolliparaManjula Kollipara
 

Similar to The Java EE 7 Platform: Productivity++ & Embracing HTML5 (20)

GlassFish BOF
GlassFish BOFGlassFish BOF
GlassFish BOF
 
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
 
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnition
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnitionJava EE 6 & GlassFish = Less Code + More Power @ DevIgnition
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnition
 
Java EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUGJava EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUG
 
Java EE7
Java EE7Java EE7
Java EE7
 
Java EE 7 - Overview and Status
Java EE 7  - Overview and StatusJava EE 7  - Overview and Status
Java EE 7 - Overview and Status
 
Java ee7 1hour
Java ee7 1hourJava ee7 1hour
Java ee7 1hour
 
Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010
 
Spark IT 2011 - Java EE 6 Workshop
Spark IT 2011 - Java EE 6 WorkshopSpark IT 2011 - Java EE 6 Workshop
Spark IT 2011 - Java EE 6 Workshop
 
Boston 2011 OTN Developer Days - Java EE 6
Boston 2011 OTN Developer Days - Java EE 6Boston 2011 OTN Developer Days - Java EE 6
Boston 2011 OTN Developer Days - Java EE 6
 
Java EE 7 for WebLogic 12c Developers
Java EE 7 for WebLogic 12c DevelopersJava EE 7 for WebLogic 12c Developers
Java EE 7 for WebLogic 12c Developers
 
Java EE 6 & GlassFish v3 @ DevNexus
Java EE 6 & GlassFish v3 @ DevNexusJava EE 6 & GlassFish v3 @ DevNexus
Java EE 6 & GlassFish v3 @ DevNexus
 
Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010
Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010
Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010
 
Java EE 6 : Paving The Path For The Future
Java EE 6 : Paving The Path For The FutureJava EE 6 : Paving The Path For The Future
Java EE 6 : Paving The Path For The Future
 
Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011
 
Fifty New Features of Java EE 7 in Fifty Minutes
Fifty New Features of Java EE 7 in Fifty MinutesFifty New Features of Java EE 7 in Fifty Minutes
Fifty New Features of Java EE 7 in Fifty Minutes
 
Fifty Features of Java EE 7 in 50 Minutes
Fifty Features of Java EE 7 in 50 MinutesFifty Features of Java EE 7 in 50 Minutes
Fifty Features of Java EE 7 in 50 Minutes
 
Java EE 6 workshop at Dallas Tech Fest 2011
Java EE 6 workshop at Dallas Tech Fest 2011Java EE 6 workshop at Dallas Tech Fest 2011
Java EE 6 workshop at Dallas Tech Fest 2011
 
OTN Developer Days - Java EE 6
OTN Developer Days - Java EE 6OTN Developer Days - Java EE 6
OTN Developer Days - Java EE 6
 
Java 7 Dolphin manjula kollipara
Java 7 Dolphin manjula kolliparaJava 7 Dolphin manjula kollipara
Java 7 Dolphin manjula kollipara
 

More from Arun Gupta

5 Skills To Force Multiply Technical Talents.pdf
5 Skills To Force Multiply Technical Talents.pdf5 Skills To Force Multiply Technical Talents.pdf
5 Skills To Force Multiply Technical Talents.pdfArun Gupta
 
Machine Learning using Kubernetes - AI Conclave 2019
Machine Learning using Kubernetes - AI Conclave 2019Machine Learning using Kubernetes - AI Conclave 2019
Machine Learning using Kubernetes - AI Conclave 2019Arun Gupta
 
Machine Learning using Kubeflow and Kubernetes
Machine Learning using Kubeflow and KubernetesMachine Learning using Kubeflow and Kubernetes
Machine Learning using Kubeflow and KubernetesArun Gupta
 
Secure and Fast microVM for Serverless Computing using Firecracker
Secure and Fast microVM for Serverless Computing using FirecrackerSecure and Fast microVM for Serverless Computing using Firecracker
Secure and Fast microVM for Serverless Computing using FirecrackerArun Gupta
 
Building Java in the Open - j.Day at OSCON 2019
Building Java in the Open - j.Day at OSCON 2019Building Java in the Open - j.Day at OSCON 2019
Building Java in the Open - j.Day at OSCON 2019Arun Gupta
 
Why Amazon Cares about Open Source
Why Amazon Cares about Open SourceWhy Amazon Cares about Open Source
Why Amazon Cares about Open SourceArun Gupta
 
Machine learning using Kubernetes
Machine learning using KubernetesMachine learning using Kubernetes
Machine learning using KubernetesArun Gupta
 
Building Cloud Native Applications
Building Cloud Native ApplicationsBuilding Cloud Native Applications
Building Cloud Native ApplicationsArun Gupta
 
Chaos Engineering with Kubernetes
Chaos Engineering with KubernetesChaos Engineering with Kubernetes
Chaos Engineering with KubernetesArun Gupta
 
How to be a mentor to bring more girls to STEAM
How to be a mentor to bring more girls to STEAMHow to be a mentor to bring more girls to STEAM
How to be a mentor to bring more girls to STEAMArun Gupta
 
Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018Arun Gupta
 
The Serverless Tidal Wave - SwampUP 2018 Keynote
The Serverless Tidal Wave - SwampUP 2018 KeynoteThe Serverless Tidal Wave - SwampUP 2018 Keynote
The Serverless Tidal Wave - SwampUP 2018 KeynoteArun Gupta
 
Introduction to Amazon EKS - KubeCon 2018
Introduction to Amazon EKS - KubeCon 2018Introduction to Amazon EKS - KubeCon 2018
Introduction to Amazon EKS - KubeCon 2018Arun Gupta
 
Mastering Kubernetes on AWS - Tel Aviv Summit
Mastering Kubernetes on AWS - Tel Aviv SummitMastering Kubernetes on AWS - Tel Aviv Summit
Mastering Kubernetes on AWS - Tel Aviv SummitArun Gupta
 
Top 10 Technology Trends Changing Developer's Landscape
Top 10 Technology Trends Changing Developer's LandscapeTop 10 Technology Trends Changing Developer's Landscape
Top 10 Technology Trends Changing Developer's LandscapeArun Gupta
 
Container Landscape in 2017
Container Landscape in 2017Container Landscape in 2017
Container Landscape in 2017Arun Gupta
 
Java EE and NoSQL using JBoss EAP 7 and OpenShift
Java EE and NoSQL using JBoss EAP 7 and OpenShiftJava EE and NoSQL using JBoss EAP 7 and OpenShift
Java EE and NoSQL using JBoss EAP 7 and OpenShiftArun Gupta
 
Docker, Kubernetes, and Mesos recipes for Java developers
Docker, Kubernetes, and Mesos recipes for Java developersDocker, Kubernetes, and Mesos recipes for Java developers
Docker, Kubernetes, and Mesos recipes for Java developersArun Gupta
 
Thanks Managers!
Thanks Managers!Thanks Managers!
Thanks Managers!Arun Gupta
 
Migrate your traditional VM-based Clusters to Containers
Migrate your traditional VM-based Clusters to ContainersMigrate your traditional VM-based Clusters to Containers
Migrate your traditional VM-based Clusters to ContainersArun Gupta
 

More from Arun Gupta (20)

5 Skills To Force Multiply Technical Talents.pdf
5 Skills To Force Multiply Technical Talents.pdf5 Skills To Force Multiply Technical Talents.pdf
5 Skills To Force Multiply Technical Talents.pdf
 
Machine Learning using Kubernetes - AI Conclave 2019
Machine Learning using Kubernetes - AI Conclave 2019Machine Learning using Kubernetes - AI Conclave 2019
Machine Learning using Kubernetes - AI Conclave 2019
 
Machine Learning using Kubeflow and Kubernetes
Machine Learning using Kubeflow and KubernetesMachine Learning using Kubeflow and Kubernetes
Machine Learning using Kubeflow and Kubernetes
 
Secure and Fast microVM for Serverless Computing using Firecracker
Secure and Fast microVM for Serverless Computing using FirecrackerSecure and Fast microVM for Serverless Computing using Firecracker
Secure and Fast microVM for Serverless Computing using Firecracker
 
Building Java in the Open - j.Day at OSCON 2019
Building Java in the Open - j.Day at OSCON 2019Building Java in the Open - j.Day at OSCON 2019
Building Java in the Open - j.Day at OSCON 2019
 
Why Amazon Cares about Open Source
Why Amazon Cares about Open SourceWhy Amazon Cares about Open Source
Why Amazon Cares about Open Source
 
Machine learning using Kubernetes
Machine learning using KubernetesMachine learning using Kubernetes
Machine learning using Kubernetes
 
Building Cloud Native Applications
Building Cloud Native ApplicationsBuilding Cloud Native Applications
Building Cloud Native Applications
 
Chaos Engineering with Kubernetes
Chaos Engineering with KubernetesChaos Engineering with Kubernetes
Chaos Engineering with Kubernetes
 
How to be a mentor to bring more girls to STEAM
How to be a mentor to bring more girls to STEAMHow to be a mentor to bring more girls to STEAM
How to be a mentor to bring more girls to STEAM
 
Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018
 
The Serverless Tidal Wave - SwampUP 2018 Keynote
The Serverless Tidal Wave - SwampUP 2018 KeynoteThe Serverless Tidal Wave - SwampUP 2018 Keynote
The Serverless Tidal Wave - SwampUP 2018 Keynote
 
Introduction to Amazon EKS - KubeCon 2018
Introduction to Amazon EKS - KubeCon 2018Introduction to Amazon EKS - KubeCon 2018
Introduction to Amazon EKS - KubeCon 2018
 
Mastering Kubernetes on AWS - Tel Aviv Summit
Mastering Kubernetes on AWS - Tel Aviv SummitMastering Kubernetes on AWS - Tel Aviv Summit
Mastering Kubernetes on AWS - Tel Aviv Summit
 
Top 10 Technology Trends Changing Developer's Landscape
Top 10 Technology Trends Changing Developer's LandscapeTop 10 Technology Trends Changing Developer's Landscape
Top 10 Technology Trends Changing Developer's Landscape
 
Container Landscape in 2017
Container Landscape in 2017Container Landscape in 2017
Container Landscape in 2017
 
Java EE and NoSQL using JBoss EAP 7 and OpenShift
Java EE and NoSQL using JBoss EAP 7 and OpenShiftJava EE and NoSQL using JBoss EAP 7 and OpenShift
Java EE and NoSQL using JBoss EAP 7 and OpenShift
 
Docker, Kubernetes, and Mesos recipes for Java developers
Docker, Kubernetes, and Mesos recipes for Java developersDocker, Kubernetes, and Mesos recipes for Java developers
Docker, Kubernetes, and Mesos recipes for Java developers
 
Thanks Managers!
Thanks Managers!Thanks Managers!
Thanks Managers!
 
Migrate your traditional VM-based Clusters to Containers
Migrate your traditional VM-based Clusters to ContainersMigrate your traditional VM-based Clusters to Containers
Migrate your traditional VM-based Clusters to Containers
 

Recently uploaded

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 

Recently uploaded (20)

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 

The Java EE 7 Platform: Productivity++ & Embracing HTML5

  • 1. 1 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 2. The Java EE 7 Platform: Productivity++ and Embracing HTML5 Arun Gupta, Java EE & GlassFish Guy @arungupta
  • 3. The preceding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle s products remains at the sole discretion of Oracle. 3 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 4. Java EE 6 Platform December 10, 2009 4 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 5. Java EE 6 – Key Statistics §  50+ Million Java EE 6 Component Downloads §  #1 Choice for Enterprise Developers §  #1 Application Development Platform §  Fastest implementation of a Java EE release 5 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 6. Java EE 7 Revised Scope Productivity and HTML5 •  Higher Productivity –  Less Boilerplate –  Richer Functionality –  More Defaults •  HTML5 Support –  WebSocket –  JSON –  HTML5 Forms 6 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 7. Java EE 7 – Candidate JSRs JAX-RS Java Caching API JSP 2.2 JSF 2.2 2.0 EL 3.0 (JSR 107) Portable Extensions Bean Validation 1.1 Concurrency Utilities Servlet 3.1 (JSR 236) Common Batch Applications Interceptors 1.1 CDI 1.1 (JSR 352) Annotations 1.1 Java API for JSON Managed Beans 1.0 EJB 3.2 (JSR 353) Connector Java API for WebSocket JPA 2.1 JTA 1.2 JMS 2.0 (JSR 356) 1.6 New Major Updated Release 7 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 8. Java API for RESTful Web Services 2.0 •  Client API •  Message Filters & Entity Interceptors •  Asynchronous Processing – Server & Client •  Hypermedia Support •  Common Configuration 8 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 9. Java API for RESTful Web Services 2.0 Client API - Now // Get instance of Client Client client = ClientFactory.newClient();
 
 // Get customer name for the shipped products String name = client.target(“../orders/{orderId}/customer”)
 .resolveTemplate(”orderId", ”10”)
 .queryParam(”shipped", ”true”)
 .request()
 .get(String.class);" 9 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 10. Java Message Service 2.0 Simplify the existing API •  Less verbose •  Reduce boilerplate code •  Resource injection •  Connection, Session, and other objects are AutoCloseable •  Requires Resource Adapter for Java EE containers •  Simplified API in both Java SE and EE 10 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 11. Java Message Service 2.0 Sending a Message using JMS 1.1 @Resource(lookup = "myConnectionFactory”)
 ConnectionFactory connectionFactory;" Application Server @Resource(lookup = "myQueue”)
 Specific Resources Queue myQueue;" public void sendMessage (String payload) {
 Connection connection = null;
 try {
 connection = connectionFactory.createConnection();
 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
 Boilerplate Code MessageProducer messageProducer = session.createProducer(myQueue);
 TextMessage textMessage = session.createTextMessage(payload);
 messageProducer.send(textMessage);
 } catch (JMSException ex) {
 //. . .
 } finally {
 if (connection != null) {
 try {
 connection.close();
 Exception Handling } catch (JMSException ex) {" //. . .
 }
 }
 }
 }" 11 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 12. Java Message Service 2.0 Sending message using JMS 2.0 @Inject
 JMSContext context;" " @Resource(lookup = "java:global/jms/demoQueue”)
 Queue demoQueue;" " public void sendMessage(String payload) {" context.createProducer().send(demoQueue, payload);" }" 12 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 13. Java API for JSON Processing 1.0 •  API to parse and generate JSON •  Streaming API –  Low-level, efficient way to parse/generate JSON –  Provides pluggability for parsers/generators •  Object Model –  Simple, easy-to-use high-level API –  Implemented on top of Streaming API •  Binding JSON to Java objects forthcoming 13 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 14. Java API for JSON Processing 1.0 Streaming API – JsonParser {" "firstName": "John", "lastName": "Smith", "age": 25, 
 "phoneNumber": [
 { "type": "home", "number": "212 555-1234" },
 { "type": "fax", "number": "646 555-4567" }
 ]
 }" Iterator<Event> it = parser.iterator();" Event event = it.next(); // START_OBJECT event = it.next(); // KEY_NAME event = it.next(); // VALUE_STRING String name = parser.getString(); // "John” " 14 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 15. Java API for WebSocket 1.0 §  API for WebSocket Client/Endpoints –  Annotation-driven (@WebSocketEndpoint) –  Interface-driven (Endpoint) –  Client (@WebSocketClient) §  SPI for data frames –  WebSocket opening handshake negotiation §  Integration with Java EE Web container 15 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 16. Java API for WebSocket 1.0 Hello World – POJO/Annotation-driven import javax.websocket.*;
 
 @WebSocketEndpoint("/hello")
 public class HelloBean {
 
 @WebSocketMessage
 public String sayHello(String name) {
 return “Hello “ + name;
 }
 }" 16 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 17. Java API for WebSocket 1.0 Chat Server @WebSocketEndpoint("/chat")" public class ChatBean {" Set<Session> peers = Collections.synchronizedSet(…);
 
 @WebSocketOpen
 public void onOpen(Session peer) {
 peers.add(peer);
 }
 
 @WebSocketClose
 public void onClose(Session peer) {
 peers.remove(peer);
 }
 
 . . ." 17 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 18. Java API for WebSocket 1.0 Chat Server (contd.) . . .
 
 @WebSocketMessage" public void message(String message, Session client) {" for (Session peer : peers) {
 peer.getRemote().sendObject(message);
 }
 }
 }" 18 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 19. Bean Validation 1.1 §  Open: Spec, Reference Implementation, TCK §  Alignment with Dependency Injection §  Method-level validation –  Constraints on parameters and return values –  Check pre-/post-conditions 19 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 20. Bean Validation 1.1 Method Parameter and Result Validation public void placeOrder( 
 Built-in @NotNull String productName,
 @NotNull @Max(“10”) Integer quantity,
 Custom @Customer String customer) { 
 //. . .
 }" @Future
 public Date getAppointment() {
 //. . .
 }" 20 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 21. Batch Applications for the Java Platform 1.0 §  Suited for non-interactive, bulk-oriented and long- running tasks §  Computationally intensive §  Can execute sequentially/parallel §  May be initiated –  Adhoc –  Scheduled §  No scheduling APIs included 21 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 22. Batch Applications for the Java Platform 1.0 Concepts •  Job: Entire batch process –  Put together through a Job Specification Language (XML) •  Step: Independent, sequential phase of a job –  ItemReader: Retrieval of input for a step, one at a time –  ItemProcessor: Business processing of an item –  ItemWriter: Output of an item, chunks of items at a time •  JobOperator: Manage batch processing •  JobRepository: Metadata for jobs 22 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 23. Batch Applications for the Java Platform 1.0 Job Specification Language – Chunked Step <step id=”sendStatements”>" @ReadItem
 <chunk reader=”AccountReader”" public Account readAccount() {
 processor=”AccountProcessor”
 // read account using JPA" writer=”EmailWriter”" }" chunk-size=”10” />" " </step>" @ProcessItem" public Account processAccount(Account account) {
 // calculate balance" }" @WriteItems" " public void sendEmail(List<Account> accounts) {
 // use JavaMail to send email" }" " 23 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 24. Java Persistence API 2.1 §  Schema Generation §  Unsynchronized Persistence Contexts §  Bulk update/delete using Criteria" §  User-defined functions using FUNCTION §  Stored Procedure Query 24 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 25. Servlet 3.1 §  Non-blocking I/O §  Protocol Upgrade §  Security Enhancements 25 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 26. Servlet 3.1 Non-blocking IO - Traditional public class TestServlet extends HttpServlet
 protected void doGet(HttpServletRequest request,
 HttpServletResponse response) 
 throws IOException, ServletException {
 ServletInputStream input = request.getInputStream();
 byte[] b = new byte[1024];
 int len = -1;
 while ((len = input.read(b)) != -1) {
 . . .
 }
 }
 }" 26 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 27. Servlet 3.1 Non-blocking I/O: doGet Code Sample AsyncContext context = request.startAsync();
 ServletInputStream input = request.getInputStream();
 input.setReadListener(
 new MyReadListener(input, context)); " 27 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 28. Servlet 3.1 Non-blocking I/O: MyReadListener Code Sample @Override
 public void onDataAvailable() {
 try {
 StringBuilder sb = new StringBuilder();
 int len = -1;
 byte b[] = new byte[1024];
 while (input.isReady() && (len = input.read(b)) != -1) {
 String data = new String(b, 0, len);
 System.out.println("--> " + data);
 }
 } catch (IOException ex) {
 . . .
 }
 }
 . . .
 28 " Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 29. Concurrency Utilities for Java EE 1.0 Goals §  Provide concurrency capabilities to Java EE application components –  Without compromising container integrity §  Support simple (common) and advanced concurrency patterns 29 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 30. Concurrency Utilities for Java EE 1.0 Defining ManagedExecutorService using JNDI §  Recommended to bind in java:comp/env/concurrent subcontext <resource-env-ref>
 <resource-env-ref-name>
 concurrent/BatchExecutor
 </resource-env-ref-name>
 <resource-env-ref-type>
 javax.enterprise.concurrent.ManagedExecutorService
 </resource-env-ref-type>
 </resource-env-ref>" 30 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 31. Concurrency Utilities for Java EE 1.0 Submit Tasks to ManagedExecutorService using JNDI public class TestServlet extends HTTPServlet {
 @Resource(name=“concurrent/BatchExecutor”)
 ManagedExecutorService executor;
 
 Future future = executor.submit(new MyTask());
 
 class MyTask implements Runnable {
 public void run() { 
 . . . // task logic
 }
 }
 }
 31 " Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 32. JavaServer Faces 2.2 §  Flow Faces §  HTML5 Friendly Markup Support –  Pass through attributes and elements §  Cross Site Request Forgery Protection §  Loading Facelets via ResourceHandler" §  File Upload Component §  Multi-templating 32 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 33. Java EE 7 – Implementation Status 4.0 download.java.net/glassfish/4.0/promoted/ 33 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 34. Java EE 8 and Beyond Standards-based cloud programming model •  Deliver cloud architecture Storage NoSQL •  Multi tenancy for SaaS JSON-B Multitenancy Java EE 7 applications Concurrency Cloud PaaS •  Incremental delivery of JSRs Enablement Thin Server Architecture •  Modularity based on Jigsaw 34 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 35. Adopt-a-JSR How do I get started ? – glassfish.org/adoptajsr 35 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 36. Adopt-a-JSR Participating JUGs 36 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 37. Call to Action •  Specs: javaee-spec.java.net •  Implementation: glassfish.org •  The Aquarium: blogs.oracle.com/theaquarium •  Adopt a JSR: glassfish.org/adoptajsr •  NetBeans: wiki.netbeans.org/JavaEE7 37 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 38. Q&A 38 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 39. 39 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 40. 40 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.