OCL/New and Noteworthy/Photon
Eclipse OCL New and Noteworthy items for the Photon 6.4.0 release.
- 1 Release Overview
- 2 Milestone 1
- 3 Milestone 2
- 4 Milestone 3
- 5 Milestone 4
- 6 Milestone 5
- 7 Milestone 6
- 8 Milestone 7
- 9 RC1
- 10 RC2
- 11 RC3
- 12 RC4
This minor release fixes many bugs and provides enhanced extensibility for OCL-based applications such as QVT.
The major changes are:
- Addition of EAnnotation validation using new EMF 2.14 capabilities
- Addition of an OCL nature/builder to perform OCL (and optionally Ecore,UML) model validation
- Migration of the build from Buckminster to Tycho
The Photon release is installable on Mars, Neon and Oxygen platforms provided Xtext 2.9 or greater is also installed.
The Photon sources are buildable on Photon.
Java 8 on Windows was used to develop and test the milestones of this release.
Java 10 on Windows was briefly used to maintain and test the release candidates. It sort of works but standalone tests failed due to 534884 and so final release development reverted to Java 8.
Java 8 on Jenkins, Linux was used to build and test the release candidates.
The Classic Ecore/UML plugins have been tested on Mars, Neon and Oxygen and on a Java 5 Virtual Machine. Standalone execution requires only the org.eclipse.osgi plugin from Eclipse Kepler or earlier.
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.
- 521094 Multiple and alias-less imports now allowed in OCL stdlib files.
- 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.
- 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.
- 520083 "Failed to load" diagnostic now identifies what failed to load.
- 522697 Problems arising from the new EMF EAnnotationValidator support resolved.
- 522711 ConcurrentModificationException fuxed when Validity View recomputes
- 513663 Java code is now generated for the current platform rather than necessarily Java 7.
- 499509 OCL is now built using Tycho rather than Buckminster
- 522565 The OCL JET templates now match the EMF 2.14 JET templates
- 382956 EnumerationLiterals may now have an explicit literal value
- 522705 EAnnotationValidators are now used to validate OCL embedded in Ecore.
- 526840 Redundant accesses for platform:/plugin else platform:/resource avoided.
- 527805 Blank-named invariants now have an explicit "null" name when converted to Ecore.
- 528220 CompleteOCLEObjectValidator now has the constructor used in the documentation example.
- 528246 UnlimitedNatural.toString() is no longer restricted to a "*" return.
- 528247 UnlimitedNatural.toInteger() added.
- 528356 Many possibilities for saving with CR-LF line endings resolved; always new-line.
- 528357 Return type of any/including/includingAll may now propagate null-free-ness.
- 528358 Use of "result" in a post-condition is no longer an error.
The new OCL Nature and Builder which may be activated by the Configure->Convert to OCL project menu option for a project. This enables an OCL project to comply with the conventional Eclipse idiom whereby Problem View markers are created as a consequence of the builder running whenever a relevant resource is saved or cleaned. Since OCL may be embedded in Ecore or UML for which no bulder is available, the OCL builder also validates *.ecore and *.uml files. This may be changed by editing the file extension inclusions/exclusions in the .project file.
- 416470 org.eclipse.core.* dependencies are no longer mandatory
- 388627 Property-valued literals are no longer ambiguous with respect to non-existent Operation-valued literals
- 429479 Add OCL Nature and Builder to ensure timely validation
- 528756 Use of OCL library types such as Collection in OCLinEcore no longer gives GenModel 405 load failures
- 528868 Ecore validation diagnostics no longer all claim to be at line 1
- 530375 References to implicit opposites no longer bloat the saved Pivot Abstract Syntax.
- 528829 Comparison of an Enumerationliteral with a String no longer generates bad code
- 533128 Multiple "Wildcard" types renamed in OCL.uml to avoid warning messages.
- 532613 Transformation of extended Pivot models in dynamic EMF no longer gives abstract type creation failures.
- 532666 Unexpected cursor selections no longer cause spurious cannot set self diagnostics in the Xtext OCL Console.
- 533126 Deletion of a PrimitiveType in the OCLstdlib editor no longer causes multi-type confusions.
- 533143 Single stepping an iteration in the OCL debugger no longer gives a stack overflow.
- 534626 Semantic checking on operation/iteration arguments improved.
- 534973 Sequence::includingAll override added to avoid erroneous Bag return type.
- 527458 Attempting to build the project sources on a pre-Photon platform is now diagnosed.
- 534950 Classic OCL no longer fails to load using a Java 10 JVM.
- 535007 Additional Import-Packages added to allow tests to run using a Java 10 JVM.