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/Oxygen

< OCL‎ | New and Noteworthy
Revision as of 04:38, 14 June 2017 by Unnamed Poltroon (Talk) (Pivot)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Eclipse OCL New and Noteworthy items for the Oxygen 6.3.0 release.

Release Overview

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

The Oxygen release is installable on Mars, Neon and Oxygen platforms provided Xtext 2.9 or greater is also installed.

Milestone 1

Classic Console

  • 499347 Obscure NPE for ResourceSet-less Resources fixed


  • 484231 Repeated Complete OCL validations are no longer ignored
  • 496341 Better diagnosis of unresolved proxies during AS2CS serialization
  • 496768 Save of Collection type oclAsType arguments no longer gives an unresolved proxy
  • 496810 'self' no longer escaped in serialized OCL expressions
  • 496810 parameter names no longer qualified in serialized OCL expressions

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

Milestone 2


  • 499816 and2/implies2/not2/or2/xor2 support explicitly 2-valued Booleans

Pivot Evaluation

  • 471240 Shadow objects are now singletons
  • 491264 EvaluationCache now suppresses operation re-evaluations


  • 500817 Inlining suppressed for non-final operations
  • 500520 Operation::isTransient suppresses operation evaluation caching

Milestone 3

Pivot UML

  • 506191 Multi-language OpaqueExpressions now use the OCL language

Milestone 4


  • 474537 Operation call return types are now correctly specialized
  • 507557 All class-typed properties have opposites - no exclusions for transient etc
  • 507628 OCL Validation detects null feature types/names.
  • 507658 LetVariable, IteratorVariable, ResultVariable introduced.

Pivot UML

  • 507406 Evaluations of redefined properties with changed multiplicities no longer fail


  • 412341 Extended validation may be merged into extended AS models
  • 507425 Extended generation re-uses rather than corrupts base model elements
  • 507843 Extended genmodels may use patform URIs

Milestone 5

Three subtle semantic changes.

The Pivot null-analysis exploits the common practice and UML mandate that Collections are null-free. If null content is required it must be declared.

The Pivot invalid-analysis now treats machine failures as fatal rather than invalid. Consequently a property navigation cannot return invalid, and a machine failure cannot be processed using oclIsInvalid().

The Pivot code generator is moving towards efficient inlining of Boolean operations. and/implies/not/or/xor can no longer be redefined.


  • 495621 User-defined Primitive types are now merged with regular Primitive types
  • 509858 Opposite role name EAnnotation corrected for sensibly named Collection
  • 510180 A zero lower bound for an EBoolean is ignored. It is always 1; not-null.


  • 467339 Null safety analysis now considers simple Boolean if/implies etc data flow
  • 480060 elseif works
  • 492293 Collections are null-free unless declared otherwise
  • 495621 OCL can now be parsed in a user specified context
  • 507628 OCL Validation detects null class names.
  • 507628 OCL Validation detects that the closure body is assignable to the result.
  • 509308 Shadow DataType elements may use a "value=" part with an arbitrary OCL expression.
  • 509616 Collection return types are now modeled more accurately.
  • 509670 Performance of Bags improved.
  • 509713 Property navigation can no longer provide an invalid result.
  • 510729 OCL library Pivot elements now have a stable corresponding Ecore element

Code Generator

  • 509211 Constraints may now use lets to share common code for a tuple return of status and message
  • 509222 Constraints may now use "context" as a variable name
  • 509661 Boolean operations are not redefinable

Milestone 6


  • 512452 OCL in Ecore validation now detects OCL validation as well as OCL parsing errors


  • 511536 The ParserContext is now extensible.
  • 511782 Bounded collection bounds e.g. Set(T[4]) are now consistently inside the parentheses.
  • 511992 Collections are never null (although they may have null elements)
  • 512758 Collection multiplicities are more accurate for conversions such as oclAsSet().

Pivot UML

  • 512448 Spurious no-invocationDelegates diagnosis for invariants removed
  • 512449 Only the most recent stereotype EPackage is validated
  • 512454 OCL in UML validation now detects OCL validation as well as OCL parsing errors
  • 512545 Validation diagnostics now have UML context and so display sensibly in Papyrus
  • 512553 Static class operations may now be used
  • 512726 Navigable opposite properties may now be used
  • 512910 Opposite properties of static profile stereotypes may now be used

Milestone 7


  • 516274 Type bounds on Template Parameters are no longer lost when saving as Ecore


  • 515605 Unambiguous opposite properties no longer behave intermittently if their unqualified name is ambiguous.

Pivot UML

  • 513773 Use of an Association end name no longer gices a ClassCastException
  • 513824 Qualified names may now be partially qualified
  • 514353 Associations nested within Classes are no longer ignored
  • 516285 References to nested packages with URIs below packages with null URIs are no longer unresolved

Code Generation

  • 514527 GenModel interface/implementation suffixes are now respected

Java 9, Guava 21

  • 513659 Should run using Guava 21
  • 513663 Should run on a Java 9 platform

Milestone 7a

This cures a potential problem for users auto-generating Java code from OCL enriched models.

  • 516797 @NonNull compilation errors detected by JDT M7 fixed


  • 516301 OCL comments and GenModel documentation are now spliced as a single documnetation



  • 515027 Validation now fails if parsing fails
  • 515050 Ambiguities due to same-named meta-properties are now resolved
  • 516963 Unresolved proxies when editing AS files now diagnosed
  • 517065 Irrelevant bad genmodels no longer cause failures



Code Generation

  • 517119 Use of EInt with assertions enabled no longer fails



Pivot UML

  • 518130 Import of an unresolved profile is now diagnosed rather than an NPE


Eclipse OCL New and Noteworthy items for the Oxygen 6.3.1 SR1 release.


Eclipse OCL New and Noteworthy items for the Oxygen 6.3.2 SR2 release.

Back to the top