[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[mdt-ocl.dev] OCL Pivot Promotion for M5
|
Hi
Finally 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", but
org.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