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/Papyrus Developer Guide/Papyrus Plugin Naming Scheme
This page explains:
- how Papyrus plugins are named and located.
- the structure of the trunk and branches
All papyrus plugin should start with the same prefix:
org.eclipse.papyrus
Contents
Naming Scheme
So you want to propose a new plugin. You need to give it a name.
All papyrus plugins should start with the same prefix:
org.eclipse.papyrus
But this is not enough. The next step is to decide where your plugin should be located:
- Read carrefully the next paragraph, and decide in which folder/subfolder your plugin will be located
- Use the proposed prefix (ex: org.eclipse.papyrus.example. )
- If you want to contribute a set of plugins, give them a namespace name to identify all of them
- Try to give a self explanatory name.
Folders Structure
The trunk and the branches have the same structure. Here we will only describe the trunk structure.
The trunk contains the following folders:
- plugins - contains all plugins included in the Papyrus distribution: core, main uml diagras, sysml
- tests - contains tests plugin. The internal structure is the same as plugins, but here we have tests.
- extraplugins - contains plugins that can be added to Papyrus in order to bring some extra functionalities: java reverse, autolayout, marte, ...
- incoming - this is a special folder used by Papyrus developper to propose new plugins (see Papyrus_New_Plugin_Submition_Process)
- examples - contains some example of plugins, for user and developper.
These folders can also contains subfolders.
plugins
This folder contains sub folders. All plugins in the sub folders form the main Papyrus distribution.
folder |
plugin prefixes |
description |
plugins/core |
org.eclipse.papyrus.core.* |
|
plugins/uml |
org.eclipse.papyrus.uml.* |
All plugins related to UML diagrams and UML should be located in this repository, except plugins related to a particular profile |
plugins/uml |
org.eclipse.papyrus.uml.diagram.* |
Plugins related to common UML diagrams are located in this repository. The naming scheme include 'diagram' namespace. |
plugins/developer | |
To be moved in extraplugins or in developer ? |
plugins/others | org.eclipse.papyrus.??? |
Plugins that do no feet in other repositories |
plugins/sysml | org.eclipse.papyrus.sysml.* |
All plugins related to sysml UML profile |
|
|
|
tests
This folders contains subfolders, each one dedicated to a kind of test:
- junit
- recipes
- swbot
Each subfolder mimic the same structure as the trunk. The names of the plugins are usually the same name as the tested plugin, suffixed with the type of test.
folder |
plugin prefixes |
description |
tests/junit | org.eclipse.papyrus.*.tests |
This folder mimic the trunk folder. It containt Plugin for junit tests.
The plugins have the same name as the plugin they test, with the suffix .tests |
tests/recipes | org.eclipse.papyrus.*.recipetest |
This folder mimic the trunk folder. It containt Plugin for recipes tests.
The plugins have the same name as the plugin they test, with the suffix .recipetest |
tests/swbot | org.eclipse.papyrus.* |
???? |
extraplugins
This folder contains plugins that can be added to Papyrus in order to bring some extra functionalities.
folder |
plugin prefixes |
description |
extraplugins/autolayout | org.eclipse.papyrus.layouttool.* |
Plugins providing autolayout |
extraplugins/marte | org.eclipse.papyrus.marte.* |
All plugins related to marte UML profile |
extraplugins/compare | org.eclipse.papyrus.compare.* |
Plugins for model comparison ? |
extraplugins/conversion | org.eclipse.papyrus.conversion .* |
Plugins dedicated to conversion (ex: old di2 files to new di format). |
extraplugins/developer | org.eclipse.papyrus.???.* |
Plugins useful for developer. For example, plugins providing internal View of some services. Also contains plugins used to develop or to generate some parts of Papyrus. |
extraplugins/java | org.eclipse.papyrus.java .* |
Plugins dedicated to Java language: Code reverse to UML, Eclipse Plugin reverse |
extraplugins/modisco | org.eclipse.papyrus.modisco.* |
Plugins related to adaptating Modisco. Ex: An adaptator to the Modisco editor. |
extraplugins/spem2 | org.eclipse.papyrus.spem2.* |
Plugins related to spem2 profile. |
extraplugins/others | org.eclipse.papyrus.req.* |
Plugins related to requirements engineering that complement SysML requirements. For example, Business Motivation Model (BMM) editor, requirements traceability assistant, requirements creation preferences, Requirements Interchange Format (ReqIf) requirements (re)importer and exporter, etc. |
extraplugins/others | org.eclipse.papyrus.???.* |
Plugins that do not fit (yet) in one of the previous folders. |
|
|
|
incoming
This is a special folder used by Papyrus developper to propose new plugins (see Papyrus_New_Plugin_Submition_Process)
examples
There is two kind of examples:
- user examples
- Papyrus developer or customizer examples
The folder contains subfolders for each kind of examples.
folder |
plugin prefixes |
description |
examples/user | org.eclipse.papyrus.example.user.* |
Plugins providing examples for Papyrus end user (ex: models) |
examples/dev/core | org.eclipse.papyrus.example.core.* |
Plugins related to core and providing examples for developer or customizer. |
examples/dev/uml | org.eclipse.papyrus.example.uml.* |
Plugins related to UML and providing examples for developer or customizer. |
examples/dev/others | org.eclipse.papyrus.example.???.* |
Plugins providing examples that do not fit in other folders. |
Actual Sub-Folders and Proposed Refactoring
The following table try to resume the actual existing folders, their purpose, and eventually the proposed refactoring:
folder |
plugin prefixes |
description |
required actions |
plugins/core |
org.eclipse.papyrus.core.* |
|
|
plugins/uml |
org.eclipse.papyrus.uml.* |
All plugins related to UML diagrams and UML should be locate in this repository, except plugins related to a particular profile |
|
plugins/uml/diagram |
org.eclipse.papyrus.uml.diagram.* |
All plugins related to UML diagrams. |
|
plugins/developer | |
|
Move to extraplugins ? |
plugins/marte | org.eclipse.papyrus.marte.* |
All plugins related to marte UML profile |
Delete from plugins. Marte stuff is in extraplugins/marte |
plugins/others | org.eclipse.papyrus.??? |
Plugins that do no feet in other repository |
oep.outline --> extraplugins oep.profile --> uml |
plugins/sysml | org.eclipse.papyrus.sysml.* |
All plugins related to sysml UML profile |
|
plugins/profile-tool | |
??? |
clarify this repository, its purpose, and its naming scheme. Move to UML ? |
incoming |
org.eclipse.papyrus.* |
New plugins that should be added to Papyrus. See Build_Process. Plugins in this repository should follow the naming scheme of there targeted repository. |
|
extraplugins |
org.eclipse.papyrus.* |
This repository contains plugins providing some extra functionalities to Papyrus. For example:
|
|
examples |
org.eclipse.papyrus.examples.* |
Examples for Papyrus users. This |
Need to separate user examples from developers examples. |
examples |
org.eclipse.papyrus.examples.* |
Examples for Papyrus developpers / customizers. This repository contains some plugins illustrating how to use some Papyrus functionalities, or how to extends Papyrus. |
|
tests/junit/plugins tests/junit/extraplugins |
sameNameAsTestedPlugin.tests |
These repositories contain the same hierarchies as in plugins. The test plugins should have the name of its tested plugin, suffixed with ".tests" |
|
tests/recipes/plugins tests/recipes/extraplugins |
sameNameAsTestedPlugin.recipetest |
These repositories contain the same hierarchies as in plugins.
The recipetest plugins should have the name of its tested plugin, suffixed with ".recipetest" |
|
tests/swbot | |
??? | please complete |