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.