GlassFish Server Open Source Edition 3.1 - Eclipse Integration One Pager

1. Introduction

1.1. Project/Component Working Name:

Eclipse Plugins for GlassFish Server Open Source Edition 3.1

1.2. Name(s) and e-mail address of Document Author(s)/Supplier:

Ludovic Champenois: ludovic.champenois@oracle.com

1.3. Date of This Document:

05/27/10

1.4. Abbreviations for Unnamed Products and Projects

2. Project Summary

2.1. Project Description:

Extend the plugin that integrates Glassfish Server 3 to work well with GlassFish Server 3.1

2.2. Risks and Assumptions:

Assumptions

  1. Developers do not want to interact with the clustering capabilities of GlassFish Server 3.1 from inside the IDE.
  2. Developers do want to interact with GlassFish Server 3.1 'on par' with their experience interacting GlassFish Server 3.0.
  3. Developers do want the capabilities of the server integration to expand.

Risks

  1. Schedule alignment
    1. Eclipse 3.6 update releases and Eclipse 3.7 (June 2011) and related Java EE 6 features (or missing Features)
    2. Alignment with OEPE (Oracle Entreprise Pack for Eclipse) where the GlassFish Plugin and the Java EE Javadoc plugins will be integrated including in the combined OEPE Update Center

3. Problem Summary

3.1. Problem Area:

Some of the features exposed by the existing GlassFish/GlassFish integration are changing in the GlassFish Server 3.1 release.

  1. The name of the server.

There are some new features that are being added to GlassFish Server 3.1 that would be useful to developers.

  1. New deployment descriptors
    1. rebranding
    2. extensions
  2. WebLogic deployment descriptor support
  3. Application scoped resources
    1. integrated with deployment
  4. Application versioning

There are some features of GlassFish Server 3.0 (and 3.1) that would be useful to developers that were not exposed in previous integrations.

Some of the 'interfaces' that the IDE leverages to provide a Java EE development environment will change in the GlassFish Server 3.1 release.

3.2. Justification:

The Eclipse/Glassfish integration has a number of features that are impacted directly or indirectly by the changes being made in GlassFish Server 3.1. As 3.1 matures the number
of changes will cause bugs (current integration features to actually break) and gaps (integration features that are noticably incomplete).

4. Technical Description:

4.1. Details:

The IDE integration is written as Eclipse plugins. These modules implement a number of services that the IDE then uses to interact with the server.
The integration needs to allows for registration of GlassFish 3 and 3.1 servers. The user can start, stop, start in debug mode, in profiler mode, the local servers and see the log output in the Eclipse output area. All the exposed Java EE 6 features of the Eclipse IDE should work with minimal configuration with GlassFish 3 and 3.1 targets.
The Oracle Eclipse team and GlassFish team will have to collaborate with the Eclipse 3.7 train to add any missing Java EE 6 capabilities (JAZ-WS, CDI, Bean Validation, etc).
WebLogic Deployment Descriptors Editors in OEPE should also work and be active if GlassFish is the Server Target.
A better integration of the GlassFish plugin is needed in OEPE. For example, GlassFish should be a target of all the JAX-WS wizards that are currently very WebLogic centric.

4.2. Bug/RFE Number(s):

To see a more complete picture of the Bugs/RFEs for the project, look at the [ issues|https://glassfishplugins.java.net]

4.3. In Scope:

The plugin will allow the user to interact with versioned applications in the Servers explorer, which allows users to see deployed applications and manipulate them.

4.4. Out of Scope:

The Eclipse integration plugin for GlassFish Server 3.1 will not expose the developer to clusters and stand-alone instances.
The IDE is not targeted as an administrative tool. There are also aspects of a cluster or stand-alone instance that would require
changes that would flow beyond the scope of the 'plugin' and into code that is owned by other teams.

Users will not be able to leverage the application versioning feature as part of their project development workflow.

4.5. Interfaces:

4.5.1 Public Interfaces

4.5.2 Private Interfaces

4.5.3 Deprecated/Removed Interfaces:

4.6. Doc Impact:

The documentation of the plugin is handled by the GlassFish documentation team.

4.7. Admin/Config Impact:

The plugin does not change the admin or config, but it does leverage these two areas of the server significantly.

4.8. HA Impact:

The plugin does not interact with HA.

4.9. I18N/L10N Impact:

The IDE integration is coded following the i18n requirements from the Eclipse IDE. The plugin is not currently localized. We will follow Oracle guidelines for OEPE there.

4.10. Packaging, Delivery & Upgrade:

4.10.1. Packaging

The plugin is included in OEPE, so it has no independent packaging requirements.

4.10.2. Delivery

The IDE integration has no impact on the server delivery. There is a strong desire for the two projects (Eclipse and GlassFish Server 3.1) to work together nicely when 3.1 ships

4.10.3. Upgrade and Migration:

The plugin will continue to support a large number of releases so users can upgrade their IDE from Eclipse 3.5, 3.6 updates and not lose functionality.

4.11. Security Impact:

The IDE integration does not have a direct security impact.

The IDE performs many operation on the server via the http adapter. In 3.0, queries on this interface would generate
HTTP 401 responses for BASIC authentication. If the http adapter starts to request a different form of authentication, the plugin will have to account for that change.

4.12. Compatibility Impact

4.13. Dependencies:

4.13.1 Existing Dependencies

  • The http adapter
    • Translate UI actions into server commands
    • Get/set config data for display and editing
  • The layout of the installed server/domain
    • Validate server registration
    • Provide link between API jars in the server install and the Eclipse projects that use them
    • Resolve schemas and dtds to support xml editing
    • Access the update tool
    • display the log for a server
    • display generated java source for a jsp
    • enable JDBC driver deployment
    • enable Java EE verification on a project
  • The domain.xml file
    • Validate server registration
    • Discover deployed resources when local server is offline
    • Starting the server without using asadmin start-domain
  • URL for zip based distributions
    • Download now functionality

4.13.2 New Dependencies

  • The REST API
    This interface will be used in preference to the http adapter, where possible.
    • improved Web Service visibility

4.14. Testing Impact:

New Testing requirements will be on the OEPE team for integration testing. Plugin testing is TBD...

5. Reference Documents:

The Deployment One Pager

The Connectors One Pager

The Restful API One Pager

The Logging One Pager

6. Schedule:

6.1. Projected Availability:

Eclipse 3.6: June 2010: Support for GlassFish 3.0.1 and nightly builds of GlassFish 3.1
OEPE release: July 2010.
OEPE Update: september 2010: mainly bug fixes on Eclipse 3.6.
Eclipse 3.6 Update: December 2010: possible date where more Java EE 6 wizards can be included in Eclipse itself. This is is update release that is targeted for support of the official GlassFish 3.1 release
Eclipse 3.7: June 2011: Goal is to cover 100% of the Java EE 6 wizards and GlassFish 3.1 update release.