Skip to content

Netigso: Align OSGI framework bootdelegation with Equinox - #9756

Open
matthiasblaesing wants to merge 1 commit into
apache:deliveryfrom
matthiasblaesing:felix_equinox_bootpath_delegation
Open

matthiasblaesing wants to merge 1 commit into
apache:deliveryfrom
matthiasblaesing:felix_equinox_bootpath_delegation

Conversation

@matthiasblaesing

Copy link
Copy Markdown
Contributor

Apache Felix by default only uses java.* as list for bootdelegation.

This differs from eclipse, which uses:

javax.*, org.ietf.jgss, org.omg.*, org.w3c.*, org.xml.*, sun.*, com.sun.*

At least one module (jgit) makes this assumption and the author of this commit assumes that there are more modules doing the same.

Closes: #9751

Apache Felix by default only uses java.* as list for bootdelegation.

This differs from eclipse, which uses:

javax.*, org.ietf.jgss, org.omg.*, org.w3c.*, org.xml.*, sun.*, com.sun.*

At least one module (jgit) makes this assumption and the author of this
commit assumes that there are more modules doing the same.

Closes: apache#9751
@matthiasblaesing matthiasblaesing added this to the NB32 milestone Oct 27, 2026
@matthiasblaesing matthiasblaesing added Platform [ci] enable platform tests (platform/*) git [ci] enable versioning job ci:dev-build [ci] produce a dev-build zip artifact (7 days expiration, see link on workflow summary page) labels Oct 27, 2026
@mbien

mbien commented Oct 27, 2026

Copy link
Copy Markdown
Member

target meant to be delivery, right?

@matthiasblaesing
matthiasblaesing changed the base branch from master to delivery October 27, 2026 19:43
@apache apache locked and limited conversation to collaborators Oct 27, 2026
@apache apache unlocked this conversation Oct 27, 2026
@matthiasblaesing

Copy link
Copy Markdown
Contributor Author

target meant to be delivery, right?

Yes indeed. What a coincidence, that the CI/CD infrastructure did not yet run the job 😃

@jtulach jtulach left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The change is OK short term, but in the long term horizon we should do better:

module (jgit) makes this assumption

  • Can we sent a patch upstream to make jgit compatible with Felix and pure OSGi spec?
  • Can we remove these extra packages then?
    • using Constants.FRAMEWORK_BOOTDELEGATION is a fine workaround, but only a workaround
    • the core idea of OSGi is isolation and expanding the list of system packages violates the isolation
  • Alternatively: can we patch jgit now, and them fix the problem by upgrading?

// https://github.com/eclipse-equinox/equinox/blob/7d9c3b69eae96c977f7f97add730a4d679060002/bundles/org.eclipse.osgi/JavaSE-9.profile#L244-L251
configMap.merge(
Constants.FRAMEWORK_BOOTDELEGATION,
"javax.*, org.ietf.jgss, org.omg.*, org.w3c.*, org.xml.*, sun.*, com.sun.*",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • is it reasonable to export package that aren't visible by the JPMS?
    • e.g. sun.* and com.sun.** seem to contradict the direction JDK is heading
    • if there is a code that really needs these packages, then OK, ...
    • ...but otherwise, I'd suggest to avoid exporting these non-public JDK packages
  • exporting javax, org.w3c, or org.xml is OK
  • Is org.omg still in the JDK21+?

@neilcsmith-net neilcsmith-net left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense. Thanks for looking into this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:dev-build [ci] produce a dev-build zip artifact (7 days expiration, see link on workflow summary page) git [ci] enable versioning job Platform [ci] enable platform tests (platform/*)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Git: Connection can't be established behind proxy with Kerberos authentication

4 participants