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`;