GMF Project Plan
Graphical Modeling Framework Draft 2.0 Plan
Last revised 19:05 EDT May 20, 2006
Please send comments about this draft plan to the firstname.lastname@example.org developer mailing list.
This document lays out the feature and API set for the initial release of the Eclipse Graphical Modeling Framework Project, version 2.0.0.
This project plan and associated requirements are the result of an open and transparent process and includes input from those who have expressed an interest in the project. That said, the success of the project and its deliverables is soley dependent upon the contributions from its community membership. If you are interested in contributing to the project in the delivery of its stated goals, you are more than welcome!
The first part of the plan deals with the important matters of release deliverables, release milestones, target operating environments, compatibilities and dependencies. These are all things that need to be clear for any release, even if no features were to change.
The remainder of the plan consists of themes for the project's milestones, with more detail on these and future capabilities found on the project requirements document. Each plan item covers a feature or API that is to be added to the Graphical Modeling Framework, or some aspect of the project that is to be improved.
As this plan represents the goals for the initial release of the Graphical Modeling Framework, it is expected and hoped that the project will acquire additional requirements, a vibrant user community, and most importantly, a plug-in developer community to utilize the framework. With this, it is expected that the plan will be adjusted during the development cycle in order to accomodate the community to as great an extent as possible.
The release deliverables have the same form as is found in most Eclipse projects, namely:
- Graphical Modeling Framework source code release, available as versions tagged "R2_0" in the project's CVS repository.
- Graphical Modeling Framework SDK (includes runtime and tooling components, with sources and documentation) (downloadable).
- Graphical Modeling Framework runtime binary distribution (downloadable).
- Graphical Modeling Framework examples (downloadable).
- Graphical Modeling Framework tests (downloadable).
Release milestone occurring at roughly 6 week intervals and follow the Platform milestone releases by approximately 2 weeks; that is, until the final X.X release of the Platform, upon which GMF and other projects will release simultaneously. As GMF is dependent upon the EMF, GEF, and EMFT projects, which are scheduled to release milestones within 1 week of Platform milestones, GMF will deliver its milestones within the following week. It is anticipated that GMF will synchronize its release milestones with the Callisto++ (name?) release schedule. The milestones are:
- Friday Mmm XX, 200X - Milestone 1 (2.0 M1) - stable build, tagged M1_20 in CVS
- Friday Mmm XX, 200X - Milestone 1 (2.0 M2) - stable build, tagged M2_20 in CVS
- Friday Mmm XX, 200X - Milestone 1 (2.0 M3) - stable build, tagged M3_20 in CVS
- Friday Mmm XX, 200X - Milestone 1 (2.0 M4) - stable build, tagged M4_20 in CVS
- Friday Mmm XX, 200X - Milestone 1 (2.0 M5) - stable build, tagged M5_20 in CVS (API freeze)
- Friday Mmm XX, 200X - Milestone 1 (2.0 M6/RC0) - stable build, tagged M6_20 in CVS
Lock down and testing then begins with M6, and progress through a series of test-fix passes against candidates releases. Release candidate builds are planned as follows (M6 is release candidate 0):
- Friday Mmm XX, 200X - Release Candidate 1 - (2.0 RC1)
- Friday Mmm XX, 200X - Release Candidate 2 - (2.0 RC2)
- Friday Mmm XX, 200X - Release Candidate 3 - (2.0 RC3)
- Friday Mmm XX, 200X - Release Candidate 4 - (2.0 RC4)
- Friday Mmm XX, 200X - Release Candidate 5 - (2.0 RC5)
- Friday Mmm XX, 200X - Release Candidate 6 - (2.0 RC6)
As these milestones are dependent upon the Platform, they may be altered in order to conform to the published plan. All release deliverables will be available for download as soon as the release has been tested and validated in the target operating configurations listed below.
GMF 1.0.1 and 1.0.2 maintenance releases are anticipated, to align with the release of the Platform 3.2.1 (Q306) and 3.2.2 (Q107) releases, respectively.
Target Operating Environments
In order to remain current, each Eclipse release targets reasonably current versions of the underlying operating environments.
The Eclipse Graphical Modeling Project depends upon on the Platform and other projects, which are mostly "pure" Java. The X.X release of the Eclipse Platform Project is written and compiled against version 1.5 of the Java Platform APIs (i.e., Java SE 5), and targeted to run on version 1.5 of the Java Runtime Environment, Standard Edition. GMF will target the same Java version as the Platform.
Eclipse Platform SDK X.X will be tested and validated on a number of reference platforms. The Eclipse Graphical Modeling Project will be tested and validated against a subset of those listed for the platform. Those available will be presented on the project download site.
The Eclipse Platform is designed as the basis for internationalized products. The user interface elements provided by the Eclipse SDK components, including dialogs and error messages, are externalized. The English strings are provided as the default resource bundles. As a result, the Graphical Modeling Framework project will provide English strings in its default bundles and be localized to a subset of those locales offered by the Platform. This plan will be updated to indicate which locales will be provided and the timeframe for availability.
Compatibility and Dependencies
Compatibility of Release 2.0
The Graphical Modeling Framework Project will be developed in parallel, and released simultaneously, with the following projects. As stated above, each milestone release of the Graphical Modeling Framework Project will be compatible with the corresponding milestones for each of these projects, and delivered the appropriate offset.
- Eclipse Platform SDK version X.X
- Eclipse Modeling Framework (EMF) version X.X
- Graphical Editing Framework (GEF) version X.X
- EMF Technology (OCL, Query, Validation, Transaction) version X.X
Therefore, the Graphical Modeling Framework initial release will be compatible with these versions and will publish binary and source compatibilities with migration guides on subsequent releases.
It is a goal of the Graphical Modeling Framework Project to avoid provisional APIs. APIs published for the 2.0 release will be carefully reviewed prior to release, making use of "internal" packages for unsupported and variable implementation classes. Client plug-ins that directly depend on anything other than what is specified in the published API are inherently unsupportable and receive no guarantees about future compatibility. Refer to How to Use the Eclipse API for information about how to write compliant plug-ins.
Features and Capabilities
A list of project requirements and agreed upon implementation timeframes is found in this document. For the milestones listed in this document, a set of overall themes is used to indicate what major set of functionalities is to be concentrated on for each. These themes are presented below, while the requirements document and associated Bugzilla entries are left to those wanting more detailed information on each.
A number of items related to the GMF API are found in this section.
- 109871 Integrate sort/filter ListCompartmentEditPart capability with CanonicalEditPolicy
- 110332 Provide control over DiagramEditPart creation from Diagram.
- 111920 Canonical Framework should support listening on connector ends for reorientation.
- 112823 Adopt Eclipse 3.2 Action Contribution Improvements
- 113965 User-defined properties for runtime diagram (notation) model elements
- 113966 Custom (specific) runtime diagram model
- 114201 [req] Utilize extensibility options in code generation
- 115145 Global Action Service needs to be revisited.
- 117778 IFileChangeManager does not support filtering of Resource Change Events based on Content Type
- 121755 Need to add support for DropRequest in edit helpers framework
- 125899 Provide API to obtain all sub-ElementTypes of a given EClass
- 126147 IconOperation is in internal package.
- 129158 Ability to bind layout type to diagram type at post-design time
- 129245 Add an extension to IDocumentProvider to support print
- 131691 Rename CompartmentEditPart to InnerEditPart
- 133505 Refactor CanonicalConnectionEditPolicy to update connections without domain element associated
- 134707 Make WrapTextCellEditor(and TextCellEditorEx) public
- 135545 The pathmaps preference page allows me to override path map variables contributed through the extension point
- 138560 Make DirectEditKeyHandler public
- 139823 To prevent unnecessary plugin loading, org.eclipse.gmf.runtime.common.core.util.Log should have static methods that do not require the Plugin parameter
- 140194 <paletteProviders> extension pt. does not resolve <content> correctly
A number of usability items related to runtime and tooling components of GMF are found in this section.
Theme: Model[ing] Citizen
As a project within the Eclipse Modeling Project, a number of build dependency and interoperability items exist with other Modeling projects, as found in this section.
- 127909 Download pages need to adopt new look and feel
- 127911 Build schedule needs to be posted
- 134724 Build notes link on a GMF build download page
A number of items related to the implementation and support of standards is found in this section.
- 114190 [req] Support multiple languages in definition
- 114207 [req] Method of generation should be flexible.
- 114207 [req] Support diagram interchange
- 114233 [req] Provide alternative persistence mechanism
A number of performance issues are found in this section.
- 110496 Painting Performance enhancements
- 115829 Performance: Consider making DecorationService optimized
- 120106 Improve performance of AbstractProviderConfiguration
- 129344 ModelingAssistantService provides() method can be optimized
- 132261 Project explorer : when you scroll using up/down keys, is slow : GMF tree selection change listener takes time
- 138665 Performance: Copy Operation could be optimized
- 139313 Performance issues with Element Selection Service
- 140894 Performnace: Services use IConfigurationElement repeatedly to retrieve info
- 140898 Services need to revisit the question of using internal caches
- 141061 Performance: Notation metamodel can reduce its memory usage
- 141075 Performance DeleteFromModelAction is too slow calculating its enablement
- 141621 Performance TextCompartmentEditPart, LabelEditPart and WrapLabel figure are relatively slow refreshing