SlideShare a Scribd company logo
1 of 41
Download to read offline
Java EE 6, GlassFish v3
and Eclipse...

 Ludovic Champenois, Sun Microsystems, Inc.
●

●Philippe Ombredanne, nexB Inc. and EasyEclipse.org

●




                                                      1
Agenda
• Java EE 6
• GlassFish v3
• Eclipse GlassFish Support




                              2
Overall Goal For Java EE 6

• Make the platform:
      Easier to use
  >
      More flexible, adaptable
  >
      Easier to learn
  >
      Easier to evolve going forward
  >




                                       3
Timeline                                                                Profiles

                                                                         Java EE 6
                                                                         EJB Lite
                                                         Ease of         Restful WS
                                                       Development       Web Beans
                                                                         Extensibility
                                                       Java EE 5
                                          Web          Ease of
                                                       Development
                                         Service
                                                       Annotations
                                            s
                                        J2EE 1.4       EJB 3.0
                          `            Web Services,   Persistence API
                          Robustness   Management,     New and
                                       Deployment,     Updated
                          J2EE 1.3
           Enterprise                  Async.          Web Services
                      CMP,
              Java                     Connector
            Platform
                    Connector                                            Java EE 6
          J2EE 1.2 Architecture
                                                                         Web Profile
          Servlet, JSP,
           EJB, JMS
 JPE       RMI/IIOP
Project


                                                                                         4
Major new Features in Java EE 6

• Profiles
  > targeted bundles of technologies
• Pruning
  > Make some technologies optional
    – CMP, JAX-RPC...

• Extensibility
  > Embrace open source libraries and frameworks
  > Zero-configuration, drag-and-drop for web
    frameworks, web.xml fragments
• Ease of development
                                                   5
Ease Of Development

    Ongoing concern
•
    This time focus is the web tier
•
    Lots of opportunities in other areas, e.g. EJB
•
    General principles:
•
        Annotation-based programming model
    >
        Traditional API for advanced users
    >
        Reduce or eliminate need for deployment descriptors
    >
        Get technologies to work together well
    >


                                                              6
Servlet 3.0 Highlights

• Annotation-based programming model
  > @WebServlet @ServletFilter etc.
• Modular web.xml descriptor:
  > WEB-INF/lib/mylibrary.jar → META-INF/web-fragment.xml
• Annotations and web fragments are merged
• Programmatic API for dynamic registration of servlets
• Async APIs
  > Useful for Comet, chat rooms, long waits

                                                       7
EJB 3.1 Highlights
• Singleton beans: @Singleton
• No interface view: one source file per bean
• Calendar timers:
  @Schedule(dayOfWeek=“Mon,Wed”)
  > Non-persistent timers (tied to a JVM)
• Async business methods: @Asynchronous
  > Methods must return void or a Future<T>
• Global JNDI names for beans
  > java:global/(app)/(module)/(bean)#(interface)

                                                    8
Session Bean with
Local Business Interface...OLD...

    HelloBean Client       <<interface>
                          com.acme.Hello

                          String sayHello()
   @EJB
   private Hello h;

   ...

   h.sayHello();
                          com.acme.HelloBean


                           public String
                           sayHello()
                           { ... }



                                               9
Optional Local Business Interfaces

• Sometimes local business interface isn't needed
• Better to completely remove interface from
  developer's view than to generate it
• Result : “no-interface” view
  > Just a bean class
  > public bean class methods exposed to client
  > Same behavior and client programming model
    as Local view
     – Client acquires an EJB component reference
       instead of calling new()

                                                    10
Session Bean with “No-interface” View

 @Stateless
 public class HelloBean {

     public String sayHello(String msg) {
         return “Hello “ + msg;
     }

 }




                                            11
No-interface View Client

 @EJB HelloBean h;

 ...

 h.sayHello(“bob”);




                           12
TM
Web/EJB Application in Java                  EE Platform 5

           foo.ear                           foo.ear

                                    lib/foo_common.jar
  foo_web.war
                                    com/acme/Foo.class
  WEB-INF/web.xml
  WEB-INF/classes/
   com/acme/FooServlet.class
                                    foo_web.war
  WEB-INF/classes
   com/acme/Foo.class
                               OR   WEB-INF/web.xml
                                    WEB-INF/classes/
                                     com/acme/FooServlet.class
  foo_ejb.jar
  com/acme/FooBean.class            foo_ejb.jar
  com/acme/Foo.class
                                    com/acme/FooBean.class



                                                                 13
TM
Web/EJB Application in Java                   EE Platform 6


                    foo.war

            WEB-INF/classes/
             com/acme/FooServlet.class

            WEB-INF/classes/
             com/acme/FooBean.class




                                                          14
EJB “Lite”

• Small subset of EJB 3.1 API for use in Web Profile
• Broaden the availability of EJB technology
  > Without losing portability
• Same exact Lite application can be deployed to Web
  Profile and Full Profile
  > Thanks to simplified .war packaging
• Open issue : whether Web Profile will require EJB
  Lite


                                                       15
“Lite” vs. Full Functionality
Lite                          Full = Lite + the following:
• Local Session Beans         • Message Driven Beans
• Annotations / ejb-jar.xml   • EJB Web Service
                                Endpoints
• CMT / BMT
                              • RMI-IIOP
• Declarative Security
                                Interoperability
• Interceptors
                              • 2.x / 3.x Remote view
                              • 2.x Local view
• (Also requires JPA 2.0
                              • Timer Service
  API / JTA 1.1 API )
                              • CMP / BMP                    16
EJB Component Testing

• It's too hard to test EJB components,
  especially the Local view
  > Forced to go through Remote facade or Web tier
  > Separate JVM™ instances needed for server and client
• Support for running in Java SE exists, but...
  > Not present in all implementations
  > No standard API for bootstrapping, component discovery,
    shutdown etc.



                                                              17
New Features

    Singletons
•
    Application startup / shutdown callbacks
•
    Calendar-based timer expressions
•
    Automatic timer creation
•
    Simple Asynchrony
•




                                               18
Singletons

• New session bean component type
  > One singleton bean instance per application per JVM
  > Provides easy sharing of state within application
  > Designed for instance-level concurrent access
• Lots in common with stateless / stateful beans
      Client views (No-interface , Local, Remote, Web Service)
  >
      CMT / BMT
  >
      Container services: timer service, injection, etc.
  >
      Method authorization
  >


                                                                 19
Startup / Shutdown Callbacks

 @Singleton
 @Startup
 public class StartupBean {

   @PostConstruct
   private void onStartup() {
     ...
   }

   @PreDestroy
   private void onShutdown() {
     ...
   }



                                 20
Timer Service Features

    Calendar-based timeout expressions
•
    Automatic timer creation
•
    Non-persistent timers
•
    “Cron”-like semantics with improved syntax
•
    Named attributes
•
    > second, minute, hour ( default = “0” )
    > dayOfMonth, month, dayOfWeek, year (default = “*”)



                                                           21
Calendar Based Timeouts

// The last Thursday in November at 2 p.m.
(hour=”14”, dayOfMonth=”Last Thu”, month=”Nov”)
// Every weekday morning at 3:15 a.m.
(minute=”15”, hour=”3”, dayOfWeek=”Mon-Fri”)
// Every five minutes
(minute=”*/5”, hour=”*”)
For ex:
// Callback the 1st of each month at 8 a.m.


  @Schedule(hour=”8”, dayOfMonth=”1”)
  void sendMonthlyBankStatements() {...}
                                                  22
Java EE 6: Summary

• Smaller, more agile platform: profiles, pruning,
  extensibility
• Ease of development still a major focus area
• Component specs ready for public review
• Open source implementation in GlassFish v3




                                                     23
Agenda

• Java EE 6
• GlassFish v3
• Eclipse Glassfish Support




                              24
GlassFish v3
• Java EE 5 = GlassFish v2
• GlassFish v2.1: better, faster, more scalable
• GlassFish v3 Prelude
  > Web Tier Only, OSGi Based, some EE 6 previews
  > EclipseLink Bundled
  > Multiple Containers (jRuby, Groovy, Phobos)
• GlassFish v3 = Java EE 6
  > Work in Progress
  > OSGi Based
     – Equinox And Felix
  > All these Application Servers have Eclipse Integration
                                                             25
GlassFish v3




• Attend next talk this afternoon about GlassFish and
  OSGi




                                                        26
Agenda

• Java EE 6
• GlassFish v3
• Eclipse GlassFish Support




                              27
New: GlassFish + Eclipse Bundle




                                  28
GlassFish Tools Bundle for Eclipse
• http://download.java.net/glassfish/eclipse
  > V0.9.9 today
• Or Standalone Plugin
  > http://glassfishplugins.dev.java.net




                                               29
GlassFish Tools Bundle For Eclipse
                                             Eclipse
               Eclipse Java EE IDE            User
                                            Workspace:
                                          • v2.1 domain
            GlassFish v2.1, v3prelude     • v3 domain
                JDK1.6 (optional)         • JavaDB config
                                          • Java EE projects
                                          • User settings
              GlassFish Eclipse Plugins

Installer
                Registration
                                                               30
GlassFish Tools Bundle For Eclipse Key
Features
• Out of the box Installer with all Java EE Eclipse Standard
  Features and JDK and GlassFish servers
• GlassFish Registration Wizard
• GlassFish v2.1 & v3 Prelude automatic domain creation/
  configuration
• JavaDB configuration, JDBC resource wizard
• Start, Stop, Deploy, undeploy, Debug(JSP/Java) (v2, v3)
• Deploy on Save: Default for v3
• HTTP Monitoring preconfigured
                                                          31
GlassFish Tools Bundle For Eclipse Key
Features
  All Sun DTDs registered for validation/code completion
•
  All Java EE APIs registered for code completion/JavaDoc
•
  GlassFish Log integrated into Eclipse IDE console
•
  GlassFish Update Center & Admin Console Integration
•
  All v2, v3p DocBooks integrated in Help (no need for
•
  Internet)
• GlassFish Web Properties in Help Menu (The Aquarium,
  Support,...)

                                                      32
GlassFish Tools Bundle For Eclipse Key
Features
• Update Centers Integration
• Eclipse Update Center for Eclipse bits and the
  GlassFish Plugin
• In future releases:
   > Metro JAX-WS Eclipse Plugin
   > JavaFX ,Maven Plugin
   > WebSynergy ,GlassFish ESB
   > Better MySQL integration


                                                   33
Size of GlassFish Tools Bundle for Eclipse
 Components in the Installer          Size (total=375Mb)

       Eclipse                        164Mb
   ●



       GlassFish v2.1                 87Mb
   ●



       GlassFish v3 Prelude           29Mb
   ●



       GlassFish Plugin for Eclipse   10Mb (includes javadoc and
   ●

                                      help books)
       Registration/Configuration     0.5Mb
   ●



       JDK 1.6u12                     85Mb
   ●




• JBoss Dev Studio 2.0 RC2 +EAP = 617Mb (No JDK)
• Oracle Workshop for WebLogic 10.2 = 748Mb (No JDK)
                                                                   34
Collaboration work with EasyEclipse
• Re-use the open source build loop for distros
  > Installers on MacOS X, Windows, Linux
  > Next is OpenSolaris
• Help in assembling a complete IDE
  > Using Eclipse.org, Glassfish and community plug-ins
• Why doing a distros and installers?
  > Batteries included approach
  > Yet minimalist essential set of features to get going
  > http://blog.hantsuki.org/2009/03/20/eclipse-and-installers/
• Tight work with core WTP and JPA committers
  > Bug fixing in P2 compatibility

                                                                  35
GlassFish Tools Bundle for Eclipse




                                     36
GlassFish Tools Bundle for Eclipse




                                     37
GlassFish Tools Bundle for Eclipse




                                     38
GlassFish Tools Bundle for Eclipse




                                     39
GlassFish Tools Bundle for Eclipse




                                     40
For More Information

    http://download.java.net/glassfish/eclipse
•
    http://glassfishplugins.dev.java.net
•
    Blog :http://weblogs.java.net/blog/ludo/
•
    Reference Implementation : GlassFish project v3
•
    > http://glassfish.dev.java.net




                                                      41

More Related Content

What's hot

Ajax In Enterprise Portals
Ajax In Enterprise PortalsAjax In Enterprise Portals
Ajax In Enterprise PortalsWesley Hales
 
Web Application Architecture
Web Application ArchitectureWeb Application Architecture
Web Application ArchitectureAbhishek Chikane
 
If You Know JSF, You Know Portals and Portlets
If You Know JSF, You Know Portals and PortletsIf You Know JSF, You Know Portals and Portlets
If You Know JSF, You Know Portals and PortletsWesley Hales
 
Java EE7 Demystified
Java EE7 DemystifiedJava EE7 Demystified
Java EE7 DemystifiedAnkara JUG
 
Java EE7 in action
Java EE7 in actionJava EE7 in action
Java EE7 in actionAnkara JUG
 
Enterprise Java Beans( E)
Enterprise  Java  Beans( E)Enterprise  Java  Beans( E)
Enterprise Java Beans( E)vikram singh
 
Introduction To J Boss Seam
Introduction To J Boss SeamIntroduction To J Boss Seam
Introduction To J Boss Seamashishkulkarni
 
Ankara JUG Ağustos 2013 - Oracle ADF
Ankara JUG Ağustos 2013 - Oracle ADFAnkara JUG Ağustos 2013 - Oracle ADF
Ankara JUG Ağustos 2013 - Oracle ADFAnkara JUG
 
IBM IMPACT 2009 Conference Session 2024 - WebSphere sMash Integration, PHP wi...
IBM IMPACT 2009 Conference Session 2024 - WebSphere sMash Integration, PHP wi...IBM IMPACT 2009 Conference Session 2024 - WebSphere sMash Integration, PHP wi...
IBM IMPACT 2009 Conference Session 2024 - WebSphere sMash Integration, PHP wi...Robert Nicholson
 
What Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouWhat Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouJohn Pape
 
Confoo2013 make your java-app rest enabled
Confoo2013 make your java-app rest enabledConfoo2013 make your java-app rest enabled
Confoo2013 make your java-app rest enabledAnthony Dahanne
 
Servlet Tutorial | JSP Tutorial | Advanced Java Tutorial | Java Certification...
Servlet Tutorial | JSP Tutorial | Advanced Java Tutorial | Java Certification...Servlet Tutorial | JSP Tutorial | Advanced Java Tutorial | Java Certification...
Servlet Tutorial | JSP Tutorial | Advanced Java Tutorial | Java Certification...Edureka!
 
Applet Returns: The new generation of Java Plug-ins
Applet Returns: The new generation of Java Plug-insApplet Returns: The new generation of Java Plug-ins
Applet Returns: The new generation of Java Plug-insSerge Rehem
 
Php phalcon - Another approach to develop website - Techcamp Saigon 2014
Php phalcon - Another approach to develop website - Techcamp Saigon 2014Php phalcon - Another approach to develop website - Techcamp Saigon 2014
Php phalcon - Another approach to develop website - Techcamp Saigon 2014Minh Quang Trần
 
HowTo Build an OSGI EJB3 Server
HowTo Build an OSGI EJB3 ServerHowTo Build an OSGI EJB3 Server
HowTo Build an OSGI EJB3 Serverekkehard gentz
 
[Challenge:Future] Chocoholic
[Challenge:Future] Chocoholic [Challenge:Future] Chocoholic
[Challenge:Future] Chocoholic Challenge:Future
 

What's hot (20)

Ajax In Enterprise Portals
Ajax In Enterprise PortalsAjax In Enterprise Portals
Ajax In Enterprise Portals
 
Web Application Architecture
Web Application ArchitectureWeb Application Architecture
Web Application Architecture
 
If You Know JSF, You Know Portals and Portlets
If You Know JSF, You Know Portals and PortletsIf You Know JSF, You Know Portals and Portlets
If You Know JSF, You Know Portals and Portlets
 
Java EE7 Demystified
Java EE7 DemystifiedJava EE7 Demystified
Java EE7 Demystified
 
Java EE7 in action
Java EE7 in actionJava EE7 in action
Java EE7 in action
 
Enterprise Java Beans( E)
Enterprise  Java  Beans( E)Enterprise  Java  Beans( E)
Enterprise Java Beans( E)
 
Introduction To J Boss Seam
Introduction To J Boss SeamIntroduction To J Boss Seam
Introduction To J Boss Seam
 
Ankara JUG Ağustos 2013 - Oracle ADF
Ankara JUG Ağustos 2013 - Oracle ADFAnkara JUG Ağustos 2013 - Oracle ADF
Ankara JUG Ağustos 2013 - Oracle ADF
 
IBM IMPACT 2009 Conference Session 2024 - WebSphere sMash Integration, PHP wi...
IBM IMPACT 2009 Conference Session 2024 - WebSphere sMash Integration, PHP wi...IBM IMPACT 2009 Conference Session 2024 - WebSphere sMash Integration, PHP wi...
IBM IMPACT 2009 Conference Session 2024 - WebSphere sMash Integration, PHP wi...
 
What Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouWhat Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell You
 
Confoo2013 make your java-app rest enabled
Confoo2013 make your java-app rest enabledConfoo2013 make your java-app rest enabled
Confoo2013 make your java-app rest enabled
 
Servlet Tutorial | JSP Tutorial | Advanced Java Tutorial | Java Certification...
Servlet Tutorial | JSP Tutorial | Advanced Java Tutorial | Java Certification...Servlet Tutorial | JSP Tutorial | Advanced Java Tutorial | Java Certification...
Servlet Tutorial | JSP Tutorial | Advanced Java Tutorial | Java Certification...
 
Project Zero JavaOne 2008
Project Zero JavaOne 2008Project Zero JavaOne 2008
Project Zero JavaOne 2008
 
JBoss AS / EAP and Java EE6
JBoss AS / EAP and Java EE6JBoss AS / EAP and Java EE6
JBoss AS / EAP and Java EE6
 
Applet Returns: The new generation of Java Plug-ins
Applet Returns: The new generation of Java Plug-insApplet Returns: The new generation of Java Plug-ins
Applet Returns: The new generation of Java Plug-ins
 
Ejb notes
Ejb notesEjb notes
Ejb notes
 
Php phalcon - Another approach to develop website - Techcamp Saigon 2014
Php phalcon - Another approach to develop website - Techcamp Saigon 2014Php phalcon - Another approach to develop website - Techcamp Saigon 2014
Php phalcon - Another approach to develop website - Techcamp Saigon 2014
 
JBoss AS7 Reloaded
JBoss AS7 ReloadedJBoss AS7 Reloaded
JBoss AS7 Reloaded
 
HowTo Build an OSGI EJB3 Server
HowTo Build an OSGI EJB3 ServerHowTo Build an OSGI EJB3 Server
HowTo Build an OSGI EJB3 Server
 
[Challenge:Future] Chocoholic
[Challenge:Future] Chocoholic [Challenge:Future] Chocoholic
[Challenge:Future] Chocoholic
 

Similar to GlassFish Tool Bundle for Eclipse

New Features of Java7 SE
New Features of Java7 SENew Features of Java7 SE
New Features of Java7 SEdogangoko
 
Java Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewJava Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewEugene Bogaart
 
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
 
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
 
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
 
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
 
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
 
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
 
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.
 
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
 
Java EE 6 & GlassFish v3 @ DevNexus
Java EE 6 & GlassFish v3 @ DevNexusJava EE 6 & GlassFish v3 @ DevNexus
Java EE 6 & GlassFish v3 @ DevNexusArun 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 & GlassFish 3
Java EE 6 & GlassFish 3Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3Arun Gupta
 

Similar to GlassFish Tool Bundle for Eclipse (20)

Java EE 6 Aquarium Paris
Java EE 6 Aquarium ParisJava EE 6 Aquarium Paris
Java EE 6 Aquarium Paris
 
Java EE6 Overview
Java EE6 OverviewJava EE6 Overview
Java EE6 Overview
 
EJB 3.1 and GlassFish v3 Prelude
EJB 3.1 and GlassFish v3 PreludeEJB 3.1 and GlassFish v3 Prelude
EJB 3.1 and GlassFish v3 Prelude
 
New Features of Java7 SE
New Features of Java7 SENew Features of Java7 SE
New Features of Java7 SE
 
Java Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewJava Enterprise Edition 6 Overview
Java Enterprise Edition 6 Overview
 
Java EE 6
Java EE 6Java EE 6
Java EE 6
 
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 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 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 : 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
 
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
 
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
 
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
 
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
 
Glass Fishv3 March2010
Glass Fishv3 March2010Glass Fishv3 March2010
Glass Fishv3 March2010
 
Java EE 6 & GlassFish v3 @ DevNexus
Java EE 6 & GlassFish v3 @ DevNexusJava EE 6 & GlassFish v3 @ DevNexus
Java EE 6 & GlassFish v3 @ DevNexus
 
Understanding the nuts & bolts of Java EE 6
Understanding the nuts & bolts of Java EE 6Understanding the nuts & bolts of Java EE 6
Understanding the nuts & bolts of Java EE 6
 
Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3
 

More from Ludovic Champenois

JAX-RS Creating RESTFul services
JAX-RS Creating RESTFul servicesJAX-RS Creating RESTFul services
JAX-RS Creating RESTFul servicesLudovic Champenois
 
Java EE 6, Eclipse, GlassFish @EclipseCon 2010
Java EE 6, Eclipse, GlassFish @EclipseCon 2010Java EE 6, Eclipse, GlassFish @EclipseCon 2010
Java EE 6, Eclipse, GlassFish @EclipseCon 2010Ludovic Champenois
 
Java EE 6, Eclipse @ EclipseCon
Java EE 6, Eclipse @ EclipseConJava EE 6, Eclipse @ EclipseCon
Java EE 6, Eclipse @ EclipseConLudovic Champenois
 
GlassFish v3, OSGi Equinox Felix
GlassFish v3, OSGi Equinox FelixGlassFish v3, OSGi Equinox Felix
GlassFish v3, OSGi Equinox FelixLudovic Champenois
 

More from Ludovic Champenois (6)

JAX-RS Creating RESTFul services
JAX-RS Creating RESTFul servicesJAX-RS Creating RESTFul services
JAX-RS Creating RESTFul services
 
JavaEE 6 tools coverage
JavaEE 6 tools coverageJavaEE 6 tools coverage
JavaEE 6 tools coverage
 
S313431 JPA 2.0 Overview
S313431 JPA 2.0 OverviewS313431 JPA 2.0 Overview
S313431 JPA 2.0 Overview
 
Java EE 6, Eclipse, GlassFish @EclipseCon 2010
Java EE 6, Eclipse, GlassFish @EclipseCon 2010Java EE 6, Eclipse, GlassFish @EclipseCon 2010
Java EE 6, Eclipse, GlassFish @EclipseCon 2010
 
Java EE 6, Eclipse @ EclipseCon
Java EE 6, Eclipse @ EclipseConJava EE 6, Eclipse @ EclipseCon
Java EE 6, Eclipse @ EclipseCon
 
GlassFish v3, OSGi Equinox Felix
GlassFish v3, OSGi Equinox FelixGlassFish v3, OSGi Equinox Felix
GlassFish v3, OSGi Equinox Felix
 

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
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
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
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 

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.
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
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
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 

GlassFish Tool Bundle for Eclipse

  • 1. Java EE 6, GlassFish v3 and Eclipse... Ludovic Champenois, Sun Microsystems, Inc. ● ●Philippe Ombredanne, nexB Inc. and EasyEclipse.org ● 1
  • 2. Agenda • Java EE 6 • GlassFish v3 • Eclipse GlassFish Support 2
  • 3. Overall Goal For Java EE 6 • Make the platform: Easier to use > More flexible, adaptable > Easier to learn > Easier to evolve going forward > 3
  • 4. Timeline Profiles Java EE 6 EJB Lite Ease of Restful WS Development Web Beans Extensibility Java EE 5 Web Ease of Development Service Annotations s J2EE 1.4 EJB 3.0 ` Web Services, Persistence API Robustness Management, New and Deployment, Updated J2EE 1.3 Enterprise Async. Web Services CMP, Java Connector Platform Connector Java EE 6 J2EE 1.2 Architecture Web Profile Servlet, JSP, EJB, JMS JPE RMI/IIOP Project 4
  • 5. Major new Features in Java EE 6 • Profiles > targeted bundles of technologies • Pruning > Make some technologies optional – CMP, JAX-RPC... • Extensibility > Embrace open source libraries and frameworks > Zero-configuration, drag-and-drop for web frameworks, web.xml fragments • Ease of development 5
  • 6. Ease Of Development Ongoing concern • This time focus is the web tier • Lots of opportunities in other areas, e.g. EJB • General principles: • Annotation-based programming model > Traditional API for advanced users > Reduce or eliminate need for deployment descriptors > Get technologies to work together well > 6
  • 7. Servlet 3.0 Highlights • Annotation-based programming model > @WebServlet @ServletFilter etc. • Modular web.xml descriptor: > WEB-INF/lib/mylibrary.jar → META-INF/web-fragment.xml • Annotations and web fragments are merged • Programmatic API for dynamic registration of servlets • Async APIs > Useful for Comet, chat rooms, long waits 7
  • 8. EJB 3.1 Highlights • Singleton beans: @Singleton • No interface view: one source file per bean • Calendar timers: @Schedule(dayOfWeek=“Mon,Wed”) > Non-persistent timers (tied to a JVM) • Async business methods: @Asynchronous > Methods must return void or a Future<T> • Global JNDI names for beans > java:global/(app)/(module)/(bean)#(interface) 8
  • 9. Session Bean with Local Business Interface...OLD... HelloBean Client <<interface> com.acme.Hello String sayHello() @EJB private Hello h; ... h.sayHello(); com.acme.HelloBean public String sayHello() { ... } 9
  • 10. Optional Local Business Interfaces • Sometimes local business interface isn't needed • Better to completely remove interface from developer's view than to generate it • Result : “no-interface” view > Just a bean class > public bean class methods exposed to client > Same behavior and client programming model as Local view – Client acquires an EJB component reference instead of calling new() 10
  • 11. Session Bean with “No-interface” View @Stateless public class HelloBean { public String sayHello(String msg) { return “Hello “ + msg; } } 11
  • 12. No-interface View Client @EJB HelloBean h; ... h.sayHello(“bob”); 12
  • 13. TM Web/EJB Application in Java EE Platform 5 foo.ear foo.ear lib/foo_common.jar foo_web.war com/acme/Foo.class WEB-INF/web.xml WEB-INF/classes/ com/acme/FooServlet.class foo_web.war WEB-INF/classes com/acme/Foo.class OR WEB-INF/web.xml WEB-INF/classes/ com/acme/FooServlet.class foo_ejb.jar com/acme/FooBean.class foo_ejb.jar com/acme/Foo.class com/acme/FooBean.class 13
  • 14. TM Web/EJB Application in Java EE Platform 6 foo.war WEB-INF/classes/ com/acme/FooServlet.class WEB-INF/classes/ com/acme/FooBean.class 14
  • 15. EJB “Lite” • Small subset of EJB 3.1 API for use in Web Profile • Broaden the availability of EJB technology > Without losing portability • Same exact Lite application can be deployed to Web Profile and Full Profile > Thanks to simplified .war packaging • Open issue : whether Web Profile will require EJB Lite 15
  • 16. “Lite” vs. Full Functionality Lite Full = Lite + the following: • Local Session Beans • Message Driven Beans • Annotations / ejb-jar.xml • EJB Web Service Endpoints • CMT / BMT • RMI-IIOP • Declarative Security Interoperability • Interceptors • 2.x / 3.x Remote view • 2.x Local view • (Also requires JPA 2.0 • Timer Service API / JTA 1.1 API ) • CMP / BMP 16
  • 17. EJB Component Testing • It's too hard to test EJB components, especially the Local view > Forced to go through Remote facade or Web tier > Separate JVM™ instances needed for server and client • Support for running in Java SE exists, but... > Not present in all implementations > No standard API for bootstrapping, component discovery, shutdown etc. 17
  • 18. New Features Singletons • Application startup / shutdown callbacks • Calendar-based timer expressions • Automatic timer creation • Simple Asynchrony • 18
  • 19. Singletons • New session bean component type > One singleton bean instance per application per JVM > Provides easy sharing of state within application > Designed for instance-level concurrent access • Lots in common with stateless / stateful beans Client views (No-interface , Local, Remote, Web Service) > CMT / BMT > Container services: timer service, injection, etc. > Method authorization > 19
  • 20. Startup / Shutdown Callbacks @Singleton @Startup public class StartupBean { @PostConstruct private void onStartup() { ... } @PreDestroy private void onShutdown() { ... } 20
  • 21. Timer Service Features Calendar-based timeout expressions • Automatic timer creation • Non-persistent timers • “Cron”-like semantics with improved syntax • Named attributes • > second, minute, hour ( default = “0” ) > dayOfMonth, month, dayOfWeek, year (default = “*”) 21
  • 22. Calendar Based Timeouts // The last Thursday in November at 2 p.m. (hour=”14”, dayOfMonth=”Last Thu”, month=”Nov”) // Every weekday morning at 3:15 a.m. (minute=”15”, hour=”3”, dayOfWeek=”Mon-Fri”) // Every five minutes (minute=”*/5”, hour=”*”) For ex: // Callback the 1st of each month at 8 a.m. @Schedule(hour=”8”, dayOfMonth=”1”) void sendMonthlyBankStatements() {...} 22
  • 23. Java EE 6: Summary • Smaller, more agile platform: profiles, pruning, extensibility • Ease of development still a major focus area • Component specs ready for public review • Open source implementation in GlassFish v3 23
  • 24. Agenda • Java EE 6 • GlassFish v3 • Eclipse Glassfish Support 24
  • 25. GlassFish v3 • Java EE 5 = GlassFish v2 • GlassFish v2.1: better, faster, more scalable • GlassFish v3 Prelude > Web Tier Only, OSGi Based, some EE 6 previews > EclipseLink Bundled > Multiple Containers (jRuby, Groovy, Phobos) • GlassFish v3 = Java EE 6 > Work in Progress > OSGi Based – Equinox And Felix > All these Application Servers have Eclipse Integration 25
  • 26. GlassFish v3 • Attend next talk this afternoon about GlassFish and OSGi 26
  • 27. Agenda • Java EE 6 • GlassFish v3 • Eclipse GlassFish Support 27
  • 28. New: GlassFish + Eclipse Bundle 28
  • 29. GlassFish Tools Bundle for Eclipse • http://download.java.net/glassfish/eclipse > V0.9.9 today • Or Standalone Plugin > http://glassfishplugins.dev.java.net 29
  • 30. GlassFish Tools Bundle For Eclipse Eclipse Eclipse Java EE IDE User Workspace: • v2.1 domain GlassFish v2.1, v3prelude • v3 domain JDK1.6 (optional) • JavaDB config • Java EE projects • User settings GlassFish Eclipse Plugins Installer Registration 30
  • 31. GlassFish Tools Bundle For Eclipse Key Features • Out of the box Installer with all Java EE Eclipse Standard Features and JDK and GlassFish servers • GlassFish Registration Wizard • GlassFish v2.1 & v3 Prelude automatic domain creation/ configuration • JavaDB configuration, JDBC resource wizard • Start, Stop, Deploy, undeploy, Debug(JSP/Java) (v2, v3) • Deploy on Save: Default for v3 • HTTP Monitoring preconfigured 31
  • 32. GlassFish Tools Bundle For Eclipse Key Features All Sun DTDs registered for validation/code completion • All Java EE APIs registered for code completion/JavaDoc • GlassFish Log integrated into Eclipse IDE console • GlassFish Update Center & Admin Console Integration • All v2, v3p DocBooks integrated in Help (no need for • Internet) • GlassFish Web Properties in Help Menu (The Aquarium, Support,...) 32
  • 33. GlassFish Tools Bundle For Eclipse Key Features • Update Centers Integration • Eclipse Update Center for Eclipse bits and the GlassFish Plugin • In future releases: > Metro JAX-WS Eclipse Plugin > JavaFX ,Maven Plugin > WebSynergy ,GlassFish ESB > Better MySQL integration 33
  • 34. Size of GlassFish Tools Bundle for Eclipse Components in the Installer Size (total=375Mb) Eclipse 164Mb ● GlassFish v2.1 87Mb ● GlassFish v3 Prelude 29Mb ● GlassFish Plugin for Eclipse 10Mb (includes javadoc and ● help books) Registration/Configuration 0.5Mb ● JDK 1.6u12 85Mb ● • JBoss Dev Studio 2.0 RC2 +EAP = 617Mb (No JDK) • Oracle Workshop for WebLogic 10.2 = 748Mb (No JDK) 34
  • 35. Collaboration work with EasyEclipse • Re-use the open source build loop for distros > Installers on MacOS X, Windows, Linux > Next is OpenSolaris • Help in assembling a complete IDE > Using Eclipse.org, Glassfish and community plug-ins • Why doing a distros and installers? > Batteries included approach > Yet minimalist essential set of features to get going > http://blog.hantsuki.org/2009/03/20/eclipse-and-installers/ • Tight work with core WTP and JPA committers > Bug fixing in P2 compatibility 35
  • 36. GlassFish Tools Bundle for Eclipse 36
  • 37. GlassFish Tools Bundle for Eclipse 37
  • 38. GlassFish Tools Bundle for Eclipse 38
  • 39. GlassFish Tools Bundle for Eclipse 39
  • 40. GlassFish Tools Bundle for Eclipse 40
  • 41. For More Information http://download.java.net/glassfish/eclipse • http://glassfishplugins.dev.java.net • Blog :http://weblogs.java.net/blog/ludo/ • Reference Implementation : GlassFish project v3 • > http://glassfish.dev.java.net 41