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

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 

Recently uploaded (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 

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.