diff --git a/java-extension/com.microsoft.java.test.plugin.test/META-INF/MANIFEST.MF b/java-extension/com.microsoft.java.test.plugin.test/META-INF/MANIFEST.MF
index 4e03aee2..3c12388b 100644
--- a/java-extension/com.microsoft.java.test.plugin.test/META-INF/MANIFEST.MF
+++ b/java-extension/com.microsoft.java.test.plugin.test/META-INF/MANIFEST.MF
@@ -11,7 +11,7 @@ Bundle-ActivationPolicy: lazy
Require-Bundle: org.eclipse.jdt.ls.core,
com.microsoft.java.test.plugin,
org.junit,
- org.apache.commons.commons-io;bundle-version="2.12.0",
+ org.apache.commons.commons-io;bundle-version="2.21.0",
org.eclipse.core.resources,
org.eclipse.core.runtime,
org.eclipse.jdt.core,
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 14a3ed0d..3b6a27be 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,19 +24,20 @@ 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.4.0",
- junit-jupiter-engine;bundle-version="5.4.0",
- junit-jupiter-migrationsupport;bundle-version="5.4.0",
- junit-jupiter-params;bundle-version="5.4.0",
- junit-vintage-engine;bundle-version="5.4.0",
- org.opentest4j;bundle-version="1.1.1",
- junit-platform-commons;bundle-version="1.4.0",
- junit-platform-engine;bundle-version="1.4.0",
- junit-platform-launcher;bundle-version="1.4.0",
- junit-platform-runner;bundle-version="1.4.0",
- junit-platform-suite-api;bundle-version="1.4.0",
- junit-platform-suite-commons;bundle-version="1.8.1",
- junit-platform-suite-engine;bundle-version="1.8.1",
+ org.eclipse.jdt.junit6.runtime,
+ junit-jupiter-api;bundle-version="[5.4.0,7.0.0)",
+ junit-jupiter-engine;bundle-version="[5.4.0,7.0.0)",
+ junit-jupiter-migrationsupport;bundle-version="[5.4.0,7.0.0)",
+ junit-jupiter-params;bundle-version="[5.4.0,7.0.0)",
+ junit-vintage-engine;bundle-version="[5.4.0,7.0.0)",
+ org.opentest4j;bundle-version="[1.1.1,2.0.0)",
+ junit-platform-commons;bundle-version="[1.4.0,7.0.0)",
+ junit-platform-engine;bundle-version="[1.4.0,7.0.0)",
+ junit-platform-launcher;bundle-version="[1.4.0,7.0.0)",
+ junit-platform-runner;bundle-version="[1.4.0,7.0.0)",
+ junit-platform-suite-api;bundle-version="[1.4.0,7.0.0)",
+ junit-platform-suite-commons;bundle-version="[1.4.0,7.0.0)";resolution:=optional,
+ junit-platform-suite-engine;bundle-version="[1.4.0,7.0.0)";resolution:=optional,
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",
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 5d387936..b1d988ca 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
@@ -4,17 +4,15 @@
-
-
-
+
-
+
diff --git a/package.json b/package.json
index e10303a6..40e1ab8b 100644
--- a/package.json
+++ b/package.json
@@ -55,21 +55,32 @@
"main": "./main.js",
"contributes": {
"javaExtensions": [
- "./server/junit-jupiter-api_5.11.0.jar",
- "./server/junit-jupiter-engine_5.11.0.jar",
- "./server/junit-jupiter-migrationsupport_5.11.0.jar",
- "./server/junit-jupiter-params_5.11.0.jar",
- "./server/junit-platform-commons_1.11.0.jar",
- "./server/junit-platform-engine_1.11.0.jar",
- "./server/junit-platform-launcher_1.11.0.jar",
- "./server/junit-platform-runner_1.11.0.jar",
- "./server/junit-platform-suite-api_1.11.0.jar",
- "./server/junit-platform-suite-commons_1.11.0.jar",
- "./server/junit-platform-suite-engine_1.11.0.jar",
- "./server/junit-vintage-engine_5.11.0.jar",
+ "./server/junit-jupiter-api_5.14.1.jar",
+ "./server/junit-jupiter-api_6.0.1.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.1.jar",
+ "./server/junit-jupiter-params_6.0.1.jar",
+ "./server/junit-platform-commons_1.14.1.jar",
+ "./server/junit-platform-commons_6.0.1.jar",
+ "./server/junit-platform-engine_1.14.1.jar",
+ "./server/junit-platform-engine_6.0.1.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",
+ "./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-engine_6.0.1.jar",
+ "./server/junit-vintage-engine_5.14.1.jar",
"./server/org.apiguardian.api_1.1.2.jar",
- "./server/org.eclipse.jdt.junit4.runtime_1.3.100.v20231214-1952.jar",
- "./server/org.eclipse.jdt.junit5.runtime_1.1.300.v20231214-1952.jar",
+ "./server/org.eclipse.jdt.junit.core_3.14.0.v20251126-1201.jar",
+ "./server/org.eclipse.jdt.junit.runtime_3.8.0.v20251113-1434.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.opentest4j_1.3.0.jar",
"./server/org.jacoco.core_0.8.14.202510111229.jar",
"./server/com.microsoft.java.test.plugin-0.43.1.jar"
diff --git a/scripts/buildJdtlsExt.js b/scripts/buildJdtlsExt.js
index ddedeb8a..107fdd76 100644
--- a/scripts/buildJdtlsExt.js
+++ b/scripts/buildJdtlsExt.js
@@ -12,6 +12,7 @@ const serverDir = path.resolve('java-extension');
const bundleList = [
'org.eclipse.jdt.junit4.runtime_',
'org.eclipse.jdt.junit5.runtime_',
+ 'org.eclipse.jdt.junit6.runtime_',
'junit-jupiter-api',
'junit-jupiter-engine',
'junit-jupiter-migrationsupport',
@@ -26,6 +27,8 @@ const bundleList = [
'junit-platform-suite-commons',
'junit-platform-suite-engine',
'org.apiguardian.api',
+ 'org.eclipse.jdt.junit.core_',
+ 'org.eclipse.jdt.junit.runtime_',
'org.jacoco.core'
];
// Set MAVEN_OPTS to disable XML entity size limits for JDK XML parser
@@ -53,15 +56,34 @@ function updateVersion() {
const packageJsonData = require('../package.json');
const javaExtensions = packageJsonData.contributes.javaExtensions;
if (Array.isArray(javaExtensions)) {
- packageJsonData.contributes.javaExtensions = javaExtensions.map((extensionString) => {
+ const newExtensions = [];
+ const processedBaseNames = new Set();
+
+ for (const extensionString of javaExtensions) {
const ind = extensionString.indexOf('_');
- const fileName = findNewRequiredJar(extensionString.substring(extensionString.lastIndexOf('/') + 1, ind));
if (ind >= 0) {
- return extensionString.substring(0, extensionString.lastIndexOf('/') + 1) + fileName;
+ const baseName = extensionString.substring(extensionString.lastIndexOf('/') + 1, ind);
+ const pathPrefix = extensionString.substring(0, extensionString.lastIndexOf('/') + 1);
+
+ // Check if we've already processed this base name
+ if (!processedBaseNames.has(baseName)) {
+ processedBaseNames.add(baseName);
+
+ // Find all jar files matching this base name
+ const matchingJars = findAllMatchingJars(baseName);
+
+ // Add all matching jars to the new extensions list
+ for (const jar of matchingJars) {
+ newExtensions.push(pathPrefix + jar);
+ }
+ }
+ } else {
+ // Keep non-versioned entries as is
+ newExtensions.push(extensionString);
}
- return extensionString;
- });
+ }
+ packageJsonData.contributes.javaExtensions = newExtensions;
fs.writeFileSync(path.resolve('package.json'), JSON.stringify(packageJsonData, null, 4));
fs.appendFileSync(path.resolve('package.json'), os.EOL);
}
@@ -78,6 +100,18 @@ function findNewRequiredJar(fileName) {
return f;
}
+// Find all jar files matching the base name (supports multiple versions)
+function findAllMatchingJars(baseName) {
+ const prefix = baseName + "_";
+ const destFolder = path.resolve('./server');
+ const files = fs.readdirSync(destFolder);
+ const matchingFiles = files.filter((file) => {
+ return file.startsWith(prefix) && file.endsWith('.jar');
+ });
+ // Sort to ensure consistent order (helps with version ordering)
+ return matchingFiles.sort();
+}
+
function downloadJacocoAgent() {
const version = "0.8.14";
const jacocoAgentUrl = `https://repo1.maven.org/maven2/org/jacoco/org.jacoco.agent/${version}/org.jacoco.agent-${version}-runtime.jar`;