Project Plan For OCL (Object Constraint Language), version 4.1.0 (Kepler)
Introduction
This document lays out the feature and API set for the eighth annual release of the Eclipse Object Constraint Language (Eclipse OCL) Project, version 4.1.0.
The plan for 4.1 was to complete the prototyping of models and solutions to the UML alignment and many other issues in the OMG OCL 2.3.1 specification.
Considerable progress was made, but not enough to permit the examples prototypes to be promoted as replacements for the legacy functionality.
The OCL to Java code generator was rewritten twice so that it now has a sound underlying model making the code simpler and more efficient and permitting optimizations to be realized easily.
The support for UML was improved so that the new functionality is now exploited within Papyrus for profiles and validation.
The project should now be in good shape to complete UML alignment and then support accurate auto-generation of Java for the many new and changed OCL constraints in the UML 2.5 specification.
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.1.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 OCL 4.1 will use GIT for source control.
Eclipse OCL 4.1 will primarily target Eclipse 4.3 rather than Eclipse 3.9.
Eclipse OCL 4.1.0 source code will be available as versions tagged "Kepler" in the project's GIT repository.
Release Milestones
| 4.1.0M1 | Monday 20 August 2012 | |
| 4.1.0M2 | Monday 1 October 2012 | |
| 4.1.0M3 | Monday 12 November 2012 | |
| 4.1.0M4 | Monday 17 December 2012 | |
| 4.1.0M5 | Monday 3 February 2013 | |
| 4.1.0M6 | Monday 18 March 2013 | API freeze |
| 4.1.0M7 | Monday 6 May 2013 | Feature Freeze |
| 4.1.0RC1 | Monday 20 May 2013 | |
| 4.1.0RC2 | Monday 27 May 2013 | |
| 4.1.0RC3 | Monday 3 June 2013 | |
| 4.1.0RC4 | Monday 10 June 2013 | |
| Kepler | Wednesday 26 June 2013 |
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.3 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.3 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.
Indirect dependence on version 6 of the JRE has arisen through use of the third party components such as Google Guava. This may justify raising the lower bound explicitly for Luna.
A direct dependence on version 6 of the JRE exists on ly when dynamic compilation of auto-generated Java is exploited.
Internationalization
Compatibility with Previous Releases
- Eclipse Platform SDK version 4.3
- Eclipse Modeling Framework (EMF) version 2.9
- Model Development Tools (MDT) UML2 version 4.1
As described above, the Eclipse OCL 4.1.0 release should address usability of the editors. The main OCL plugins should be unaffected, but the associated examples plugins may be revised significantly.
Again as described above, the Eclipse OCL 4.1.0 release for Kepler will introduce significant new APIs in a new namespace that replaces the old. The old namespace will be deprecated once all Simultaneous Release projects have migrated to the new namespace.
Themes and Priorities
Compliance
- [pivot] any() should return invalid rather than null for no selection [401817]
(target milestone: M6)
- [pivot] any() should return invalid rather than null for no selection [401817]
- No items.
- No items.
Release Currency
- No items.
- No items.
Usability
- [oclinecore] Unexpected errors in the OCLInEcoreEditor when reloading [382230]
(target milestone: M2) - [essentialocl] Hover text is not available in the Essential OCL editor [399582]
(target milestone: M5) - [editors] Disappointing performance [401953]
(target milestone: M7) - [completeocl] Complete OCL not available for GMF diagrams [403937]
(target milestone: M7) - [validator] Load complete OCL in QVTc editor does nothing [404064]
(target milestone: M7) - [oclinecore] Editing an *ecore file with mega-OCL content locks out the UI [404216]
(target milestone: M7) - [oclinecore] Preserve user whitespace in expressions [404870]
(target milestone: M7) - [oclinecore] Improve formatting [404871]
(target milestone: M7) - [editors] No completion assist after entering navigation operators [405228]
(target milestone: M7) - [codegen] Introduce a CodeGen Model [406804]
(target milestone: M7)
- [oclinecore] Unexpected errors in the OCLInEcoreEditor when reloading [382230]
- No items.
- No items.
Specification
- 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.
