SlideShare a Scribd company logo
1 of 44
Download to read offline
<Insert Picture Here>




Java EE 6 & GlassFish v3: Paving the path for the future
Arun Gupta, Java EE & GlassFish Guy
blogs.sun.com/arungupta, @arungupta
The following/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.



                                                     2
Life is no straight and easy corridor along which we
travel free and unhampered, but a maze of passages,
though which we must seek our way, lost and confused,
now and again checked in a blind alley.

But always, if we have faith, a door will open for us,
not perhaps one that we ourselves would ever have
thought of, but one that will ultimately prove good
for us.

                                        A. J. Cronin

                                                         3
Are you tweeting ?



#glassfish
#techdays


                     4
Java EE: Past & Present                                                        Flexible
                                                                 Ease of
                                                               Development        Java EE 6
                                                                                  Pruning
                                                                Java EE 5         Extensibility
                                                 Web            Ease of
                                               Services                           Prof les
                                                                                     i
                                                                Development
                                                                Annotations
                                                                                  Ease-of-dev
                                               J2EE 1.4         EJB 3.0           EJB Lite
                                               Web Services,    Persistence API   RESTful WS
                           Robustness          Management,      New and           CDI
           Enterprise                          Deployment,      Updated
             Java          J2EE 1.3            Async.           Web Services
           Platform            CMP,            Connector
                             Connector
                            Architecture   `                                      Java EE 6
           J2EE 1.2
           Servlet, JSP,                                                          Web Prof le
                                                                                          i
            EJB, JMS
 JPE        RMI/IIOP
Project
                                                                                   Managed
                                                                                   Bean 1.0

May 1998   Dec 1999        Sep 2001              Nov 2003         May 2006            Dec 2010
           10 specs        13 specs              20 specs         23 specs            28 specs

                                                                                                  5
Compatible Java EE 5 Impl




http://java.sun.com/javaee/overview/compatibility-javaee5.jsp


                                                                6
Compatible Java EE 6 Impls

Today:




Coming:
                             7
Goals for the Java EE 6 Platform


• Flexible & Light-weight
• Extensible
     • Embrace Open Source Frameworks
• Easier to use, develop on
     • Continue on path set by Java EE 5




                                           8
Java EE 6 Web Profile 1.0

• Fully functional mid-sized profile
  • Actively discussed in the Java EE 6 Expert
    Group and outside it
  • Technologies
    • Servlets 3.0, JSP 2.2, EL 2.2, Debugging Support for
      Other Languages 1.0, JSTL 1.2, JSF 2.0, Common
      Annotations 1.1, EJB 3.1 Lite, JTA 1.1, JPA 2.0, Bean
      Validation 1.0, Managed Beans 1.0, Interceptors 1.1,
      Context & Dependency Injection 1.0, Dependency
      Injection for Java 1.0




                                                              9
Java EE 6 is Lightweight

• Pruning
   • Make some technologies optional
• Pruned today, means
   • Optional in the next release
   • Deleted in the subsequent releases
• Technologies marked in Javadocs
   • JAX-RPC, EJB 2.x Entity Beans, JAXR, JSR 88




                                                   10
Java EE 6 is Extensible
• Embrace open source frameworks
 • Wicket, Lift, Spring, Struts, ...
• Zero-configuration, drag-and-drop for
 web frameworks
 • Servlets, servlet filters, context listeners for
   a framework get discovered and registered
   automatically
• Plugin libraries using web fragments




                                                      11
<web-fragment>
    <filter>
           <filter-name>wicket.helloworld</filter-name>
           <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
           <init-param>
                 <param-name>applicationClassName</param-name>
                 <param-value>...</param-value>
           </init-param>
    </filter>
    <filter-mapping>
           <filter-name>wicket.helloworld</filter-name>
           <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-fragment>
http://blogs.sun.com/arungupta/entry/totd_91_applying_java_ee


                                                                                12
<web-fragment>
  <filter>
     <filter-name>LiftFilter</filter-name>
      <display-name>Lift Filter</display-name>
      <description>The Filter that intercepts lift calls</description>
      <filter-class>net.liftweb.http.LiftFilter</filter-class>
   </filter>
   <filter-mapping>
     <filter-name>LiftFilter</filter-name>
     <url-pattern>/*</url-pattern>
   </filter-mapping>
</web-fragment>

 http://blogs.sun.com/arungupta/entry/totd_101_applying_servlet_3



                                                                         13
Java EE 6 - Done

• Specifications approved by the JCP




              10
• Reference Implementation is GlassFish v3
• TCK




           20
        ec
       D

                                             14
Java EE 6 Specifications

• The Platform
• Java EE 6 Web Profile 1.0
• Managed Beans 1.0




                              15
Java EE 6 Specifications
  New

• Context and Dependency Injection for Java EE (JSR 299)
• Bean Validation 1.0 (JSR 303)
• Java API for RESTful Web Services (JSR 311)
• Dependency Injection for Java (JSR 330)




                                                           16
Java EE 6 Specifications
  Extreme Makeover

• Java Server Faces 2.0 (JSR 314)
• Java Servlets 3.0 (JSR 315)
• Java Persistence 2.0 (JSR 317)
• Enterprise Java Beans 3.1 & Interceptors 1.1 (JSR 318)
• Java EE Connector Architecture 1.6 (JSR 322)




                                                           17
Java EE 6 Specifications
   Updates

• Java API for XML-based Web Services 2.2 (JSR 224)
• Java API for XML Binding 2.2 (JSR 222)
• Web Services Metadata MR3 (JSR 181)
• JSP 2.2/EL 2.2 (JSR 245)
• Web Services for Java EE 1.3 (JSR 109)
• Common Annotations 1.1 (JSR 250)
• Java Authorization Contract for Containers 1.3 (JSR 115)
• Java Authentication Service Provider Interface for
 Containers 1.0 (JSR 196)



                                                        18
Java EE 6 Specifications
       As is

•   JDBC 3.0 API
•   Java Naming and Directory Interface 1.2
•   Java Message Service 1.1
•   Java Transaction API 1.1
•   Java Transaction Service 1.0
•   JavaMail API Specification 1.4
•   JavaBeans Activation Framework 1.1
•   Java API for XML Processing 1.3
•   Java API for XML-based RPC 1.1
•   SOAP with Attachments API for Java 1.3
•   Java API for XML Registries 1.0
•   Java EE Management Specification 1.1 (JSR 77)
•   Java EE Deployment Specification 1.2 (JSR 88)
•   Java Management Extensions 1.2
•   Java Authentication and Authorization Service 1.0
•   Debugging Support for Other Languages (JSR 45)
•   Standard Tag Library for JSP 1.2 (JSR 52)
•   Streaming API for XML 1.0 (JSR 173)



                                                        19
Java EE 6 & Ease-of-development

• Continue advancements of Java EE 5
• Primary focus: Web Tier
• General principles
  • Annotation-based programming model
  • Reduce or eliminate need for DD
  • Traditional API for advanced users




                                         20
EoD: Servlets
   Servlet in Java EE 5: Two Files

<!--Deployment descriptor      /* Code in Java Class */
  web.xml -->
<web-app>                      package com.sun;
  <servlet>                    public class MyServlet extends
    <servlet-name>MyServlet    HttpServlet {
             </servlet-name>   public void
       <servlet-class>         doGet(HttpServletRequest
         com.sun.MyServlet     req,HttpServletResponse res)
       </servlet-class>        {
  </servlet>
                               ...
  <servlet-mapping>
    <servlet-name>MyServlet    }
       </servlet-name>         ...
    <url-pattern>/myApp/*      }
       </url-pattern>
  </servlet-mapping>
   ...
</web-app>



                                                            21
EoD: Servlets in Java EE 6


package com.sun;
@WebServlet(name=”MyServlet”, urlPattern=”/myApp/*”)
public class MyServlet extends HttpServlet {
   public void doGet(HttpServletRequest req,
             HttpServletResponse res)
   {
      ...
   }




http://blogs.sun.com/arungupta/entry/totd_81_getting_started_with

                                                                    22
EoD: EJB Simplified Packaging

        Java EE 5                        Java EE 6
                                     foo.war
   foo.ear
                                     WEB-INF/classes
     foo_web.war                      com.sun.FooServlet
                                      com.sun.TickTock
     WEB-INF/web.xml                  com.sun.FooBean
     WEB-INF/classes                  com.sun.FooHelper
       com.sun.FooServlet
       com.sun.TickTock

     foo_ejb.jar
     com.sun.FooBean                     web.xml ?
     com.sun.FooHelper


http://blogs.sun.com/arungupta/entry/totd_95_ejb_3_1

                                                           23
IDE Support for Java EE 6




                            24
Books on Java EE




                   25
http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getlppage?page_id=212&path=SADJ


                                                                                            26
What is GlassFish ?

• A community
  • Users, Partners, Testers, Developers, ...
  • Started in 2005 on java.net
• Application Server
  • Open Source (CDDL & GPL v2)
  • Java EE Reference Implementation




                                                27
• GlassFish development continues
• Support contracts through 2017+ unlimited
• Remains the Java EE Reference Implementation
• Now also sold with WebLogic and standalone
 http://oracle.com/goto/glassfish

                                                 28
http://wikis.sun.com/display/TheAquarium/GlassFish+Roadmap
                     Thu, Mar 25, Noon PT
                                                             29
GlassFish v3

• Modular
  • Maven 2 – Build & Module description
  • Felix – OSGi runtime (216 bundles)
  • Allow any type of Container to be plugged
      • Start Container and Services on demand

• Embeddable: runs in-VM
• Extensible
  • Rails, Grails, Django, ...
  • Administration, Monitoring, Logging, Deployment, ...

http://blogs.sun.com/dochez/entry/glassfish_v3_extensions_part_5

                                                                   30
GlassFish v3 & OSGi
 • No OSGi APIs are used in GlassFish
   • HK2 provides abstraction layer
 • All GlassFish modules are OSGi bundles
 • Felix is default, also runs on Knopflerfish & Equinox
    • Can run in an existing shell
    • 216 modules in v3




http://blogs.sun.com/arungupta/entry/totd_103_glassfish_v3_with
http://blogs.sun.com/arungupta/entry/totd_118_managing_osgi_bundles

                                                                      31
Dynamic Languages & Frameworks




http://glassfish-scripting.dev.java.net

                                          32
Demo
     NetBeans / Eclipse & Java EE 6



http://blogs.sun.com/arungupta/entry/screencast_27_simple_web_application
http://blogs.sun.com/arungupta/entry/screencast_28_simple_web_application
http://blogs.sun.com/arungupta/entry/screencast_26_develop_run_debug/
http://blogs.sun.com/arungupta/entry/totd_93_getting_started_with/
http://blogs.sun.com/arungupta/entry/totd_94_a_simple_java
http://blogs.sun.com/arungupta/entry/totd_95_ejb_3_1
http://blogs.sun.com/arungupta/entry/totd_102_java_ee_6
http://blogs.sun.com/arungupta/entry/totd_99_creating_a_java



                                                                            33
CLI-based Administration


• “asadmin” CLI utility
• Administrative commands can be added with
each container :
 @Service(name=”myCommand”)
public class ChangeRandomCtr implements AdminCommand {
         @Param
         String s1;
         @Param
         String s2;
…}
•Available as :
asadmin myCommand –s1 foo –s2 bar


                                                         34
35
Demo
GlassFish v3 Administration




                              36
Light Weight & On-demand Monitoring

• Event-driven light-weight and non-intrusive
  monitoring
• Modules provide domain specific probes
  (monitoring events)
  • EJB, Web, Connector, JPA, Jersey, Orb, Ruby
• End-to-end monitoring on Solaris using
  DTrace
• 3rd party scripting clients
  • JavaScript to begin with



                                                  37
Demo
 GlassFish v3 Monitoring




http://blogs.sun.com/arungupta/entry/totd_104_glassfish_v3_monitoring

                                                                        38
REST Interface

• REST interface to management and
monitoring data
 • Configuration data, commands invocation,
  (start/stop instance, deploy, undeploy, ...), CRUD
  resources (JMS, JDBC, ...)
  •localhost:4848/management/domain
  •localhost:4848/monitoring/domain
• GET, POST, DELETE methods
• XML, JSON, HTML reps



                                                       39
Demo
 GlassFish v3 REST Interface




http://blogs.sun.com/arungupta/entry/totd_113_javafx_front_end
http://blogs.sun.com/arungupta/entry/totd_116_glassfish_v3_administration


                                                                       40
Boost your productivity
   Retain session across deployment
asadmin redeploy –properties keepSessions=true helloworld.war




                                                                41
Boost your productivity
Deploy-on-Save




                          42
References

• glassfish.org
• blogs.sun.com/theaquarium
• twitter.com/glassfish
• glassfish@sun.com




                              43
<Insert Picture Here>




Java EE 6 & GlassFish v3: Paving the path for the future
Arun Gupta, Java EE & GlassFish Guy
blogs.sun.com/arungupta, @arungupta

More Related Content

What's hot

Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010
Codecamp Romania
 
Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011
Agora Group
 

What's hot (20)

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
 
Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3
 
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
 
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
 
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...
 
Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010
 
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
 
The Java Ee 6 Platform Normandy Jug
The Java Ee 6 Platform Normandy JugThe Java Ee 6 Platform Normandy Jug
The Java Ee 6 Platform Normandy Jug
 
Glassfish Overview Fontys 20090520
Glassfish Overview Fontys 20090520Glassfish Overview Fontys 20090520
Glassfish Overview Fontys 20090520
 
Overview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGOverview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUG
 
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
 
Java 7 workshop
Java 7 workshopJava 7 workshop
Java 7 workshop
 
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
 
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
 
Whats Cool in Java E 6
Whats Cool in Java E 6Whats Cool in Java E 6
Whats Cool in Java E 6
 
Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011
 
Java EE 7 at JAX London 2011 and JFall 2011
Java EE 7 at JAX London 2011 and JFall 2011Java EE 7 at JAX London 2011 and JFall 2011
Java EE 7 at JAX London 2011 and JFall 2011
 
Java EE 7: the Voyage of the Cloud Treader
Java EE 7: the Voyage of the Cloud TreaderJava EE 7: the Voyage of the Cloud Treader
Java EE 7: the Voyage of the Cloud Treader
 
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
 

Similar to Java EE 6 & GlassFish v3: Paving the path for the future - Tech Days 2010 India

Java EE 6 Component Model Explained
Java EE 6 Component Model Explained Java EE 6 Component Model Explained
Java EE 6 Component Model Explained
Shreedhar Ganapathy
 

Similar to Java EE 6 & GlassFish v3: Paving the path for the future - Tech Days 2010 India (20)

Java E
Java EJava E
Java E
 
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
 
Java EE 6 Component Model Explained
Java EE 6 Component Model Explained Java EE 6 Component Model Explained
Java EE 6 Component Model Explained
 
Sun Java EE 6 Overview
Sun Java EE 6 OverviewSun Java EE 6 Overview
Sun Java EE 6 Overview
 
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 = Less Code + More Power
Java EE 6 = Less Code + More PowerJava EE 6 = Less Code + More Power
Java EE 6 = Less Code + More Power
 
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 ...
 
The Java EE 7 Platform: Developing for the Cloud (FISL 12)
The Java EE 7 Platform: Developing for the Cloud  (FISL 12)The Java EE 7 Platform: Developing for the Cloud  (FISL 12)
The Java EE 7 Platform: Developing for the Cloud (FISL 12)
 
Java EE 6
Java EE 6Java EE 6
Java EE 6
 
Java Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewJava Enterprise Edition 6 Overview
Java Enterprise Edition 6 Overview
 
Java EE6 Overview
Java EE6 OverviewJava EE6 Overview
Java EE6 Overview
 
Java EE 6 Aquarium Paris
Java EE 6 Aquarium ParisJava EE 6 Aquarium Paris
Java EE 6 Aquarium Paris
 
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
 
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
 
Java EE / GlassFish Strategy & Roadmap @ JavaOne 2011
Java EE / GlassFish Strategy & Roadmap @ JavaOne 2011Java EE / GlassFish Strategy & Roadmap @ JavaOne 2011
Java EE / GlassFish Strategy & Roadmap @ JavaOne 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 EE8 - by Kito Mann
Java EE8 - by Kito Mann Java EE8 - by Kito Mann
Java EE8 - by Kito Mann
 
Glass Fishv3 March2010
Glass Fishv3 March2010Glass Fishv3 March2010
Glass Fishv3 March2010
 
Java EE 7 - Overview and Status
Java EE 7  - Overview and StatusJava EE 7  - Overview and Status
Java EE 7 - Overview and Status
 
New Features of Java7 SE
New Features of Java7 SENew Features of Java7 SE
New Features of Java7 SE
 

More from Arun 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

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 

Java EE 6 & GlassFish v3: Paving the path for the future - Tech Days 2010 India

  • 1. <Insert Picture Here> Java EE 6 & GlassFish v3: Paving the path for the future Arun Gupta, Java EE & GlassFish Guy blogs.sun.com/arungupta, @arungupta
  • 2. The following/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. 2
  • 3. Life is no straight and easy corridor along which we travel free and unhampered, but a maze of passages, though which we must seek our way, lost and confused, now and again checked in a blind alley. But always, if we have faith, a door will open for us, not perhaps one that we ourselves would ever have thought of, but one that will ultimately prove good for us. A. J. Cronin 3
  • 4. Are you tweeting ? #glassfish #techdays 4
  • 5. Java EE: Past & Present Flexible Ease of Development Java EE 6 Pruning Java EE 5 Extensibility Web Ease of Services Prof les i Development Annotations Ease-of-dev J2EE 1.4 EJB 3.0 EJB Lite Web Services, Persistence API RESTful WS Robustness Management, New and CDI Enterprise Deployment, Updated Java J2EE 1.3 Async. Web Services Platform CMP, Connector Connector Architecture ` Java EE 6 J2EE 1.2 Servlet, JSP, Web Prof le i EJB, JMS JPE RMI/IIOP Project Managed Bean 1.0 May 1998 Dec 1999 Sep 2001 Nov 2003 May 2006 Dec 2010 10 specs 13 specs 20 specs 23 specs 28 specs 5
  • 6. Compatible Java EE 5 Impl http://java.sun.com/javaee/overview/compatibility-javaee5.jsp 6
  • 7. Compatible Java EE 6 Impls Today: Coming: 7
  • 8. Goals for the Java EE 6 Platform • Flexible & Light-weight • Extensible • Embrace Open Source Frameworks • Easier to use, develop on • Continue on path set by Java EE 5 8
  • 9. Java EE 6 Web Profile 1.0 • Fully functional mid-sized profile • Actively discussed in the Java EE 6 Expert Group and outside it • Technologies • Servlets 3.0, JSP 2.2, EL 2.2, Debugging Support for Other Languages 1.0, JSTL 1.2, JSF 2.0, Common Annotations 1.1, EJB 3.1 Lite, JTA 1.1, JPA 2.0, Bean Validation 1.0, Managed Beans 1.0, Interceptors 1.1, Context & Dependency Injection 1.0, Dependency Injection for Java 1.0 9
  • 10. Java EE 6 is Lightweight • Pruning • Make some technologies optional • Pruned today, means • Optional in the next release • Deleted in the subsequent releases • Technologies marked in Javadocs • JAX-RPC, EJB 2.x Entity Beans, JAXR, JSR 88 10
  • 11. Java EE 6 is Extensible • Embrace open source frameworks • Wicket, Lift, Spring, Struts, ... • Zero-configuration, drag-and-drop for web frameworks • Servlets, servlet filters, context listeners for a framework get discovered and registered automatically • Plugin libraries using web fragments 11
  • 12. <web-fragment> <filter> <filter-name>wicket.helloworld</filter-name> <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class> <init-param> <param-name>applicationClassName</param-name> <param-value>...</param-value> </init-param> </filter> <filter-mapping> <filter-name>wicket.helloworld</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-fragment> http://blogs.sun.com/arungupta/entry/totd_91_applying_java_ee 12
  • 13. <web-fragment> <filter> <filter-name>LiftFilter</filter-name> <display-name>Lift Filter</display-name> <description>The Filter that intercepts lift calls</description> <filter-class>net.liftweb.http.LiftFilter</filter-class> </filter> <filter-mapping> <filter-name>LiftFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-fragment> http://blogs.sun.com/arungupta/entry/totd_101_applying_servlet_3 13
  • 14. Java EE 6 - Done • Specifications approved by the JCP 10 • Reference Implementation is GlassFish v3 • TCK 20 ec D 14
  • 15. Java EE 6 Specifications • The Platform • Java EE 6 Web Profile 1.0 • Managed Beans 1.0 15
  • 16. Java EE 6 Specifications New • Context and Dependency Injection for Java EE (JSR 299) • Bean Validation 1.0 (JSR 303) • Java API for RESTful Web Services (JSR 311) • Dependency Injection for Java (JSR 330) 16
  • 17. Java EE 6 Specifications Extreme Makeover • Java Server Faces 2.0 (JSR 314) • Java Servlets 3.0 (JSR 315) • Java Persistence 2.0 (JSR 317) • Enterprise Java Beans 3.1 & Interceptors 1.1 (JSR 318) • Java EE Connector Architecture 1.6 (JSR 322) 17
  • 18. Java EE 6 Specifications Updates • Java API for XML-based Web Services 2.2 (JSR 224) • Java API for XML Binding 2.2 (JSR 222) • Web Services Metadata MR3 (JSR 181) • JSP 2.2/EL 2.2 (JSR 245) • Web Services for Java EE 1.3 (JSR 109) • Common Annotations 1.1 (JSR 250) • Java Authorization Contract for Containers 1.3 (JSR 115) • Java Authentication Service Provider Interface for Containers 1.0 (JSR 196) 18
  • 19. Java EE 6 Specifications As is • JDBC 3.0 API • Java Naming and Directory Interface 1.2 • Java Message Service 1.1 • Java Transaction API 1.1 • Java Transaction Service 1.0 • JavaMail API Specification 1.4 • JavaBeans Activation Framework 1.1 • Java API for XML Processing 1.3 • Java API for XML-based RPC 1.1 • SOAP with Attachments API for Java 1.3 • Java API for XML Registries 1.0 • Java EE Management Specification 1.1 (JSR 77) • Java EE Deployment Specification 1.2 (JSR 88) • Java Management Extensions 1.2 • Java Authentication and Authorization Service 1.0 • Debugging Support for Other Languages (JSR 45) • Standard Tag Library for JSP 1.2 (JSR 52) • Streaming API for XML 1.0 (JSR 173) 19
  • 20. Java EE 6 & Ease-of-development • Continue advancements of Java EE 5 • Primary focus: Web Tier • General principles • Annotation-based programming model • Reduce or eliminate need for DD • Traditional API for advanced users 20
  • 21. EoD: Servlets Servlet in Java EE 5: Two Files <!--Deployment descriptor /* Code in Java Class */ web.xml --> <web-app> package com.sun; <servlet> public class MyServlet extends <servlet-name>MyServlet HttpServlet { </servlet-name> public void <servlet-class> doGet(HttpServletRequest com.sun.MyServlet req,HttpServletResponse res) </servlet-class> { </servlet> ... <servlet-mapping> <servlet-name>MyServlet } </servlet-name> ... <url-pattern>/myApp/* } </url-pattern> </servlet-mapping> ... </web-app> 21
  • 22. EoD: Servlets in Java EE 6 package com.sun; @WebServlet(name=”MyServlet”, urlPattern=”/myApp/*”) public class MyServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) { ... } http://blogs.sun.com/arungupta/entry/totd_81_getting_started_with 22
  • 23. EoD: EJB Simplified Packaging Java EE 5 Java EE 6 foo.war foo.ear WEB-INF/classes foo_web.war com.sun.FooServlet com.sun.TickTock WEB-INF/web.xml com.sun.FooBean WEB-INF/classes com.sun.FooHelper com.sun.FooServlet com.sun.TickTock foo_ejb.jar com.sun.FooBean web.xml ? com.sun.FooHelper http://blogs.sun.com/arungupta/entry/totd_95_ejb_3_1 23
  • 24. IDE Support for Java EE 6 24
  • 25. Books on Java EE 25
  • 27. What is GlassFish ? • A community • Users, Partners, Testers, Developers, ... • Started in 2005 on java.net • Application Server • Open Source (CDDL & GPL v2) • Java EE Reference Implementation 27
  • 28. • GlassFish development continues • Support contracts through 2017+ unlimited • Remains the Java EE Reference Implementation • Now also sold with WebLogic and standalone http://oracle.com/goto/glassfish 28
  • 30. GlassFish v3 • Modular • Maven 2 – Build & Module description • Felix – OSGi runtime (216 bundles) • Allow any type of Container to be plugged • Start Container and Services on demand • Embeddable: runs in-VM • Extensible • Rails, Grails, Django, ... • Administration, Monitoring, Logging, Deployment, ... http://blogs.sun.com/dochez/entry/glassfish_v3_extensions_part_5 30
  • 31. GlassFish v3 & OSGi • No OSGi APIs are used in GlassFish • HK2 provides abstraction layer • All GlassFish modules are OSGi bundles • Felix is default, also runs on Knopflerfish & Equinox • Can run in an existing shell • 216 modules in v3 http://blogs.sun.com/arungupta/entry/totd_103_glassfish_v3_with http://blogs.sun.com/arungupta/entry/totd_118_managing_osgi_bundles 31
  • 32. Dynamic Languages & Frameworks http://glassfish-scripting.dev.java.net 32
  • 33. Demo NetBeans / Eclipse & Java EE 6 http://blogs.sun.com/arungupta/entry/screencast_27_simple_web_application http://blogs.sun.com/arungupta/entry/screencast_28_simple_web_application http://blogs.sun.com/arungupta/entry/screencast_26_develop_run_debug/ http://blogs.sun.com/arungupta/entry/totd_93_getting_started_with/ http://blogs.sun.com/arungupta/entry/totd_94_a_simple_java http://blogs.sun.com/arungupta/entry/totd_95_ejb_3_1 http://blogs.sun.com/arungupta/entry/totd_102_java_ee_6 http://blogs.sun.com/arungupta/entry/totd_99_creating_a_java 33
  • 34. CLI-based Administration • “asadmin” CLI utility • Administrative commands can be added with each container : @Service(name=”myCommand”) public class ChangeRandomCtr implements AdminCommand { @Param String s1; @Param String s2; …} •Available as : asadmin myCommand –s1 foo –s2 bar 34
  • 35. 35
  • 37. Light Weight & On-demand Monitoring • Event-driven light-weight and non-intrusive monitoring • Modules provide domain specific probes (monitoring events) • EJB, Web, Connector, JPA, Jersey, Orb, Ruby • End-to-end monitoring on Solaris using DTrace • 3rd party scripting clients • JavaScript to begin with 37
  • 38. Demo GlassFish v3 Monitoring http://blogs.sun.com/arungupta/entry/totd_104_glassfish_v3_monitoring 38
  • 39. REST Interface • REST interface to management and monitoring data • Configuration data, commands invocation, (start/stop instance, deploy, undeploy, ...), CRUD resources (JMS, JDBC, ...) •localhost:4848/management/domain •localhost:4848/monitoring/domain • GET, POST, DELETE methods • XML, JSON, HTML reps 39
  • 40. Demo GlassFish v3 REST Interface http://blogs.sun.com/arungupta/entry/totd_113_javafx_front_end http://blogs.sun.com/arungupta/entry/totd_116_glassfish_v3_administration 40
  • 41. Boost your productivity Retain session across deployment asadmin redeploy –properties keepSessions=true helloworld.war 41
  • 43. References • glassfish.org • blogs.sun.com/theaquarium • twitter.com/glassfish • glassfish@sun.com 43
  • 44. <Insert Picture Here> Java EE 6 & GlassFish v3: Paving the path for the future Arun Gupta, Java EE & GlassFish Guy blogs.sun.com/arungupta, @arungupta