This document discusses tools support for the Java EE 6 platform in NetBeans, Eclipse, and IntelliJ IDEs. It provides an overview of Java EE 6 and demos of key Java EE 6 APIs like JPA, JSF 2.0, CDI, and JAX-RS being used in the different IDEs.
3. AGENDA
• Java EE 6: Overview And Status
• Tools Support and Demos
– In NetBeans, Eclipse, IntelliJ
• Demo 1: Server runtime
• Demo 2: JPA
• Demo 3: JSF2.0
• Demo 4: CDI
• Demo 5: RestFul Services Jax-RS
• Q&A
3
4. Java EE 6
• What's New?
– Lots of improvements to existing EE 5 APIs
– Several New APIs
– Web Profile
– Pluggability/Extensibility
– Dependency Injection
• A Major new release for Java Enterprise Applications
– Easier, Smaller, Extensible
– GlassFish 3 is the Reference Implementation (and a quality
product...)
– GlassFish 3.1 is adding Clustering support
4
5. Java EE 6: Fast Uptake within Open
Source and Commercial Community
Available
Announced
5
7. Java EE 6: Impact on Tools
• New APIs are easy to expose:
– Libraries in project path. More and more on Maven (EE 6 APIs in
Maven)
– Automatic Code completion
– JavaDoc: Some IDEs...
• New Concepts:
– JSF 2.0: face-config obsolete, ManagedBeans obsolete (->CDI)
– JAX-RS
– No Web.xml, more annotations
• New Packaging:
– EBJ Inside Web Application Projects!
– Web Profile versus Full Profile
7
8. Java EE 6 : Impact on Tools
• Alignment of Platform changes and the IDEs
– Emacs (James Gosling 81), vi (Bill Joy 76): First IDES choice
• Java EE 6 compliant
– NetBeans 6.8: same day as Java EE 6 GlassFish (Dec 2009)
• Almost everything but CDI and advanced JF 2.0 (fixed in 6.9)
– IntelliJ: Same week as Java EE 6
• GlassFish Runtime target Supported in Dec 2009
• Eclipse:
– ava EE 6 support June 2010
– But GlassFish Plugin with EE 6 support before...
– Oracle Enterprise Pack for Eclipse
8
9. Oracle Involvement In Java EE 6 And Tools
• Oracle is the main driver of the GlassFish Community
– The Java EE 6 Reference Implementation
– Production Ready (Clustering, HA,...)
• Oracle is the main driver of the NetBeans Community
– Tight coupling with Java SE and EE changes.
• Oracle has many Eclipse Committers
– In JPA: EclipseLink Runtime and Dali Tooling
– In Core Java EE tooling
– In JSF: Most JSF WTP Eclipse tooling done by Oracle folks
• Jboss Tools has their own JSF tooling
– GlassFish and Weblogic support via OEPE
9
10. Java EE 6: Oracle Gives Developer Choices
Oracle Enterprise Pack for Eclipse NetBeans 6.9.1 and Coming 6.10
Target WebLogic and GlassFish 3 Bundled with GlassFish 3
IntelliJ IDEA has great Java EE 6 Support
10
11. Java EE 6 Runtime in Tools:
NetBeans Eclipse IntelliJ
• NetBeans 6.8: same day • Eclipse 3.5 WTP GlassFish Plugin • IntelliJ 9.0 same week as Java EE
as Java EE 6 GlassFish for Java EE 6 6
• NetBeans 6.9.1 and 7.0 • Eclipse 3.6 (June 2010): initial
nightlies: complete EE 6 support for Java EE 6, far from
support being Complete
• GlassFish Plugin in OEPE and a
• GlassFish Plugin bundled • GlassFish Support bundled
dev Update Center
• GlassFish Runtime • No bundle at this time, can
Bundled and download the runtime via the • No Bundle, need separate dowload
Preconfigured plugin
• EveryThing works Out of • Manual Configurations, a bit
• Some manual Configurations
the Box difficult
11
12. Java EE 6: Working with
a GlassFish Server in the
Tools.
12
13. Java EE 6 Working with Databases
• Via JPA 2.0
• Out of the Box, GlassFish 3 bundles JavaDB
– Registered in NetBeans and Eclipse
• All IDEs can register DB Resources and Introspect
• All IDEs can Generate JPA From DB
• All IDEs give decent Mapping Tooling
• Can Start/Stop Dbs only in NetBeans!
• NetBeans has extra Wizards to Generate CRUD JSF2
• NetBeans has better Default in Persistence.xml
• IntelliJ has some ER/UML view and JP/QL Support
13
18. Java EE 6 CDI: Contexts and Dependency Injection
JSF/Facelets
Servlets ●Dependency injection
● Builds on @Inject API
●Context/scope management
JSF/Facelets
●Works with multiple bean types
Managed Bean ●Includes ELResolver
MDB ●Ejb Session and Singleton
Web Services Managed Bean
● The CDI Container will
● Resolve dependencies
CDI Container
● Offer the bean for
Injection
18
19. Java EE 6 CDI Tooling
• Should be easy:
– Enable CDI in a Module: Create an empty beans.xml file
– Use @Inject, @Named, @SessionScoped, @ApplicationScoped
• Only Need EE 6 APIs in Path and Code Completion.
• JavaDoc a Goody
• But in EL (Facelets and JSP): Code Completion?
– Not for Eclipse at this moment. Only in NetBeans and IntelliJ
19
21. JAX-RS
• REST made easy
• Java Annotation Based Resource Creation
– Identity of Resources
– Self-Descriptive Resources
– Navigation between Resources
– Representation choices
• CRUD Operations: GET, DELETE, POST, PUT
21
22. Java EE 6 Jax-RS and Web Services
• Simple REST Resources Creation
• Advanced Wizards Generating
– Only in NetBeans
• Resources from Database
• Resources from Entity Classes
• Resources from Patterns
• JAX-WS:
– Service Creation
– Testing Web Services: Advantage NetBeans
– Eclipse is Axis based
22