2. The following is intended to outline our general
product direction. It is intended for information
purposes only, and may not be incorporated into any
contract. It is not a commitment to deliver any
material, code, or functionality, and should not be
relied upon in making purchasing decisions.
The development, release, and timing of any
features or functionality described for Oracle’s
products remains at the sole discretion of Oracle.
2
3. Ludovic Champenois
GlassFish
<Insert Picture Here>
Tools Coverage for the Java EE 6 Platform
Ludovic Champenois – GlassFish team, Eclipse and NetBeans
4. AGENDA
• Java EE 6: Overview And Status
• Tools Support and Demos
– In NetBeans, Eclipse, IntelliJ
• Server runtime, JPA, RestFul Services Jax-RS
• Maybe JSF2.0, CDI
• Q&A
4
5. 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 production quality product...
– GlassFish 3.1 is adding Clustering support
5
6. Java EE 6: Fast Uptake within Open
Source and Commercial Community
Available
Announced
6
8. 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
– But Endorsed APIs (Add Maven complexity)
8
9. Java EE 6 : Impact on Tools
• Alignment of Platform changes and the IDEs
– 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:
– Java EE 6 support June 2010
– But GlassFish Plugin with EE 6 support before...
– Oracle Enterprise Pack for Eclipse
• Maven: All IDEs support it
– Project portability across IDEs and CLI
– Stripped Java EE API JARs in the repo
9
10. 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
10
11. Java EE 6: Oracle Gives Developer Choices
Oracle Enterprise Pack for Eclipse NetBeans 6.9.1 and Coming 7
Target WebLogic and GlassFish 3 Bundled with GlassFish 3 or 3.1
IntelliJ IDEA has great Java EE 6 Support
11
12. Java EE 6 Integration in IDEs
• Looking for:
– Bundle or not
– Easy registration or download of the GF runtime
– Easy configuration
– Start, Stop, Debug, Profile
– Admin features?
• Deploy, Undeploy, Remote Servers?
• EE resources registration
• Log File
– JavaDoc, Help menus
– Good Default Values
– Respect for Standard or promotion of private APIs?
12
13. Java EE 6: Working with a GlassFish
Server in the Tools:
NetBeans, Eclipse and IntelliJ
13
14. Java EE 6 Working with Databases
• Via JPA 2.0
• Out of the Box, GlassFish 3 bundles Derby DB
– 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
14
15. JAX-RS
• REST made easy
• Java Annotation Based REST Resource Creation
– Identity of Resources
• http://example.com/customers/petrobras
– Self-Descriptive Resources
• Bookmark-able, human friendly
– Navigation between Resources
• http://example.com/customers/petrobras/orders/2
– Representation choices
• XML, JSON, HTML, Application-Specific
• CRUD Operations:
– GET, DELETE, POST, PUT
15
16. Java EE 6 JAX-RS and Web Services
• Simple REST Resources Creation/Configuration:
– In NetBeans and Eclipse (via GlassFish plugin)
• Advanced Wizards Generating
– Only in NetBeans
• Resources from Database
• Resources from Entity Classes
• Resources from Patterns
• REST WS Tester:
– NetBeans and IntelliJ
• JAX-WS:
– Service Creation, Testing Web Services:
• Clear Advantage NetBeans
– Eclipse is Axis based
16
17. JSF 2.0
• Facelets is the foundation
– XHTML and tags
– Templating
• ui:include, ui:composition, ui:define,...
– Composite Components
• Reusable
• Turn page markup into a JSF UI component
• Managed Beans
– Annotations (faces-config is optional)
– JSF APIs or
– CDI APIs (Preferred)
• CDI support (@Named, @Inject, @SessionScoped,...)
17
18. JSF 2.0 Tooling
• NetBeans and IntelliJ are best
– XHTML/Facelet Editor
• Code Completion, Beans navigation
– NetBeans 6.10 bundles Primefaces components
– JPA to JSF 2.0 Wizards (only NetBeans)
>
– NetBeans Create Composite Components automatically
• Eclipse is lacking the new features with CDI and
annotations
– No code completion for CDI in Eclipse
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. Java EE 6 IntelliJ Eclipse NetBeans
Java EE 6 Helios: first release 6.8
JPA 2.0 EclipseLink
CDI Need JBossTools 6.9
Servlet 3.0 Bugs in 9, fixed Skeleton Gen Working default
in 10
<Insert Picture Here>
JAX-WS Lib Axis<-->JAX-WS Complete wizards and
configuration JBossTools<->Oracle runtime support
JAX-RS Wizards only via Complete wizards and
GlassFish Plugin tester
EJB 3.1 Missing wizards Missing wizards
Maven External plugin
End to End Incubator (PAVE) REST, JPA, JSF 2.0
GlassFish 3.x Profile,debug,deploy Server is Bundled.
on save, Profile,debug, deploy on
save,remote, admin,
OSGi / EE 6 Green-ish