2. RobustnessWeb Services Enterprise Java Platform ` Ease of Development Flexible Java EE: Past & Present 3. Compatible Java EE 5 Implementations 4. Goals for the Java EE 6 Platform
5. Extensible
Easier to use, develop on
6. Java EE 6 is Flexible
7. Expands potential licensee ecosystem 8. Profiles
9. Defined through the JCP 10. Web Profile Already Defined
11. Java EE 6 Web Profile 1.0
12. Technologies
13. Java EE 6 is Lightweight
Pruned today, means
14. Deleted in the subsequent releases Pruned technologies will be marked in Javadocs 15. Technologies
16. Java EE 6 is Extensible
Zero-configuration, drag-and-drop for web frameworks
Plugin libraries usingweb fragments 17. wicket.helloworldorg.apache.wicket.protocol.http.WicketFilterapplicationClassName...wicket.helloworld/* http://blogs.sun.com/arungupta/entry/totd_91_applying_java_ee 18. LiftFilterLift FilterThe Filter that intercepts lift callsnet.liftweb.http.LiftFilterLiftFilter/* http://blogs.sun.com/arungupta/entry/totd_101_applying_servlet_3 19. Java EE 6 & Ease-of-development
20. Primary focus: Web Tier 21. General principles
22. Reduce or eliminate need for DD 23. Traditional API for advanced users 24. EoD: EJB Simplified Packaging web.xml ? Java EE 5 Java EE 6 http://blogs.sun.com/arungupta/entry/totd_95_ejb_3_1 foo.ear foo_web.war WEB-INF/web.xml WEB-INF/classes com.sun.FooServlet com.sun.TickTock foo_ejb.jar com.sun.FooBean com.sun.FooHelper foo.war WEB-INF/classes com.sun.FooServlet com.sun.TickTock com.sun.FooBean com.sun.FooHelper 25. EoD: Servlets Servlet in Java EE 5: Two Files MyServlet com.sun.MyServlet MyServlet /myApp/* ... /* Code in Java Class */ package com.sun; public class MyServlet extends HttpServlet { public voiddoGet(HttpServletRequest req,HttpServletResponse res)
26. ... 27. } 28. ... 29. } 30. 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 31. Java EE 6 - Done
32. Reference Implementation is GlassFish v3 (Dec 10) 33. TCK (Dec 10) 34. Java EE 6 Specifications
35. Java EE 6 Web Profile 1.0 36. Managed Beans 1.0 37. Java EE 6 Specifications New
38. Bean Validation (JSR 303) 39. Java API for RESTful Web Services (JSR 311) 40. Dependency Injection for Java (JSR 330) 41. Java EE 6 Specifications Extreme Makeover
42. Java Servlets 3.0 (JSR 315) 43. Java Persistence 2.0 (JSR 317) 44. Enterprise Java Beans 3.1 & Interceptors 1.1 (JSR 318) 45. Java EE Connector Architecture 1.6 (JSR 322) 46. Java EE 6 Specifications Updates
47. Java API for XML Binding 2.2 (JSR 222) 48. Web Services Metadata MR3 (JSR 181) 49. JSP 2.2/EL 2.2 (JSR 245) 50. Web Services for Java EE 1.3 (JSR 109) 51. Common Annotations 1.1 (JSR 250) 52. Java Authorization Contract for Containers 1.3 (JSR 115) 53. Java Authentication Service Provider Interface for Containers 1.0 (JSR 196) 54. Java EE 6 Specifications As is
55. Java Naming and Directory Interface 1.2 56. Java Message Service 1.1 57. Java Transaction API 1.1 58. Java Transaction Service 1.0 59. JavaMail API Specification 1.4 60. JavaBeans Activation Framework 1.1 61. Java API for XML Processing 1.3 62. Java API for XML-based RPC 1.1 63. SOAP with Attachments API for Java 1.3 64. Java API for XML Registries 1.0 65. Java EE Management Specification 1.1 (JSR 77) 66. Java EE Deployment Specification 1.2 (JSR 88) 67. Java Management Extensions 1.2 68. Java Authentication and Authorization Service 1.0 69. Debugging Support for Other Languages (JSR 45) 70. Standard Tag Library for JSP 1.2 (JSR 52) 71. Streaming API for XML 1.0 (JSR 173) 72. IDE Support
73. Eclipse 3.4+ 74. IntelliJ 9.0 75. Future Directions
76. Java EE SPI
77. Java EE 6 Training & Certification
78. Java EE6 Certifications available - Mar 2010 79. Register your interest in the courses and certifications and receive information about promotions
80. Java EE Adoption Metrics
81. Amazon search for J2EE yields 4,383 books (CHECK) 82. Amazon search for Java EE 1,646 books (CHECK) 83. Java the world's most used programing language 84. Monster lists over 2,300 available Java EE / J2EE jobs 85. In the past four years:
86. BEA purchased by Oracle for 7 Billion 87. 08/.../08Over 18M Downloads since FY'06 Active Users Java EE Adoption 88. Java EE: Scales as you scale For today's Tiny is Tomorrow's Mega 89. What is GlassFish ?
90. Started in 2005 on java.net Application Server
91. Java EE Reference Implementation 92. Full Commercial Support from Sun 93. Sun GlassFish Enterprise Server GlassFish Open Source Application Server Customer Focused Support Team Patches & Upgrades 24x7 Support Customer Advocate Sun VIP Interoperability Support Enterprise Manager eLearning Credit 94. GlassFish v3
95. Felix OSGi runtime (216 bundles) 96. Allow any type of Container to be plugged
Embeddable: runs in-VM 97. Extensible
98. Dynamic Languages & Frameworks http://glassfish-scripting.dev.java.net 99. Rails Deployment Choices Credits: http://birdwatchersdigest.com 100. 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/ 101. 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(); } 102. Embeddable GlassFish private GlassFish newGlassFish(int port) throws Exception { GlassFish glassfish =new GlassFish(port); ScatteredWar war = newScatteredWar (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; } 103. CLI-based Administration
104. Administrative commands can be added with each container :
105. Available as : asadmin myCommand s1 foo s2 bar 106. 107. Demo GlassFish v3 Administration 108. Light Weight & On-demand Monitoring
109. Modules provide domain specific probes (monitoring events)
End-to-end monitoring on Solaris using DTrace 110. 3 rdparty scripting clients
111. Demo GlassFish v3 Monitoring http://blogs.sun.com/arungupta/entry/totd_104_glassfish_v3_monitoring 112. REST Interface
113. localhost:4848/management/domain 114. localhost:4848/monitoring/domain GET, POST, DELETE methods 115. XML, JSON, HTML reps 116. 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 117. GlassFish ISV Partners 118. References
119. sun.com/glassfish 120. blogs.sun.com/theaquarium 121. twitter.com/glassfish 122. [email_address] 123. Java EE 6 & GlassFish v3 Paving the path for future Arun Gupta (blogs.sun.com/arungupta, @arungupta) Sun Microsystems, Inc.