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)
(Milestone 4)
Line 55: Line 55:
  
 
==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==

Revision as of 05:41, 24 May 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

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.

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

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

  • 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

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

Back to the top