|[mdt-ocl.dev] OCL Pivot Promotion for M5|
HiFinally the promotion of the main Pivot OCL plugins has happened in GIT master and is available as part of OCL 6.0.0 downloads. Corresponding changes have been promoted for QVTd 1.0.0 master. Patches are available for Acceleo on Bug 454038 and papyrus on Bug 454040.
NsURIs are all changed and are now start http://www.eclipse.org/ocl/2015/... There is a compatibility extension point registration for the old library URI. Keep an eye out for any other legacy rescues that may be needed.
Plugins for the most part just drop ".examples", butorg.eclipse.ocl.pivot is the public API, vaguely corresponding to org.eclipse.ocl.examples.domain org.eclipse.ocl.pivot.internal is the less public API, vaguely corresponding to org.eclipse.ocl.examples.pivot org.eclipse.ocl.pivot.ui is a new Facade to hide as much internal functionality as possible especially *.xtext* org.eclipse.ocl.xtext.* is semi-public API for tightly coupled projects such as QVTd
Codegen, Interactive Console, Debugger, (Impact Analyzer), Standalone Console, Validity View and Tests are not promoted; it is unlikely that there will be time to clean up their APIs sufficiently. Next year. Tests will gradually migrate as they start to use new public Facade APIs.
Packages for the most part drop ".examples", but Xtext emf-gen packages also lose the first XXX in XXX.XXXcs and the T in XXXCST.
Simplification of DomainXXX / XXX / XXXImpl to just XXX (in ...pivot) and XXXImpl (in ...pivot.internal) results in significant renaming. About 10 Pivot classes are also renamed. Some acquire thin public interfaces.
Introduction of the modelled CompleteEnvironment/CompleteModel/CompletePackage/CompleteClass substantially replacing MetaModelManager/PackageManager/PackageServer/TypeServer also results in many renames.
Type/Class are now clear. All types are Classes, except TemplateParameter, so Type is used where a TemplateParameter can occur, e.g. the type of a Parameter/Property/Operation. Class is used where a TemplateParameter cannot occur. e.g. a super'type'.
UnlimitedNatural no longer conforms to Integer, so tests using UnlimitedNatural mmay need revising.
Method names are also rationalized to sensible 'ownedPlurals' so ownedAttribute chnages to ownedProperties, nestingPackage to owningPackage etc.
All models now have *.uml sources, but I still have a day or so of work to finally switch over. UML models are needed for OMG specs and Papyrus diagrams.
Cleaning up the Pivot is not yet complete; the remaining refactorings are hopefully minor, and provision of a clean Facade should be a major benefit. Ideally user code should never use a MetaModelManager. Keep an eye out for helpers to migrate to the Facade.
Examination of Acceleo and Papyrus usage shows some code that is easily moved to the Facade, however both extend the OCL Console, so clearly this is a useful component. Identifying a clean API for it, or more probably analyzing and enhancing the underlying Xtext Embedded Editor API is very unlikely to happen this year.
I fixed a couple of problems with stale references so I'm hoping that editors/builders may behave better. Keep an eye out. We have four weeks till M5 when more users may notice changes.
I haven't yet changed the default delegate URI preference to Pivot. I think we must. Delaying for a year will just store up extra confusions.
Regards Ed Willink
Back to the top