java ee 6 : paving the path for the future
DESCRIPTION
“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. “TRANSCRIPT
![Page 1: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/1.jpg)
Java EE 6 & GlassFish v3Paving the path for future
Arun Gupta (blogs.sun.com/arungupta, @arungupta)
Sun Microsystems, Inc.
![Page 2: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/2.jpg)
JPEProject
J2EE 1.2Servlet, JSP,
EJB, JMSRMI/IIOP
J2EE 1.3CMP,
ConnectorArchitecture
J2EE 1.4Web Services, Management, Deployment, Async. Connector
Java EE 5Ease of DevelopmentAnnotationsEJB 3.0Persistence APINew and Updated Web Services
Robustness
Web Services
Enterprise Java
Platform
`
Java EE 6EJB LiteRestful WSWeb BeansExtensibility
Java EE 6Web Profile
Ease ofDevelopment
Flexible
Java EE: Past & Present
![Page 3: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/3.jpg)
3
Compatible Java EE 5 Implementations
![Page 4: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/4.jpg)
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
![Page 5: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/5.jpg)
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
![Page 6: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/6.jpg)
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
![Page 7: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/7.jpg)
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
![Page 8: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/8.jpg)
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
![Page 9: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/9.jpg)
<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
![Page 10: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/10.jpg)
<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
![Page 11: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/11.jpg)
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
![Page 12: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/12.jpg)
EoD: EJB Simplified Packaging
foo.earfoo_web.war
WEB-INF/web.xmlWEB-INF/classes com.sun.FooServlet com.sun.TickTock
foo_ejb.jarcom.sun.FooBeancom.sun.FooHelper
foo.warWEB-INF/classes com.sun.FooServlet com.sun.TickTock com.sun.FooBean com.sun.FooHelper
web.xml ?
Java EE 5 Java EE 6
http://blogs.sun.com/arungupta/entry/totd_95_ejb_3_1
![Page 13: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/13.jpg)
EoD: ServletsServlet in Java EE 5: Two Files
<!--Deployment descriptor web.xml -->
<web-app><servlet> <servlet-name>MyServlet
</servlet-name> <servlet-class> com.sun.MyServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet </servlet-name> <url-pattern>/myApp/* </url-pattern> </servlet-mapping> ... </web-app>
/* Code in Java Class */package com.sun;public class MyServlet extends HttpServlet {public void doGet(HttpServletRequest req,HttpServletResponse res) {
...
}
...
}
![Page 14: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/14.jpg)
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
![Page 15: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/15.jpg)
Java EE 6 - Done Specifications approved by the JCP (Dec 1) Reference Implementation is GlassFish v3
(Dec 10) TCK (Dec 10)
![Page 16: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/16.jpg)
Java EE 6 Specifications The Platform Java EE 6 Web Profile 1.0 Managed Beans 1.0
![Page 17: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/17.jpg)
Java EE 6 SpecificationsNew
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)
![Page 18: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/18.jpg)
Java EE 6 SpecificationsExtreme 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)
![Page 19: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/19.jpg)
Java EE 6 SpecificationsUpdates
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)
![Page 20: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/20.jpg)
Java EE 6 SpecificationsAs 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)
![Page 21: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/21.jpg)
IDE Support NetBeans 6.8 Eclipse 3.4+ IntelliJ 9.0
![Page 22: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/22.jpg)
Future Directions JNLP-ize Java EE app client Java EE SPI
− - Allow service providers and other system level components to be plugged in
![Page 23: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/23.jpg)
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
![Page 24: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/24.jpg)
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
![Page 25: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/25.jpg)
08/.../08 Over 18M Over 18M
DownloadsDownloadssince FY'06since FY'06
Active Users
Java EE Adoption
FY 06 FY 07 FY 08 FY 090
2,000,000
4,000,000
6,000,000
8,000,000
10,000,000
12,000,000
Y/Y Download Growth
Dow nloads
![Page 26: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/26.jpg)
26
Java EE: Scales as you scale
For today's Tiny is Tomorrow's Mega
Java EE/ J2EEJava EE/ J2EE
![Page 27: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/27.jpg)
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
![Page 28: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/28.jpg)
28
Sun GlassFish Enterprise Server
GlassFishGlassFishOpen SourceOpen SourceApplication ServerApplication Server
Customer FocusedCustomer FocusedSupport TeamSupport Team
Patches &Patches &UpgradesUpgrades
24x7 Support24x7 Support
CustomerCustomerAdvocateAdvocate
Sun VIPSun VIPInteroperabilityInteroperabilitySupportSupport
Enterprise ManagerEnterprise Manager
eLearningeLearningCreditCredit
![Page 29: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/29.jpg)
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, ...
![Page 30: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/30.jpg)
30
Dynamic Languages & Frameworks
http://glassfish-scripting.dev.java.net
![Page 31: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/31.jpg)
31
Rails Deployment Choices
Credits: http://birdwatchersdigest.com
![Page 32: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/32.jpg)
32
DemoNetBeans / Eclipse & Java EE 6
http://blogs.sun.com/arungupta/entry/screencast_27_simple_web_applicationhttp://blogs.sun.com/arungupta/entry/screencast_28_simple_web_applicationhttp://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_javahttp://blogs.sun.com/arungupta/entry/totd_95_ejb_3_1http://blogs.sun.com/arungupta/entry/totd_102_java_ee_6http://blogs.sun.com/arungupta/entry/totd_99_creating_a_javahttp://blog.arungupta.me/2008/11/screencast-28-simple-web-application-using-eclipse-and-glassfish-v3-prelude/
![Page 33: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/33.jpg)
33
Embeddable GlassFishpublic 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();
}
![Page 34: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/34.jpg)
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;
}
![Page 35: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/35.jpg)
35
CLI-based Administration “asadmin” CLI utility Administrative commands can be added with each container :
@Service(name=”myCommand”)public class ChangeRandomCtr implements AdminCommand {
@ParamString s1;@ParamString s2;
… }
−Available as :asadmin myCommand –s1 foo –s2 bar
![Page 36: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/36.jpg)
36
![Page 37: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/37.jpg)
37
DemoGlassFish v3 Administration
![Page 38: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/38.jpg)
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
3rd party scripting clients− JavaScript to begin with
![Page 39: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/39.jpg)
39
DemoGlassFish v3 Monitoring
http://blogs.sun.com/arungupta/entry/totd_104_glassfish_v3_monitoring
![Page 40: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/40.jpg)
40
REST InterfaceREST 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 methodsXML, JSON, HTML reps
![Page 41: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/41.jpg)
41
DemoGlassFish v3 REST Interface
http://blogs.sun.com/arungupta/entry/totd_113_javafx_front_endhttp://blogs.sun.com/arungupta/entry/totd_116_glassfish_v3_administration
![Page 42: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/42.jpg)
GlassFish ISV Partners
![Page 43: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/43.jpg)
References glassfish.org sun.com/glassfish blogs.sun.com/theaquarium twitter.com/glassfish [email protected]
![Page 44: Java EE 6 : Paving The Path For The Future](https://reader033.vdocuments.net/reader033/viewer/2022042813/54899552b47959e70c8b59f8/html5/thumbnails/44.jpg)
Java EE 6 & GlassFish v3Paving the path for future
Arun Gupta (blogs.sun.com/arungupta, @arungupta)
Sun Microsystems, Inc.