SlideShare a Scribd company logo
1 of 44
Download to read offline
GlassFish v3
The future of Java EE is here




Alexis Moussine-Pouchkine
GlassFish Team
This is no science fiction




 Java EE 6 and GlassFish v3 shipped
                              th
final releases on December 10 2009
GlassFish Around You
Some History and Context


  Tomcat
   Jasper
                          GlassFish v1                        GlassFish v3
   Catalina
    JSTL                  (Java EE 5)                          (Java EE 6)
    Struts    GlassFish
                                          v2
Crimson        Launch                            v2.1      v2.1.1
XSLTC
 Xalan
Xerces


   JAXB                                           Jan
 JAX-RPC
               June       May            Sept.             Nov.     Dec.
    JSF        2005       2006           2007    2008      2009     2009



                                                 (you are here)
GlassFish
●   A Community
    ●   Users, Partners, Testers, Developers
    ●   Started in 2005 on java.net
    ●   Sub-projects
        –   Jersey (JAX-RS), Metro (JAX-WS), Grizzly (nio),
            Atmosphere (Comet), OpenMQ (JMS), and scripting:
            jRoR, Grails, and now Django (jython)
●   Application Server
    ●   Enterprise Quality and Open Source
    ●   Java EE 5 / 6 Reference Implementation
    ●   Full Commercial Support from Sun/Oracle
Oracle GlassFish Server




 ●   GlassFish development continues (in the open!)
 ●   Support contracts thru 2017 + unlimited
 ●   Remains the Java EE reference implementation
 ●   Available as standalone support offering
 ●   Soon-to-be-published 3.x roadmap
A brief History
                                                                        Ease of
                                                                      development
                                                                         (web)
                                                         Ease of        Java EE 6
                                                       development
                                                                      EJB 3.1
                                                        Java EE 5     JPA 2.0
                                                                      Servlet 3.0
                                        Web Services                  JSF 2.0
                                                                      JAX-RS 1.1
                              Robust      J2EE 1.4
                                                                      CDI 1.0
                             Scalable                                 @Inject
              Enterprise                                              Bean Validat°
              Application    J2EE 1.3
               J2EE 1.2                                               Web Profile
                                                        Annotations
              Servlet                                   EJB 3
              JSP                                       JPA 1.0
              EJB                        WS             WS-*
                                                                        Managed
Project JPE   JMS             CMP        Management     JSF              Bean
              RMI/IIOP        JCA        Deployment


May 1998      Dec 1999      Sept 2001    Nov 2003      May 2006       Q4 2009
              10 specs      13 specs     20 specs      23 specs       28 specs
Java EE 6 – What's New?
●   Several new APIs
●   Web Profile
●   Extensibility & Pluggability
●   Dependency Injection
●   Improvement to many APIs
New and improved specifications
●   EJB 3.1               ●   DI 1.0
●   JPA 2.0               ●   CDI 1.0
●   Servlet 3.0           ●   Managed Beans 1.0
●   JSF 2.0               ●   Interceptors 1.1
●   JAX-RS 1.1            ●   JAX-WS 2.2
●   Connectors 1.6        ●   JSR-109 1.3
●   Bean Validation 1.0   ●   JSP 2.2 / EL 2.2
                          ●   JSR-250 1.1
Demo




   Painless development with
          GlassFish v3
Painless Java EE development !
●   Incremental compile of all Java EE artifacts
●   Auto-deploy of all Java EE and static artifacts
Session Retention
●   Deployment option to maintain stateful
     sessions across re-deployments

$ asadmin redeploy --properties
 keepSessions=true myapp.war

●   Greatly simplifies the
     development paradigm

●   Integrated in IDEs
Introducing
GlassFish v3
Modular and Dynamic
●   Modular : Apache Felix (OSGi)
●   Extensible : HK2
●   Yet very Fast !
Demo




Painless (Java EE 6) development
Yes, Eclipse too !




GlassFish Tools Bundle for Eclipse : http://download.java.net/glassfish/eclipse/
More Painless Development
●   Fast auto-deploy of all Java EE and static
    artifacts
●   Application runner
    ●   java -jar glassfish.jar toto.war
●   Integration with maven 2
    ●   mvn gf:run, gf:start, gf:deploy, ...
●   Containers can be added/removed dynamically
●   Excellent Tools integration
How hard should it be to test
EJBs?


 EJBContainer c = EJBContainer.createEJBContainer();
 Context ic = c.getContext();
 SimpleEjb ejb = (SimpleEjb)
         ic.lookup("java:global/sample/SimpleEjb");
 ejb.sayHello();
How hard should it be to test
EJBs?

                                   New in EJB 3.1
 EJBContainer c = EJBContainer.createEJBContainer();
 Context ic = c.getContext();
 SimpleEjb ejb = (SimpleEjb)
         ic.lookup("java:global/sample/SimpleEjb");
 ejb.sayHello();
                                Portable JNDI name
How hard should it be to test
EJBs?

@Test public void test() {
    EJBContainer c = EJBContainer.createEJBContainer();
    Context ic = c.getContext();
    SimpleEjb ejb = (SimpleEjb)
            ic.lookup("java:global/sample/SimpleEjb");
    ejb.sayHello();
}


                                        Demo
GlassFish Embedded

 org.glassfish.api.embedded.Server server;
 Server.Builder builder = new Server.Builder();
 server = builder.build();
GlassFish Embedded

 org.glassfish.api.embedded.Server server;
 Server.Builder builder = new Server.Builder();
 server = builder.build();
 ContainerBuilder b =
      server.createConfig(ContainerBuilder.Type.web);
 server.addContainer(b);
GlassFish Embedded

 org.glassfish.api.embedded.Server server;
 Server.Builder builder = new Server.Builder();
 server = builder.build();
 ContainerBuilder b =
      server.createConfig(ContainerBuilder.Type.web);
 server.addContainer(b);
 File archive = new File("hello.war");
 server.getDeployer().deploy(archive);



             Same bits, different entry point
             All in one JAR available
GlassFish Embedded
@BeforeClass public static void initContainer() {
    org.glassfish.api.embedded.Server server;
    Server.Builder builder = new Server.Builder();
    server = builder.build();
    ContainerBuilder b =
         server.createConfig(ContainerBuilder.Type.web);
    server.addContainer(b);
    File archive = new File("hello.war");
    server.getDeployer().deploy(archive);
}
@Test public static void pingApplication() {
    ...
}
GlassFish Embedded
public static void main(String[] args) {
    org.glassfish.api.embedded.Server server;
    Server.Builder builder = new Server.Builder();
    server = builder.build();
    ContainerBuilder b =
         server.createConfig(ContainerBuilder.Type.web);
    server.addContainer(b);
    File archive = new File("realApplication.war");
    server.getDeployer().deploy(archive);
}


          Ship app server inside the application
What's the deal with OSGi?
●   GlassFish runs on top of OSGi (Felix by default)
    ●   Also runs unmodified on Knopflerfish and Equinox
    ●   GlassFish ships with 200+ bundles
    ●   Can run without OSGi (Static mode)
    ●   Can use OSGi management tools (CLI or Web)

●   Any OSGi bundle will run in GlassFish v3
    ●   Drop it in glassfish/modules{/autostart}
    ●   Can also asadmin deploy it using --type osgi
Extending GlassFish v3
OSGi-style – an example, a demo and a picture

                                                             ●   OSGi declarative service
                                                             ●   Service-Component
                                                                 entry in the JAR Manifest
                                                             ●   Invoke the service from a
                                                                 servlet using standard
                                                                 @Resource injection
                                                             ●   Never use a GlassFish
                                                                 API !
                                                             ●   No need to chose
                                                                 between OSGi and
                                                                 Java EE
Step by step: http://blogs.sun.com/dochez/entry/glassfish_v3_extensions_part_4
Demo




       Extending GlassFish v3
             OSGi-style
Extending GlassFish v3
 SpringDM – another example, demo and picture
                                                              ●   Extend GlassFish with
                                                                  an unmodified Spring dm
                                                                  container
                                                              ●   Simple Spring bean
                                                                  implementing the service
                                                              ●   Invoke the service from a
                                                                  servlet using standard
                                                                  @Resource injection
                                                              ●   Still no use of a
                                                                  GlassFish API
                                                              ●   Single runtime for both
                                                                  Spring and full Java EE


Step by step: http://blogs.sun.com/dochez/entry/glassfish_v3_extensions_part_4
Update Center
Demo




       GlassFish à la Carte
GlassFish à la carte
●   Unzip 5-MB bootstrap
    ●   Install core IPS packages
GlassFish à la carte
●   Unzip 5-MB bootstrap
    ●   Install core IPS packages
●   Define the repository to use
GlassFish à la carte
●   Unzip 5-MB bootstrap
    ●   Install core IPS packages
●   Define the repository to use
●   Install individual packages
    ●   Start with core glassfish-nucleus package
    ●   Drags dependencies of course
GlassFish à la carte
●   Unzip 5-MB bootstrap
    ●   Install core IPS packages
●   Define the repository to use
●   Install individual packages
    ●   Start with core glassfish-nucleus package
    ●   Drags dependencies of course
●   Install umbrella package (a distro really)
    ●   Enough to run a JAX-RS/EJB31 demo
GlassFish à la carte
●   Unzip 5-MB bootstrap
    ●   Install core IPS packages
●   Define the repository to use
●   Install individual packages
    ●   Start with core glassfish-nucleus package
    ●   Drags dependencies of course
●   Install umbrella package (a distro really)
    ●   Enough to run a JAX-RS/EJB31 demo
●   Create GlassFish server instance
●   Deploy application
GlassFish à la carte
●   Unzip 5-MB bootstrap
    ●   Install core IPS packages
●   Define the repository to use
●   Install individual packages
    ●   Start with core glassfish-nucleus package
    ●   Drags dependencies of course
●   Install umbrella package (a distro really)
    ●   Enough to run a JAX-RS/EJB31 demo
●   Create GlassFish server instance
●   Deploy application
●   Run!
Monitoring and Management
Beyond web console and asadmin

●   Dynamic and non-intrusive monitoring of events
    from any GlassFish runtime classes
    ●
        BTrace integration new!
        –   Portable, dynamic and safe tracing tool for Java
        –   Btrace annotations and API to write scripts
    ●
        Probe Providers defined in java or XML new!
        –   Default providers & roll out your own
    ●
        RESTful interface new!
    ●
        DTrace for end-to-end new!
●   Still exposed via JMX
    ●   jconsole and visualvm as natural clients
RESTful admin
●   JAX-RS/Jersey + Grizzly to provide REST
    interfaces to :
    ●   Configure runtime (via GET, POST, DELETE)
    ●   Invoke commands (restart, stop, deploy, etc..)
    ●   Monitoring (GET only)
●   Available from :
    ●   http://localhost:4848/management/domain
    ●   http://localhost:4848/monitoring/domain
●   Use REST clients as Admin GUI substitute
    ●   Use you favorite glue/scripting language or tool
●   Data offered as either XML, HTML or JSON
●   Extensible
Demo




       RESTful admin
A lot more ...
●   Management and Monitoring
    ●   Dynamic, Btrace, ...
●   Dynamic languages
    ●   Rails, Grails, Django, Scala/Lift...
●   Comet, Atmosphere
    Full support for
                                                            le
●




                                                         ib
    ●   mod_jk
        WebDAV, CGI, SSI
                                                   n s
                                              te
    ●


    Web Services Metro
                                            x
●




●
    ●   .Net 3.5 interop
    OpenMQ
                                        E
GlassFish v3 – Practical
●   Get it from http://glassfish.org
    ●   GlassFish v3 now final !
    ●   Also from http://sun.com/appserver
                  http://www.oracle.com/goto/glassfish
●   Choice !
    ●   Eclipse or NetBeans (or vi...)
    ●   Felix or Equinox

●   Graphical Installer, Zip version
●   Download size starting at 30MB
    ●   Can move from Web profile to full (and vice-versa)
Questions



alexis.mp@sun.com
http://blogs.sun.com/alexismp
twitter: alexismp

More Related Content

What's hot

Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010
Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010
Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010Arun 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
 
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 Java EE 6
What's new in Java EE 6What's new in Java EE 6
What's new in Java EE 6Gal Marder
 
Java EE 6 & GlassFish v3 @ DevNexus
Java EE 6 & GlassFish v3 @ DevNexusJava EE 6 & GlassFish v3 @ DevNexus
Java EE 6 & GlassFish v3 @ DevNexusArun Gupta
 
Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011Agora Group
 
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
 
OSGi-enabled Java EE applications in GlassFish
OSGi-enabled Java EE applications in GlassFishOSGi-enabled Java EE applications in GlassFish
OSGi-enabled Java EE applications in GlassFishArun Gupta
 
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Arun Gupta
 
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010Arun Gupta
 
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
 
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
 
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 v3, OSGi Equinox Felix
GlassFish v3, OSGi Equinox FelixGlassFish v3, OSGi Equinox Felix
GlassFish v3, OSGi Equinox FelixLudovic Champenois
 
GlassFish & Java EE Business Update @ CEJUG
GlassFish & Java EE Business Update @ CEJUGGlassFish & Java EE Business Update @ CEJUG
GlassFish & Java EE Business Update @ CEJUGArun Gupta
 
Running your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the CloudRunning your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the CloudArun Gupta
 
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010JUG Lausanne
 

What's hot (20)

Java 7 workshop
Java 7 workshopJava 7 workshop
Java 7 workshop
 
Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010
Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010
Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010
 
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
 
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 Java EE 6
What's new in Java EE 6What's new in Java EE 6
What's new in Java EE 6
 
Java EE 6 & GlassFish v3 @ DevNexus
Java EE 6 & GlassFish v3 @ DevNexusJava EE 6 & GlassFish v3 @ DevNexus
Java EE 6 & GlassFish v3 @ DevNexus
 
Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011
 
GlassFish v3 at JavaZone 09
GlassFish v3 at JavaZone 09GlassFish v3 at JavaZone 09
GlassFish v3 at JavaZone 09
 
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
 
OSGi-enabled Java EE applications in GlassFish
OSGi-enabled Java EE applications in GlassFishOSGi-enabled Java EE applications in GlassFish
OSGi-enabled Java EE applications in GlassFish
 
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
 
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
 
Whats New In Java Ee 6
Whats New In Java Ee 6Whats New In Java Ee 6
Whats New In 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 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
 
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 v3, OSGi Equinox Felix
GlassFish v3, OSGi Equinox FelixGlassFish v3, OSGi Equinox Felix
GlassFish v3, OSGi Equinox Felix
 
GlassFish & Java EE Business Update @ CEJUG
GlassFish & Java EE Business Update @ CEJUGGlassFish & Java EE Business Update @ CEJUG
GlassFish & Java EE Business Update @ CEJUG
 
Running your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the CloudRunning your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the Cloud
 
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
 

Viewers also liked

Viewers also liked (18)

Annie~ouo
Annie~ouoAnnie~ouo
Annie~ouo
 
It’s beautiful!!!!!!!!!!!!!!!!!!
It’s beautiful!!!!!!!!!!!!!!!!!!It’s beautiful!!!!!!!!!!!!!!!!!!
It’s beautiful!!!!!!!!!!!!!!!!!!
 
Scala by Luc Duponcheel
Scala by Luc DuponcheelScala by Luc Duponcheel
Scala by Luc Duponcheel
 
Tester
TesterTester
Tester
 
Bad tina
Bad tinaBad tina
Bad tina
 
Polly’s introduce
Polly’s introducePolly’s introduce
Polly’s introduce
 
Student julian
Student julianStudent julian
Student julian
 
I live in Taiwan~
I live in Taiwan~I live in Taiwan~
I live in Taiwan~
 
BeJUG - Di With Spring
BeJUG - Di With SpringBeJUG - Di With Spring
BeJUG - Di With Spring
 
I live in taiwan
I live in taiwanI live in taiwan
I live in taiwan
 
Advanced Scrum
Advanced ScrumAdvanced Scrum
Advanced Scrum
 
BeJUG - Spring 3 talk
BeJUG - Spring 3 talkBeJUG - Spring 3 talk
BeJUG - Spring 3 talk
 
Programming 4 kids
Programming 4 kidsProgramming 4 kids
Programming 4 kids
 
BeJUG JAX-RS Event
BeJUG JAX-RS EventBeJUG JAX-RS Event
BeJUG JAX-RS Event
 
BeJug.Org Java Generics
BeJug.Org   Java GenericsBeJug.Org   Java Generics
BeJug.Org Java Generics
 
EJB 3.1 by Bert Ertman
EJB 3.1 by Bert ErtmanEJB 3.1 by Bert Ertman
EJB 3.1 by Bert Ertman
 
Intro To OSGi
Intro To OSGiIntro To OSGi
Intro To OSGi
 
Kick Start Jpa
Kick Start JpaKick Start Jpa
Kick Start Jpa
 

Similar to Glass Fishv3 March2010

Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010
Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010
Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010Arun Gupta
 
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011Arun 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
 
JavaEE 6 and GlassFish v3 at SFJUG
JavaEE 6 and GlassFish v3 at SFJUGJavaEE 6 and GlassFish v3 at SFJUG
JavaEE 6 and GlassFish v3 at SFJUGMarakana Inc.
 
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 : 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
 
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
 
GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011Arun Gupta
 
GlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsGlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsArun 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
 
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
 
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 6 Hands-on Workshop at Dallas Tech Fest 2010
Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010
Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010Arun Gupta
 
GlassFish OSGi Server
GlassFish OSGi ServerGlassFish OSGi Server
GlassFish OSGi ServerArtur Alves
 

Similar to Glass Fishv3 March2010 (20)

Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010
Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010
Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010
 
Java EE 6 and GlassFish portfolio
Java EE 6 and GlassFish portfolioJava EE 6 and GlassFish portfolio
Java EE 6 and GlassFish portfolio
 
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
 
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
 
JavaEE 6 and GlassFish v3 at SFJUG
JavaEE 6 and GlassFish v3 at SFJUGJavaEE 6 and GlassFish v3 at SFJUG
JavaEE 6 and GlassFish v3 at SFJUG
 
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 ...
 
GlassFish and JavaEE, Today and Future
GlassFish and JavaEE, Today and FutureGlassFish and JavaEE, Today and Future
GlassFish and JavaEE, Today and Future
 
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
 
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
 
GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011
 
GlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsGlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 Applications
 
Java EE 6 Aquarium Paris
Java EE 6 Aquarium ParisJava EE 6 Aquarium Paris
Java EE 6 Aquarium Paris
 
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 = 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 EE6 Overview
Java EE6 OverviewJava EE6 Overview
Java EE6 Overview
 
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 E
Java EJava E
Java E
 
Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010
Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010
Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010
 
GlassFish OSGi Server
GlassFish OSGi ServerGlassFish OSGi Server
GlassFish OSGi Server
 
GlassFish Community and future larochelle
GlassFish Community and future larochelleGlassFish Community and future larochelle
GlassFish Community and future larochelle
 

More from Stephan Janssen

Devoxx speaker training (June 27th, 2018)
Devoxx speaker training (June 27th, 2018)Devoxx speaker training (June 27th, 2018)
Devoxx speaker training (June 27th, 2018)Stephan Janssen
 
The new DeVoxxEd websites with JHipster, Angular & Kubernetes
The new DeVoxxEd websites with JHipster, Angular & KubernetesThe new DeVoxxEd websites with JHipster, Angular & Kubernetes
The new DeVoxxEd websites with JHipster, Angular & KubernetesStephan Janssen
 
The new Voxxed websites with JHipster, Angular and GitLab
The new Voxxed websites  with JHipster, Angular and GitLabThe new Voxxed websites  with JHipster, Angular and GitLab
The new Voxxed websites with JHipster, Angular and GitLabStephan Janssen
 
Devoxx2011 timesheet day3-4-5
Devoxx2011 timesheet day3-4-5Devoxx2011 timesheet day3-4-5
Devoxx2011 timesheet day3-4-5Stephan Janssen
 
Devoxx2011 timesheet day1-2
Devoxx2011 timesheet day1-2Devoxx2011 timesheet day1-2
Devoxx2011 timesheet day1-2Stephan Janssen
 

More from Stephan Janssen (6)

Devoxx speaker training (June 27th, 2018)
Devoxx speaker training (June 27th, 2018)Devoxx speaker training (June 27th, 2018)
Devoxx speaker training (June 27th, 2018)
 
The new DeVoxxEd websites with JHipster, Angular & Kubernetes
The new DeVoxxEd websites with JHipster, Angular & KubernetesThe new DeVoxxEd websites with JHipster, Angular & Kubernetes
The new DeVoxxEd websites with JHipster, Angular & Kubernetes
 
The new Voxxed websites with JHipster, Angular and GitLab
The new Voxxed websites  with JHipster, Angular and GitLabThe new Voxxed websites  with JHipster, Angular and GitLab
The new Voxxed websites with JHipster, Angular and GitLab
 
Java, what's next?
Java, what's next?Java, what's next?
Java, what's next?
 
Devoxx2011 timesheet day3-4-5
Devoxx2011 timesheet day3-4-5Devoxx2011 timesheet day3-4-5
Devoxx2011 timesheet day3-4-5
 
Devoxx2011 timesheet day1-2
Devoxx2011 timesheet day1-2Devoxx2011 timesheet day1-2
Devoxx2011 timesheet day1-2
 

Recently uploaded

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 

Recently uploaded (20)

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 

Glass Fishv3 March2010

  • 1. GlassFish v3 The future of Java EE is here Alexis Moussine-Pouchkine GlassFish Team
  • 2. This is no science fiction Java EE 6 and GlassFish v3 shipped th final releases on December 10 2009
  • 4. Some History and Context Tomcat Jasper GlassFish v1 GlassFish v3 Catalina JSTL (Java EE 5) (Java EE 6) Struts GlassFish v2 Crimson Launch v2.1 v2.1.1 XSLTC Xalan Xerces JAXB Jan JAX-RPC June May Sept. Nov. Dec. JSF 2005 2006 2007 2008 2009 2009 (you are here)
  • 5. GlassFish ● A Community ● Users, Partners, Testers, Developers ● Started in 2005 on java.net ● Sub-projects – Jersey (JAX-RS), Metro (JAX-WS), Grizzly (nio), Atmosphere (Comet), OpenMQ (JMS), and scripting: jRoR, Grails, and now Django (jython) ● Application Server ● Enterprise Quality and Open Source ● Java EE 5 / 6 Reference Implementation ● Full Commercial Support from Sun/Oracle
  • 6. Oracle GlassFish Server ● GlassFish development continues (in the open!) ● Support contracts thru 2017 + unlimited ● Remains the Java EE reference implementation ● Available as standalone support offering ● Soon-to-be-published 3.x roadmap
  • 7. A brief History Ease of development (web) Ease of Java EE 6 development EJB 3.1 Java EE 5 JPA 2.0 Servlet 3.0 Web Services JSF 2.0 JAX-RS 1.1 Robust J2EE 1.4 CDI 1.0 Scalable @Inject Enterprise Bean Validat° Application J2EE 1.3 J2EE 1.2 Web Profile Annotations Servlet EJB 3 JSP JPA 1.0 EJB WS WS-* Managed Project JPE JMS CMP Management JSF Bean RMI/IIOP JCA Deployment May 1998 Dec 1999 Sept 2001 Nov 2003 May 2006 Q4 2009 10 specs 13 specs 20 specs 23 specs 28 specs
  • 8. Java EE 6 – What's New? ● Several new APIs ● Web Profile ● Extensibility & Pluggability ● Dependency Injection ● Improvement to many APIs
  • 9. New and improved specifications ● EJB 3.1 ● DI 1.0 ● JPA 2.0 ● CDI 1.0 ● Servlet 3.0 ● Managed Beans 1.0 ● JSF 2.0 ● Interceptors 1.1 ● JAX-RS 1.1 ● JAX-WS 2.2 ● Connectors 1.6 ● JSR-109 1.3 ● Bean Validation 1.0 ● JSP 2.2 / EL 2.2 ● JSR-250 1.1
  • 10. Demo Painless development with GlassFish v3
  • 11. Painless Java EE development ! ● Incremental compile of all Java EE artifacts ● Auto-deploy of all Java EE and static artifacts
  • 12. Session Retention ● Deployment option to maintain stateful sessions across re-deployments $ asadmin redeploy --properties keepSessions=true myapp.war ● Greatly simplifies the development paradigm ● Integrated in IDEs
  • 14. Modular and Dynamic ● Modular : Apache Felix (OSGi) ● Extensible : HK2 ● Yet very Fast !
  • 15.
  • 16. Demo Painless (Java EE 6) development
  • 17. Yes, Eclipse too ! GlassFish Tools Bundle for Eclipse : http://download.java.net/glassfish/eclipse/
  • 18. More Painless Development ● Fast auto-deploy of all Java EE and static artifacts ● Application runner ● java -jar glassfish.jar toto.war ● Integration with maven 2 ● mvn gf:run, gf:start, gf:deploy, ... ● Containers can be added/removed dynamically ● Excellent Tools integration
  • 19. How hard should it be to test EJBs? EJBContainer c = EJBContainer.createEJBContainer(); Context ic = c.getContext(); SimpleEjb ejb = (SimpleEjb) ic.lookup("java:global/sample/SimpleEjb"); ejb.sayHello();
  • 20. How hard should it be to test EJBs? New in EJB 3.1 EJBContainer c = EJBContainer.createEJBContainer(); Context ic = c.getContext(); SimpleEjb ejb = (SimpleEjb) ic.lookup("java:global/sample/SimpleEjb"); ejb.sayHello(); Portable JNDI name
  • 21. How hard should it be to test EJBs? @Test public void test() { EJBContainer c = EJBContainer.createEJBContainer(); Context ic = c.getContext(); SimpleEjb ejb = (SimpleEjb) ic.lookup("java:global/sample/SimpleEjb"); ejb.sayHello(); } Demo
  • 22. GlassFish Embedded org.glassfish.api.embedded.Server server; Server.Builder builder = new Server.Builder(); server = builder.build();
  • 23. GlassFish Embedded org.glassfish.api.embedded.Server server; Server.Builder builder = new Server.Builder(); server = builder.build(); ContainerBuilder b = server.createConfig(ContainerBuilder.Type.web); server.addContainer(b);
  • 24. GlassFish Embedded org.glassfish.api.embedded.Server server; Server.Builder builder = new Server.Builder(); server = builder.build(); ContainerBuilder b = server.createConfig(ContainerBuilder.Type.web); server.addContainer(b); File archive = new File("hello.war"); server.getDeployer().deploy(archive); Same bits, different entry point All in one JAR available
  • 25. GlassFish Embedded @BeforeClass public static void initContainer() { org.glassfish.api.embedded.Server server; Server.Builder builder = new Server.Builder(); server = builder.build(); ContainerBuilder b = server.createConfig(ContainerBuilder.Type.web); server.addContainer(b); File archive = new File("hello.war"); server.getDeployer().deploy(archive); } @Test public static void pingApplication() { ... }
  • 26. GlassFish Embedded public static void main(String[] args) { org.glassfish.api.embedded.Server server; Server.Builder builder = new Server.Builder(); server = builder.build(); ContainerBuilder b = server.createConfig(ContainerBuilder.Type.web); server.addContainer(b); File archive = new File("realApplication.war"); server.getDeployer().deploy(archive); } Ship app server inside the application
  • 27. What's the deal with OSGi? ● GlassFish runs on top of OSGi (Felix by default) ● Also runs unmodified on Knopflerfish and Equinox ● GlassFish ships with 200+ bundles ● Can run without OSGi (Static mode) ● Can use OSGi management tools (CLI or Web) ● Any OSGi bundle will run in GlassFish v3 ● Drop it in glassfish/modules{/autostart} ● Can also asadmin deploy it using --type osgi
  • 28. Extending GlassFish v3 OSGi-style – an example, a demo and a picture ● OSGi declarative service ● Service-Component entry in the JAR Manifest ● Invoke the service from a servlet using standard @Resource injection ● Never use a GlassFish API ! ● No need to chose between OSGi and Java EE Step by step: http://blogs.sun.com/dochez/entry/glassfish_v3_extensions_part_4
  • 29. Demo Extending GlassFish v3 OSGi-style
  • 30. Extending GlassFish v3 SpringDM – another example, demo and picture ● Extend GlassFish with an unmodified Spring dm container ● Simple Spring bean implementing the service ● Invoke the service from a servlet using standard @Resource injection ● Still no use of a GlassFish API ● Single runtime for both Spring and full Java EE Step by step: http://blogs.sun.com/dochez/entry/glassfish_v3_extensions_part_4
  • 32. Demo GlassFish à la Carte
  • 33. GlassFish à la carte ● Unzip 5-MB bootstrap ● Install core IPS packages
  • 34. GlassFish à la carte ● Unzip 5-MB bootstrap ● Install core IPS packages ● Define the repository to use
  • 35. GlassFish à la carte ● Unzip 5-MB bootstrap ● Install core IPS packages ● Define the repository to use ● Install individual packages ● Start with core glassfish-nucleus package ● Drags dependencies of course
  • 36. GlassFish à la carte ● Unzip 5-MB bootstrap ● Install core IPS packages ● Define the repository to use ● Install individual packages ● Start with core glassfish-nucleus package ● Drags dependencies of course ● Install umbrella package (a distro really) ● Enough to run a JAX-RS/EJB31 demo
  • 37. GlassFish à la carte ● Unzip 5-MB bootstrap ● Install core IPS packages ● Define the repository to use ● Install individual packages ● Start with core glassfish-nucleus package ● Drags dependencies of course ● Install umbrella package (a distro really) ● Enough to run a JAX-RS/EJB31 demo ● Create GlassFish server instance ● Deploy application
  • 38. GlassFish à la carte ● Unzip 5-MB bootstrap ● Install core IPS packages ● Define the repository to use ● Install individual packages ● Start with core glassfish-nucleus package ● Drags dependencies of course ● Install umbrella package (a distro really) ● Enough to run a JAX-RS/EJB31 demo ● Create GlassFish server instance ● Deploy application ● Run!
  • 39. Monitoring and Management Beyond web console and asadmin ● Dynamic and non-intrusive monitoring of events from any GlassFish runtime classes ● BTrace integration new! – Portable, dynamic and safe tracing tool for Java – Btrace annotations and API to write scripts ● Probe Providers defined in java or XML new! – Default providers & roll out your own ● RESTful interface new! ● DTrace for end-to-end new! ● Still exposed via JMX ● jconsole and visualvm as natural clients
  • 40. RESTful admin ● JAX-RS/Jersey + Grizzly to provide REST interfaces to : ● Configure runtime (via GET, POST, DELETE) ● Invoke commands (restart, stop, deploy, etc..) ● Monitoring (GET only) ● Available from : ● http://localhost:4848/management/domain ● http://localhost:4848/monitoring/domain ● Use REST clients as Admin GUI substitute ● Use you favorite glue/scripting language or tool ● Data offered as either XML, HTML or JSON ● Extensible
  • 41. Demo RESTful admin
  • 42. A lot more ... ● Management and Monitoring ● Dynamic, Btrace, ... ● Dynamic languages ● Rails, Grails, Django, Scala/Lift... ● Comet, Atmosphere Full support for le ● ib ● mod_jk WebDAV, CGI, SSI n s te ● Web Services Metro x ● ● ● .Net 3.5 interop OpenMQ E
  • 43. GlassFish v3 – Practical ● Get it from http://glassfish.org ● GlassFish v3 now final ! ● Also from http://sun.com/appserver http://www.oracle.com/goto/glassfish ● Choice ! ● Eclipse or NetBeans (or vi...) ● Felix or Equinox ● Graphical Installer, Zip version ● Download size starting at 30MB ● Can move from Web profile to full (and vice-versa)