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/2019-03"

(Milestone 2)
(Java versions)
 
(7 intermediate revisions by the same user not shown)
Line 17: Line 17:
 
===Eclipse versions===
 
===Eclipse versions===
  
The 2019-03 release is installable on Mars, Neon, Oxygen and Photon platforms provided Xtext 2.9 or greater is also installed.
+
The prevailing Eclipse OCL release candidate is auto-tested every week on Oxygen, Photon, 2018-09 and 2018-12 platforms using Jenkins on Linux.  
  
The 2019-03 sources are buildable on Photon or 2018-09 or 2018-12 or 2019-03.
+
2019-03 release should be installable on Mars and Neon platforms provided Xtext 2.9 or greater is also installed.
 +
 
 +
The 2019-03 sources are buildable on 2019-03 only.
  
 
===Java versions===
 
===Java versions===
Line 25: Line 27:
 
Java 8 on Windows was used to develop and test the milestones of this release.
 
Java 8 on Windows was used to develop and test the milestones of this release.
  
Java 11 on Windows was briefly used to maintain and test the 2019-03 release candidates. It appears to work although Java code generation/compilation is nearly three times slower.
+
Java 11 on Windows was briefly used to maintain and test the 2019-03 release candidates. It appears to work although Java code generation/compilation seems nearly three times slower - see [https://bugs.eclipse.org/bugs/show_bug.cgi?id=565563 Bug 565563].
  
 
Java 8 on Jenkins, Linux was used to build and test the release candidates.
 
Java 8 on Jenkins, Linux was used to build and test the release candidates.
Line 53: Line 55:
  
 
The null-safe operation call fixes may now diagnose latent faults.
 
The null-safe operation call fixes may now diagnose latent faults.
 +
 +
Eliminate of the non-API ints from XXXPackage interfaces significantly reduces the size. The removed ints
 +
are available by using e.g. XXXPackage.Literals.YYY.getClassifierId()
  
 
===Pivot===
 
===Pivot===
 +
* [https://bugs.eclipse.org/471114 471114] Eliminate unstable ints from XXXPackage APIs.
 
* [https://bugs.eclipse.org/543599 543599] Use of unsafe operation call sources now diagnosed.
 
* [https://bugs.eclipse.org/543599 543599] Use of unsafe operation call sources now diagnosed.
 
* [https://bugs.eclipse.org/543608 543608] Non-Boolean valued Constraints now diagnosed.
 
* [https://bugs.eclipse.org/543608 543608] Non-Boolean valued Constraints now diagnosed.
Line 60: Line 66:
  
 
==Milestone 3==
 
==Milestone 3==
 +
 +
===Classic===
 +
* [https://bugs.eclipse.org/483246 483246] Exceptions causing invalid evaluation are now logged as warnings to avoid AERI escalation.
 +
 +
===Pivot===
 +
* [https://bugs.eclipse.org/542588 542588] Opening Validity View no longer fails with a Class Cast Exception
 +
* [https://bugs.eclipse.org/544182 544182] Global ProjectMap now tracks project opens/closes, late launches no longer fail with stale projects.
 +
* [https://bugs.eclipse.org/544187 544187] Global ProjectMap now tracks project opens/closes, late launches no longer fail with stale projects.
 +
* [https://bugs.eclipse.org/544189 544189] MultiValidationJob no longer does a full validation per incremental build.
 +
* [https://bugs.eclipse.org/544189 544189] Stale markers from removed files now removed.
 +
* [https://bugs.eclipse.org/544245 544245] Validations shortly after startup no longer incur a CME.
 +
 +
==Milestone 3a==
 +
 +
Milestone 3 was accidentally released one week early. Milestone 3a occurs at the correct time.
 +
 +
===Pivot===
 +
* [https://bugs.eclipse.org/471114 471114] Validation preferences are now keyed by their EOperation literal rather than a String literal.
 +
* [https://bugs.eclipse.org/543603 543603] Editor shows problems immediately rather than after first edit.
 +
* [https://bugs.eclipse.org/544189 544189] Problem markers update on file save, with or without OCL nature.
 +
* [https://bugs.eclipse.org/544431 544431] OCL validation should no longer occur on closed projects.
 +
* [https://bugs.eclipse.org/544551 544551] String::+ and String::concat may now have null sources.
 +
* [https://bugs.eclipse.org/544552 544552] Many library operations now declare their parameters as not-null.
 +
* [https://bugs.eclipse.org/544734 544734] Builder no longer excludes tool much for non-trivial incliusion/exclusion paths.
 +
* [https://bugs.eclipse.org/544737 544737] QVTd / OCL builders no longer reset each other's markers.
 +
* [https://bugs.eclipse.org/544737 544737] Builder no longer reports unresolved JavaClassCS references to Java implementations
 +
* [https://bugs.eclipse.org/544737 544737] Builder no longer leaves stale markers after full build.
 +
* [https://bugs.eclipse.org/544787 544787] org.eclipse.ocl.examples.standalone.StandaloneApplication now has a main() for direct invocation
  
 
==RC1==
 
==RC1==
 +
 +
===Pivot===
 +
* [https://bugs.eclipse.org/544903 544903] Comments warn that requiring OCL to create the external ResourceSet can incur significant shutdown costs.
  
 
==RC2==
 
==RC2==

Latest revision as of 06:46, 28 July 2020

Eclipse OCL New and Noteworthy items for the 2019-03 (6.7.0) release.

Release Overview

This minor release fixes a few bugs and provides enhanced extensibility for OCL-based applications such as QVT.

The significant changes for the Pivot-based OCL are:

  • Addition of persistence of the Map type as an Ecore EMap

This change fixes a bug whereby EMap declarations such as EAnnotation.details were treated as an OrderedSet(EStringToStringMapEntry) rather than as Map(String,String). Code using the erroneous interpretaion such as

eAnnotation.details->select(e | e.key = 'wanted' and e.value <> null)

must be recoded as

eAnnotation.details->select(k <- v | k = 'wanted' and v <> null)

Eclipse versions

The prevailing Eclipse OCL release candidate is auto-tested every week on Oxygen, Photon, 2018-09 and 2018-12 platforms using Jenkins on Linux.

2019-03 release should be installable on Mars and Neon platforms provided Xtext 2.9 or greater is also installed.

The 2019-03 sources are buildable on 2019-03 only.

Java versions

Java 8 on Windows was used to develop and test the milestones of this release.

Java 11 on Windows was briefly used to maintain and test the 2019-03 release candidates. It appears to work although Java code generation/compilation seems nearly three times slower - see Bug 565563.

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, 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

The fix for ineffective caching may have an undesirable side effect if OCL evaluations occur before and after some significant model change. This may be avoided by invoking PivotUtil.removeAdapter(resourceSet) to remove the stale caches.

Pivot

  • 443003 Ecore EMap idiom supported as an OCL Map / MapValue
  • 529372 allInstances()/opposites caches are no longer recomputed many times per validation
  • 543173 A TemplateParameter-typed Property no longer fails to parse
  • 543178 A Java Exception during a validation no longer terminates residual validations
  • 543187 The lowerbound of a TemplateParameter no determines available opposite Properties
  • 543221 allInstances and opposites now cached effectively during a validation and nested evaluations

CG

  • 543143 Many warnings fixed in generated model code
  • 543334 Pivot expression annotations no longer stripped from XXXPackageImpl

Milestone 2

The null-safe operation call fixes may now diagnose latent faults.

Eliminate of the non-API ints from XXXPackage interfaces significantly reduces the size. The removed ints are available by using e.g. XXXPackage.Literals.YYY.getClassifierId()

Pivot

  • 471114 Eliminate unstable ints from XXXPackage APIs.
  • 543599 Use of unsafe operation call sources now diagnosed.
  • 543608 Non-Boolean valued Constraints now diagnosed.
  • 543608 Complete OCL init/derive are npw both treated as (default) value expressions.

Milestone 3

Classic

  • 483246 Exceptions causing invalid evaluation are now logged as warnings to avoid AERI escalation.

Pivot

  • 542588 Opening Validity View no longer fails with a Class Cast Exception
  • 544182 Global ProjectMap now tracks project opens/closes, late launches no longer fail with stale projects.
  • 544187 Global ProjectMap now tracks project opens/closes, late launches no longer fail with stale projects.
  • 544189 MultiValidationJob no longer does a full validation per incremental build.
  • 544189 Stale markers from removed files now removed.
  • 544245 Validations shortly after startup no longer incur a CME.

Milestone 3a

Milestone 3 was accidentally released one week early. Milestone 3a occurs at the correct time.

Pivot

  • 471114 Validation preferences are now keyed by their EOperation literal rather than a String literal.
  • 543603 Editor shows problems immediately rather than after first edit.
  • 544189 Problem markers update on file save, with or without OCL nature.
  • 544431 OCL validation should no longer occur on closed projects.
  • 544551 String::+ and String::concat may now have null sources.
  • 544552 Many library operations now declare their parameters as not-null.
  • 544734 Builder no longer excludes tool much for non-trivial incliusion/exclusion paths.
  • 544737 QVTd / OCL builders no longer reset each other's markers.
  • 544737 Builder no longer reports unresolved JavaClassCS references to Java implementations
  • 544737 Builder no longer leaves stale markers after full build.
  • 544787 org.eclipse.ocl.examples.standalone.StandaloneApplication now has a main() for direct invocation

RC1

Pivot

  • 544903 Comments warn that requiring OCL to create the external ResourceSet can incur significant shutdown costs.

RC2

Back to the top