Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Papyrus/Oxygen Work Description/NewFeature/ImportRhapsody
Contents
Import From Rhapsody Model
The bugs used for this task are:
- bug 496175: Papyrus must provide a tool to import UML Rhapsody model into Papyrus
- used to trace the development itself
- bug 499237: the plugin org.eclipse.papyrus.migration.rsa must be refactored
- used to trace the rsa refactoring
Development
- The development is done on a dedicated branch called committers/vlorenzo/oxygen/496176-import-rpy based on the master (Oxygen) branch.
- Builds are associated to this branch here
Papyrus Rhapsody Plugins
All Papyrus Rhapsody plugins are stored in the Papyrus git, in this path : extraplugins/migration/rhapsody
- org.eclipse.papyrus.migration.rhapsody.metamodel, org.eclipse.papyrus.migration.rhapsody.metamodel.edit, org.eclipse.papyrus.migration.rhapsody.metamodel.editor:
- these plugins provide the EMF version of the Rhapsody metamodel used to create Models and Diagrams.
- The metamodel has been initially created using the Rhapsody java API, then completed using all examples provided by Rhapsody. This update has been done using the plugin org.eclipse.papyrus.migration.rhapsody.dev.api.discovery.
- org.eclipse.papyrus.migration.rhapsody.blackboxes:
- This plugin provides some usefull blackboxes (java code). They are called by the QVTO transformations.
- These blackboxes can't be wrapped in the same plugins than the QVTo transformations themselves due to compilation errors (at least for developper).
- org.eclipse.papyrus.migration.rhapsody.parser and org.eclipse.papyrus.migration.rhapsody.parser.ui:
- These plugins are used to parse the Rhapsody files (*rpy)
- org.eclipse.papyrus.migration.rhapsody.dev.api.discovery:
- It is a developper plugin
- This plugin is not distributed, but it is build (a pom.xml file is provided)
- This plugin allow to update Rhapsody EMF metamodel when we meet models inconsistent with the current one.
How does Papyrus Rhapsody Import work ?
This import works in 2 steps:
- we convert the *.rpy file into a *.umlrhapsody which is the same model described using the EMF Rhapsody metamodel provided by the plugin org.eclipse.papyrus.migration.rhapsody.metamodel
- we call the QVTO transformation themselves to import the model described in the *.umlrhapsody file into a Papyrus model (file *.uml, *.notation and *.di)
Required changes in Papyrus
Papyrus already manages the import of RSA Model. All the code of this import (QVTO transformation, Wizard Pages, Dialog, Launcher, ...) are in the plugin org.eclipse.papyrus.migration.rsa
. Thje main part of this code is generic, so a refactoring is required to be able to reuse this code for the Rhapsody Import.
These changes will be done using the Bug 499237: [Importer][Rhapsody][RSA] the plugin org.eclipse.papyrus.migration.rsa must be refactored<code>
Changes
Papyrus model rsaToPapyrusParameters (from org.eclipse.papyrus.migration.rsa/model/ui) becomes migrationParameters (in org.eclipse.papyrus.migration.common/model/ui).