Skip to content

Remove AppContext usageΒ #9523

Open
Open

Description

@mbien

JDK 27 removed the (webstart) AppContext mechanism, NB appears to rely on it in some places

e.g see #9522 + openjdk/jdk#29855 (many others)

Activity

  1. added this to the NB32 milestone on Jul 17, 2026
  2. added
    Code cleanupLabel for cleanup done on the Netbeans IDE
    Upgrade JDKUpgrade to the JDK requirements of a module.
    on Jul 17, 2026
  3. neilcsmith-net commented on Jul 17, 2026

    @neilcsmith-net
    Member

    Note from Slack conversation - one of these usages is registering NetBeans' editor kits for use with JEditorPane::setContentType. This may not be feasible in future. This is currently done by registering a HackMap subclass of HashTable in the AppContext that can lazily lookup editor kits. Using the supported registration APIs to eagerly register might need to be done within each providing module, or by listening to module enablement, to handle module loading, ergonomics, etc.

    Assuming we don't do further hacks, we might want to note that registration of NetBeans' editor kits / expectation is deprecated in the notes for NB31?

  4. modified the milestones: NB32, NB33 on Oct 13, 2026
  5. mbien commented on Oct 16, 2026

    @mbien
    MemberAuthor

    Assuming we don't do further hacks, we might want to note that registration of NetBeans' editor kits / expectation is deprecated in the notes for NB31?

    planning to add a warning log line which prints some useful info if the hack is active + a flag which turns the hack off. Somewhat inspired by how the JDK removes deprecated features. Thought about only enabling it for platform apps but I believe it could be always enabled. #9721

    added note to RC1: https://github.com/apache/netbeans/releases/tag/32-rc1

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Code cleanupLabel for cleanup done on the Netbeans IDEUpgrade JDKUpgrade to the JDK requirements of a module.

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions