Java EE 6 & GlassFish v3
              Paving the path for future




Arun Gupta (blogs.sun.com/arungupta, @arungupta)
Sun...
Java EE: Past & Present
                                                                                  Flexible
       ...
Compatible Java EE 5 Implementations




                                       3
Goals for the Java EE 6 Platform

   Flexible & Light-weight
   Extensible
          Embrace Open Source Frameworks
  ...
Java EE 6 is Flexible
   Decouple specifications to allow more
    combinations
   Expands potential licensee ecosystem
...
Java EE 6 Web Profile 1.0
   Fully functional mid-sized profile
    −   Actively discussed in the Java EE 6 Expert Group
...
Java EE 6 is Lightweight
   Pruning
    −   Make some technologies optional
   Pruned today, means
    −   Optional in t...
Java EE 6 is Extensible
   Embrace open source frameworks
    −   Wicket, Lift, Spring, Struts, ...
   Zero-configuratio...
<web-fragment>
    <filter>
           <filter-name>wicket.helloworld</filter-name>
           <filter-class>org.apache.wi...
<web-fragment>
  <filter>
     <filter-name>LiftFilter</filter-name>
      <display-name>Lift Filter</display-name>
      ...
Java EE 6 & Ease-of-development
   Continue advancements of Java EE 5
   Primary focus: Web Tier
   General principles
...
EoD: EJB Simplified Packaging
           Java EE 5                                        Java EE 6
                      ...
EoD: Servlets
               Servlet in Java EE 5: Two Files
<!--Deployment descriptor     /* Code in Java Class */
  web....
EoD: Servlets in Java EE 6

package com.sun;
@WebServlet(name=”MyServlet”, urlPattern=”/myApp/*”)
public class MyServlet e...
Java EE 6 - Done
   Specifications approved by the JCP (Dec 1)
   Reference Implementation is GlassFish v3
    (Dec 10)
...
Java EE 6 Specifications
   The Platform
   Java EE 6 Web Profile 1.0
   Managed Beans 1.0
Java EE 6 Specifications
                      New
   Context and Dependency Injection for Java EE
    (JSR 299)
   Bean...
Java EE 6 Specifications
              Extreme Makeover
   Java Server Faces 2.0 (JSR 314)
   Java Servlets 3.0 (JSR 315...
Java EE 6 Specifications
                               Updates
   Java API for XML-based Web Services 2.2 (JSR 224)
   ...
Java EE 6 Specifications
                                                        As is
   JDBC 3.0 API
   Java Naming an...
IDE Support
   NetBeans 6.8
   Eclipse 3.4+
   IntelliJ 9.0
Future Directions
   JNLP-ize Java EE app client
   Java EE SPI
    −   - Allow service providers and other system level...
Java EE 6 Training & Certification
   Java EE6 Training Curriculum - Feb 2010
   Java EE6 Certifications available - Mar...
Java EE Adoption Metrics
   Over 10 million downloads of Java EE SDKs annually
   Amazon search for J2EE yields 4,167 bo...
Java EE Adoption
                                    Y/Y Download Growth
    Over 18M
   Downloads
           08/.../08
  ...
Java EE: Scales as you scale



                Java EE/ J2EE
                 Java EE/ J2EE




                         ...
What is GlassFish ?
   A community
    −   Users, Partners, Testers, Developers, ...
    −   Started in 2005 on java.net
...
Sun GlassFish Enterprise Server
                         Enterprise Manager



              Customer
              Advoca...
GlassFish v3
   Modular:
    −   Maven 2 – Build & Module description
    −   Felix – OSGi runtime (216 bundles)
    −   ...
Dynamic Languages & Frameworks




http://glassfish-scripting.dev.java.net
                                          30
Rails Deployment Choices




              Credits: http://birdwatchersdigest.com

                                       ...
Demo
NetBeans / Eclipse & Java EE 6


http://blogs.sun.com/arungupta/entry/screencast_27_simple_web_application
http://blo...
Embeddable GlassFish
public void testServlet() throws Exception {
      int port = 9999;
      GlassFish glassfish = newGl...
Embeddable GlassFish
private GlassFish newGlassFish(int port) throws Exception {
    GlassFish glassfish = new GlassFish(p...
CLI-based Administration
 “asadmin” CLI utility
 Administrative commands can be added with

each container :
     @Servi...
36
Demo
GlassFish v3 Administration




                              37
Light Weight & On-demand Monitoring
    Event-driven light-weight and non-intrusive
     monitoring
    Modules provide ...
Demo
GlassFish v3 Monitoring




http://blogs.sun.com/arungupta/entry/totd_104_glassfish_v3_monitoring
                   ...
REST Interface
REST interface to management and


monitoring data
    −Configuration data, Commands invocation (start/sto...
Demo
GlassFish v3 REST Interface




http://blogs.sun.com/arungupta/entry/totd_113_javafx_front_end
http://blogs.sun.com/a...
GlassFish ISV Partners
References
   glassfish.org
   sun.com/glassfish
   blogs.sun.com/theaquarium
   twitter.com/glassfish
   glassfish@s...
Java EE 6 & GlassFish v3
              Paving the path for future




Arun Gupta (blogs.sun.com/arungupta, @arungupta)
Sun...
Upcoming SlideShare
Loading in...5
×

Java EE 6 : Paving The Path For The Future

4,006

Published on

“The Java EE platform is getting an extreme makeover with the upcoming version ? Java EE 6. It is developed as JSR 316 under the Java Community Process.

The Java EE 6 platform adds more power to the platform and yet make it more flexible so that it can be adopted to different flavors of an application. It breaks the ‘one size fits all’ approach with Profiles and improves on the Java EE 5 developer productivity features. It enables extensibility by embracing open source libraries and frameworks such that they are treated as first class citizens of the platform.

Several new specifications such as Java Server Faces 2.0, Servlet 3.0, Java Persistence API 2.0, and Java Context Dependency Injection 1.0 are included in the platform. All these specifications are implemented in GlassFish v3 that providesa light-weight, modular, and extensible platform for your Web applications.

This session provides an overview of Java EE 6 and GlassFish v3. Using multiple simple-to-understand samples it explains the value proposition provided by Java EE 6. “

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,006
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
88
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Java EE 6 : Paving The Path For The Future

  1. 1. Java EE 6 & GlassFish v3 Paving the path for future Arun Gupta (blogs.sun.com/arungupta, @arungupta) Sun Microsystems, Inc.
  2. 2. Java EE: Past & Present Flexible Ease of Development Java EE 6 EJB Lite Java EE 5 Restful WS Web Ease of Web Beans Services Development Extensibility Annotations J2EE 1.4 EJB 3.0 Web Services, Persistence API Robustness Management, New and Enterprise Deployment, Updated Java J2EE 1.3 Async. Web Services Platform CMP, Connector Connector Architecture ` Java EE 6 J2EE 1.2 Servlet, JSP, Web Profile EJB, JMS JPE RMI/IIOP Project
  3. 3. Compatible Java EE 5 Implementations 3
  4. 4. Goals for the Java EE 6 Platform  Flexible & Light-weight  Extensible  Embrace Open Source Frameworks  Easier to use, develop on  Continue on path set by Java EE 5
  5. 5. Java EE 6 is Flexible  Decouple specifications to allow more combinations  Expands potential licensee ecosystem  Profiles − Targeted bundle of technologies − Defined through the JCP − Web Profile Already Defined  Defined by the Java EE 6 Expert Group
  6. 6. Java EE 6 Web Profile 1.0  Fully functional mid-sized profile − Actively discussed in the Java EE 6 Expert Group and outside it − Technologies  Servlets 3.0, JSP 2.2, EL 2.2, Debugging Support for Other Languages 1.0, JSTL 1.2, JSF 2.0, Common Annotations 1.1, EJB 3.1 Lite, JTA 1.1, JPA 2.0, Bean Validation 1.0, Managed Beans 1.0, Interceptors 1.1, Context & Dependency Injection 1.0, Dependency Injection for Java 1.0
  7. 7. Java EE 6 is Lightweight  Pruning − Make some technologies optional  Pruned today, means − Optional in the next release − Deleted in the subsequent releases  Pruned technologies will be marked in Javadocs  Technologies − JAX-RPC, EJB 2.x Entity Beans, JAXR, JSR 88
  8. 8. Java EE 6 is Extensible  Embrace open source frameworks − Wicket, Lift, Spring, Struts, ...  Zero-configuration, drag-and-drop for web frameworks − Servlets, servlet filters, context listeners for a framework get discovered and registered automatically  Plugin libraries using web fragments
  9. 9. <web-fragment> <filter> <filter-name>wicket.helloworld</filter-name> <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class> <init-param> <param-name>applicationClassName</param-name> <param-value>...</param-value> </init-param> </filter> <filter-mapping> <filter-name>wicket.helloworld</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-fragment> http://blogs.sun.com/arungupta/entry/totd_91_applying_java_ee
  10. 10. <web-fragment> <filter> <filter-name>LiftFilter</filter-name> <display-name>Lift Filter</display-name> <description>The Filter that intercepts lift calls</description> <filter-class>net.liftweb.http.LiftFilter</filter-class> </filter> <filter-mapping> <filter-name>LiftFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-fragment> http://blogs.sun.com/arungupta/entry/totd_101_applying_servlet_3
  11. 11. Java EE 6 & Ease-of-development  Continue advancements of Java EE 5  Primary focus: Web Tier  General principles − Annotation-based programming model − Reduce or eliminate need for DD − Traditional API for advanced users
  12. 12. EoD: EJB Simplified Packaging Java EE 5 Java EE 6 foo.war foo.ear WEB-INF/classes foo_web.war com.sun.FooServlet com.sun.TickTock WEB-INF/web.xml com.sun.FooBean WEB-INF/classes com.sun.FooHelper com.sun.FooServlet com.sun.TickTock foo_ejb.jar com.sun.FooBean com.sun.FooHelper web.xml ? http://blogs.sun.com/arungupta/entry/totd_95_ejb_3_1
  13. 13. EoD: Servlets Servlet in Java EE 5: Two Files <!--Deployment descriptor /* Code in Java Class */ web.xml --> package com.sun; <web-app> public class MyServlet extends <servlet> HttpServlet { <servlet-name>MyServlet public void </servlet-name> doGet(HttpServletRequest <servlet-class> req,HttpServletResponse res) com.sun.MyServlet { </servlet-class> </servlet> ... <servlet-mapping> <servlet-name>MyServlet } </servlet-name> <url-pattern>/myApp/* ... </url-pattern> } </servlet-mapping> ... </web-app>
  14. 14. EoD: Servlets in Java EE 6 package com.sun; @WebServlet(name=”MyServlet”, urlPattern=”/myApp/*”) public class MyServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) { ... } http://blogs.sun.com/arungupta/entry/totd_81_getting_started_with
  15. 15. Java EE 6 - Done  Specifications approved by the JCP (Dec 1)  Reference Implementation is GlassFish v3 (Dec 10)  TCK (Dec 10)
  16. 16. Java EE 6 Specifications  The Platform  Java EE 6 Web Profile 1.0  Managed Beans 1.0
  17. 17. Java EE 6 Specifications New  Context and Dependency Injection for Java EE (JSR 299)  Bean Validation (JSR 303)  Java API for RESTful Web Services (JSR 311)  Dependency Injection for Java (JSR 330)
  18. 18. Java EE 6 Specifications Extreme Makeover  Java Server Faces 2.0 (JSR 314)  Java Servlets 3.0 (JSR 315)  Java Persistence 2.0 (JSR 317)  Enterprise Java Beans 3.1 & Interceptors 1.1 (JSR 318)  Java EE Connector Architecture 1.6 (JSR 322)
  19. 19. Java EE 6 Specifications Updates  Java API for XML-based Web Services 2.2 (JSR 224)  Java API for XML Binding 2.2 (JSR 222)  Web Services Metadata MR3 (JSR 181)  JSP 2.2/EL 2.2 (JSR 245)  Web Services for Java EE 1.3 (JSR 109)  Common Annotations 1.1 (JSR 250)  Java Authorization Contract for Containers 1.3 (JSR 115)  Java Authentication Service Provider Interface for Containers 1.0 (JSR 196)
  20. 20. Java EE 6 Specifications As is  JDBC 3.0 API  Java Naming and Directory Interface 1.2  Java Message Service 1.1  Java Transaction API 1.1  Java Transaction Service 1.0  JavaMail API Specification 1.4  JavaBeans Activation Framework 1.1  Java API for XML Processing 1.3  Java API for XML-based RPC 1.1  SOAP with Attachments API for Java 1.3  Java API for XML Registries 1.0  Java EE Management Specification 1.1 (JSR 77)  Java EE Deployment Specification 1.2 (JSR 88)  Java Management Extensions 1.2  Java Authentication and Authorization Service 1.0  Debugging Support for Other Languages (JSR 45)  Standard Tag Library for JSP 1.2 (JSR 52)  Streaming API for XML 1.0 (JSR 173)
  21. 21. IDE Support  NetBeans 6.8  Eclipse 3.4+  IntelliJ 9.0
  22. 22. Future Directions  JNLP-ize Java EE app client  Java EE SPI − - Allow service providers and other system level components to be plugged in
  23. 23. Java EE 6 Training & Certification  Java EE6 Training Curriculum - Feb 2010  Java EE6 Certifications available - Mar 2010  Register your interest in the courses and certifications and receive information about promotions − https://dct.sun.com/dct/forms/reg_us_1611_480_0.jsp
  24. 24. Java EE Adoption Metrics  Over 10 million downloads of Java EE SDKs annually  Amazon search for J2EE yields 4,167 books (367)  Amazon search for Java EE 1,681 books (448)  Java the world's most used programing language  Monster lists over 2,300 available Java EE / J2EE jobs  In the past four years: − JBoss purchased by Red Hat for 500 million − BEA purchased by Oracle for 7 Billion 24
  25. 25. Java EE Adoption Y/Y Download Growth Over 18M Downloads 08/.../08 12,000,000 since FY'06 10,000,000 8,000,000 Active Users 6,000,000 Dow nloads 4,000,000 2,000,000 0 FY 06 FY 07 FY 08 FY 09
  26. 26. Java EE: Scales as you scale Java EE/ J2EE Java EE/ J2EE 26 For today's Tiny is Tomorrow's Mega
  27. 27. What is GlassFish ?  A community − Users, Partners, Testers, Developers, ... − Started in 2005 on java.net  Application Server − Enterprise Quality and Open Source (CDDL & GPL v2) − Java EE Reference Implementation − Full Commercial Support from Sun
  28. 28. Sun GlassFish Enterprise Server Enterprise Manager Customer Advocate eLearning Credit Customer Focused 24x7 Support Support Team GlassFish Sun VIP Open Source Interoperability Patches & Application Server Support Upgrades 28
  29. 29. GlassFish v3  Modular: − Maven 2 – Build & Module description − Felix – OSGi runtime (216 bundles) − Allow any type of Container to be plugged  Start Container and Services on demand  Embeddable: runs in-VM  Extensible − Rails, Grails, Django, ... 29
  30. 30. Dynamic Languages & Frameworks http://glassfish-scripting.dev.java.net 30
  31. 31. Rails Deployment Choices Credits: http://birdwatchersdigest.com 31
  32. 32. Demo NetBeans / Eclipse & Java EE 6 http://blogs.sun.com/arungupta/entry/screencast_27_simple_web_application http://blogs.sun.com/arungupta/entry/screencast_28_simple_web_application http://blogs.sun.com/arungupta/entry/screencast_26_develop_run_debug/ http://blogs.sun.com/arungupta/entry/totd_93_getting_started_with/ http://blogs.sun.com/arungupta/entry/totd_94_a_simple_java http://blogs.sun.com/arungupta/entry/totd_95_ejb_3_1 http://blogs.sun.com/arungupta/entry/totd_102_java_ee_6 http://blogs.sun.com/arungupta/entry/totd_99_creating_a_java http://blog.arungupta.me/2008/11/screencast-28-simple-web-application-using-eclipse-and- glassfish-v3-prelude/ 32
  33. 33. Embeddable GlassFish public void testServlet() throws Exception { int port = 9999; GlassFish glassfish = newGlassFish(port); URL url = new URL("http://localhost:" + port + "/" + NAME + "/SimpleServlet"); BufferedReader br = new BufferedReader( new InputStreamReader( url.openConnection().getInputStream())); assertEquals("Wow, I'm embedded!", br.readLine()); glassfish.stop(); } 33
  34. 34. Embeddable GlassFish private GlassFish newGlassFish(int port) throws Exception { GlassFish glassfish = new GlassFish(port); ScatteredWar war = new ScatteredWar(NAME, new File("src/main/resources"), new File("src/main/resources/WEB-INF/web.xml"), Collections.singleton(new File("target/classes").toURI().toURL())); glassfish.deploy(war); System.out.println("Ready ..."); return glassfish; } 34
  35. 35. CLI-based Administration  “asadmin” CLI utility  Administrative commands can be added with each container : @Service(name=”myCommand”) public class ChangeRandomCtr implements AdminCommand { @Param String s1; @Param String s2; …} −Available as : asadmin myCommand –s1 foo –s2 bar 35
  36. 36. 36
  37. 37. Demo GlassFish v3 Administration 37
  38. 38. Light Weight & On-demand Monitoring  Event-driven light-weight and non-intrusive monitoring  Modules provide domain specific probes (monitoring events) − EJB, Web, Connector, JPA, Jersey, Orb, Ruby  End-to-end monitoring on Solaris using DTrace rd  3 party scripting clients − JavaScript to begin with 38
  39. 39. Demo GlassFish v3 Monitoring http://blogs.sun.com/arungupta/entry/totd_104_glassfish_v3_monitoring 39
  40. 40. REST Interface REST interface to management and  monitoring data −Configuration data, Commands invocation (start/stop instance, deploy, undeploy, ...), CRUD resources (JMS, JDBC, ...) −localhost:4848/management/domain −localhost:4848/monitoring/domain GET, POST, DELETE methods XML, JSON, HTML reps 40
  41. 41. Demo GlassFish v3 REST Interface http://blogs.sun.com/arungupta/entry/totd_113_javafx_front_end http://blogs.sun.com/arungupta/entry/totd_116_glassfish_v3_administration 41
  42. 42. GlassFish ISV Partners
  43. 43. References  glassfish.org  sun.com/glassfish  blogs.sun.com/theaquarium  twitter.com/glassfish  glassfish@sun.com
  44. 44. Java EE 6 & GlassFish v3 Paving the path for future Arun Gupta (blogs.sun.com/arungupta, @arungupta) Sun Microsystems, Inc.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×