Project Plan For Model Development Tools (MDT), version Juno
Introduction
This document lays out the feature and API set for the seventh annual release of the Eclipse Object Constraint Language (MDT OCL) Project, version 4.0.0.
The original plan for a major version increment to 4.0 was abandoned in favour of a 3.2 increment, however tight coupling to MDT/UML2, which plans a major increment, mandates the increment to 4.0 for the overall project, features and UML-dependent plugins. The non-UML-dependent plugins have a minor increment to 3.2. Newly UI plugins start at 1.0.
Versions 3.0 and 3.1 saw the introduction of Xtext-based editors and an associated rewrite of the meta-models and evaluator to prototype a UML-aligned pivot meta-model on behalf of OCL 2.3.1 and to use a model for the OCL Standard Library. This functionality was provided in Examples plugins. The planned promotion of these Xtext-based editors and the associated pivot meta-model from Examples to Core/Tools plugins has been deferred till Kepler since the code was not ready and the timescales for review were totally unreasonable.
Version 4.0 introduces a preliminary OCL to Java code generator so that OCL embedded in Ecore may be directly genmodelled and so that OCL-defined well-formedness rules can be used for validation within the editors.
Version 4.0 introduces an ability to load Complete OCL documents for use in third party applications such as the Ecore generated Editors and Xtext generated editors so that user-defined meta-model constraints can augment validation.
The Examples API has been revisited to facilitate re-use by OCL-derived languages such as QVT.
Note that, since the OMG OCL 2.3.1 standard suffers from significant ambiguities and conflicts making a compliant implementation impossible, Eclipse (MDT) OCL 4.0.0 release is a best endeavours attempt to establish a coherent interpretation of the OMG OCL 2.3.1 and to prototype resolutions and auto-generation of the OMG OCL 2.5 standard. Two of the Eclipse (MDT) OCL committers are also members of the OMG Revision Task Force that resolves the specification issues.
Release Deliverables
- OCL All-in-One P2 repository (downloadable and update site).
Eclipse (MDT) OCL 4.0 will use GIT rather than CVS for source control.
Eclipse (MDT) OCL 4.0 will primarily target Eclipse 4.2 rather than Eclipse 3.8.
Eclipse (MDT) OCL 4.0.0 source code will be available as versions tagged "R4_0" in the project's GIT repository.
Release Milestones
| 3.2.0M1 | Monday 15 August 2011 | |
| 4.0.0M2 | Monday 26 September 2011 | |
| 4.0.0M3 | Monday 7 November 2011 | |
| 4.0.0M4 | Monday 12 December 2011 | |
| 4.0.0M5 | Monday 30 January 2012 | |
| 4.0.0M6 | Monday 19 March 2012 | API freeze |
| 4.0.0M7 | Monday 7 May 2012 | Feature Freeze |
| 4.0.0RC1 | Monday 21 May 2012 | |
| 4.0.0RC2 | Monday 28 May 2012 | |
| 4.0.0RC3 | Monday 4 June 2012 | |
| 4.0.0RC4 | Monday 11 June 2012 | |
| Juno | Wednesday 27 June 2012 |
Target Environments
Internationalization
Compatibility with Previous Releases
- Eclipse Platform SDK version 4.2
- Eclipse Modeling Framework (EMF) version 2.8
- Model Development Tools (MDT) UML2 version 4.0
As described above, the Eclipse OCL 4.0.0 release should address usability of the editors. The main OCL plugins should be unaffected, but the associated examples plugins may be revised significantly.
Themes and Priorities
Compliance
- No items.
- No items.
Release Currency
- [project] Migrate to GIT [349114]
(target milestone: M1) - [releng] Change Juno build's target platform to use Eclipse platform 4.2 [357522]
(target milestone: M5) - [project] Major version change to 4.0 [358558]
(target milestone: M2) - [project] Maintain currency with MDT/UML2 [360569]
(target milestone: M7) - [releng] Ensure Hudson builds use "Buckminster 4.2" [373362]
(target milestone: M7) - [uml] Exploit UMLResourcesUtil.init [377262]
(target milestone: M7)
- [project] Migrate to GIT [349114]
- No items.
- No items.
Usability
- [synthesis] Introduce a CodeSynthesis 'Visitor' [279638]
(target milestone: M3) - [evaluator] Improve handling of Long as Integer [344368]
(target milestone: M7) - [ast] Provide a pretty printing API [349758]
(target milestone: M1) - [pivot] Prefer Integer or Long rather than BigInteger [354907]
(target milestone: M2) - [pivot] Support Save-in-Ecore [355471]
(target milestone: M2) - [oclinecore] documentation EAnnotations [358915]
(target milestone: M3) - [environment] http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore times out [364797]
(target milestone: RC1)
- [synthesis] Introduce a CodeSynthesis 'Visitor' [279638]
- No items.
Specification
- [language] selectAsType suggestion [309459]
(target milestone: M5) - [language] Define and implement regular expression matching [293732]
(target milestone: M7) - [evaluator] Collection.sum should work for user-defined types [299843]
(target milestone: ---) - [pivot] Make OclSelf a pseudo-type [349125]
(target milestone: M1)
- [language] selectAsType suggestion [309459]
- No items.
- No items.
Appendix Legal Notices
- Java is a trademark or a registered trademark of Oracle Corporation.
- OCL, QVT, UML and OMG are trademarks or registered trademarks of the Object Management Group, Inc.
- All other products or company names are mentioned for identification purposes only, and may be trademarks or service marks of their respective owners.
