Contents

Coding rules for Papyrus plug-ins and features

These rules apply to all plug-ins and features developed for the Papyrus Eclipse project, and distributed under the EPL licence.

Plug-ins

All plug-ins must compile and run with Java 1.5 (Execution Environment = J2SE-1.5)

Plug-in provider : Eclipse Modeling Project

Version :

Juno : 0.9.2.qualifier

Kepler : 0.10.0.qualifier

Plug-in name : must end with (Incubation). e.g. Papyrus Backbone (Incubation)

Plug-in ID : must start with org.eclipse.papyrus

Plug-in dependencies must not be re-exported

Dependencies to Papyrus plug-ins must match the current version (e.g. depend on oep.infra.core 0.9.2 instead of oep.infra.core)

The build.properties file describes the files that must be included at runtime. It is important to fill it properly, so that plug-ins can work correctly once installed. Especially, you should probably always include the following files and folders (When they exist), in the "Binary build" category:

All files and directories which are already contained in the "Binary build" category (Except about.html which must be contained in both Binary and Source builds)

Java classes

All APIs must be documented with JavaDoc comments. Automatic generation of JavaDoc comments may help, but the automatically generated comments are templats. They are not sufficient. It is better not to generate javadoc comments than to generate empty comments.

Each Java class must contain the Copyright/Licence/Contributor header. e.g.:

/*****************************************************************************
* Copyright (c) 2013 CEA LIST.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
*****************************************************************************/

You must not use the standard console output in Papyrus plug-ins. Use the Papyrus log instead

Features

ID:

Main Papyrus components: org.eclipse.papyrus.<feature.name>.feature

e.g. org.eclipse.papyrus.infra.core.feature

Extra components: org.eclipse.papyrus.extra.<feature.name>.feature

e.g. org.eclipse.papyrus.extra.marte.feature

Name: Papyrus <Feature Name> (Incubation)

e.g. Papyrus core (Incubation)

e.g. Papyrus Marte (Incubation)

Each feature must contain the files epl-v10.html and license.html (February 1 2011)

The build.properties file must contain the following files in the "Binary build" section:

feature.xml

epl-v10.html

licence.html

feature.properties (When available)

The build.properties file must contain the following files in the "Source build" section:

epl-v10.html

licence.html

build.properties (Optional)

Tests

Test plug-ins

Each plug-in contributed within the Papyrus project must be accompanied with a Test plug-in (And their associated Feature). Each test plug-in must at least contain a test class so that it can be included to the build/test infrastructure. Of course, the more tests it actually contains, the better...

The test plug-ins and features must follow the same rules as the other Papyrus plug-ins.