Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: for the plan.

Jump to: navigation, search

OCL/New and Noteworthy/Neon

Eclipse OCL New and Noteworthy items for the Neon 6.1.0 release.

Release Overview

This minor release fixes many bugs and provides enhanced extensibility for OCL-based applications such as QVT.

The Pivot code base has moved to Java 8 to exploit the type-based @NonNull annotations and eliminate the need to distribute a clone of the Java 7 support. Java 7 related support such as org.eclipse.ocl.jdt.annotation7 and org.eclipse.ocl.examples.codegen.asm3 are no longer distributed; only ASM 5 is supported.

The Classic Ecore/UML support retains Java 5 source compatibility.

The Neon release is installable on Luna, Mars and Neon platforms; movement to Java 8 terminates Helios, Indigo, Juno and Kepler installability.

Milestone 1

Code Generation

  • 471118 _ no longer used as an identifier (avoiding Java 8 deprecation)
  • 471948 Custom messages are supported again in code generated validations
  • 474307 EList returns no longer inhibit Ecore Editor delete commands


  • 469967 Concurrent editor no longer leads to a stuck /* Please Wait */
  • 471785 Problem in imported files no longer shown at local lines
  • 473249 Unresolved references due to stale Complete OCL context fixed


  • 473632 CollectionRange to a more negative last no longer includes first

Pivot UML

  • 470805 Operations are no longer ignored for UML DataTypes
  • 472261 Constraints may be specified for Signals
  • 472469 UML DataType generals treated as superclasses
  • 474085 Stereotypes are no longer ignored in the Xtext OCL Console

Milestone 2


  • 476438 *.oclas no longer requires explicit registration for standalone usage
  • 477283 Complete OCL references to subpackages no longer fail

Pivot UML

  • 476463 Post-Mars regression preventing use of OCL editor in Papyrus fixed
  • 476662 InstanceSpecification EnumerationLiteral properties no longer malfunction
  • 476769 OCLforUML::Validation at last controls Papyrus InstanceSpecification validation
  • 478416 Non-OCL Constraints are now tolerated

Milestone 3


  • 479405 Names using special sequences such as :: may now be used.
  • 480018 DataTypes no longer convert to their behavioral type prematurely.
  • 480635 EnumLiterals may now have annotations.

Milestone 4

Many fixes relate to support for auto-generation in conjunction with the QVTd project.


  • 480567 oclContainer/oclContents library properties added
  • 482264 silent syntax errors in profiles diagnosed
  • 482788 iterator variable names can now use arbitrary characters

Milestone 5

The code base for the Pivot plugins now requires a Java 8 BREE and uses the standard org.eclipse.jdt.annotation.@NonNull rather than the legacy clone org.eclipse.ocl.jdt.annotation7.@NonNull.

Pivot UML

  • 485225 allInstances() now works for Stereotypes
  • 485586 OCL parsing no longer fails for too simple UML models

Milestone 6

In conventional metamodeling, myElement.oclAsType(MyDerivedElement) supports casting myElement to the type MyDerivedElement. myElement is typically an M1 instance of the M2 class MyDerivedElement.

In a UML Object Diagram, an InstanceValue may need to be cast to an instance of a type defined in the same diagram, same meta-level. This was previously supported by some pragmatic functionality that endeavored to be helpful in identifying which meta-levels were actually in use. Such pragmatic functionality was of course flaky, difficult to understand and ambiguous for e.g. an InstanceSpecification.

The M6 support for the Pivot-based OCL introduces the new library operation oclAsModelType(aType) which may be used to cast to a type defined in the model. oclAsType(aType) may now only be used to cast to a type in the metamodel.

Using oclAsModelType() in the Xtext OCL Console gives similar but more undertstandable functionality to the M1/M2 pull-down menu option of the OCL Console.

The oclTypes() operation is also provided in anticipation of multi-classification for SMOF.

The oclModelTypes() operation supports the multi-classification of UML.

The oclModelType() and oclIsModelKindOf() counterparts to oclType() and oclIsKIndOf() are also provided.


  • 488278 Long Integers are now correctly persisted - needed by QVTo.


  • 487181 CS models may now have embedded OCL.
  • 487217 Imports are now relocated with respect to their importing module.
  • 487320 Complex unary expressions now parenthesized after AS2CS conversion.
  • 487322 Import of a Model now imports its top level packages.
  • 487342 ShadowExp names are now qualified after AS2CS conversion.
  • 487797 oclAsModelType() supports use of types at the same meta-level.
  • 488374 Abstract collection types such as UniqueCollection cannot be a most derived common type solution.
  • 488879 OclEnumeration introduced rather than Enumeration as the implicit user Enumeration supertype.
  • 489948 OperationCallExp.isVirtual added to the Pivot model.

Pivot UML

  • 485471 OclStereotype added as the implicit supertype of all user Stereotypes. aStereotype allInstances() works.


  • 456235 Hovertext for Java class references no longer gives a UI freeze.
  • 489310 Extension oclstdlib operations can now have a useable ClassLoader.

Milestone 7


  • 473825 Reload problems mitigated by tolerating a UI freeze on open.
  • 491966 Type-diagnosing hovertext takes precedence over marker hovertext.


  • 492800 Template parameters may now be used with bidirectional properties.


  • 492293 Collections are now null-free by default.

Pivot UML

  • 423905 Navigation to/from Associations/AssociationClasses is supported.


Complete OCL

  • 491845 A Complete OCL load failure no longer re-fails while attempting to report the failure.


  • 492960 References to EKeys are now persisted in Ecore.



  • 494227 Problems with unresolved pivot proxies in the Sample Ecore Editor resolved..




Eclipse OCL New and Noteworthy items for the Neon 6.1.1 SR1 release.

Classic Console

  • 499347 Obscure NPE for ResourceSet-less Resources fixed


  • 484231 Repeated Complete OCL validations are no longer ignored

Pivot UML

  • 496210 allInstances() may now be used for Signals
  • 496251 OCL expressions now generally available for UMLElement again
  • 496383 Association-derived Pivot properties have an ESObject back link again
  • 498970 Obscure NPE for PackageImport labels fixed


Eclipse OCL New and Noteworthy items for the Neon 6.1.2 SR2 release.

Pivot UML

  • 506191 Multi-language OpaqueExpressions now use the OCL language
  • 507406 Evaluations of redefined properties with changed multiplicities no longer fail

Back to the top