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
Ludovic Champenois
GlassFish
        <Insert Picture Here>




   Tools Coverage for the Java EE 6 Platform
   Ludovic Champenois – GlassFish team, Eclipse and NetBeans
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
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
Java EE 6: Fast Uptake within Open
 Source and Commercial Community

Available



Announced




                                      6
Java EE 6: New and Updated components



Updated Components     New Components         Tools Support?
• EJB 3.1              ●
                        JAX-RS 1.1            • Netbeans
• JPA 2.0
                       ●
                        CDI 1.0               • Eclipse
                       ●
                        Bean Validation 1.0
• Servlet 3.0                                 • IntelliJ
                       ●
                        DI 1.0
• JSF 2.0              ●
                        Managed Beans 1.0     • Complete Support
• Interceptors 1.1                            • Partial Support...
• JAX-WS 2.2
• JSR-109 1.3
• JSP 2.2
• EL 2.2 JSR-250 1.1
• JACC 1.5
• Connectors 1.6




                                                                     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
   – But Endorsed APIs (Add Maven complexity)


                                                                       8
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
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
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
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
Java EE 6: Working with a GlassFish
Server in the Tools:
NetBeans, Eclipse and IntelliJ




                                      13
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
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
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
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
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
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
Conclusion




             20
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
Java EE 6 In IDEs

• IntelliJ
   – http://www.jetbrains.com/idea/
• Eclipse
   – http://www.oracle.com/technetwork/developer-tools/eclipse/downloads/ind
   – http://download.java.net/glassfish/eclipse/helios
• NetBeans
   – http://netbeans.org/




                                                                       22
JavaEE 6 tools coverage

JavaEE 6 tools coverage

  • 2.
    The following isintended 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 EE6: 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
  • 7.
    Java EE 6:New and Updated components Updated Components New Components Tools Support? • EJB 3.1 ● JAX-RS 1.1 • Netbeans • JPA 2.0 ● CDI 1.0 • Eclipse ● Bean Validation 1.0 • Servlet 3.0 • IntelliJ ● DI 1.0 • JSF 2.0 ● Managed Beans 1.0 • Complete Support • Interceptors 1.1 • Partial Support... • JAX-WS 2.2 • JSR-109 1.3 • JSP 2.2 • EL 2.2 JSR-250 1.1 • JACC 1.5 • Connectors 1.6 7
  • 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 InJava 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 6Integration 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 6Working 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 madeeasy • 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 6JAX-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 • Faceletsis 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 6CDI 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
  • 20.
  • 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
  • 22.
    Java EE 6In IDEs • IntelliJ – http://www.jetbrains.com/idea/ • Eclipse – http://www.oracle.com/technetwork/developer-tools/eclipse/downloads/ind – http://download.java.net/glassfish/eclipse/helios • NetBeans – http://netbeans.org/ 22