Java EE 6, Eclipse, GlassFish @EclipseCon 2010
-
Upload
ludovic-champenois -
Category
Technology
-
view
1.630 -
download
1
Transcript of Java EE 6, Eclipse, GlassFish @EclipseCon 2010
![Page 1: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/1.jpg)
<Insert Picture Here>
Java EE 6 application development, OSGi and Eclipse users
Roberto ChinniciJava EE 6 Specification LeadLudovic Champenois, GlassFish Tools Architect
![Page 2: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/2.jpg)
JAVA EE 6
FINAL RELEASEDECEMBER 10, 2009
![Page 3: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/3.jpg)
What's New?
• Several new APIs• Web Profile• Pluggability/extensibility• Dependency injection• Lots of improvements to existing APIs
![Page 4: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/4.jpg)
New and updated components
• EJB 3.1• JPA 2.0• Servlet 3.0• JSF 2.0• JAX-RS 1.1• Connectors 1.6• Bean Validation 1.0• DI 1.0• CDI 1.0
• Managed Beans 1.0• Interceptors 1.1• JAX-WS 2.2• JSR-109 1.3• JSP 2.2• EL 2.2• JSR-250 1.1• JASPIC 1.1• JACC 1.5
![Page 5: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/5.jpg)
Web Profile
• First Java EE profile to be defined• A fully-functional, mid-size stack for modern web
application development• Complete, but not the kitchen sink
![Page 6: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/6.jpg)
Java EE 6 Web Profile Contents
JSF 2.0
JSP 2.2 · EL 2.2 · JSTL 1.2 · JSR-45 1.0
Servlet 3.0
EJB 3.1 Lite · DI 1.0 · CDI 1.0 · Managed Beans 1.0
Bean Validation 1.0 · Interceptors 1.1 · JSR-250 1.1
JPA 2.0 · JTA 1.1
![Page 7: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/7.jpg)
Pluggability/Extensibility
• Focus on the web tier in this release• Create a level playing field for third-party frameworks• Simplify packaging of web applications
![Page 8: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/8.jpg)
Modular Web Applications
• Libraries can contain /META-INF/web-fragment.xml• web.xml is optional• @WebServlet, @WebFilter annotations• ServletContainerInitializer interface• Programmatic registration of components• Resource jars containing /META-INF/resources
![Page 9: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/9.jpg)
Sample Web Fragment Descriptor
<web-fragment version=”3.0” xmlns="http://java.sun.com/xml/ns/javaee"> <servlet> <servlet-name>welcome</servlet-name> <servlet-class>WelcomeServlet</servlet-class> </servlet> <listener> <listener-class>RequestListener</listener-class> </listener></web-fragment>
![Page 10: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/10.jpg)
JAX-RS 1.1
• RESTful web services API• Already widely adopted• Really a general, high-level HTTP API• Annotation-based programming model• Programmatic API when needed
![Page 11: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/11.jpg)
JAX-RS Sample
@Path(“widgets/{id}”)@Produces(“application/widgets+xml”)public class WidgetResource { public WidgetResource(@PathParam(“id”) String id) {…}
@GET public Widget getWidget() {…}
@PUT public void putWidget(Widget widget){…}}
![Page 12: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/12.jpg)
Bean Validation 1.0
• Integrated with JSF, JPA• Declarative constraints using annotations @NotNull @Size(max=40) String address;• Fully extensible: define your own constraints @Email String recipient;• Validator API for programmatic validation validator.validate(obj) → Set<ConstraintViolation>
![Page 13: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/13.jpg)
EJB 3.1
• @Singleton beans• @Startup beans• @Asynchronous invocations @Asynchronous public Future<Integer> compute();• Define EJBs directly inside a web application• EJBContainer API works on Java SE
![Page 14: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/14.jpg)
Adding an EJB to a Web Application
BuyBooks.warBuyBooks.war ShoppingCartShoppingCartEJB ClassEJB Class
ShoppingCart.jarShoppingCart.jar
BuyBooks.earBuyBooks.ear BuyBooks.warBuyBooks.war
ShoppingCartShoppingCartEJB ClassEJB Class
BeforeBefore NowNow
![Page 15: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/15.jpg)
Dependency Injection
• DI + CDI (JSR-330 + JSR-299)• @Resource still around @Resource DataSource myDB;• Added @Inject annotation for typesafe injection @Inject @LoggedIn User user;• Automatic scope management (request, session, etc.)• No configuration: beans discovered at startup• Extensible via the BeanManager API
![Page 16: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/16.jpg)
Dependency Injection Sample
@ApplicationScopedpublic class CheckoutHandler { @Inject public CheckoutHandler( @LoggedIn User user, @Reliable @PayBy(CREDIT_CARD) PaymentProcessor processor, @Default ShoppingCart cart) {…} }
Injection points identified by Qualifier + Type@Default can be omitted
![Page 17: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/17.jpg)
JSF 2.0
• Facelet as a standard view declaration language• Composite components• Automatic discovery of component libraries• Programmatic and declarative Ajax support• System events• Validation out-of-the-box
![Page 18: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/18.jpg)
Java EE 6 Platform
• More powerful• More flexible• More extensible• Easier to use
http://java.sun.com/javaee
![Page 19: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/19.jpg)
![Page 20: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/20.jpg)
What is GlassFish
• A Community– Users, Partners, Testers, Developers– Started in 2005 on http://java.net
• Application Server– Enterprise Quality and Open Source (CDDL & GPL v2)– Java EE 5 / 6 Reference Implementation
• Full Commercial Support from Oracle– Not only a Reference Implementation– Roadmap announced tomorrow regarding HA, Clustering...
![Page 21: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/21.jpg)
GlassFish v3...
• The Java EE 6 spec, of course, and...• Beyond the spec
– Fast, very fast, small, very small– restart, btrace/dtrace, embedded, modularity, OSGi, RESTful
Admin,...– Scripting: jRoR, Grails, and now Django
• Update Center: repository of new/updated bundles• Tooling: Netbeans 6.8, IntelliJ,vi, and
– Eclipse 3.5, 3.6Mx
![Page 22: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/22.jpg)
Modular and Dynamic
• Modular : OSGi: Equinox and Apache Felix• But also Equinox or Static mode, thanks to HK2
– Yet very Fast !
• Painless Java EE 6 development – Via the new/easier APIs– Via better tools integration– Ultra fast Auto-deploy of all Java EE and static artifacts– Application runner
• java -jar glassfish.jar foo.war
![Page 23: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/23.jpg)
Web Session Retention
• Deployment option to maintain stateful sessions across re-deployments– $ asadmin redeploy --properties keepSessions=true myapp.war– Enabled by Default in Eclipse IDE
• For All sessions:– Servlets, CDIs, Stateful EJBs,...
• Greatly simplifies the development paradigm
![Page 24: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/24.jpg)
GlassFish and OSGi
• GlassFish runs on top of OSGi (Felix and Equinox)– GlassFish ships with 200+ bundles
• Can use OSGi management tools (CLI or Web)• Any OSGi bundle will run in GlassFish v3
– Drop it in domain1/autodeploy/bundles – Can also asadmin deploy it using --type osgi
• Consume OSGi services via @Resource @Resource (mappedName="MYPUREOSGISERVICE") HelloService myOSGiService; • Web Application Bundle (WAB Support)
![Page 25: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/25.jpg)
Demo
• GlassFish Java EE dev in Eclipse
![Page 26: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/26.jpg)
Integration with maven 2
• Java EE 6 APIs in Maven repository– http://download.java.net/maven/2/javax/javaee-api/ – Stripped jars: very small <1Mb– Not to be used for Testing
• GlassFish Embbeded can run via Maven– mvn gf:run
![Page 27: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/27.jpg)
Update Center: Add/Remove/Update Bundles
![Page 28: Java EE 6, Eclipse, GlassFish @EclipseCon 2010](https://reader033.fdocuments.net/reader033/viewer/2022042613/554c0d42b4c9058e098b58be/html5/thumbnails/28.jpg)
Thanks for your attention!
• http://java.sun.com/javaee• http://glassfish.org