Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
OCL
The Eclipse OCL Project provides an implementation of the Object Constraint Language (OCL) OMG standard for EMF-based models.
The Core OCL component provides the following capabilities to support OCL integration:
- Defines APIs for parsing and evaluating OCL constraints and queries on EMF models.
- Defines Ecore and UML implementations of the OCL abstract syntax model, including support for serialization of parsed OCL expressions.
- Provides a Visitor API for analyzing/transforming the AST model of OCL expressions.
- Provides an extensibility API for clients to customize the parsing and evaluation environments used by the parser.
The Core OCL parser is generated by the LALR Parser Generator, a SourceForge project, licensed under the EPL v1.0. Download it from the LPG home page. This site includes the generator executable required to regenerate the parser code.
The additional OCL Examples and Editors component provides interactive support for OCL:
- Provides an Interactive OCL Console to evaluate queries on models.
- Provides an OCLinEcore Xtext editor for OCL embedded in an Ecore meta-model.
- Provides a CompleteOCL editor for an OCL document complementing a meta-model.
- Provides an EssentialOCL editor for individual OCL expressions.
The grammars for the Xtext-based editors auto-generate ANTLR parsers. In MDT/OCL 3.0, the ANTLR parsers are used solely within the editors. As from MDT/OCL 3.1 the Xtext grammars and parsers provide full evaluation and validation capabilities too. Since the Xtext grammars are associated with a re-engineering to support a model-defined standard library and full OMG compliance, the original LPG parser will be increasingly deprecated.
Contents
Documentation, Publications and FAQs
- Eclipse Help Center Current documentation
- New and Noteworthy features of the Eclipse OCL releases.
- Javadoc API Reference
- Articles and Presentations
- Frequently Asked Questions
Example Code
- Customizing OCL Environments
- Evaluating Stereotype Constraints using the Ecore Environment
- OCL Snippets
Releases and Development
You may want to check the New and Noteworthy features of the Eclipse OCL releases.
Planning
- Indigo Draft Plan
- Helios Draft Plan
- Galileo Draft Plan
- R1.2 Draft Plan
- R1.1 Draft Plan
- Post-Indigo Migration from CVS to GIT
API Changes
- API Changes made in the Helios Eclipse OCL release.
- API Changes made in the Indigo Eclipse OCL release.
Retention Policy
Eclipse OCL doesn't have any special project-specific API retention policy, so it follows the general Eclipse Project guidelines on API deprecation and removal
For ZIP file distributions which are downloadable from the project downloads web page:
- Formal/Official Release distributions (including service releases) will be available for as long as the corresponding Eclipse platform is available.
- Milestone and Release Candidate distributions which are stable versions preceding a release. After the M3 milestone, the three most recent distributions will be available.
- Integration/Interim distributions are used between milestones. When a new milestone distribution appears, integration distributions are removed (the last one is always kept).
- Nightly distribution are usually generated from nightly builds for internal purposes. There is no guarantee of any retention.
For the P2 repositories, the following policy applies:
- Formal/Official Release P2 repositories are kept for as long as the corresponding Eclipse platform is available.
- Helios Release P2 repository: http://download.eclipse.org/modeling/mdt/ocl/3_0/updates/
- The three most recent Milestone and Release Candidate P2 repositories are kept until the Official release arrives.
- Indigo Milestones P2 repository: http://download.eclipse.org/modeling/mdt/ocl/updates/milestones/3.1.0/
- We only keep one P2 repository with the last integration build.
- Indigo Interim P2 repository: http://download.eclipse.org/modeling/mdt/ocl/updates/interim/3.1.0/
- We only keep one P2 repository with the last nightly build.
- Indigo Nightly P2 repository: http://download.eclipse.org/modeling/mdt/ocl/updates/nightly/3.1.0/
N.B: This policy has been created the 24th, December, 2010. Last update: the 12th, January, 2011.
Architecture
The remainder of this section has links to pages of interest primarily to those developing the OCL component.
Development Environment
Release Engineering
- How to Make and Publish Builds Using Athena CBI (DEPRECATED)
- How to Make and Publish Builds Using Buckminster
- P2 Repositories Organization
- Features Organization
Related Links
- Modeling Project Category Wiki
- Model Development Tools Category Wiki
- How to build Modeling sub-projects like OCL