Repository navigation
Java Project Manager
microsoft/vscode-java-dependency provides the Java Projects tree and project/library-management UI in VS Code. DependencyExplorer creates the javaProjectExplorer tree with DependencyDataProvider; it also reveals selected resources through the project data returned by the language-server command bridge. This is presentation and extension-side orchestration, not JDTLS project import or dependency resolution.
Referenced-library commands update the java.project.referencedLibraries configuration through Settings; an explicit refresh then invokes the JDTLS-side java.project.refreshLib command for the default workspace folder. A configuration change should therefore not be treated as proof that a server refresh or build-tool resolution succeeded.
LanguageServerApiManager activates redhat.java, observes server readiness and classpath/project-import events, and refreshes or progressively adds tree data as appropriate. The Jdtls namespace sends project, package, path, library-refresh, main-class, dependency, and JAR-generation requests through the Java language client's workspace-command bridge.
The bundled JDTLS extension contributes delegate commands including java.project.list, java.project.refreshLib, java.getPackageData, java.resolvePath, java.project.getMainClasses, and java.project.generateJar, plus a jdt://jarentry/.* content provider. Those handlers run in JDTLS; they are distinct from the VS Code tree renderer.
At source commit eb3fba04f2763416b25833d92df4fb0210a9d668, PR #1101 adds package.nls.es.json with Spanish values for all 70 keys in package.nls.json. Coverage includes the extension description, command/submenu labels, configuration descriptions, build/JAR-export task descriptions, and welcome messages, including Create Java Project. The viewsWelcome.workbench.* translations preserve the base messages' command URIs and encoded arguments. This is localization-resource coverage, not a claim that every runtime message or adjacent Java tooling component is translated; the JSON-only change does not alter command implementations or establish Marketplace release availability.
At source commit fadfec5fa6bfd6f84d79ff5e60b6d18561871ea0, merged by PR #1100, GitHub Actions CI and E2E workflows use Temurin JDK 25. Azure CFS validation/CI uses Java 25, while the Windows nightly and RC pipelines download Microsoft JDK 25 and install it as Java 25 before building. This is CI/build-environment configuration, not a statement of an end-user runtime requirement, release status, or deployment.
Verified at source commit 5a62e6664de42701234dda83043400caa6797a05, merged by PR #1108 (source identity microsoft/vscode-java-dependency#1108:5a62e6664de42701234dda83043400caa6797a05):
- The Gradle integration fixture's
test/gradle/.vscode/settings.jsonselectsjava.import.gradle.version: "9.1.0"instead of 7.3 and retainsjava.server.launchMode: "Standard".CONTRIBUTING.mddocuments the fixture upgrade in the context of JDK 25 used by the Java extension. This is test-fixture configuration, not a general user-project Gradle requirement or independently verified upstream compatibility guarantee. -
package.json'snpm testcompiles TypeScript, bundles with development webpack, and runsdist/test/index.js. Intest/index.ts,maincreates and prints a temporary VS Code user-data directory, passes it as--user-data-dirto the hosted suites, and appendsJAVA_TEST_USER_DIR=<path>toGITHUB_ENVwhen available so subsequent Actions steps can locate that profile. The runner installsredhat.javawithout a version pin; the PR's reported validation versions are not a runner guarantee. - Failure-only log steps in Linux, macOS, and Windows search the actual
JAVA_TEST_USER_DIR/User/workspaceStorageforredhat.java/jdt_ws/.metadata/.log, rather than the default user profile. Windows includes hidden files withGet-ChildItem -Force. Missing exported profile/storage produces a warning and skips collection; it means diagnostics are unavailable (the test host may not have started), not that tests passed or the language server had no errors. These are source-backed diagnostic paths, not confirmation of a successful CI run.
At source commit 5a62e6664de42701234dda83043400caa6797a05, PR #1108 sets the manifest and lockfile root versions to 0.27.7 (package.json, package-lock.json). The new CHANGELOG.md section references seven user-facing PRs: #1061, #1063, #1074, #1075, #1078, #1099, and #1101. This records source metadata and changelog provenance only; those earlier implementations were not revalidated by this reconciliation, and a merged version bump does not establish Marketplace publication or deployment.
Verified at merged/source-tip commit a9671ce1769852c55bee9e821e4889f9223b8325, PR #1109; source identity microsoft/vscode-java-dependency#1109:a9671ce1769852c55bee9e821e4889f9223b8325:
.github/workflows/issuelens-run.yml, jobs.triage, pins the IssueLens issue-loop action to microsoft/IssueLens/.github/actions/issuelens@a81d2d96167fc0e69ac631c2edc85f858e693289, replacing 49df3d97547069f891a68248be6ed722c2aeca2f. The complete one-file PR changes only this action reference; it does not change the separate team-memory/coordinator workflows. The triage job retains its configured 20-minute Actions timeout. This is consumer workflow configuration, not verification of external action internals, HTTP stream timeout behavior, or a successful live triage run.
At source commit 332bfdc2bf563b10470e20825564d5334ad4b26d, PR #1103 changes the repository's .github/workflows/team-memory-post-merge.yml from closed-PR events to pushes on main. Manual recovery remains available through workflow_dispatch with the required string input pull_request_number identifying a merged PR.
The workflow's jobs.team-memory.if requires ISSUELENS_TEAM_MEMORY_ENABLED == 'true', the current default-branch ref, and either a push or manual-dispatch event. It runs on ubuntu-latest with a 30-minute timeout and invokes microsoft/IssueLens/.github/actions/issuelens@2b5317815e15179899014a02c41678620ce2d390 with request-type: team-memory, activity output, and a status summary. Top-level permissions are empty; job permissions are contents: read, pull-requests: read, and id-token: write. These are caller configuration facts from the workflow above, not verification of the external action's implementation or a successful live run.
The same workflow's concurrency key is repository-specific and selects the push's github.event.after, otherwise the manual PR number, otherwise the run ID; cancel-in-progress is false. Different push SHAs therefore have different keys. This is not a shared-wiki lock: the accompanying maintenance concurrency note retains snapshot-based compare-and-swap because other repositories can update the shared wiki.
PR #1103 identifies an operational prerequisite: Azure OIDC federation must accept the default-branch subject repo:microsoft/vscode-java-dependency:ref:refs/heads/main for push/manual runs, accounting for any subject customization. Federation was not inspected or changed by that PR; a merge does not establish that federation, opt-in, deployment, or live publication is working.
Verified at source commit 1864fba4d145876808fe557a8dce82e45400e353, merged by PR #1098:
-
src/views/dependencyExplorer.ts(DependencyExplorer) -
src/controllers/libraryController.ts(LibraryController) -
src/languageServerApi/languageServerApiManager.ts(LanguageServerApiManager) -
src/java/jdtls.ts(Jdtls) jdtls.ext/com.microsoft.jdtls.ext.core/plugin.xml
CI runtime verified at source commit fadfec5fa6bfd6f84d79ff5e60b6d18561871ea0, merged by PR #1100:
- GitHub Actions:
.github/workflows/linux.yml,.github/workflows/macOS.yml,.github/workflows/windows.yml, and.github/workflows/e2eUI.yml - Azure Pipelines:
.azure-pipelines/ci.yml,.azure-pipelines/nightly.yml, and.azure-pipelines/rc.yml