The Eclipse Examples Project Values

The following values guide the development of the Eclipse Examples Project.

Values

Examples use Eclipse runtime technology. Eclipse Equinox is the delivery platform for all examples except when non-Java technology is required, or it is otherwise inappropriate. Eclipse technology is also used to to create the examples. Where Eclipse tools are used in a novel or non-obvious manner to create the example code, processes employed are documented.

Only public APIs are used in the examples. Examples use the most recent APIs when a choice is available.

The most recent releases of Eclipse projects are supported. As the Eclipse projects the examples are built upon are updated, so are the examples. Examples support the most recent "general availability"(GA) release (n) and (possibly) the previous GA release (n-1) of the projects they use. Examples clearly indicate—on both the website and, when possible, within the example itself—the projects and releases they are built upon. Examples that cannot be maintained, or support Eclipse project releases older than n-1, are archived.

All examples are thoroughly documented. More specifically, all classes, interfaces, and non-trivial fields and methods—irrespective of any visibility modifiers—have comments that describe their utility. All comments are as descriptive as they need to be, including sensible cross-referencing links where appropriate. Comments are not long-winded or unnecessarily long.

Examples are as small as possible. Unnecessary or unused files, types, constructors, fields, methods, etc. are removed.

Examples are implemented in as simple a manner as possible (but no simpler). Implementations are not simplistic. They are sophisticated enough to demonstrate how the technology is used.

Where possible, examples are extensible. Eclipse Rich Client Platform (RCP) applications are built as extensible platforms. Examples that manifest as bundles are, where sensible, extendable by other bundles.

Examples are test-infected. That is, they are thoroughly covered with JUnit tests (using the most recent version of JUnit). In keeping spirit with the other values, test code is also well-documented, and are implemented as small and simple as possible.

Examples are easily downloaded and buildable. Examples that require extra artifacts (like bundles from Orbit, or custom RCP targets) include scripts and/or instructions for building the custom environment. Where possible, Eclipse technology such as Buckminster is used to define these scripts (further increasing the utility of the example).

Examples are translatable into multiple languages where appropriate and sensible. All strings are externalized. Examples leverage the most recent version ICU4J in providing this support.

Examples are IP reviewed. All intellectual property (IP) contributions to the project pass IP review within nine months of submission. Contributions which cannot be reviewed within that time are removed from the repository.