Skip to main content

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.

Jump to: navigation, search

Difference between revisions of "OCL/New and Noteworthy/Photon"

(Release Overview)
(Pivot)
 
(16 intermediate revisions by the same user not shown)
Line 5: Line 5:
  
 
The major changes are:
 
The major changes are:
* Support for EAnnotation validation introduced by EMF 2.14
+
* 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
 
* Addition of an OCL nature/builder to perform OCL (and optionally Ecore,UML) model validation
 
* Migration of the build from Buckminster to Tycho
 
* Migration of the build from Buckminster to Tycho
 +
 +
===Eclipse versions===
  
 
The Photon release is installable on Mars, Neon and Oxygen platforms provided Xtext 2.9 or greater is also installed.
 
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.
 
The Photon sources are buildable on Photon.
 +
 +
===Java versions===
 +
 +
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 [https://bugs.eclipse.org/bugs/show_bug.cgi?id=534884 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.
  
 
==Milestone 1==
 
==Milestone 1==
Line 55: Line 69:
  
 
==Milestone 4==
 
==Milestone 4==
 +
 
===Pivot===
 
===Pivot===
* [https://bugs.eclipse.org/474537 474537] Operation call return types are now correctly specialized
+
* [https://bugs.eclipse.org/382956 382956] EnumerationLiterals may now have an explicit literal value
* [https://bugs.eclipse.org/507557 507557] All class-typed properties have opposites - no exclusions for transient etc
+
* [https://bugs.eclipse.org/522705 522705] EAnnotationValidators are now used to validate OCL embedded in Ecore.
* [https://bugs.eclipse.org/507628 507628] OCL Validation detects null feature types/names.
+
* [https://bugs.eclipse.org/526840 526840] Redundant accesses for platform:/plugin else platform:/resource avoided.
* [https://bugs.eclipse.org/507658 507658] LetVariable, IteratorVariable, ResultVariable introduced.
+
* [https://bugs.eclipse.org/527805 527805] Blank-named invariants now have an explicit "null" name when converted to Ecore.
 
+
* [https://bugs.eclipse.org/528220 528220] CompleteOCLEObjectValidator now has the constructor used in the documentation example.
===Pivot UML===
+
* [https://bugs.eclipse.org/528246 528246] UnlimitedNatural.toString() is no longer restricted to a "*" return.
* [https://bugs.eclipse.org/507406 507406] Evaluations of redefined properties with changed multiplicities no longer fail
+
* [https://bugs.eclipse.org/528247 528247] UnlimitedNatural.toInteger() added.
 
+
* [https://bugs.eclipse.org/528356 528356] Many possibilities for saving with CR-LF line endings resolved; always new-line.
===Extensibility===
+
* [https://bugs.eclipse.org/528357 528357] Return type of any/including/includingAll may now propagate null-free-ness.
* [https://bugs.eclipse.org/412341 412341] Extended validation may be merged into extended AS models
+
* [https://bugs.eclipse.org/528358 528358] Use of "result" in a post-condition is no longer an error.
* [https://bugs.eclipse.org/507425 507425] Extended generation re-uses rather than corrupts base model elements
+
* [https://bugs.eclipse.org/507843 507843] Extended genmodels may use patform URIs
+
  
 
==Milestone 5==
 
==Milestone 5==
  
Three subtle semantic changes.
+
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.
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.
+
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.
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===
+
===Classic===
* [https://bugs.eclipse.org/495621 495621] User-defined Primitive types are now merged with regular Primitive types
+
* [https://bugs.eclipse.org/416470 416470] org.eclipse.core.* dependencies are no longer mandatory
* [https://bugs.eclipse.org/509858 509858] Opposite role name EAnnotation corrected for sensibly named Collection
+
* [https://bugs.eclipse.org/510180 510180] A zero lower bound for an EBoolean is ignored. It is always 1; not-null.
+
  
 
===Pivot===
 
===Pivot===
* [https://bugs.eclipse.org/467339 467339] Null safety analysis now considers simple Boolean if/implies etc data flow
+
* [https://bugs.eclipse.org/388627 388627] Property-valued literals are no longer ambiguous with respect to non-existent Operation-valued literals
* [https://bugs.eclipse.org/480060 480060] elseif works
+
* [https://bugs.eclipse.org/429479 429479] Add OCL Nature and Builder to ensure timely validation
* [https://bugs.eclipse.org/492293 492293] Collections are null-free unless declared otherwise
+
* [https://bugs.eclipse.org/528756 528756] Use of OCL library types such as Collection in OCLinEcore no longer gives GenModel 405 load failures
* [https://bugs.eclipse.org/495621 495621] OCL can now be parsed in a user specified context
+
* [https://bugs.eclipse.org/528868 528868] Ecore validation diagnostics no longer all claim to be at line 1
* [https://bugs.eclipse.org/507628 507628] OCL Validation detects null class names.
+
* [https://bugs.eclipse.org/530375 530375] References to implicit opposites no longer bloat the saved Pivot Abstract Syntax.
* [https://bugs.eclipse.org/507628 507628] OCL Validation detects that the closure body is assignable to the result.
+
* [https://bugs.eclipse.org/509308 509308] Shadow DataType elements may use a "value=" part with an arbitrary OCL expression.
+
* [https://bugs.eclipse.org/509616 509616] Collection return types are now modeled more accurately.
+
* [https://bugs.eclipse.org/509670 509670] Performance of Bags improved.
+
* [https://bugs.eclipse.org/509713 509713] Property navigation can no longer provide an invalid result.
+
* [https://bugs.eclipse.org/510729 510729] OCL library Pivot elements now have a stable corresponding Ecore element
+
  
 
===Code Generator===
 
===Code Generator===
* [https://bugs.eclipse.org/509211 509211] Constraints may now use lets to share common code for a tuple return of status and message
+
* [https://bugs.eclipse.org/528829 528829] Comparison of an Enumerationliteral with a String no longer generates bad code
* [https://bugs.eclipse.org/509222 509222] Constraints may now use "context" as a variable name
+
* [https://bugs.eclipse.org/509661 509661] Boolean operations are not redefinable
+
  
 
==Milestone 6==
 
==Milestone 6==
===OCLinEcore===
 
* [https://bugs.eclipse.org/512452 512452] OCL in Ecore validation now detects OCL validation as well as OCL parsing errors
 
  
===Pivot===
+
==Milestone 7==
* [https://bugs.eclipse.org/511536 511536] The ParserContext is now extensible.
+
* [https://bugs.eclipse.org/511782 511782] Bounded collection bounds e.g. Set(T[4]) are now consistently inside the parentheses.
+
* [https://bugs.eclipse.org/511992 511992] Collections are never null (although they may have null elements)
+
* [https://bugs.eclipse.org/512758 512758] Collection multiplicities are more accurate for conversions such as oclAsSet().
+
  
===Pivot UML===
+
===Classic UML===
* [https://bugs.eclipse.org/512448 512448] Spurious no-invocationDelegates diagnosis for invariants removed
+
* [https://bugs.eclipse.org/533128 533128] Multiple "Wildcard" types renamed in OCL.uml to avoid warning messages.
* [https://bugs.eclipse.org/512449 512449] Only the most recent stereotype EPackage is validated
+
* [https://bugs.eclipse.org/512454 512454] OCL in UML validation now detects OCL validation as well as OCL parsing errors
+
* [https://bugs.eclipse.org/512545 512545] Validation diagnostics now have UML context and so display sensibly in Papyrus
+
* [https://bugs.eclipse.org/512553 512553] Static class operations may now be used
+
* [https://bugs.eclipse.org/512726 512726] Navigable opposite properties may now be used
+
* [https://bugs.eclipse.org/512910 512910] Opposite properties of static profile stereotypes may now be used
+
 
+
==Milestone 7==
+
===OCLinEcore===
+
* [https://bugs.eclipse.org/516274 516274] Type bounds on Template Parameters are no longer lost when saving as Ecore
+
  
 
===Pivot===
 
===Pivot===
* [https://bugs.eclipse.org/515605 515605] Unambiguous opposite properties no longer behave intermittently if their unqualified name is ambiguous.
+
* [https://bugs.eclipse.org/532613 532613] Transformation of extended Pivot models in dynamic EMF no longer gives abstract type creation failures.
 +
* [https://bugs.eclipse.org/532666 532666] Unexpected cursor selections no longer cause spurious cannot set self diagnostics in the Xtext OCL Console.
 +
* [https://bugs.eclipse.org/533126 533126] Deletion of a PrimitiveType in the OCLstdlib editor no longer causes multi-type confusions.
 +
* [https://bugs.eclipse.org/533143 533143] Single stepping an iteration in the OCL debugger no longer gives a stack overflow.
 +
* [https://bugs.eclipse.org/534626 534626] Semantic checking on operation/iteration arguments improved.
  
===Pivot UML===
+
==RC1==
* [https://bugs.eclipse.org/513773 513773] Use of an Association end name no longer gices a ClassCastException
+
* [https://bugs.eclipse.org/513824 513824] Qualified names may now be partially qualified
+
* [https://bugs.eclipse.org/514353 514353] Associations nested within Classes are no longer ignored
+
* [https://bugs.eclipse.org/516285 516285] References to nested packages with URIs below packages with null URIs are no longer unresolved
+
  
===Code Generation===
+
==RC2==
* [https://bugs.eclipse.org/514527 514527] GenModel interface/implementation suffixes are now respected
+
  
===Java 9, Guava 21===
 
* [https://bugs.eclipse.org/513659 513659] Should run using Guava 21
 
* [https://bugs.eclipse.org/513663 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.
 
 
* [https://bugs.eclipse.org/516797 516797] @NonNull compilation errors detected by JDT M7 fixed
 
 
===OCLinEcore===
 
* [https://bugs.eclipse.org/516301 516301] OCL comments and GenModel documentation are now spliced as a single documnetation
 
 
==RC1==
 
 
===Pivot===
 
===Pivot===
* [https://bugs.eclipse.org/515027 515027] Validation now fails if parsing fails
+
* [https://bugs.eclipse.org/534973 534973] Sequence::includingAll override added to avoid erroneous Bag return type.
* [https://bugs.eclipse.org/515050 515050] Ambiguities due to same-named meta-properties are now resolved
+
* [https://bugs.eclipse.org/516963 516963] Unresolved proxies when editing AS files now diagnosed
+
* [https://bugs.eclipse.org/517065 517065] Irrelevant bad genmodels no longer cause failures
+
  
==RC2==
+
===Releng===
 +
* [https://bugs.eclipse.org/527458 527458] Attempting to build the project sources on a pre-Photon platform is now diagnosed.
 +
* [https://bugs.eclipse.org/534950 534950] Classic OCL no longer fails to load using a Java 10 JVM.
 +
* [https://bugs.eclipse.org/535007 535007] Additional Import-Packages added to allow tests to run using a Java 10 JVM.
  
 
==RC3==
 
==RC3==
===Code Generation===
 
* [https://bugs.eclipse.org/517119 517119] Use of EInt with assertions enabled no longer fails
 
  
 
==RC4==
 
==RC4==
 
==RC4a==
 
 
===Pivot UML===
 
* [https://bugs.eclipse.org/518130 518130] Import of an unresolved profile is now diagnosed rather than an NPE
 

Latest revision as of 04:18, 2 July 2018

Eclipse OCL New and Noteworthy items for the Photon 6.4.0 release.

Release Overview

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

Eclipse versions

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 versions

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.

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

  • 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

CG

  • 513663 Java code is now generated for the current platform rather than necessarily Java 7.

Releng

  • 499509 OCL is now built using Tycho rather than Buckminster
  • 522565 The OCL JET templates now match the EMF 2.14 JET templates

Milestone 4

Pivot

  • 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.

Milestone 5

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.

Classic

  • 416470 org.eclipse.core.* dependencies are no longer mandatory

Pivot

  • 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.

Code Generator

  • 528829 Comparison of an Enumerationliteral with a String no longer generates bad code

Milestone 6

Milestone 7

Classic UML

  • 533128 Multiple "Wildcard" types renamed in OCL.uml to avoid warning messages.

Pivot

  • 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.

RC1

RC2

Pivot

  • 534973 Sequence::includingAll override added to avoid erroneous Bag return type.

Releng

  • 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.

RC3

RC4

Back to the top