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/Code Standards"

(Java classes)
 
(6 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
These rules apply to all plug-ins and features developed for the Papyrus Eclipse project, and distributed under the EPL licence.  
 
These rules apply to all plug-ins and features developed for the Papyrus Eclipse project, and distributed under the EPL licence.  
  
 +
 +
==Features and Plugins==
 +
We prefer when the Bundle-Name and Bundle-Vendor fields are externalized in the properties file.
 +
So we expect a file bundle.properties (or sometimes renamed into plugin.properties) for Plug-In, and a file feature.properties for Feature.
 +
A such file must be embedded in the binary build, so you must check in the ''Build Configuration'' tab that the file is selected.
  
 
== Features  ==
 
== Features  ==
Line 9: Line 14:
 
**Main Papyrus components: org.eclipse.papyrus.<feature.name>.feature  
 
**Main Papyrus components: org.eclipse.papyrus.<feature.name>.feature  
 
***e.g. ''org.eclipse.papyrus.infra.core.feature''  
 
***e.g. ''org.eclipse.papyrus.infra.core.feature''  
**Extra components: org.eclipse.papyrus.extra.<feature.name>.feature
+
*Name: Papyrus <Feature Name>
***e.g. ''org.eclipse.papyrus.extra.marte.feature''  
+
**e.g. ''Papyrus Core''  
*Name: Papyrus <Feature Name> (Incubation)
+
**e.g. ''Papyrus Model2Doc (Incubation)''
**e.g. ''Papyrus core (Incubation)''  
+
***Incubation plugin and feature have a version lower than 1.0.0
**e.g. ''Papyrus Marte (Incubation)''  
+
***Here you will find a definition of incubation: [[Development_Resources/Process_Guidelines/What_is_Incubation]]
*Each feature must contain the files ''epl-v10.html'' and ''license.html'' (April 9, 2014)
+
*Each feature.xml file must contains:
 +
**in ''Information Tab -> Copyright Notice'',
 +
*** ''Optional URL'' : ''https://www.eclipse.org/legal/epl-2.0/''
 +
*** ''Copyright'' :
 +
<blockquote>
 +
Copyright (c) 20XX CEA LIST
 +
<br/>
 +
All rights reserved. This program and the accompanying materials
 +
are made available under the terms of the Eclipse Public License
 +
2.0
 +
<br/>
 +
which accompanies this distribution, and is available at
 +
https://www.eclipse.org/legal/epl-2.0/
 +
<br/>
 +
SPDX-License-Identifier: EPL-2.0
 +
</blockquote>
 +
 
 +
[[Image:CopyrightNoticeFeature.png|700px|thumb|none]]
 +
 
 +
** in ''Information Tab -> License Agreement''
 +
***Check the field ''Shared License'',
 +
***License Feature ID: ''org.eclipse.license'',
 +
***License Feature Version: ''2.0.2''.
 +
 
 +
[[Image:LicenseAgreementFeature.png|700px|thumb|none]]
 +
 
 
*The build.properties file must contain the following files in the "Binary build" section:  
 
*The build.properties file must contain the following files in the "Binary build" section:  
**epl-v10.html
 
 
**feature.properties (When available)  
 
**feature.properties (When available)  
 
**feature.xml  
 
**feature.xml  
**licence.html
 
*The build.properties file must contain the following files in the "Source build" section:
 
**build.properties (Optional)
 
**epl-v10.html
 
**licence.html
 
  
 
<br>
 
<br>
[[Image:Papyrus.Build.properties-selectedOptions.png]]
+
 
 +
[[Image:Papyrus.Build.properties-selectedOptions.png|1000px|thumb|none]]
 +
 
 +
<br>
 +
 
 +
==Additional information for the build process==
 +
The build process also needs to know where is the license. There are 2 solutions :
 +
===Option 1===
 +
In the main pom.xml file (often in the pom.xml of ''releng/folder''), you must write:
 +
 
 +
<repositories>
 +
<repository>
 +
<id>license-feature</id>
 +
<url>http://download.eclipse.org/cbi/updates/license/</url>
 +
<layout>p2</layout>
 +
</repository>
 +
</repositories>
 +
 
 +
===Option 2===
 +
Your target platform definition file (tpd) must also contains:
 +
location "http://download.eclipse.org/cbi/updates/license/" eclipse-license {
 +
  org.eclipse.license.feature.group lazy
 +
}
  
 
[[Category:Papyrus]]
 
[[Category:Papyrus]]

Latest revision as of 10:37, 19 November 2020

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.


Features and Plugins

We prefer when the Bundle-Name and Bundle-Vendor fields are externalized in the properties file. So we expect a file bundle.properties (or sometimes renamed into plugin.properties) for Plug-In, and a file feature.properties for Feature. A such file must be embedded in the binary build, so you must check in the Build Configuration tab that the file is selected.

Features

  • ID:
    • Main Papyrus components: org.eclipse.papyrus.<feature.name>.feature
      • e.g. org.eclipse.papyrus.infra.core.feature
  • Name: Papyrus <Feature Name>
  • Each feature.xml file must contains:

Copyright (c) 20XX CEA LIST
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0
which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0

CopyrightNoticeFeature.png
    • in Information Tab -> License Agreement
      • Check the field Shared License,
      • License Feature ID: org.eclipse.license,
      • License Feature Version: 2.0.2.
LicenseAgreementFeature.png
  • The build.properties file must contain the following files in the "Binary build" section:
    • feature.properties (When available)
    • feature.xml


Papyrus.Build.properties-selectedOptions.png


Additional information for the build process

The build process also needs to know where is the license. There are 2 solutions :

Option 1

In the main pom.xml file (often in the pom.xml of releng/folder), you must write:

<repositories>
		<repository>
			<id>license-feature</id>
			<url>http://download.eclipse.org/cbi/updates/license/</url>
			<layout>p2</layout>
		</repository>
</repositories>

Option 2

Your target platform definition file (tpd) must also contains:

location "http://download.eclipse.org/cbi/updates/license/" eclipse-license {
 org.eclipse.license.feature.group lazy
}

Back to the top