Skip to content

v0.9.11

Choose a tag to compare

@aviadshiber aviadshiber released this 19 Apr 08:22
· 43 commits to main since this release
e707a92

feat: jdtls Maven settings + stable cache invalidation

Fix 1: Send proper Maven import settings to jdtls

jdtls now receives initializationOptions.settings with:

  • Maven import enabled, Gradle disabled
  • Import exclusions for build artifacts (**/target/**, etc.)
  • Automatic build configuration updates

Previously jdtls received zero settings, causing files to be treated as "non-project" with no Maven classpath resolution. Configurable via .java-functional-lsp.json:

{"jdtls": {"settings": {"java": {"import": {"maven": {"enabled": true}}}}}}

Fix 2: Stable cache invalidation

Cache marker changed from Python __version__ to resolved jdtls path hash + Java version. pip/brew upgrades of java-functional-lsp no longer wipe ~/.cache/jdtls-data/. Only jdtls binary upgrades or Java version changes trigger a cache wipe. Warm starts preserved (~10-20s vs 60-120s cold).

Also includes (from v0.9.10)

  • Cross-Maven-group workspace expansion (multi-group support)
  • Hard cap of 5 concurrent groups to prevent jdtls OOM
  • @lru_cache on _find_maven_group_root