Jump to: navigation, search

OCL/New and Noteworthy/Kepler

Eclipse OCL New and Noteworthy items for the Kepler 4.1.0 release.

Release Overview

Milestone 1

Milestone 2

Ecore, UML

  • 388595 EDataTypes may be sources of OperationCallExps

Complete OCL

  • 390104 'Cyclic resolution of lazy links' console messages fixed.


  • 388282 Ambiguous superclasses are now qualified
  • 382230 Editor refreshes if underlying *.ecore changes

Milestone 3


  • 393405 Editors may be installed on Indigo.


  • 392039 Collection types may be Set<String> rather than String[*]{unique,!ordered}

Milestone 4

Milestone 5

The OCL to Java code generation has been substantially improved to inline many facilities that previously constructed wrappers to re-use the interpreted evaluator API. The generated code is now directly in the generated *Impl files and in many cases the entire functionality now uses fewer lines than the Juno delegation.

  • 387973 Standalone functionality no longer requires a platform plugin on the classpath
  • 399378 UML and OCL primitive types are no longer distinct
  • 399582 Hovertext available in the Essential OCL editor for use by Console and Papyrus

Milestone 6


  • 397917 EReference.eKey no longer gives errors in OCLinEcore
  • 400079 Operations as well as Properties shown for Features in grammar
  • 401921 Property types with non-Primitive numeric DataTypes no longer give a stack overflow.
  • 402204 Closed projects no longer confuse platform: URI resolution.
  • 402767 Non-unity collection upperbounds no longer mis-parsed.
  • 403070 Operations may be invoked with non-Primitive numeric DataTypes


  • 401915 oclAny() return for nothing may be configured as null or invalid


  • 382981 UML profiles are now loaded correctly
  • 400448 invalid now propagates for oclisKindOf, oclIsTypeOf, oclType, toString
  • 400744 Multiplicities in UML now converted to collection bounds
  • 401302 closure() no longer terminates prematurely on duplicates
  • 401817 oclAny() now returns invalid for nothing
  • 403567 Pivot evaluator preference no longer ignored

Code Gen

  • 401693 Generated code is now error free for a first generation

Milestone 7

A new preference determines which of the

delegate URIs to use when first exporting OCL embedded in a *.ecore file.

The existing run-time preference mapping the virtual delegate URI to either classic LPG or experimental Pivot evaluators can now be changed at will.

The OCLinEcore editor no longer normalizes delegate URIs in a source file to http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot. A consistent delegate URI usage is preserved. The new export preference is used only when there is inconsistent or no delegate URI usage.

A menu option within the OCLinEcore editor allows the export delegate URI to be changed. A *.ecore fill can be saved with a different delegate URI to that deduced during load.


  • 401953404216 Parsing of complex expressions no longer takes exponential time
  • 404871 Auto-formatting can make huge OCL expressions more readable
  • 405228 Completion assist is now available directly after a "." or "->"


  • 404493 Embedded OCL with a terminating -- comment may now be edited
  • 404870 Whitespace in OCL expressions is now preserved in the *.ecore file
  • 405303 Implicit oclAsSet() expressions no longer confuse the editor after a reload
  • 405306 Invariants are no longer duplicated after a reload

Complete OCL

  • 403937 Complete OCL is now loadable in context such as GMF editors where the selection is IAdaptable to EObject.
  • 404063 Loading an erroneous Complete OCL Resource now shows a visible diagnostic popup
  • 404064 Complete OCL Resource may now be loaded to add validation to Pivot-based editors such as QVTr


  • 394660 x.oclLog('a string valued expression').y may be used to log/debug x while evaluating x.y

Code Generator

  • 406804 The code generator has been rewritten to have its own model suitable for rewrite optimizations






Eclipse OCL New and Noteworthy items for the Kepler 4.1.1 SR1 release.

  • 415277 Requirement for Xtext 4.2.2 rather than 4.2.0 declared


  • 410682 Comments on invariants are no longer discarded


  • 411154 Dynamic dispatch now chooses correct dispatch for inherited candidates
  • 411441 UML-style collections such as String[*] may be used as the type of e.g. a let-variable
  • 412690 EList results are now BasicInternalEList rather than just BasicEList
  • 412736 Using Ecore data types such as ecore::EDouble as operation parameters no longer fails


Eclipse OCL New and Noteworthy items for the Kepler 4.1.2 SR2 release.