Eclipse OCL (Object Constraint Language) 4.0.0

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 Date
This release is part of Juno
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.
Release Currency
The Eclipse OCL project will maintain currency with its dependencies, in particular with the EMF and MDT UML2 projects.
This theme addresses the need for extensibility and usability improvements of the Eclipse OCL language implementation and APIs.
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.