Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "OCL"

(Documentation, Publications and FAQs)
(Documentation, Publications and FAQs)
(26 intermediate revisions by 2 users not shown)
Line 21: Line 21:
 
== Downloads and Updates ==
 
== Downloads and Updates ==
  
Eclipse OCL Downloads are available via the [http://www.eclipse.org/modeling/mdt/downloads/?project=ocl Project Downloads] page.
+
=== For Users ===
  
Eclipse OCL Updates are available at http://download.eclipse.org/modeling/mdt/ocl/updates and from the Modeling category of the main http://download.eclipse.org/releases/kepler/ Update Site. The ''OCL End User SDK'' feature supports OCL in conjunction with Ecore or UML meta-models. The ''OCL Examples and Editors'' feature additionally provides an IDE comprising Xtext-based editors, an Interactive Console and Debugger.
+
Eclipse OCL may be installed directly from the main Eclipse http://download.eclipse.org/releases/photon/ Update Site.
 +
* ''Help''->''Install New Software...''
 +
* ''Works with:'' Photon - http://download.eclipse.org/releases/photon
 +
* Select ''Modeling''->''OCL Examples and Editors SDK''
 +
or from an OCL-specific site: http://download.eclipse.org/modeling/mdt/ocl/updates. The Eclipse OCL Repositories and Updates for Milestone, Interim and Nightly builds are described in [[OCL/Dev/Releng/P2_Repositories_Organization | P2 Repositories Organization]] and retained in accordance with the [[OCL/Dev/Policies#Retention_Policy | Retention Policy]].
  
Eclipse OCL Repositories and Updates for Milestone, Interim and Nightly builds are described in [[OCL/Dev/Releng/P2_Repositories_Organization | P2 Repositories Organization]] and retained in accordance with the [[OCL/Dev/Policies#Retention_Policy | Retention Policy]].
+
The ''OCL Examples and Editors SDK'' feature provides the full IDE comprising Xtext-based editors, Interactive Console, Debugger and Java Code Generator all using the new Unified Pivot -based OCL.
  
Eclipse OCL source code is available from git://git.eclipse.org/gitroot/mdt/org.eclipse.ocl.git, [http://git.eclipse.org/c/mdt/org.eclipse.ocl.git http://git.eclipse.org/c/mdt/org.eclipse.ocl.git] and [https://github.com/eclipse/ocl/network github Network]. All source projects may be installed by Import...->Team->Team Project Set, then entering [http://git.eclipse.org/c/ocl/org.eclipse.ocl.git/plain/releng/org.eclipse.ocl.releng/psfs/ocl-all.psf?h=master http://git.eclipse.org/c/ocl/org.eclipse.ocl.git/plain/releng/org.eclipse.ocl.releng/psfs/ocl-all.psf?h=master] as the URL for import. Be patient; the repository clone takes a while, and there are no obvious progress indicators during the third phase while projects are actually created.
+
The ''OCL End User SDK'' feature provides the Classic OCL support with distinct Ecore and UML APIs.  
  
Eclipse OCL has [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;bug_status=UNCONFIRMED;bug_status=NEW;bug_status=ASSIGNED;bug_status=REOPENED;product=MDT.OCL;classification=Modeling Open Bugs] and a [news://new.eclipse.org:119/eclipse.modeling.mdt.ocl newsgroup] or [http://www.eclipse.org/forums/eclipse.modeling.mdt.ocl forum]. See the [[OCL/ForumNetiquette | OCL Forum Netiquette]]
+
Eclipse OCL may be installed indirectly by downloading an archive ZIP from [http://www.eclipse.org/modeling/mdt/downloads/?project=ocl Project Downloads] and then using the downloaded ZIP as the ''Works with'' site for ''Help''->''Install New Software...''
 +
 
 +
Eclipse OCL has [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;bug_status=UNCONFIRMED;bug_status=NEW;bug_status=ASSIGNED;bug_status=REOPENED;product=MDT.OCL;classification=Modeling Open Bugs] and a [news://new.eclipse.org:119/eclipse.modeling.mdt.ocl newsgroup] or [http://www.eclipse.org/forums/eclipse.modeling.mdt.ocl forum]. See the [[OCL/ForumNetiquette | OCL Forum Netiquette]].
 +
 
 +
=== For Developers ===
 +
 
 +
An Eclipse OCL development environment may be created automatically using the [https://wiki.eclipse.org/Eclipse_Installer OOMPH] Eclipse Installer. Follow the OOMPH instructions to first create an Eclipse installation with a Java VM, then invoke ''File''->''Import Projects''->''Oomph''->''Projects into Workspace''->''Eclipse Projects''->''OCL''->''Development''. After a few minutes the required dependencies have been downloaded and a restart is required. Then after a few tens of minutes the required GIT repositories have been cloned and you are ready to go; there should be no errors in the ''Problems View''. You may wish to select ''Working Sets'' as the top level elements in the ''Package Explorer''. You may ''Run''->''Run Configurations...''->''JUnit''->''org.eclipse.ocl.examples.xtext.tests (standalone)'' to demonstrate that the standard tests are passing.
 +
 
 +
Alternatively an Eclipse OCL development environment may be created manually using the Eclipse OCL source code from git://git.eclipse.org/c/ocl/org.eclipse.ocl.git, [http://git.eclipse.org/c/ocl/org.eclipse.ocl.git http://git.eclipse.org/c/ocl/org.eclipse.ocl.git] and [https://github.com/eclipse/ocl/network github Network]. All source projects may be installed by Import...->Team->Team Project Set, then entering [http://git.eclipse.org/c/ocl/org.eclipse.ocl.git/plain/releng/org.eclipse.ocl.releng/psfs/ocl-all.psf?h=master http://git.eclipse.org/c/ocl/org.eclipse.ocl.git/plain/releng/org.eclipse.ocl.releng/psfs/ocl-all.psf?h=master] as the URL for import. Be patient; the repository clone takes a while, and there are no obvious progress indicators during the third phase while projects are actually created.
 +
 
 +
If you plan to contribute to Eclipse OCL, please have a look to the project [https://projects.eclipse.org/projects/modeling.mdt.ocl/developer Developer Resources]
  
 
== Documentation, Publications and [[OCL/FAQ|FAQs]] ==
 
== Documentation, Publications and [[OCL/FAQ|FAQs]] ==
  
* [[OCL/Compliance|(OMG) OCL Compliance]] and [[OCL/Limitations|(Eclipse) OCL Limitations]]
+
* [[OCL/Articles|Articles and Presentations]]
* [http://help.eclipse.org/ Eclipse Help Center] Current documentation
+
* Eclipse OCL Documentation from the [http://help.eclipse.org/ Eclipse Help Center]
** Luna OCL Documentation [http://help.eclipse.org/kepler/topic/org.eclipse.ocl.doc/help/Overview.htm HTML] [http://download.eclipse.org/ocl/doc/5.0.0/ocl.pdf PDF]
+
** Photon OCL 6.4/3.8/1.4 Documentation [http://help.eclipse.org/photon/topic/org.eclipse.ocl.doc/help/OverviewandGettingStarted.html HTML] [http://download.eclipse.org/ocl/doc/6.4.0/ocl.pdf PDF] [http://download.eclipse.org/ocl/javadoc/6.4.0 Javadoc]
** Kepler OCL Documentation [http://help.eclipse.org/kepler/topic/org.eclipse.ocl.doc/help/Overview.html  HTML]
+
** Oxygen OCL 6.3/3.7/1.3 Documentation [http://help.eclipse.org/oxygen/topic/org.eclipse.ocl.doc/help/OverviewandGettingStarted.html HTML] [http://download.eclipse.org/ocl/doc/6.3.0/ocl.pdf PDF] [http://download.eclipse.org/ocl/javadoc/6.3.0 Javadoc]
** Juno OCL Documentation [http://help.eclipse.org/juno/topic/org.eclipse.ocl.doc/help/Overview.html  HTML]
+
** Neon OCL 6.1/3.6/1.1 Documentation [http://help.eclipse.org/neon/topic/org.eclipse.ocl.doc/help/OverviewandGettingStarted.html HTML] [http://download.eclipse.org/ocl/doc/6.1.0/ocl.pdf PDF] [http://download.eclipse.org/ocl/javadoc/6.1.0 Javadoc]
** Indigo OCL Documentation [http://help.eclipse.org/indigo/topic/org.eclipse.ocl.doc/help/Overview.html  HTML] [[OCL/Indigo Documentation Errata| Errata]]
+
** Mars OCL 6.0/3.5/1.0 Documentation [http://help.eclipse.org/mars/topic/org.eclipse.ocl.doc/help/OverviewandGettingStarted.html HTML] [http://download.eclipse.org/ocl/doc/6.0.0/ocl.pdf PDF] [http://download.eclipse.org/ocl/javadoc/6.0.0 Javadoc]
** Helios OCL Developer Guide [http://help.eclipse.org/helios/nav/40 HTML]
+
** Luna OCL 5.0/3.4 Documentation [http://help.eclipse.org/luna/topic/org.eclipse.ocl.doc/help/OverviewandGettingStarted.html HTML] [http://download.eclipse.org/ocl/doc/5.0.0/ocl.pdf PDF] [http://download.eclipse.org/ocl/javadoc/5.0.0 Javadoc]
 +
** Kepler OCL 4.1/3.3 Documentation [http://help.eclipse.org/kepler/topic/org.eclipse.ocl.doc/help/Overview.html  HTML]
 +
** Juno OCL 4.0/3.2 Documentation [http://help.eclipse.org/juno/topic/org.eclipse.ocl.doc/help/Overview.html  HTML]
 +
** Indigo OCL 3.1 Documentation [http://help.eclipse.org/indigo/topic/org.eclipse.ocl.doc/help/Overview.html  HTML] [[OCL/Indigo Documentation Errata| Errata]]
 +
** Helios OCL 3.0 Developer Guide [http://help.eclipse.org/helios/topic/org.eclipse.ocl.doc/help/Overview.html HTML]
 
* [[OCL/New_and_Noteworthy|New and Noteworthy]] features of the Eclipse OCL releases.
 
* [[OCL/New_and_Noteworthy|New and Noteworthy]] features of the Eclipse OCL releases.
 +
** [[OCL/New_and_Noteworthy/2018-09|6.5/3.9/1.5 2018-09 release (September 2018)]]
 +
** [[OCL/New_and_Noteworthy/Photon|6.4/3.8/1.4 Photon release (June 2018)]]
 +
** [[OCL/New_and_Noteworthy/Oxygen|6.3/3.7/1.3 Oxygen release (June 2017)]]
 +
** [[OCL/New_and_Noteworthy/Neon++|6.2/3.6/1.2 Neon++ release (July 2016)]]
 +
** [[OCL/New_and_Noteworthy/Neon|6.1/3.6/1.1 Neon release (June 2016)]]
 +
** [[OCL/New_and_Noteworthy/Mars|6.0/3.5/1.0 Mars release (June 2015)]]
 +
** [[OCL/New_and_Noteworthy/Luna|5.0/3.4 Luna release (June 2014)]]
 +
** [[OCL/New_and_Noteworthy/Kepler|4.1/3.3 Kepler release (June 2013)]]
 +
** [[OCL/New_and_Noteworthy/Juno|4.0/3.2 Juno release (June 2012)]]
 +
** [[OCL/New_and_Noteworthy/Indigo|3.1 Indigo release (June 2011)]]
 +
** [[OCL/New_and_Noteworthy/Helios|3.0 Helios release (June 2010)]]
 +
** [[OCL/New_and_Noteworthy/Galileo|1.3 Galileo release (June 2009)]]
 +
** [[MDT_1.1_New_and_Noteworthy#Object_Constraint_Language (OCL) Component|1.2.0 Ganymede release (June 2008)]]
 +
** [[MDT_1.0_New_and_Noteworthy#Object Constraint Language (OCL) Component|1.1.0 Europa release (June 2007)]]
 +
 
* [http://www.eclipse.org/modeling/mdt/javadoc/#ocl Javadoc] API Reference
 
* [http://www.eclipse.org/modeling/mdt/javadoc/#ocl Javadoc] API Reference
* [[OCL/Articles|Articles and Presentations]]
 
 
* [[OCL/FAQ|Frequently Asked Questions]]
 
* [[OCL/FAQ|Frequently Asked Questions]]
 +
* [[OCL/Compliance|(OMG) OCL Compliance]] and [[OCL/Limitations|(Eclipse) OCL Limitations]]
  
 
== Example Code ==
 
== Example Code ==
Line 72: Line 105:
 
* [[MDT/OCL_3.1.0_API_Changes| API Changes]] made in the Indigo Eclipse OCL release.
 
* [[MDT/OCL_3.1.0_API_Changes| API Changes]] made in the Indigo Eclipse OCL release.
 
* [[MDT/OCL_Juno_Deprecations| Deprecations]] announced in the Juno Eclipse OCL release.
 
* [[MDT/OCL_Juno_Deprecations| Deprecations]] announced in the Juno Eclipse OCL release.
 +
* [[MDT/OCL_Oxygen_Deprecations| Deprecations]] announced in the Oxygen Eclipse OCL release.
 +
* [[MDT/OCL_Photon_Deprecations| Deprecations]] announced in the Photon Eclipse OCL release.
 
* [[MDT/OCL_Limitations| Limitations]] of the Ecore/UML bindings and OCL 2.3 compared to the Pivot binding and 'OCL 2.5'.
 
* [[MDT/OCL_Limitations| Limitations]] of the Ecore/UML bindings and OCL 2.3 compared to the Pivot binding and 'OCL 2.5'.
  
Line 90: Line 125:
  
 
* [[OCL/Dev/Releng/Buckminster | How to Make and Publish Builds Using Buckminster]]
 
* [[OCL/Dev/Releng/Buckminster | How to Make and Publish Builds Using Buckminster]]
 +
* [[OCL/Dev/Releng/EndOfYear| End of Year tasks]]
 
* [[OCL/Dev/Releng/ReleasesTransition | Transition between releases]]
 
* [[OCL/Dev/Releng/ReleasesTransition | Transition between releases]]
 
* [[OCL/Dev/Releng/Quiet_Week | Quiet week]]
 
* [[OCL/Dev/Releng/Quiet_Week | Quiet week]]
Line 95: Line 131:
 
* [[OCL/Dev/Releng/Features_Organization| Features Organization]]
 
* [[OCL/Dev/Releng/Features_Organization| Features Organization]]
 
* [[OCL/Dev/Releng/Issues_Documentation| Issues Documentation]]
 
* [[OCL/Dev/Releng/Issues_Documentation| Issues Documentation]]
 +
* [https://docs.google.com/document/d/1jtoDi8mbDrUYi0rY5ZZhrvwy8W0jr_pGpFcK9dnQB8c/edit?usp=sharing_eip&ts=58d7ead5 Tycho build considerations]
 +
 +
== Sponsors ==
 +
Thanks to the following organizations who support the Eclipse OCL project with infrastructure and software
 +
 +
=== Eclipse Foundation ===
 +
 +
=== YourKit ===
 +
[[File:Yklogo.png|frameless]]
 +
 +
YourKit supports open source projects with its full-featured Java Profiler.
 +
YourKit, LLC is the creator of [https://www.yourkit.com/java/profiler/ YourKit Java Profiler]
 +
and [https://www.yourkit.com/.net/profiler/ YourKit .NET Profiler],
 +
innovative and intelligent tools for profiling Java and .NET applications.
  
 
== Related Links ==
 
== Related Links ==

Revision as of 04:15, 22 June 2018

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 Eclipse OCL 3.0, the ANTLR parsers are used solely within the editors. As from Eclipse 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.

Downloads and Updates

For Users

Eclipse OCL may be installed directly from the main Eclipse http://download.eclipse.org/releases/photon/ Update Site.

or from an OCL-specific site: http://download.eclipse.org/modeling/mdt/ocl/updates. The Eclipse OCL Repositories and Updates for Milestone, Interim and Nightly builds are described in P2 Repositories Organization and retained in accordance with the Retention Policy.

The OCL Examples and Editors SDK feature provides the full IDE comprising Xtext-based editors, Interactive Console, Debugger and Java Code Generator all using the new Unified Pivot -based OCL.

The OCL End User SDK feature provides the Classic OCL support with distinct Ecore and UML APIs.

Eclipse OCL may be installed indirectly by downloading an archive ZIP from Project Downloads and then using the downloaded ZIP as the Works with site for Help->Install New Software...

Eclipse OCL has Open Bugs and a newsgroup or forum. See the OCL Forum Netiquette.

For Developers

An Eclipse OCL development environment may be created automatically using the OOMPH Eclipse Installer. Follow the OOMPH instructions to first create an Eclipse installation with a Java VM, then invoke File->Import Projects->Oomph->Projects into Workspace->Eclipse Projects->OCL->Development. After a few minutes the required dependencies have been downloaded and a restart is required. Then after a few tens of minutes the required GIT repositories have been cloned and you are ready to go; there should be no errors in the Problems View. You may wish to select Working Sets as the top level elements in the Package Explorer. You may Run->Run Configurations...->JUnit->org.eclipse.ocl.examples.xtext.tests (standalone) to demonstrate that the standard tests are passing.

Alternatively an Eclipse OCL development environment may be created manually using the Eclipse OCL source code from git://git.eclipse.org/c/ocl/org.eclipse.ocl.git, http://git.eclipse.org/c/ocl/org.eclipse.ocl.git and github Network. All source projects may be installed by Import...->Team->Team Project Set, then entering http://git.eclipse.org/c/ocl/org.eclipse.ocl.git/plain/releng/org.eclipse.ocl.releng/psfs/ocl-all.psf?h=master as the URL for import. Be patient; the repository clone takes a while, and there are no obvious progress indicators during the third phase while projects are actually created.

If you plan to contribute to Eclipse OCL, please have a look to the project Developer Resources

Documentation, Publications and FAQs

Example Code

Releases and Development

You may want to check the New and Noteworthy features of the Eclipse OCL releases.

Planning

API Changes

Architecture

The remainder of this section has links to pages of interest primarily to those developing the OCL component.

Development Environment

Release Engineering

Sponsors

Thanks to the following organizations who support the Eclipse OCL project with infrastructure and software

Eclipse Foundation

YourKit

Yklogo.png

YourKit supports open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of YourKit Java Profiler and YourKit .NET Profiler, innovative and intelligent tools for profiling Java and .NET applications.

Related Links

Back to the top