This project is a collection of Eclipse IDE plugins maintained by vogella GmbH. It serves as a reference for modern Eclipse development practices, covering both the classic IDE extension points and the newer Eclipse 4 (e4) application model.
- Eclipse Tycho: Used for building Eclipse plugins, features, and products with Maven.
- Eclipse 4 (e4): Demonstrates dependency injection (Jakarta Inject), the application model (
.e4xmi), and CSS styling. - Generic Editor & TM4E: Examples of extending the Eclipse Generic Editor with TextMate grammars (TM4E), for example for shell scripts.
- OSGi: The underlying modular system for all Eclipse plugins.
- Java 25: The project is configured to use JavaSE-25.
The repository is organized into many OSGi bundles (plugins):
com.vogella.ide.first: Core UI components and product definition.com.vogella.ide.editor.*: Custom editors and extensions for the Generic Editor (Gradle, Shell, Tasks, and a bytecode viewer that translates bytecode into other languages via the Claude Code CLI).com.vogella.tasks.*: A sample task management application split into model, services, and UI.target-platform: Contains the target definition file (target-platform.target) which specifies the Eclipse release and dependencies used for the build.updatesite: The Tycho-generated p2 repository for distributing the plugins.
- Java 25: Ensure you have a JDK 25 installed and your
JAVA_HOMEis set. - Maven: The project includes a Maven wrapper (
mvnw).
To build all bundles and the update site, run the following command from the root directory:
./mvnw clean verifyThe updatesite module signs its artifacts with PGP via the tycho-gpg-plugin (Bouncy Castle signer), the signatures land in the p2 metadata and the jars stay unchanged.
Signing is skipped by default.
The CI enables it with -Dgpg.skip=false, writes the key from the MAVEN_GPG_KEY secret to a file and passes the MAVEN_GPG_PASSPHRASE secret, falling back to a throwaway key when the secrets are not set.
A local signed build works the same way:
gpg --armor --export-secret-keys release@vogella.com > ~/signing-key.asc
export MAVEN_GPG_PASSPHRASE=<passphrase>
./mvnw clean verify -Dgpg.skip=false -Dtycho.pgp.signer.bc.secretKeys=$HOME/signing-key.ascThe secretKeys file is required, with signer=bc alone Tycho still reads the key through the gpg executable.
Check the result with unzip -p updatesite/target/repository/artifacts.jar artifacts.xml | grep -c pgp.signatures.
The updatesite module has its own pom.xml only for this plugin.
- Import into Eclipse:
- Use an Eclipse IDE (e.g., Eclipse IDE for RCP and RAP Developers).
- File -> Import... -> Existing Maven Projects.
- Select the root directory and import all modules.
- Target Platform:
- Open
target-platform/target-platform.target. - Click "Set as Active Target Platform" in the top-right corner of the editor.
- Open
- Launch:
- You can launch a runtime workbench from the
com.vogella.ide.product/ide.productfile by clicking the "Launch an Eclipse application" link in the Overview tab.
- You can launch a runtime workbench from the
- OSGi Metadata: Always manage dependencies in
META-INF/MANIFEST.MF. - Extensions: UI contributions are defined in
plugin.xml. - Dependency Injection: Prefer
@Inject(Jakarta) for accessing services and UI components in e4-based bundles. - Coding Style: Follow standard Eclipse/Java conventions. The project uses
UTF-8encoding. - Testing: Test fragments (e.g.,
com.vogella.tasks.services.tests) use JUnit and are executed bytycho-surefire-pluginduring the build.
