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

Difference between revisions of "Papyrus/Papyrus Developer Guide/Papyrus Plugin Naming Scheme"

(Folders Structure)
(No difference)

Revision as of 10:15, 24 June 2020

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

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:

  1. Read carrefully the next paragraph, and decide in which folder/subfolder your plugin will be located
  2. Use the proposed prefix (ex: org.eclipse.papyrus.example. )
  3. If you want to contribute a set of plugins, give them a namespace name to identify all of them
  4. 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:

  • Java reverse tool
  • diagram auto layout
  • ...

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


Back to the top