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.
OCL/New and Noteworthy/Photon
Eclipse OCL New and Noteworthy items for the Photon 6.4.0 release.
Contents
Release Overview
This minor release fixes many bugs and provides enhanced extensibility for OCL-based applications such as QVT.
The Photon release is installable on Mars, Neon and Oxygen platforms provided Xtext 2.9 or greater is also installed.
Milestone 1
Pivot
- 521094 Multiple and alias-less imports now allowed in OCL stdlib files.
Milestone 2
Pivot
- 500551 OCL->Export Document menu entry allows embedded OCL to be saved as a distinct Complete OCL document.
- 519872 XMI serialization of synthetic orphanage content is now accurate and less bloated.
- 520886 Non-default CollectionType lower/upper bounds are no longer default internally.
- 520825 Locally Unique Semantically Sensitive IDs used to provide short stable determinstic xmi:ids.
- 521588 Complete OCL properties now have consistent xmi:ids.
- 521885 Awkward identifiers are now correctly escaped.
- 522060 "*" suffixed imports are no longer corrupted by a save.
- 522087 Integer literal initializers are now coerced to UnlimitedNatural when necessary.
- 522106 Many forms of unnecessary console logging resolved.
- 522180 An AS model with bad operation/property references is now saveable.
- 522211 A name ambiguously qualified by a package or alias is no longer ambiguous; the alias wins.
- 522290 Imports in the synthetic Complete OCL document no longer fail to resolve.
Pivot UML
- 521974 Multi-package profiles such as SysML no longer fail to load.
- 521977 Single pop-up now aggregates multiple loading problems.
- 522256 EnumerationLiterals in URI-less Profiles no longer try use the wrong EPackage URI.
- 522292 Duplicate validation messages from applied profiles are now avoided.
Milestone 3
Pivot UML
- 506191 Multi-language OpaqueExpressions now use the OCL language
Milestone 4
Pivot
- 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
Extensibility
- 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.
Ecore
- 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.
Pivot
- 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
OCLinEcore
- 512452 OCL in Ecore validation now detects OCL validation as well as OCL parsing errors
Pivot
- 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
OCLinEcore
- 516274 Type bounds on Template Parameters are no longer lost when saving as Ecore
Pivot
- 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
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
OCLinEcore
- 516301 OCL comments and GenModel documentation are now spliced as a single documnetation
RC1
Pivot
- 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
RC2
RC3
Code Generation
- 517119 Use of EInt with assertions enabled no longer fails
RC4
RC4a
Pivot UML
- 518130 Import of an unresolved profile is now diagnosed rather than an NPE