Skip to content

Remove the experimental javac mode - #4548

Open
robstryker wants to merge 2 commits into
redhat-developer:mainfrom
robstryker:issue_4546
Open

robstryker wants to merge 2 commits into
redhat-developer:mainfrom
robstryker:issue_4546

Conversation

@robstryker

Copy link
Copy Markdown
Contributor

Summary

  • Removes java.jdt.ls.javac.enabled entirely: the setting, its launch-time --add-opens/system-property wiring in javaServerStarter.ts (which pointed at JavacCompilationUnitResolver/JavacCompilerFactory/DOMJavaSearchDelegate), the JDK-25 requirement bump it used to force, and its config-change watcher/normalization code.
  • Removes java.completion.engine: its only non-default value, dom, only ever had an effect through the removed javac code path, so with that gone the setting offered no real choice between ecj/dom — both already produced identical behavior.
  • Updates README.md/USAGE_DATA.md to drop documentation and telemetry-field references to both settings.
  • The backing org.eclipse.jdt.core.javac bundle is being dropped from the jdt.ls target platform and shipped product in a follow-up eclipse.jdt.ls change; this PR removes the client-side dependency on it first so no released vscode-java build keeps sending now-broken launch flags.

Fixes #4546

Test plan

  • package.json validated as well-formed JSON
  • tsc --noEmit shows no new errors introduced by this change (pre-existing, unrelated errors from dependency version mismatches remain)
  • Grepped the full repo to confirm no remaining references to either setting outside of historical CHANGELOG.md entries

🤖 Generated with Claude Code

The org.eclipse.jdt.core.javac bundle this depended on required always
running with the latest JDK to support the latest Java release, and has
stopped being maintained; the bundle is being dropped from the jdt.ls
target platform and shipped product.

Removes java.jdt.ls.javac.enabled entirely, along with the system
properties/--add-opens flags javaServerStarter.ts only sent when it was
enabled (these referenced classes -- JavacCompilationUnitResolver,
JavacCompilerFactory, DOMJavaSearchDelegate -- that no longer exist in
the shipped product), the JDK-25 requirement bump in requirements.ts,
and the config-change watcher/normalization code in settings.ts and
utils.ts.

Also removes java.completion.engine: its only non-default value, dom,
only had any effect through the removed javac code path, so with that
gone the setting offered no real choice -- selecting ecj or dom already
produced identical behavior. Dropped the corresponding telemetry field
and documentation in README.md/USAGE_DATA.md.

Fixes redhat-developer#4546

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@robstryker

Copy link
Copy Markdown
Contributor Author

@datho7561 This needs review to ensure I didn't miss anything. I think it's safe and clean but it's always good for a second set of eyes.

@datho7561

Copy link
Copy Markdown
Contributor

Okay. Right now it's saying it can't be rebased due to conflicts

@datho7561

Copy link
Copy Markdown
Contributor

It might be related to the merge commit; we have some guards against merge commits in some repositories, since they make the git history messy

Comment thread USAGE_DATA.md
* The number of error markers on the project(s)
* The number of unresolved imports within the project(s)
* Errors relating to running the language server, such as the message & stacktrace
* Whether there is a mismatch between the project's requested source level, and the JDK used for the project (eg. true)

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.

Very confused why this file is being touched at all

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remove the experimental javac mode

2 participants