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

The release deliverables for the Eclipse (MDT) OCL 4.0 release have the same form as is found in most Eclipse projects, namely:
  • 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.

Table of Contents

Release Milestones

Release milestones occur at roughly 6 week intervals and follow the Platform milestone releases by approximately 1 week; that is, until the final 4.2 release of the Platform, upon which Eclipse OCL and other projects will release simultaneously. As Eclipse OCL is a dependency of numerous other projects, Eclipse OCL will deliver its Core plugins at the +1 milestones schedule in accordance with the schedule below. Tools plugins will be two days later on the +3 schedule.
3.2.0M1Monday 15 August 2011
4.0.0M2Monday 26 September 2011
4.0.0M3Monday 7 November 2011
4.0.0M4Monday 12 December 2011
4.0.0M5Monday 30 January 2012
4.0.0M6Monday 19 March 2012
API freeze
4.0.0M7Monday 7 May 2012
Feature Freeze
4.0.0RC1Monday 21 May 2012
4.0.0RC2Monday 28 May 2012
4.0.0RC3Monday 4 June 2012
4.0.0RC4Monday 11 June 2012
JunoWednesday 27 June 2012

Table of Contents

Target Environments

In order to remain current, each Eclipse release targets reasonably current versions of the underlying operating environments. The Eclipse Object Constraint Language (OCL) project depends upon on the Platform and other projects, which are mostly "pure" Java. The 4.2 release of the Eclipse Platform Project is written and compiled against version 5.0 of the Java Platform APIs, and targeted to run on version 5.0 of the Java Runtime Environment, Standard Edition. Eclipse OCL will target the same Java version as EMF and UML2, which currently require Java 5. Eclipse Platform SDK 4.2 will be tested and validated on a number of reference platforms. Eclipse OCL will be tested and validated against a subset of those listed for the platform.

Internationalization

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 Eclipse OCL project will provide English strings in its default bundles and be localized to a subset of those locales offered by the Platform.

Table of Contents

Compatibility with Previous Releases

The Eclipse OCL 4.0 project will be developed in parallel, and released simultaneously, with the following projects.
  • 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.

Table of Contents

Themes and Priorities

A list of project requirements and agreed upon implementation time frames 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.

Compliance

This theme addresses issues related to the OMG OCL 2.3.1 specification adoption. The bugs related to the inherited deviations of the Eclipse OCL implementation from the OCL 2.0 specification (and consequently, OCL 2.3.1) also appear here.
  • Committed

    • [evaluator] Support for dynamic dispatch [367822] (target milestone: M7)
    • [parser] Resolve overloads to best rather than first match [378577] (target milestone: M7)

Release Currency

The Eclipse OCL project will maintain currency with its dependencies, in particular with the EMF and MDT UML2 projects.
  • Committed

    • [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)

Usability

This theme addresses the need for extensibility and usability improvements of the Eclipse OCL language implementation and APIs.
  • Committed

    • [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)
  • Deferred

    • [evaluator] On the fly OpaqueExpression parsing [286931] (target milestone: 3.2.0)
    • [ast,editor] UML alignment [315719] (target milestone: ---)
    • [validator] Use OCL expression of constraints [318092] (target milestone: RC1)

Specification

This theme addresses issues related to prototyping resolutions of problems in the OMG OCL 2.3.1 specification and enhancements in future specifications. OMG issues will be raised and RTF proposed resolutions submitted.
  • Committed

    • [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)

Table of Contents

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.

Table of Contents

view raw xml of project plan
from project meta-data key "projectplanurl"