Papyrus requires some external plugins in order to compile. <br> The following page maintain a list of [[Papyrus Required External Plugins|Papyrus Required External Plugins]]

== Development Plan ==

== Development Plan ==

Line 26:

Line 28:

=== Specifications ===

=== Specifications ===

−

The specifications are available here&nbsp;: http://wiki.eclipse.org/Papyrus_Developer_Guide/Specifications

+

The specifications are available here: http://wiki.eclipse.org/Papyrus_Developer_Guide/Specifications

== Getting the code ==

== Getting the code ==

Line 36:

Line 38:

=== Retrieve code ===

=== Retrieve code ===

−

[[PSF]] Following files will allow you to import all Papyrus plugins used during build phase:

+

The following [[PSF]] files will allow you to import all Papyrus plugins used during build phase: PSF files are now automatically generated using the SVN repository. They do not necessarily correspond to what is built. The script used to generate them is available in this project http://dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.papyrus/trunk/readme/ The following psf files are automatically update several time by day.

***[http://download.eclipse.org/modeling/mdt/papyrus/psf/subclipse/tests_svn_ssh.psf tests_svn_ssh.psf] Junit and other test plugins (mandatory for developers)

+

**Details

+

***psf for plugins (updated the 2nd January 2013). The following plugins are not distributed and could be closed (deprecated, not yet provided in the Papyrus distribution or for developpers only):

+

<pre>oep.customization

+

oep.customization.properties

+

oep.customization.properties.generation

+

all plugins of the layer 'developer', excepted if you need to generate diagrams (in this case you should install the GMF Tooling too)

+

oep.editor.perspectiveconfiguration

+

oep.infra.emf.editor

+

oep.infra.emf.embeddededitor

+

oep.infra.emf.newchild

+

all plugins oep.infra.gmfdiag.css if you don't use the css excepted oep.infra.gmfdiag.css.model

+

org.eclipse.papyrus.infra.xtext.widgets

+

oep.sysml.diagram.parametric

+

oep.team.svn

+

oep.uml.documentation

+

oep.uml.standard

+

oep.uml.standard.edit

+

oep.uml.ui.perspectiveconfiguration

+

oep.uml.properties.tabbedproperties.comments

+

oep.uml.textedit.state.xtext.generator

+

all plugins oep.views.documentation

+

</pre>

+

*psf for extraplugins (updated the 2nd January 2013) . Only the follwing projects are currently provided by the Papyrus extra-plugins update site. The others projects can be closed.(They are deprecated, not yet provided in the Papyrus distribution or for developpers only):

+

<pre>

+

org.eclipse.papyrus.compare.report.ui

+

org.eclipse.papyrus.compare.report

+

org.eclipse.papyrus.diagramtemplate.edit

+

org.eclipse.papyrus.diagramtemplate.editor

+

org.eclipse.papyrus.diagramtemplate

+

org.eclipse.papyrus.eclipse.project.editors

+

org.eclipse.papyrus.infra.gmfdiag.css.configuration

+

org.eclipse.papyrus.infra.gmfdiag.css.properties

+

org.eclipse.papyrus.infra.gmfdiag.css.theme

+

org.eclipse.papyrus.infra.gmfdiag.css.xtext.ui

+

org.eclipse.papyrus.infra.gmfdiag.css.xtext

+

org.eclipse.papyrus.infra.gmfdiag.css

+

org.eclipse.papyrus.layout.algorithms.gridAlgorithm

+

org.eclipse.papyrus.layout.algorithms.horizontalAlgorithm

+

org.eclipse.papyrus.layout.algorithms.horizontalSymmetryAlgorithm

+

org.eclipse.papyrus.layout.algorithms.horizontalTreeAlgorithm

+

org.eclipse.papyrus.layout.algorithms.radialAlgorithm

+

org.eclipse.papyrus.layout.algorithms.springAlgorithm

+

org.eclipse.papyrus.layout.algorithms.treeAlgorithm

+

org.eclipse.papyrus.layout.algorithms.verticalAlgorithm

+

org.eclipse.papyrus.layout.algorithms.verticalSymmetryAlgorithm

+

org.eclipse.papyrus.layout.subeditor.gmf

+

org.eclipse.papyrus.layout

+

org.eclipse.papyrus.marte.properties

+

org.eclipse.papyrus.marte.static.profile

+

org.eclipse.papyrus.marte.vsl

+

org.eclipse.papyrus.migration.properties.model

+

org.eclipse.papyrus.uml.export

+

</pre>

+

*psf for tests (updated the 2nd January 2013) . Only the follwing projects are used for tests. The others projects can be closed.

+

<pre>

+

org.eclipse.papyrus.sysml.tests

+

org.eclipse.papyrus.bundles.tests

+

org.eclipse.papyrus.core.resourceloading.tests

+

org.eclipse.papyrus.customization.properties.tests

+

org.eclipse.papyrus.diagram.clazz.test

+

org.eclipse.papyrus.diagram.common.tests

+

org.eclipse.papyrus.diagram.stereotypeproperty

+

org.eclipse.papyrus.infra.services.edit.tests

+

org.eclipse.papyrus.infra.services.labelprovider.tests

+

org.eclipse.papyrus.sysml.diagram.blockdefinition.tests

+

org.eclipse.papyrus.sysml.diagram.internalblock.tests

+

org.eclipse.papyrus.sysml.service.types.tests

+

org.eclipse.papyrus.tests

+

org.eclipse.papyrus.uml.diagram.dnd.tests

+

org.eclipse.papyrus.uml.diagram.usecase.tests

+

org.eclipse.papyrus.uml.modelexplorer.tests

+

org.eclipse.papyrus.uml.service.types.tests

+

org.eclipse.papyrus.uml.tools.tests

+

org.eclipse.papyrus.views.modelexplorer.tests

+

org.eclipse.papyrus.tests.extra

+

org.eclipse.papyrus.infra.gmfdiag.css.tests.tests

+

</pre>

+

<br>

+

+

*'''Branch 0.9.X (Juno)'''

+

**last versions of the psf files for Papyrus/branch using http for non-commiters:

***[http://download.eclipse.org/modeling/mdt/papyrus/psf/subclipse/tests_0.9.X_svn_ssh.psf tests_0.9.X_svn_ssh.psf] Junit and other test plugins (mandatory for developers)

+

+

=== How to update the script generating the psf files. ===

+

+

The script is located on build.eclipse.org in /opt/public/modeling/mdt/papyrus/create_psf_files.sh.

+

+

*To modify it&nbsp;:

+

**download this project with Eclipse http://dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.papyrus/trunk/readme/

+

**modify it and commit it on the SVN

+

**log you on hudson

+

**execute the script /opt/public/modeling/mdt/papyrus/update_psf_files_script.sh. This script allows to download and "install" the last version of the scripts located in trunk/readme/script (so it updates itself too)

+

+

<br>

=== Retrieve configuration files ===

=== Retrieve configuration files ===

−

The Papyrus [http://dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.papyrus/trunk/doc/DevelopperDocuments/templates/Papyrus%20Code%20templates.xml Code Templates] and [http://dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.papyrus/trunk/doc/DevelopperDocuments/templates/Papyrus%20Code%20templates.xml Java Formatter] files are available under the Papyrus repository in the plugin org.eclipse.papyrus.doc under the folder "templates"<br> [[FAQ How do I control the Java formatter?|FAQ How do I control the Java formatter]]<br> [[FAQ How can templates make me the fastest coder ever?|FAQ How can templates make me the fastest coder ever]]<br> Checkstyle&nbsp;: available soon <br>

+

The Papyrus [http://dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.papyrus/trunk/doc/DevelopperDocuments/templates/Papyrus%20Code%20templates.xml Code Templates] and [http://dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.papyrus/trunk/doc/DevelopperDocuments/templates/Papyrus%20Code%20templates.xml Java Formatter] files are available under the Papyrus repository in the plugin org.eclipse.papyrus.doc under the folder "templates"<br> [[FAQ How do I control the Java formatter?|FAQ How do I control the Java formatter]]<br> [[FAQ How can templates make me the fastest coder ever?|FAQ How can templates make me the fastest coder ever]]<br> Checkstyle: available soon <br>

[http://dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.papyrus/trunk/doc/DevelopperDocuments/templates/HowToUseTemplates.txt The note] explains how to install the templates in your environment.

[http://dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.papyrus/trunk/doc/DevelopperDocuments/templates/HowToUseTemplates.txt The note] explains how to install the templates in your environment.

*Papyrus plugins naming scheme and folder structure used to locate and name plugins is described here: [[Papyrus Plugin Naming Scheme|Papyrus_Plugin_Naming_Scheme]]

−

When adding a task to the buzilla, the following grammar should be used:

+

=== Structure and behavior of papyrus ===

−

*'[' ''Category'' ']' ''NameOfTheTask''<br>

+

*Presentation of the papyrus stucture and the behavior of some parts [[Papyrus Developer Guide/Papyrus Structure Behavior]]

−

The category helps to filter the bugs for developers. There are already some existing categories: General, XXX Diagram, Common, Property View, etc.

+

=== Papyrus Command Execution, History, Undo/Redo ===

−

== Papyrus Log ==

+

*This first document describes the usage of editing domains and gmf/gef/emf commands. See this detailed article [[Papyrus Developer Guide/Editing Domains and Commands]].

+

+

*This second document tries to explain how the differents Eclipse Command frameworks work and how they are related. It also explains how commands should be executed in Papyrus, in order to have correct undo/redo.

The ServiceRegistry is one of the main Papyrus component. The idea is that each Papyrus feature should be a service registered to the ServiceRegistry.

+

+

The ServiceRegistry should be accessible from any code. It allows to retrieve the components you need to perform your task. <br> A new implementation of the ServiceRegistry is submitted. The new ServiceRegistry is discused here [[Papyrus Developer Guide/Service Registry]]

Currently Papyrus provides 2 editors kinds&nbsp;: Diagrams and Table. How to add your own editor kind is explained here [[Papyrus Developper Guide/How to - Add your own editor in Papyrus]]

+

+

=== Write Documentation for Papyrus ===

+

+

How to - Related to documentation [[Papyrus Developer Guide/Writing Documentation]]

+

+

=== Papyrus Discovery ===

+

+

==== Papyrus additional components ====

+

+

To add extra features to the Papyrus Discover, you should edit the files located here:<strike>/cvsroot/org.eclipse/HEAD/www/modeling/mdt/papyrus/downloazds/discovery/juno/</strike>

+

+

Now it is on git: ssh://USER_ID@git.eclipse.org/gitroot/www.eclipse.org/modeling/mdt.git

+

+

==== Papyrus as a Modeling component ====

+

+

Papyrus is available from the Modeling Package, using the discovery UI pf this package. This contribution is made by the project located here:&nbsp;git://git.eclipse.org/gitroot/www.eclipse.org/modeling/amalgam.git,

Getting the code

Connecting to the svn

Retrieve code

The following PSF files will allow you to import all Papyrus plugins used during build phase: PSF files are now automatically generated using the SVN repository. They do not necessarily correspond to what is built. The script used to generate them is available in this project http://dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.papyrus/trunk/readme/ The following psf files are automatically update several time by day.

These PSF are builded using the SVN contents and NOT using the build process. So some downloaded plugins should be deprecated, not maintained, and not provided in the Papyrus installation.

To know if a downloaded plugin should compile, you can have a look to a Papyrus installation. If the plugin comes with the installation, it should compile!

Some downloaded plugins should have dependencies on plugins stored in the incoming folder. In this case you should download them manually.

Trunk 0.10.X (Kepler)

last versions of the psf files for Papyrus/trunk using http for non-commiters:

psf for plugins (updated the 2nd January 2013). The following plugins are not distributed and could be closed (deprecated, not yet provided in the Papyrus distribution or for developpers only):

oep.customization
oep.customization.properties
oep.customization.properties.generation
all plugins of the layer 'developer', excepted if you need to generate diagrams (in this case you should install the GMF Tooling too)
oep.editor.perspectiveconfiguration
oep.infra.emf.editor
oep.infra.emf.embeddededitor
oep.infra.emf.newchild
all plugins oep.infra.gmfdiag.css if you don't use the css excepted oep.infra.gmfdiag.css.model
org.eclipse.papyrus.infra.xtext.widgets
oep.sysml.diagram.parametric
oep.team.svn
oep.uml.documentation
oep.uml.standard
oep.uml.standard.edit
oep.uml.ui.perspectiveconfiguration
oep.uml.properties.tabbedproperties.comments
oep.uml.textedit.state.xtext.generator
all plugins oep.views.documentation

psf for extraplugins (updated the 2nd January 2013) . Only the follwing projects are currently provided by the Papyrus extra-plugins update site. The others projects can be closed.(They are deprecated, not yet provided in the Papyrus distribution or for developpers only):

execute the script /opt/public/modeling/mdt/papyrus/update_psf_files_script.sh. This script allows to download and "install" the last version of the scripts located in trunk/readme/script (so it updates itself too)

Papyrus Command Execution, History, Undo/Redo

This second document tries to explain how the differents Eclipse Command frameworks work and how they are related. It also explains how commands should be executed in Papyrus, in order to have correct undo/redo.

Papyrus ServiceRegistry

The ServiceRegistry is one of the main Papyrus component. The idea is that each Papyrus feature should be a service registered to the ServiceRegistry.

The ServiceRegistry should be accessible from any code. It allows to retrieve the components you need to perform your task. A new implementation of the ServiceRegistry is submitted. The new ServiceRegistry is discused here Papyrus Developer Guide/Service Registry