OSGi.fx Eclipse Plugin
March 23, 2026 ยท View on GitHub
This repository contains the Eclipse IDE integration for the OSGi.fx diagnostic tool. It provides a seamless way to manage connections and launch OSGi.fx directly from your Eclipse environment.
๐ Key Features
- Connection Profiles: Easily create and manage connection profiles for both Socket and MQTT protocols.
- Visual Status Tracking: Real-time icons in the connection manager show success, failure, or neutral status of your profiles.
- Auto-managed Java 25 Runtime: Automatically downloads and configures the required Azul Zulu FX 25 runtime on the first launch, ensuring all JavaFX modules are available without manual setup.
- Flexible Source Selection: Launch OSGi.fx using a specific local JAR file or by providing Maven GAV (Group:Artifact:Version) coordinates.
- Cache Management: Dedicated preferences to manage and clear the downloaded runtime cache.
๐ Project Structure
com.osgifx.eclipse.target: Target platform definition for Eclipse 2022-06.com.osgifx.eclipse.plugin: The main OSGi.fx Launcher plugin.com.osgifx.eclipse.feature: The Eclipse feature project that includes the launcher plugin.org.osgifx.eclipse.repository: The P2 update site for installing the plugin.
๐ ๏ธ Prerequisites
- Java 17 (Required for building the workspace).
- Maven 3.8 or higher.
Note
Even though Java 17 is required for building, the generated artifacts are compatible with Java 11.
๐ฆ Building
To build the project, ensure you are using Java 17 and run the following command from the root directory:
mvn clean verify -Dtycho.p2.transport=apache
This will:
- Resolve target platform dependencies.
- Compile the Java source code.
- Generate OSGi bundles and the Eclipse feature.
- Create the P2 update site.
Warning
If you are using a newer JVM and face XML parsing errors (e.g., JAXP00010003 or JAXP00010004) while downloading Eclipse p2 repositories, it is likely due to the strict XML entity size limits introduced in recent JDK updates.
You can bypass these limits during the Maven build by configuring the MAVEN_OPTS environment variable:
MAVEN_OPTS="-Djdk.xml.maxGeneralEntitySizeLimit=0 -Djdk.xml.totalEntitySizeLimit=0" mvn clean verify -Dtycho.p2.transport=apache
๐ GPG Signing
To sign the P2 repository (e.g., for official releases), use the ossrh profile:
mvn clean verify -Possrh
๐ฅ Installation
Once the build is successful, you can install the plugin via the generated P2 repository:
- In Eclipse, go to Help > Install New Software....
- Click Add... and then Local....
- Select the
org.osgifx.eclipse.repository/target/repository/folder. - Follow the installation wizard.
โ๏ธ Configuration
Access the configuration via Window > Preferences > OSGi.fx.
- Java Runtime:
- Choose "Auto-manage Azul Zulu FX 25" (Recommended) to let the plugin handle the environment.
- Or specify a "Custom Java 25 Executable" if you already have one installed.
- OSGi.fx Source:
- Select "Use local OSGi.fx JAR" to point to a specific version on your disk.
- Or provide a "Maven OSGi.fx Version (GAV)" (e.g.,
com.osgifx:com.osgifx.console.application:1.0.0) to fetch it automatically.
๐ Releasing
The project uses a dedicated release branch strategy for deployment. Merging to or pushing a branch matching release/** will trigger the deployment of the Eclipse Update Site to GitHub Pages.
Release Automation Script
A script is provided to automate the creation of release branches:
./scripts/release.sh <version>
Example:
./scripts/release.sh 1.0.0
This script will:
- Validate the version format.
- Ensure you are on the
mainbranch. - Pull latest changes from
origin/main. - Create a new branch
release/<version>. - Automate versioning: Use Maven Tycho to update all project versions to match the release version.
- Commit the version bump and push the branch to
origin, triggering the deployment workflow. - Switch back to
main.
Important
The deployment workflow requires GPG_PRIVATE_KEY, GPG_PASSPHRASE, and GPG_KEY_ID to be configured as GitHub Actions Secrets.
๐ง Development
The projects are fully Eclipse IDE compliant. To import:
- Open Eclipse IDE (2022-06 or later recommended).
- Go to
File > Import... > Maven > Existing Maven Projects. - Select the root directory.
- Open
com.osgifx.eclipse.target/osgifx.targetand click "Set as Active Target Platform".
โ๏ธ License
This project is licensed under the Apache License 2.0. See LICENSE for details.