Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
27 changes: 14 additions & 13 deletions java-extension/com.microsoft.java.test.plugin/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,15 @@
<unit id="org.eclipse.equinox.core.feature.feature.group" version="0.0.0"/>
<unit id="org.eclipse.equinox.core.sdk.feature.group" version="0.0.0"/>
<unit id="org.eclipse.equinox.executable.feature.group" version="0.0.0"/>
<unit id="org.eclipse.equinox.p2.core.feature.source.feature.group" version="0.0.0"/>
<unit id="org.eclipse.equinox.sdk.feature.group" version="0.0.0"/>
<unit id="org.eclipse.jdt.source.feature.group" version="0.0.0"/>
<unit id="org.eclipse.sdk.feature.group" version="0.0.0"/>
<unit id="org.mockito.mockito-core" version="0.0.0"/>
<unit id="org.apache.commons.commons-io" version="0.0.0"/>
<repository location="https://download.eclipse.org/eclipse/updates/4.33/"/>
<repository location="https://download.eclipse.org/eclipse/updates/4.38-I-builds/"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.xtext.xbase.lib" version="0.0.0"/>
<repository location="https://download.eclipse.org/releases/2024-09/"/>
<repository location="https://download.eclipse.org/releases/2025-09/"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.jdt.ls.core" version="0.0.0"/>
Expand Down
39 changes: 25 additions & 14 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
44 changes: 39 additions & 5 deletions scripts/buildJdtlsExt.js
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand All @@ -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
Expand Down Expand Up @@ -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);
}
Expand All @@ -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`;
Expand Down
Loading