From 6cc5749cd994849d9c7dbb7be7d0e223572789ae Mon Sep 17 00:00:00 2001 From: wenytang-ms Date: Tue, 7 Jul 2026 15:58:34 +0800 Subject: [PATCH 1/4] build: pin jdt.ls target platform to fix CI resolution failure The rolling 'jdtls/snapshots/repository/latest/' snapshot drifted: newer jdt.ls builds inconsistently bundle junit-platform-* jars (currently 1.14.x / jupiter 5.14.x) that conflict with the JUnit 6 (6.0.x) stack the plugin manifest requires, breaking OSGi resolution during 'Build OSGi bundle' (mvnw clean verify). Pin to 1.55.0.202512042336 (the last snapshot before jdt.ls started bundling junit-platform-*, and the build used when JUnit 6 support landed in #1820). With this pin the entire JUnit stack resolves consistently from the Eclipse 4.38 / 2025-12 platform: JUnit 5 (platform 1.14.1 + jupiter 5.14.1), JUnit 4 (vintage 5.14.1) and JUnit 6 (6.0.1) are all present, so no runtime regression. Regenerate contributes.javaExtensions accordingly: the 1.14.x/5.14.x bundles now come from Eclipse (1.14.1/5.14.1) instead of jdt.ls (1.14.4/5.14.4); asm 9.9.0. Verified locally: 'npm run build-plugin' -> BUILD SUCCESS and 'git diff --exit-code package.json' is clean after regeneration. --- .../com.microsoft.java.test.tp.target | 4 ++-- package.json | 18 +++++++++--------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/java-extension/com.microsoft.java.test.target/com.microsoft.java.test.tp.target b/java-extension/com.microsoft.java.test.target/com.microsoft.java.test.tp.target index b170c20c..dfb409ca 100644 --- a/java-extension/com.microsoft.java.test.target/com.microsoft.java.test.tp.target +++ b/java-extension/com.microsoft.java.test.target/com.microsoft.java.test.tp.target @@ -1,4 +1,4 @@ - + @@ -20,7 +20,7 @@ - + diff --git a/package.json b/package.json index 2470b71d..42f9cb02 100644 --- a/package.json +++ b/package.json @@ -56,18 +56,18 @@ "contributes": { "javaExtensions": [ "./server/com.microsoft.java.test.plugin-0.43.1.jar", - "./server/junit-jupiter-api_5.14.4.jar", + "./server/junit-jupiter-api_5.14.1.jar", "./server/junit-jupiter-api_6.0.1.jar", - "./server/junit-jupiter-engine_5.14.4.jar", + "./server/junit-jupiter-engine_5.14.1.jar", "./server/junit-jupiter-engine_6.0.1.jar", "./server/junit-jupiter-migrationsupport_5.14.1.jar", - "./server/junit-jupiter-params_5.14.4.jar", + "./server/junit-jupiter-params_5.14.1.jar", "./server/junit-jupiter-params_6.0.1.jar", - "./server/junit-platform-commons_1.14.4.jar", + "./server/junit-platform-commons_1.14.1.jar", "./server/junit-platform-commons_6.0.1.jar", - "./server/junit-platform-engine_1.14.4.jar", + "./server/junit-platform-engine_1.14.1.jar", "./server/junit-platform-engine_6.0.1.jar", - "./server/junit-platform-launcher_1.14.4.jar", + "./server/junit-platform-launcher_1.14.1.jar", "./server/junit-platform-launcher_6.0.1.jar", "./server/junit-platform-runner_1.14.1.jar", "./server/junit-platform-suite-api_1.14.1.jar", @@ -81,9 +81,9 @@ "./server/org.eclipse.jdt.junit5.runtime_1.2.0.v20251113-1434.jar", "./server/org.eclipse.jdt.junit6.runtime_1.0.0.v20251112-1701.jar", "./server/org.jacoco.core_0.8.14.202510111229.jar", - "./server/org.objectweb.asm.commons_9.9.1.jar", - "./server/org.objectweb.asm.tree_9.9.1.jar", - "./server/org.objectweb.asm_9.9.1.jar", + "./server/org.objectweb.asm.commons_9.9.0.jar", + "./server/org.objectweb.asm.tree_9.9.0.jar", + "./server/org.objectweb.asm_9.9.0.jar", "./server/org.opentest4j_1.3.0.jar" ], "viewsWelcome": [ From a5ec593ff1d533664a2a660ce107b8aea511c661 Mon Sep 17 00:00:00 2001 From: wenyutang-ms Date: Tue, 7 Jul 2026 16:59:31 +0800 Subject: [PATCH 2/4] build: pin jdt.ls target platform to latest --- .../META-INF/MANIFEST.MF | 44 +++++++++---------- .../com.microsoft.java.test.tp.target | 40 +++++++++++++++-- package.json | 32 +++++++------- scripts/buildJdtlsExt.js | 2 +- 4 files changed, 76 insertions(+), 42 deletions(-) diff --git a/java-extension/com.microsoft.java.test.plugin/META-INF/MANIFEST.MF b/java-extension/com.microsoft.java.test.plugin/META-INF/MANIFEST.MF index 0939e668..f9f385b5 100644 --- a/java-extension/com.microsoft.java.test.plugin/META-INF/MANIFEST.MF +++ b/java-extension/com.microsoft.java.test.plugin/META-INF/MANIFEST.MF @@ -24,33 +24,33 @@ Require-Bundle: org.eclipse.jdt.core, org.eclipse.jdt.junit.runtime, org.eclipse.jdt.junit4.runtime, org.eclipse.jdt.junit5.runtime, - junit-jupiter-api;bundle-version="5.14.0", - junit-jupiter-engine;bundle-version="5.14.0", - junit-jupiter-migrationsupport;bundle-version="5.14.0", - junit-jupiter-params;bundle-version="5.14.0", - junit-vintage-engine;bundle-version="5.14.0", - junit-platform-commons;bundle-version="1.14.1", - junit-platform-engine;bundle-version="1.14.1", - junit-platform-launcher;bundle-version="1.14.1", - junit-platform-runner;bundle-version="1.14.1", - junit-platform-suite-api;bundle-version="1.14.1", - junit-platform-suite-commons;bundle-version="1.14.1", - junit-platform-suite-engine;bundle-version="1.14.1", + junit-jupiter-api;bundle-version="[5.14.0,6.0.0)", + junit-jupiter-engine;bundle-version="[5.14.0,6.0.0)", + junit-jupiter-migrationsupport;bundle-version="[5.14.0,6.0.0)", + junit-jupiter-params;bundle-version="[5.14.0,6.0.0)", + junit-vintage-engine;bundle-version="[5.14.0,6.0.0)", + junit-platform-commons;bundle-version="[1.14.1,2.0.0)", + junit-platform-engine;bundle-version="[1.14.1,2.0.0)", + junit-platform-launcher;bundle-version="[1.14.1,2.0.0)", + junit-platform-runner;bundle-version="[1.14.1,2.0.0)", + junit-platform-suite-api;bundle-version="[1.14.1,2.0.0)", + junit-platform-suite-commons;bundle-version="[1.14.1,2.0.0)", + junit-platform-suite-engine;bundle-version="[1.14.1,2.0.0)", org.eclipse.jdt.junit6.runtime, - junit-jupiter-api;bundle-version="6.0.1", - junit-jupiter-engine;bundle-version="6.0.1", - junit-jupiter-params;bundle-version="6.0.1", + junit-jupiter-api;bundle-version="[6.0.1,7.0.0)", + junit-jupiter-engine;bundle-version="[6.0.1,7.0.0)", + junit-jupiter-params;bundle-version="[6.0.1,7.0.0)", org.opentest4j;bundle-version="1.3.0", - junit-platform-commons;bundle-version="6.0.1", - junit-platform-engine;bundle-version="6.0.1", - junit-platform-launcher;bundle-version="6.0.1", - junit-platform-suite-api;bundle-version="6.0.1", - junit-platform-suite-engine;bundle-version="6.0.1", + junit-platform-commons;bundle-version="[6.0.1,7.0.0)", + junit-platform-engine;bundle-version="[6.0.1,7.0.0)", + junit-platform-launcher;bundle-version="[6.0.1,7.0.0)", + junit-platform-suite-api;bundle-version="[6.0.1,7.0.0)", + junit-platform-suite-engine;bundle-version="[6.0.1,7.0.0)", org.apiguardian.api;bundle-version="1.0.0", org.apache.commons.lang3;bundle-version="3.1.0", com.google.gson;bundle-version="2.7.0", - org.objectweb.asm;bundle-version="[9.9.0,9.10.0)", - org.jacoco.core;bundle-version="0.8.14" + org.objectweb.asm;bundle-version="[9.10.1,9.11.0)", + org.jacoco.core;bundle-version="[0.8.15,0.8.16)" Export-Package: com.microsoft.java.test.plugin.launchers;x-friends:="com.microsoft.java.test.plugin.test", com.microsoft.java.test.plugin.model;x-friends:="com.microsoft.java.test.plugin.test", com.microsoft.java.test.plugin.coverage;x-friends:="com.microsoft.java.test.plugin.test", diff --git a/java-extension/com.microsoft.java.test.target/com.microsoft.java.test.tp.target b/java-extension/com.microsoft.java.test.target/com.microsoft.java.test.tp.target index dfb409ca..71a7a5f6 100644 --- a/java-extension/com.microsoft.java.test.target/com.microsoft.java.test.tp.target +++ b/java-extension/com.microsoft.java.test.target/com.microsoft.java.test.tp.target @@ -1,4 +1,4 @@ - + @@ -20,14 +20,48 @@ - + org.jacoco org.jacoco.core - 0.8.14 + 0.8.15 + + + + + + + org.junit.jupiter + junit-jupiter-migrationsupport + 5.14.4 + + + org.junit.vintage + junit-vintage-engine + 5.14.4 + + + org.junit.platform + junit-platform-runner + 1.14.4 + + + org.junit.platform + junit-platform-suite-api + 1.14.4 + + + org.junit.platform + junit-platform-suite-commons + 1.14.4 + + + org.junit.platform + junit-platform-suite-engine + 1.14.4 diff --git a/package.json b/package.json index 42f9cb02..57d01fcd 100644 --- a/package.json +++ b/package.json @@ -56,34 +56,34 @@ "contributes": { "javaExtensions": [ "./server/com.microsoft.java.test.plugin-0.43.1.jar", - "./server/junit-jupiter-api_5.14.1.jar", + "./server/junit-jupiter-api_5.14.4.jar", "./server/junit-jupiter-api_6.0.1.jar", - "./server/junit-jupiter-engine_5.14.1.jar", + "./server/junit-jupiter-engine_5.14.4.jar", "./server/junit-jupiter-engine_6.0.1.jar", - "./server/junit-jupiter-migrationsupport_5.14.1.jar", - "./server/junit-jupiter-params_5.14.1.jar", + "./server/junit-jupiter-migrationsupport_5.14.4.jar", + "./server/junit-jupiter-params_5.14.4.jar", "./server/junit-jupiter-params_6.0.1.jar", - "./server/junit-platform-commons_1.14.1.jar", + "./server/junit-platform-commons_1.14.4.jar", "./server/junit-platform-commons_6.0.1.jar", - "./server/junit-platform-engine_1.14.1.jar", + "./server/junit-platform-engine_1.14.4.jar", "./server/junit-platform-engine_6.0.1.jar", - "./server/junit-platform-launcher_1.14.1.jar", + "./server/junit-platform-launcher_1.14.4.jar", "./server/junit-platform-launcher_6.0.1.jar", - "./server/junit-platform-runner_1.14.1.jar", - "./server/junit-platform-suite-api_1.14.1.jar", + "./server/junit-platform-runner_1.14.4.jar", + "./server/junit-platform-suite-api_1.14.4.jar", "./server/junit-platform-suite-api_6.0.1.jar", - "./server/junit-platform-suite-commons_1.14.1.jar", - "./server/junit-platform-suite-engine_1.14.1.jar", + "./server/junit-platform-suite-commons_1.14.4.jar", + "./server/junit-platform-suite-engine_1.14.4.jar", "./server/junit-platform-suite-engine_6.0.1.jar", - "./server/junit-vintage-engine_5.14.1.jar", + "./server/junit-vintage-engine_5.14.4.jar", "./server/org.apiguardian.api_1.1.2.jar", "./server/org.eclipse.jdt.junit4.runtime_1.4.0.v20251113-1434.jar", "./server/org.eclipse.jdt.junit5.runtime_1.2.0.v20251113-1434.jar", "./server/org.eclipse.jdt.junit6.runtime_1.0.0.v20251112-1701.jar", - "./server/org.jacoco.core_0.8.14.202510111229.jar", - "./server/org.objectweb.asm.commons_9.9.0.jar", - "./server/org.objectweb.asm.tree_9.9.0.jar", - "./server/org.objectweb.asm_9.9.0.jar", + "./server/org.jacoco.core_0.8.15.202606040825.jar", + "./server/org.objectweb.asm.commons_9.10.1.jar", + "./server/org.objectweb.asm.tree_9.10.1.jar", + "./server/org.objectweb.asm_9.10.1.jar", "./server/org.opentest4j_1.3.0.jar" ], "viewsWelcome": [ diff --git a/scripts/buildJdtlsExt.js b/scripts/buildJdtlsExt.js index 0fa8cf89..8bcce4c2 100644 --- a/scripts/buildJdtlsExt.js +++ b/scripts/buildJdtlsExt.js @@ -87,7 +87,7 @@ function updateVersion() { } function downloadJacocoAgent() { - const version = "0.8.14"; + const version = "0.8.15"; const jacocoAgentUrl = `https://repo1.maven.org/maven2/org/jacoco/org.jacoco.agent/${version}/org.jacoco.agent-${version}-runtime.jar`; const jacocoAgentPath = path.resolve('server', 'jacocoagent.jar'); if (!fs.existsSync(jacocoAgentPath)) { From 1459345f4df23be9a2306e78a1bf64fc4f878db6 Mon Sep 17 00:00:00 2001 From: wenyutang-ms Date: Tue, 7 Jul 2026 19:26:21 +0800 Subject: [PATCH 3/4] build: pin pre-release Java tooling --- .../com.microsoft.java.test.tp.target | 4 ++-- test/index.ts | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/java-extension/com.microsoft.java.test.target/com.microsoft.java.test.tp.target b/java-extension/com.microsoft.java.test.target/com.microsoft.java.test.tp.target index 71a7a5f6..100c10e1 100644 --- a/java-extension/com.microsoft.java.test.target/com.microsoft.java.test.tp.target +++ b/java-extension/com.microsoft.java.test.target/com.microsoft.java.test.tp.target @@ -1,4 +1,4 @@ - + @@ -20,7 +20,7 @@ - + diff --git a/test/index.ts b/test/index.ts index 31d58994..080fc577 100644 --- a/test/index.ts +++ b/test/index.ts @@ -6,6 +6,9 @@ import * as os from 'os'; import * as path from 'path'; import { downloadAndUnzipVSCode, resolveCliArgsFromVSCodeExecutablePath, runTests } from '@vscode/test-electron'; +const REDHAT_JAVA_EXTENSION = 'redhat.java@1.56.2026063009'; +const JAVA_DEBUG_EXTENSION = 'vscjava.vscode-java-debug@0.59.2026061007'; + async function main(): Promise { try { const vscodeExecutablePath = await downloadAndUnzipVSCode(); @@ -19,9 +22,9 @@ async function main(): Promise { if (process.platform === 'win32') { options.shell = true; } - cp.spawnSync(cli, [...args, '--install-extension', 'redhat.java', '--pre-release'], options); + cp.spawnSync(cli, [...args, '--install-extension', REDHAT_JAVA_EXTENSION], options); - cp.spawnSync(cli, [...args, '--install-extension', 'vscjava.vscode-java-debug', '--pre-release'], options); + cp.spawnSync(cli, [...args, '--install-extension', JAVA_DEBUG_EXTENSION], options); // The folder containing the Extension Manifest package.json // Passed to `--extensionDevelopmentPath` From 983bb6adca777d561710a1f264ea30e4fe0c963f Mon Sep 17 00:00:00 2001 From: wenyutang-ms Date: Wed, 8 Jul 2026 10:49:42 +0800 Subject: [PATCH 4/4] build: track latest Java pre-release tooling --- .../com.microsoft.java.test.tp.target | 2 +- test/index.ts | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/java-extension/com.microsoft.java.test.target/com.microsoft.java.test.tp.target b/java-extension/com.microsoft.java.test.target/com.microsoft.java.test.tp.target index 100c10e1..f73e86a7 100644 --- a/java-extension/com.microsoft.java.test.target/com.microsoft.java.test.tp.target +++ b/java-extension/com.microsoft.java.test.target/com.microsoft.java.test.tp.target @@ -20,7 +20,7 @@ - + diff --git a/test/index.ts b/test/index.ts index 080fc577..31d58994 100644 --- a/test/index.ts +++ b/test/index.ts @@ -6,9 +6,6 @@ import * as os from 'os'; import * as path from 'path'; import { downloadAndUnzipVSCode, resolveCliArgsFromVSCodeExecutablePath, runTests } from '@vscode/test-electron'; -const REDHAT_JAVA_EXTENSION = 'redhat.java@1.56.2026063009'; -const JAVA_DEBUG_EXTENSION = 'vscjava.vscode-java-debug@0.59.2026061007'; - async function main(): Promise { try { const vscodeExecutablePath = await downloadAndUnzipVSCode(); @@ -22,9 +19,9 @@ async function main(): Promise { if (process.platform === 'win32') { options.shell = true; } - cp.spawnSync(cli, [...args, '--install-extension', REDHAT_JAVA_EXTENSION], options); + cp.spawnSync(cli, [...args, '--install-extension', 'redhat.java', '--pre-release'], options); - cp.spawnSync(cli, [...args, '--install-extension', JAVA_DEBUG_EXTENSION], options); + cp.spawnSync(cli, [...args, '--install-extension', 'vscjava.vscode-java-debug', '--pre-release'], options); // The folder containing the Extension Manifest package.json // Passed to `--extensionDevelopmentPath`