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 "MoDisco/DeveloperGuide"

(Java Compliance Level)
Line 57: Line 57:
 
* checking compilation, at least once, with Java 5 compiler compliance level and using a JRE5 library
 
* checking compilation, at least once, with Java 5 compiler compliance level and using a JRE5 library
 
* indicating on plugin Manifest "Bundle-RequiredExecutionEnvironment: J2SE-1.5"
 
* indicating on plugin Manifest "Bundle-RequiredExecutionEnvironment: J2SE-1.5"
 +
 +
=== SuppressWarnings("rawtypes") ===
 +
Eclipse 3.6 M3 introduced a change in the way it handles "@SuppressWarnings" for generic types that are used without specifying the type parameter.
 +
 +
Previously, <code>@SuppressWarnings("unchecked")</code> was used to suppress the corresponding warning. Now, Eclipse expects <code>@SuppressWarnings("rawtypes")</code> instead (see [https://bugs.eclipse.org/bugs/show_bug.cgi?id=290034 bug 290034]).
 +
 +
Problem is, this doesn't seem to be supported in other Java compilers (like the Sun or IBM Java compilers). It will eventually be, but not until Java 7, from what I could gather.
 +
 +
The MoDisco build uses an IBM compiler which is installed on the build machine, and which emits warnings whenever it encounters this <code>@SuppressWarnings("rawtypes")</code> it doesn't understand.
 +
 +
A solution to keep both Eclipse and the build happy is to tell Eclipse to keep its old behavior, by adding the following line in the VM arguments in eclipse.ini:
 +
-DsuppressRawWhenUnchecked=true
 +
 +
And continue using <code>@SuppressWarnings("unchecked")</code>.
  
 
[[Category:MoDisco]]
 
[[Category:MoDisco]]

Revision as of 00:30, 17 March 2010

Plug-ins naming

Infrastructure plug-ins naming

For common components:

  • a plug-in org.eclipse.gmt.modisco.infra.common.core
    • contains non-graphical components
  • a plug-in org.eclipse.gmt.modisco.infra.common.ui (if necessary)
    • if necessary, contains graphical components (except editor features)

For each infrastructure component named x (except OMG standards implementation):

  • a plug-in org.eclipse.gmt.modisco.infra.x
    • contains the meta-model implementation of the component x (if necessary)
  • a plug-in org.eclipse.gmt.modisco.infra.x.core
    • contains non-graphical components
  • a plug-in org.eclipse.gmt.modisco.infra.x.editor
    • if necessary, contains the component allowing to execute the Eclipse’s edit action.
  • a plug-in org.eclipse.gmt.modisco.infra.x.ui (if necessary)
    • if necessary, contains the graphical components.

For each subcomponent y of the infrastructure’s component x

  • a plug-in org.eclipse.gmt.modisco.infra.x.y
  • a plug-in org.eclipse.gmt.modisco.infra.x.y.core
  • a plug-in org.eclipse.gmt.modisco.infra.x.y.editor
  • a plug-in org.eclipse.gmt.modisco.infra.x.y.ui (if necessary)

Technology plug-ins naming

For each component dedicated to the technology x :

  • a plug-in org.eclipse.gmt.modisco.x : contains the meta-model implementation
  • a plug-in org.eclipse.gmt.modisco.x.discoverer : contains the basic discoverers
  • a plug-in org.eclipse.gmt.modisco.x.discoverer.y : for each additional discoverer
  • a plug-in org.eclipse.gmt.modisco.x.edit : EMF edit classes
  • a plug-in org.eclipse.gmt.modisco.x.editor : EMF editor classes and reflexive editor customization
  • a plug-in org.eclipse.gmt.modisco.x.custom : UICustom + facet + queries
  • a plug-in org.eclipse.gmt.modisco.x.zconverter : converter from x to z

Use-cases plug-ins naming

For each component dedicated to a use-case x:

  • a plug-in org.eclipse.gmt.modisco.usecase.x

For each component
For each component or sub-component x :

  • a plug-in x.doc referred by the parent component
  • a plug-in x.tests

Feature naming

  • The feature name suffixed by ".feature"
  • Feature id: not suffixed by ".feature" (can have the same name as a plug-in)

Package naming

  • Prefixed by the name of the plug-in containing the package
  • The EMF generation parameters must be changed to conform to this rule

Coding conventions

Coding conventions

APIs visibility

MoDisco API Visibility

Java Compliance Level

Java 5 compliance level is required. Take care of:

  • checking compilation, at least once, with Java 5 compiler compliance level and using a JRE5 library
  • indicating on plugin Manifest "Bundle-RequiredExecutionEnvironment: J2SE-1.5"

SuppressWarnings("rawtypes")

Eclipse 3.6 M3 introduced a change in the way it handles "@SuppressWarnings" for generic types that are used without specifying the type parameter.

Previously, @SuppressWarnings("unchecked") was used to suppress the corresponding warning. Now, Eclipse expects @SuppressWarnings("rawtypes") instead (see bug 290034).

Problem is, this doesn't seem to be supported in other Java compilers (like the Sun or IBM Java compilers). It will eventually be, but not until Java 7, from what I could gather.

The MoDisco build uses an IBM compiler which is installed on the build machine, and which emits warnings whenever it encounters this @SuppressWarnings("rawtypes") it doesn't understand.

A solution to keep both Eclipse and the build happy is to tell Eclipse to keep its old behavior, by adding the following line in the VM arguments in eclipse.ini:

-DsuppressRawWhenUnchecked=true

And continue using @SuppressWarnings("unchecked").

Versioning

All plug-ins must have the same version as the project version (current = 0.7.1, next = 0.8.0)

Copyright © Eclipse Foundation, Inc. All Rights Reserved.