Skip to content

Plugin should use Import-Package instead of Require-Bundle for 3rd-party dependencies #540

@sratz

Description

@sratz

The amazon Q bundle currently depends on several third-partly dependencies using Require-Bundle:

Require-Bundle: org.eclipse.core.runtime;bundle-version="3.31.0",
org.tukaani.xz;bundle-version="1.9.0",
org.eclipse.ui;bundle-version="3.205.100",
org.eclipse.core.resources;bundle-version="3.20.100",
org.eclipse.core.filesystem;bundle-version="1.10.400.v20240426-1040",
org.eclipse.jface.text;bundle-version="3.25.100",
org.eclipse.jdt.ui;bundle-version="3.32.100",
org.eclipse.ui.genericeditor;bundle-version="1.3.400",
org.eclipse.lsp4e;bundle-version="0.16.1",
org.eclipse.lsp4j;bundle-version="0.23.1",
org.eclipse.lsp4j.jsonrpc;bundle-version="0.23.1",
com.google.gson;bundle-version="2.11.0",
org.eclipse.ui.ide;bundle-version="3.22.200",
org.eclipse.ui.workbench.texteditor;bundle-version="3.17.400",
org.eclipse.mylyn.commons.ui;bundle-version="4.2.0",
org.eclipse.jetty.server;bundle-version="12.0.9",
org.eclipse.jetty.util;bundle-version="12.0.9",
org.eclipse.core.net;bundle-version="1.5.400",
org.apache.commons.logging;bundle-version="1.2.0",
slf4j.api;bundle-version="2.0.13",
org.apache.commons.lang3;bundle-version="3.14.0",
org.apache.commons.text;bundle-version="1.10.0",
org.eclipse.core.expressions;bundle-version="3.9.400",
org.eclipse.jgit;bundle-version="6.10.0"

This is fragile, as for 3rd-party components the bundle names are not stable.

For example, between Eclipse 2025-12 and 2026-03, the bundle
org.apache.commons.logging (https://download.eclipse.org/releases/2025-12/202512101000/)
was renamed to
org.apache.commons.commons-logging (https://download.eclipse.org/releases/2026-03/202603111000/plugins/)
making it impossible to install Amazon Q into a fresh Eclipse 2026-03 with only the SimRel update site configured:

Image Image

Such 3rd-party (apache, gson, ...) libraries should be imported by importing the needed Java packages via Import-Package instead of importing the whole bundle via Require-Bundle to decouple from the bundle name.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions