Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
OCL/New and Noteworthy/2022-12
Eclipse OCL New and Noteworthy items for the 2022-12 (6.18.0) release.
Contents
Release Overview
This minor release fixes a few bugs.
Eclipse versions
The prevailing Eclipse OCL release candidate is auto-tested every week on Oxygen, Photon, 2018-09, 2018-12, 2019-03, 2019-06, 2019-09, 2019-12, 2020-03, 2020-06, 2020-09, 2020-12, 2021-03, 2021-06 and 2021-09 platforms using Jenkins on Linux and the prevailing Java/project versions for the release.
2021-12 release should be installable on Mars and Neon platforms provided Xtext 2.9 or greater is also installed.
The 2022-12 sources may only be buildable on 2022-12.
Java versions
Java 8 on Windows was used to develop and test the milestones of this release. Following the Eclipse platform migration to a Java 11 minimum, development now uses Java 11, although standalone tests continue to use Java 8.
Java 12 on Windows was briefly used to maintain and test the 2020-06 release candidates. It appears to work although Java code generation/compilation seems nearly three times slower - see Bug 565563.
Java 11 on Jenkins, Linux was used to build and test the release candidates.
The Classic Ecore/UML plugins have been tested on Mars, Neon, Oxygen and Photon and on a Java 5 Virtual Machine. Standalone execution requires only the org.eclipse.osgi plugin from Eclipse Kepler or a spoof of org.eclipse.osgi.util.NLS and org.eclipse.osgi.framework.
The Pivot plugins require at least a Java 8 Virtual Machine and at least Xtext 2.9.1. Testing on Oxygen has a couple of test failures. Testing on Mars and Neon has a few editor/console startup failures.
Milestone 1
A 6.18.0M1 was made available on 10-Jan-2022, but development reverted to 6.17.1.
When iterating an ordered collection, it is sometimes necessary to know the collection index of the iterator necessitating an inefficient and imprecise list search:
aSequence->forAll(e | let index = aSequence->indexOf(e) in e.name = index.toString())
The iterator declaration may be extended by a with keyword to include a co-iterator may be introduced using the with keyword to make use of the precise value that the evaluator already knows.
aSequence->forAll(e with index | e.name = index.toString())
The co-iterator for Maps has been revised to be consistent; the use of <- punctuation rather than with keyword lacked mnemonic quality and consistency.
aMap->forAll(key with value | key = value.toLower())
The primary iterator is over the collection view of the aggregate. The co-iterator is optional added-value.
Pivot
- 519896 exists/forall may have three iterators
- 571846 OCLThread intridiced to ease use of one OCL per thread
- 574431 e.g. EInt and Integer now co-exist with fewer (? no) problems
- 577427 null-free collections can be specified by a root package EAnnotation
- 577614 ordered collections may have co-iterators
- 577887 allInstances is now a regular metatype rather than magic static type
- 577887 add BooleanType
- 577887 use ThreadLocalExecutor to discover the allInstances() domain
- 577928 OCL embedded in EAnnotations is now validated again
- 578030 All referenceable Pivot AS elements now have xmi:ids
- 577889 Code generated code now has consistent metatypes
- 577902 Spurious static features eliminated from OCL Standard Library
Milestone 1a
To avoid confusion the Oct-2022 milestone 1 is named 1a.
Pivot
- 496810 Code generated code now has consistent metatypes
- 541380 OCLstdlib editor no longer needs restarting to clear errors
- 544796 OCL evaluations can now be executed standalone
- 578117 Nullity of Collection no longer in diagnostics/code generation
- 578981 Ecore to OCLinEcore serializer uses minimal qualification for qualified names
- 579025 Stale error markers fixed (premature LUSSID creation avoided)
- 579051 Inefficient creation of multiple orphanages fixed
- 579152 OCLstdlib-defined classes may now have an instanceClassName
- 580139 Type-typed arguments such as oclIsKindOf may be expressions
- 580363 Saving an ASResource no longer relocates orphan references
- 580407 Handling of wildcard type parameter simplified
- 580419 Subtle issues with stale specializations fixed.
- 580749 ElementLiteralExp added to allow any OCL result to be serialized.
- 580755 UML 'alignment' abandoned; PivotStructural.ecore is now the master.
- 580791 OCLExpression.typeValue rendered obsolete
Pivot-UML
- 580143 Introduce oclBase() and oclExtensions() and oclExtensions()
Releng
- 579604 use of org.apache.commons.lang eliminated avoiding 2022-06 installation inconvenience
- 580795 documentation generator works again