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

Papyrus/Oxygen Work Description/NewFeature/ImportRhapsody

< Papyrus‎ | Oxygen Work Description
Revision as of 10:27, 13 September 2016 by Vincent.lorenzo.cea.fr (Talk | contribs) (Papyrus Rhapsody Plugins)

Import From Rhapsody Model

The bugs used for this task are:

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.
  • org.eclipse.papyrus.migration.rhapsody.importer:
    • This plugin provides the tool to parse a *.rpy file into a emf file (*.umlrhapsody) using the rhapsody metamodel provided by org.eclipse.papyrus.migration.rhapsody.metamodel
  • org.eclipse.papyrus.migration.rhapsody:
    • This plugin uses the other plugin described previously. It takes the selected *.rpy model, convert it into a EMF model (*.umlrhapsody), then QVTo transformations are applied on this previous file to create the Papyrus model (uml, notation and di files).


Papyrus Rhapsody JUnit tests

Rhapsody JUnit tests are stored on the Papyrus git repository too, in the folder \tests\junit\extraplugins\migration\rhapsody.

JUnit plugins

  • org.eclipse.papyrus.migration.rhapsody.tests:
    • This test checks if the Rhapsody shared folder owning libraries is set as Eclipse Parameter. If not we ar enot able to launch the JUnit tests
  • org.eclipse.papyrus.migration.rhapsody.sysml.tests:
    • This plugin launches tests on the import of SysML model from Rhapsody into Papyrus.

How does Papyrus Rhapsody Import work ?

This import works in 2 steps:

  1. 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
  2. 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).

Back to the top