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"

Line 38: Line 38:
  
 
== plugins  ==
 
== plugins  ==
 +
 +
This folder contains sub folders. All plugins in the sub folders form the main Papyrus distribution.
  
 
{| cellspacing="1" cellpadding="1" border="1" style="width: 1003px; height: 148px;"
 
{| cellspacing="1" cellpadding="1" border="1" style="width: 1003px; height: 148px;"
Line 51: Line 53:
 
| plugins/uml<br>  
 
| plugins/uml<br>  
 
| bgcolor="#66ffff" | ''org.eclipse.papyrus''.'''uml.*'''<br>  
 
| bgcolor="#66ffff" | ''org.eclipse.papyrus''.'''uml.*'''<br>  
| All plugins related to UML diagrams and UML should be locate in this repository, except plugins related to a particular profile<br>
+
| All plugins related to UML diagrams and UML should be located in this repository, except plugins related to a particular profile<br>
 
|-
 
|-
 
| plugins/developer  
 
| plugins/developer  
Line 57: Line 59:
 
| <br>
 
| <br>
 
|-
 
|-
| plugins/marte
+
| plugins/others
| bgcolor="#66ffff" | org.eclipse.papyrus.'''marte.*'''<br>  
+
| bgcolor="#66ffff" | org.eclipse.papyrus.???<br>
| All plugins related to marte UML profile<br>
+
| Plugins that do no feet in other repository<br>
 +
|-
 +
| plugins/sysml
 +
| bgcolor="#66ffff" | org.eclipse.papyrus.'''sysml.*'''<br>  
 +
| All plugins related to sysml UML profile<br>
 +
|-
 +
| <br>
 +
| bgcolor="#66ffff" | <br>
 +
| <br>
 
|}
 
|}
  
 +
<br>
  
 
== tests  ==
 
== 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.
 +
 +
{| cellspacing="1" cellpadding="1" border="1" style="width: 1003px; height: 148px;"
 +
|-
 +
| '''folder<br>'''
 +
| '''plugin prefixes'''<br>
 +
| '''description'''<br>
 +
|-
 +
| tests/junit
 +
| bgcolor="#66ffff" | org.eclipse.papyrus.'''.*'''<br>
 +
| 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'''<br>
 +
 +
|-
 +
| tests/recipes
 +
| bgcolor="#66ffff" | org.eclipse.papyrus.'''.*'''<br>
 +
| 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'''<br>
 +
 +
|-
 +
| tests/swbot
 +
| bgcolor="#66ffff" | org.eclipse.papyrus.'''.*'''<br>
 +
| &nbsp;????<br>
 +
|}
  
 
<br>  
 
<br>  
  
 
== extraplugins  ==
 
== extraplugins  ==
 +
 +
This folder contains plugins that can be added to Papyrus in order to bring some extra functionalities.
 +
 +
{| cellspacing="1" cellpadding="1" border="1" style="width: 1003px; height: 148px;"
 +
|-
 +
| '''folder<br>'''
 +
| '''plugin prefixes'''<br>
 +
| '''description'''<br>
 +
|-
 +
| extraplugins/autolayout
 +
| bgcolor="#66ffff" | org.eclipse.papyrus.'''layouttool.*'''<br>
 +
| Plugins providing autolayout<br>
 +
|-
 +
| extraplugins/marte
 +
| bgcolor="#66ffff" | org.eclipse.papyrus.'''marte.*'''<br>
 +
| All plugins related to marte UML profile<br>
 +
|-
 +
| extraplugins/compare
 +
| bgcolor="#66ffff" | org.eclipse.papyrus.'''compare.*'''<br>
 +
| Plugins for model comparison&nbsp;?<br>
 +
|-
 +
| extraplugins/conversion
 +
| bgcolor="#66ffff" | org.eclipse.papyrus.'''conversion .*'''<br>
 +
| Plugins to convert UML element into another UML element (ex: Class to Interface)<br>
 +
|-
 +
| extraplugins/developer
 +
| bgcolor="#66ffff" | org.eclipse.papyrus.'''???.*'''<br>
 +
| 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.<br>
 +
|-
 +
| extraplugins/java
 +
| bgcolor="#66ffff" | org.eclipse.papyrus.'''java .*'''<br>
 +
| Plugins dedicated to Java language: Code reverse to UML, Eclipse Plugin reverse<br>
 +
|-
 +
| extraplugins/modisco
 +
| bgcolor="#66ffff" | org.eclipse.papyrus.'''modisco.*'''<br>
 +
| Plugins related to adaptating Modisco. Ex: An adaptator to the Modisco editor.<br>
 +
|-
 +
| extraplugins/spem2
 +
| bgcolor="#66ffff" | org.eclipse.papyrus.'''spem2.*'''<br>
 +
| Plugins related to spem2 profile.<br>
 +
|-
 +
| <br>
 +
| bgcolor="#66ffff" | <br>
 +
| <br>
 +
|}
  
 
== incoming  ==
 
== incoming  ==
 +
 +
This is a special folder used by Papyrus developper to propose new plugins (see [[Papyrus New Plugin Submition Process|Papyrus_New_Plugin_Submition_Process]])
  
 
== examples  ==
 
== examples  ==
  
= Plugin Main Sub-Folders  =
+
There is two kind of examples:
  
Papyrus plugins are dispatched&nbsp; in several main folders, each one dedicated to a particular layer. the following table try to summarize the main folders and their purpose:
+
*user examples
 +
*Papyrus developer or customizer examples
  
<br>
+
The folder contains subfolders for each kind of examples.
  
 
{| cellspacing="1" cellpadding="1" border="1" style="width: 1003px; height: 148px;"
 
{| cellspacing="1" cellpadding="1" border="1" style="width: 1003px; height: 148px;"
Line 85: Line 175:
 
| '''description'''<br>
 
| '''description'''<br>
 
|-
 
|-
| plugins/core<br>
+
| examples/user
| bgcolor="#66ffff" | ''org.eclipse.papyrus''.'''core.'''*'''<br>'''
+
| bgcolor="#66ffff" | org.eclipse.papyrus.'''examples.*'''<br>  
| <br>
+
| Plugins providing examples for Papyrus end user (ex: models)<br>
 
|-
 
|-
| plugins/uml<br>
+
| examples/dev/core
| bgcolor="#66ffff" | ''org.eclipse.papyrus''.'''uml.*'''<br>  
+
| bgcolor="#66ffff" | org.eclipse.papyrus.'''examples.core*'''<br>  
| All plugins related to UML diagrams and UML should be locate in this repository, except plugins related to a particular profile<br>
+
| Plugins related to core and providing examples for developer or customizer. Ex: Simple Diagram example<br>
 
|-
 
|-
| plugins/developer
+
| examples/dev/uml
| bgcolor="#66ffff" | <br>  
+
| bgcolor="#66ffff" | org.eclipse.papyrus.'''examples.uml*'''<br>  
| <br>
+
| Plugins related to UML and providing examples for developer or customizer. Ex: Simple Diagram example<br>
 
|-
 
|-
| plugins/marte
+
| examples/dev/others
| bgcolor="#66ffff" | org.eclipse.papyrus.'''marte.*'''<br>  
+
| bgcolor="#66ffff" | org.eclipse.papyrus.'''examples.???.*'''<br>  
| All plugins related to marte UML profile<br>
+
| Plugins providing examples that do not fit in other folders. Ex: Simple Diagram example<br>
 
|}
 
|}
  
= Actual Sub-Foldersand proposed Refactoring<br>  =
+
<br>
 +
 
 +
= Actual Sub-Folders and Proposed Refactoring<br>  =
  
 
The following table try to resume the actual existing folders, their purpose, and eventually the proposed refactoring:  
 
The following table try to resume the actual existing folders, their purpose, and eventually the proposed refactoring:  
Line 112: Line 204:
 
| '''description'''<br>  
 
| '''description'''<br>  
 
|  
 
|  
required actions  
+
'''required actions '''<br>
 
+
(column to be removed)
+
  
 
|-
 
|-
Line 135: Line 225:
 
| bgcolor="#66ffff" | <br>  
 
| bgcolor="#66ffff" | <br>  
 
| <br>  
 
| <br>  
| <br>
+
| Move to extraplugins&nbsp;?<br>
 
|-
 
|-
 
| plugins/marte  
 
| plugins/marte  
 
| bgcolor="#66ffff" | org.eclipse.papyrus.'''marte.*'''<br>  
 
| bgcolor="#66ffff" | org.eclipse.papyrus.'''marte.*'''<br>  
 
| All plugins related to marte UML profile<br>  
 
| All plugins related to marte UML profile<br>  
| <br>
+
| delete from plugins. Marte stuff is in extraplugins/marte<br>
 
|-
 
|-
 
| plugins/others  
 
| plugins/others  
Line 155: Line 245:
 
| bgcolor="#66ffff" | <br>  
 
| bgcolor="#66ffff" | <br>  
 
| bgcolor="#ff3333" | &nbsp;&nbsp;???<br>  
 
| bgcolor="#ff3333" | &nbsp;&nbsp;???<br>  
| bgcolor="#ff3333" | clarify this repository, its purpose, and its naming scheme
+
| bgcolor="#ff3333" | clarify this repository, its purpose, and its naming scheme. Move to UML&nbsp;?
 
|-
 
|-
 
| incoming<br>  
 
| incoming<br>  

Revision as of 08:42, 5 April 2011

This page explain:

  • 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/developer

plugins/others org.eclipse.papyrus.???
Plugins that do no feet in other repository
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..*
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..*
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 to convert UML element into another UML element (ex: Class to Interface)
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.



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.examples.*
Plugins providing examples for Papyrus end user (ex: models)
examples/dev/core org.eclipse.papyrus.examples.core*
Plugins related to core and providing examples for developer or customizer. Ex: Simple Diagram example
examples/dev/uml org.eclipse.papyrus.examples.uml*
Plugins related to UML and providing examples for developer or customizer. Ex: Simple Diagram example
examples/dev/others org.eclipse.papyrus.examples.???.*
Plugins providing examples that do not fit in other folders. Ex: Simple Diagram example


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
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
Need to clarify this.
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